diff options
author | default <nobody@localhost> | 2023-06-27 17:08:09 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2023-06-27 17:08:09 +0200 |
commit | 3047f6220b1f2ac9b80057cbb919f823d0a74ec0 (patch) | |
tree | a5faa76dff8bd730bb25c2f2f64490fbdf50467f /html.c | |
parent | f543185c7156bf659fb12880f8e7708c57c2bbfb (diff) |
For polls, shows a 'Closes in d:h:m:s' string.
Diffstat (limited to 'html.c')
-rw-r--r-- | html.c | 28 |
1 files changed, 22 insertions, 6 deletions
@@ -1025,12 +1025,6 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local, } c = xs_str_cat(c, "</table>\n"); - - /* if it's *really* closed, say it */ - if (closed == 2) { - xs *s1 = xs_fmt("<p>%s</p>\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("<p>%s</p>\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("<p>%s %s</p>", L("Closes in"), tf); + c = xs_str_cat(c, s1); + } + } + } } s = xs_str_cat(s, c); |