summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2024-05-05 01:38:22 +0200
committerGravatar default2024-05-05 01:38:22 +0200
commitfc76ae4e9e721a1ec5fbcf3b509d5a47cf48cd61 (patch)
treeb64e7179eacd692896cf9caa5f372854425473a5
parentMore Pleroma poll tweaks. (diff)
downloadpenes-snac2-fc76ae4e9e721a1ec5fbcf3b509d5a47cf48cd61.tar.gz
penes-snac2-fc76ae4e9e721a1ec5fbcf3b509d5a47cf48cd61.tar.xz
penes-snac2-fc76ae4e9e721a1ec5fbcf3b509d5a47cf48cd61.zip
New function enqueue_object_request().
-rw-r--r--activitypub.c16
-rw-r--r--data.c15
-rw-r--r--main.c6
-rw-r--r--snac.h1
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 }
diff --git a/data.c b/data.c
index db544f4..4d753a9 100644
--- a/data.c
+++ b/data.c
@@ -2651,6 +2651,21 @@ void enqueue_close_question(snac *user, const char *id, int end_secs)
2651} 2651}
2652 2652
2653 2653
2654void 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
2654void enqueue_verify_links(snac *user) 2669void enqueue_verify_links(snac *user)
2655/* enqueues a link verification */ 2670/* enqueues a link verification */
2656{ 2671{
diff --git a/main.c b/main.c
index 06cae78..6a38412 100644
--- a/main.c
+++ b/main.c
@@ -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;
diff --git a/snac.h b/snac.h
index 74e58cd..721d088 100644
--- a/snac.h
+++ b/snac.h
@@ -226,6 +226,7 @@ void enqueue_telegram(const xs_str *msg, const char *bot, const char *chat_id);
226void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token); 226void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token);
227void enqueue_message(snac *snac, const xs_dict *msg); 227void enqueue_message(snac *snac, const xs_dict *msg);
228void enqueue_close_question(snac *user, const char *id, int end_secs); 228void enqueue_close_question(snac *user, const char *id, int end_secs);
229void enqueue_object_request(snac *user, const char *id, int forward_secs);
229void enqueue_verify_links(snac *user); 230void enqueue_verify_links(snac *user);
230void enqueue_actor_refresh(snac *user, const char *actor); 231void enqueue_actor_refresh(snac *user, const char *actor);
231void enqueue_request_replies(snac *user, const char *id); 232void enqueue_request_replies(snac *user, const char *id);