diff options
| -rw-r--r-- | activitypub.c | 16 | ||||
| -rw-r--r-- | data.c | 15 | ||||
| -rw-r--r-- | main.c | 6 | ||||
| -rw-r--r-- | snac.h | 1 |
4 files changed, 38 insertions, 0 deletions
diff --git a/activitypub.c b/activitypub.c index a8a7db7..bb919ed 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -2313,6 +2313,22 @@ void process_user_queue_item(snac *snac, xs_dict *q_item) | |||
| 2313 | timeline_request_replies(snac, id); | 2313 | timeline_request_replies(snac, id); |
| 2314 | } | 2314 | } |
| 2315 | else | 2315 | else |
| 2316 | if (strcmp(type, "object_request") == 0) { | ||
| 2317 | const char *id = xs_dict_get(q_item, "message"); | ||
| 2318 | |||
| 2319 | if (!xs_is_null(id)) { | ||
| 2320 | int status; | ||
| 2321 | xs *data = NULL; | ||
| 2322 | |||
| 2323 | status = activitypub_request(snac, id, &data); | ||
| 2324 | |||
| 2325 | if (valid_status(status)) | ||
| 2326 | object_add_ow(id, data); | ||
| 2327 | |||
| 2328 | snac_debug(snac, 1, xs_fmt("object_request %s %d", id, status)); | ||
| 2329 | } | ||
| 2330 | } | ||
| 2331 | else | ||
| 2316 | if (strcmp(type, "verify_links") == 0) { | 2332 | if (strcmp(type, "verify_links") == 0) { |
| 2317 | verify_links(snac); | 2333 | verify_links(snac); |
| 2318 | } | 2334 | } |
| @@ -2651,6 +2651,21 @@ void enqueue_close_question(snac *user, const char *id, int end_secs) | |||
| 2651 | } | 2651 | } |
| 2652 | 2652 | ||
| 2653 | 2653 | ||
| 2654 | void enqueue_object_request(snac *user, const char *id, int forward_secs) | ||
| 2655 | /* enqueues the request of an object in the future */ | ||
| 2656 | { | ||
| 2657 | xs *qmsg = _new_qmsg("object_request", id, 0); | ||
| 2658 | xs *ntid = tid(forward_secs); | ||
| 2659 | xs *fn = xs_fmt("%s/queue/%s.json", user->basedir, ntid); | ||
| 2660 | |||
| 2661 | qmsg = xs_dict_set(qmsg, "ntid", ntid); | ||
| 2662 | |||
| 2663 | qmsg = _enqueue_put(fn, qmsg); | ||
| 2664 | |||
| 2665 | snac_debug(user, 0, xs_fmt("enqueue_object_request %s", id)); | ||
| 2666 | } | ||
| 2667 | |||
| 2668 | |||
| 2654 | void enqueue_verify_links(snac *user) | 2669 | void enqueue_verify_links(snac *user) |
| 2655 | /* enqueues a link verification */ | 2670 | /* enqueues a link verification */ |
| 2656 | { | 2671 | { |
| @@ -458,6 +458,12 @@ int main(int argc, char *argv[]) | |||
| 458 | return 0; | 458 | return 0; |
| 459 | } | 459 | } |
| 460 | 460 | ||
| 461 | if (strcmp(cmd, "request2") == 0) { /** **/ | ||
| 462 | enqueue_object_request(&snac, url, 2); | ||
| 463 | |||
| 464 | return 0; | ||
| 465 | } | ||
| 466 | |||
| 461 | if (strcmp(cmd, "actor") == 0) { /** **/ | 467 | if (strcmp(cmd, "actor") == 0) { /** **/ |
| 462 | int status; | 468 | int status; |
| 463 | xs *data = NULL; | 469 | xs *data = NULL; |
| @@ -226,6 +226,7 @@ void enqueue_telegram(const xs_str *msg, const char *bot, const char *chat_id); | |||
| 226 | void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token); | 226 | void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token); |
| 227 | void enqueue_message(snac *snac, const xs_dict *msg); | 227 | void enqueue_message(snac *snac, const xs_dict *msg); |
| 228 | void enqueue_close_question(snac *user, const char *id, int end_secs); | 228 | void enqueue_close_question(snac *user, const char *id, int end_secs); |
| 229 | void enqueue_object_request(snac *user, const char *id, int forward_secs); | ||
| 229 | void enqueue_verify_links(snac *user); | 230 | void enqueue_verify_links(snac *user); |
| 230 | void enqueue_actor_refresh(snac *user, const char *actor); | 231 | void enqueue_actor_refresh(snac *user, const char *actor); |
| 231 | void enqueue_request_replies(snac *user, const char *id); | 232 | void enqueue_request_replies(snac *user, const char *id); |