commit c884f70

default  ·  2024-05-06 03:54:46 +0000 UTC
parent c31a4ae
mastoapi: also fix polls from Pleroma.
1 files changed,  +15, -2
+15, -2
 1@@ -716,10 +716,23 @@ xs_dict *mastoapi_poll(snac *snac, const xs_dict *msg)
 2     xs *options = xs_list_new();
 3 
 4     poll = xs_dict_append(poll, "id", mid);
 5-    xs *fd = mastoapi_date(xs_dict_get(msg, "endTime"));
 6+    char *date = xs_dict_get(msg, "endTime");
 7+    if (date == NULL)
 8+        date = xs_dict_get(msg, "closed");
 9+    if (date == NULL)
10+        return NULL;
11+
12+    xs *fd = mastoapi_date(date);
13     poll = xs_dict_append(poll, "expires_at", fd);
14+
15+    date = xs_dict_get(msg, "closed");
16+    time_t t = 0;
17+
18+    if (date != NULL)
19+        t = xs_parse_iso_date(date, 0);
20+
21     poll = xs_dict_append(poll, "expired",
22-            xs_dict_get(msg, "closed") != NULL ? xs_stock(XSTYPE_TRUE) : xs_stock(XSTYPE_FALSE));
23+            t < time(NULL) ? xs_stock(XSTYPE_FALSE) : xs_stock(XSTYPE_TRUE));
24 
25     if ((opts = xs_dict_get(msg, "oneOf")) != NULL)
26         poll = xs_dict_append(poll, "multiple", xs_stock(XSTYPE_FALSE));