mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-27 15:13:39 +00:00
New web actions "Approve" and "Discard".
This commit is contained in:
parent
0ddbe7e53b
commit
0db1cf05d1
2 changed files with 29 additions and 0 deletions
28
html.c
28
html.c
|
@ -3699,6 +3699,34 @@ int html_post_handler(const xs_dict *req, const char *q_path,
|
||||||
unbookmark(&snac, id);
|
unbookmark(&snac, id);
|
||||||
timeline_touch(&snac);
|
timeline_touch(&snac);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if (strcmp(action, L("Approve")) == 0) { /** **/
|
||||||
|
xs *fwreq = pending_get(&snac, actor);
|
||||||
|
|
||||||
|
if (fwreq != NULL) {
|
||||||
|
xs *reply = msg_accept(&snac, fwreq, actor);
|
||||||
|
|
||||||
|
enqueue_message(&snac, reply);
|
||||||
|
|
||||||
|
if (xs_is_null(xs_dict_get(fwreq, "published"))) {
|
||||||
|
/* add a date if it doesn't include one (Mastodon) */
|
||||||
|
xs *date = xs_str_utctime(0, ISO_DATE_SPEC);
|
||||||
|
fwreq = xs_dict_set(fwreq, "published", date);
|
||||||
|
}
|
||||||
|
|
||||||
|
timeline_add(&snac, xs_dict_get(fwreq, "id"), fwreq);
|
||||||
|
|
||||||
|
follower_add(&snac, actor);
|
||||||
|
|
||||||
|
pending_del(&snac, actor);
|
||||||
|
|
||||||
|
snac_log(&snac, xs_fmt("new follower %s", actor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (strcmp(action, L("Discard")) == 0) { /** **/
|
||||||
|
pending_del(&snac, actor);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
status = HTTP_STATUS_NOT_FOUND;
|
status = HTTP_STATUS_NOT_FOUND;
|
||||||
|
|
||||||
|
|
1
snac.h
1
snac.h
|
@ -320,6 +320,7 @@ xs_dict *msg_update(snac *snac, const xs_dict *object);
|
||||||
xs_dict *msg_ping(snac *user, const char *rcpt);
|
xs_dict *msg_ping(snac *user, const char *rcpt);
|
||||||
xs_dict *msg_pong(snac *user, const char *rcpt, const char *object);
|
xs_dict *msg_pong(snac *user, const char *rcpt, const char *object);
|
||||||
xs_dict *msg_move(snac *user, const char *new_account);
|
xs_dict *msg_move(snac *user, const char *new_account);
|
||||||
|
xs_dict *msg_accept(snac *snac, const xs_val *object, const char *to);
|
||||||
xs_dict *msg_question(snac *user, const char *content, xs_list *attach,
|
xs_dict *msg_question(snac *user, const char *content, xs_list *attach,
|
||||||
const xs_list *opts, int multiple, int end_secs);
|
const xs_list *opts, int multiple, int end_secs);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue