From 3047f6220b1f2ac9b80057cbb919f823d0a74ec0 Mon Sep 17 00:00:00 2001 From: default Date: Tue, 27 Jun 2023 17:08:09 +0200 Subject: [PATCH] For polls, shows a 'Closes in d:h:m:s' string. --- html.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/html.c b/html.c index ccebf2f..491ee67 100644 --- a/html.c +++ b/html.c @@ -1025,12 +1025,6 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local, } c = xs_str_cat(c, "\n"); - - /* if it's *really* closed, say it */ - if (closed == 2) { - xs *s1 = xs_fmt("

%s

\n", L("Closed")); - c = xs_str_cat(c, s1); - } } else { /* poll still active */ @@ -1061,6 +1055,28 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local, c = xs_str_cat(c, s1); } + + /* if it's *really* closed, say it */ + if (closed == 2) { + xs *s1 = xs_fmt("

%s

\n", L("Closed")); + c = xs_str_cat(c, s1); + } + else { + /* show when the poll closes */ + const char *end_time = xs_dict_get(msg, "endTime"); + if (!xs_is_null(end_time)) { + time_t t0 = time(NULL); + time_t t1 = xs_parse_iso_date(end_time, 0); + + if (t1 > 0 && t1 > t0) { + time_t diff_time = t1 - t0; + xs *tf = xs_str_time_diff(diff_time); + + xs *s1 = xs_fmt("

%s %s

", L("Closes in"), tf); + c = xs_str_cat(c, s1); + } + } + } } s = xs_str_cat(s, c);