Enqueue an object request for closed polls.

It seems that Pleroma does not send poll updates on close (or never).
This commit is contained in:
default 2024-05-05 01:58:27 +02:00
parent fc76ae4e9e
commit be9cf2f555
2 changed files with 20 additions and 1 deletions

2
data.c
View file

@ -2662,7 +2662,7 @@ void enqueue_object_request(snac *user, const char *id, int forward_secs)
qmsg = _enqueue_put(fn, qmsg); qmsg = _enqueue_put(fn, qmsg);
snac_debug(user, 0, xs_fmt("enqueue_object_request %s", id)); snac_debug(user, 0, xs_fmt("enqueue_object_request %s %d", id, forward_secs));
} }

19
html.c
View file

@ -3300,6 +3300,25 @@ int html_post_handler(const xs_dict *req, const char *q_path,
timeline_add(&snac, xs_dict_get(msg, "id"), msg); timeline_add(&snac, xs_dict_get(msg, "id"), msg);
} }
{
/* get the poll object */
xs *poll = NULL;
if (valid_status(object_get(irt, &poll))) {
char *date = xs_dict_get(poll, "endTime");
if (xs_is_null(date))
date = xs_dict_get(poll, "closed");
if (!xs_is_null(date)) {
time_t t = xs_parse_iso_date(date, 0) - time(NULL);
/* request the poll when it's closed;
Pleroma does not send and update when the poll closes */
enqueue_object_request(&snac, irt, t + 2);
}
}
}
status = 303; status = 303;
} }