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));