commit fc76ae4

default  ·  2024-05-04 23:38:22 +0000 UTC
parent 7ea5748
New function enqueue_object_request().
4 files changed,  +38, -0
M data.c
M main.c
M snac.h
+16, -0
 1@@ -2313,6 +2313,22 @@ void process_user_queue_item(snac *snac, xs_dict *q_item)
 2             timeline_request_replies(snac, id);
 3     }
 4     else
 5+    if (strcmp(type, "object_request") == 0) {
 6+        const char *id = xs_dict_get(q_item, "message");
 7+
 8+        if (!xs_is_null(id)) {
 9+            int status;
10+            xs *data = NULL;
11+
12+            status = activitypub_request(snac, id, &data);
13+
14+            if (valid_status(status))
15+                object_add_ow(id, data);
16+
17+            snac_debug(snac, 1, xs_fmt("object_request %s %d", id, status));
18+        }
19+    }
20+    else
21     if (strcmp(type, "verify_links") == 0) {
22         verify_links(snac);
23     }
M data.c
+15, -0
 1@@ -2651,6 +2651,21 @@ void enqueue_close_question(snac *user, const char *id, int end_secs)
 2 }
 3 
 4 
 5+void enqueue_object_request(snac *user, const char *id, int forward_secs)
 6+/* enqueues the request of an object in the future */
 7+{
 8+    xs *qmsg = _new_qmsg("object_request", id, 0);
 9+    xs *ntid = tid(forward_secs);
10+    xs *fn   = xs_fmt("%s/queue/%s.json", user->basedir, ntid);
11+
12+    qmsg = xs_dict_set(qmsg, "ntid", ntid);
13+
14+    qmsg = _enqueue_put(fn, qmsg);
15+
16+    snac_debug(user, 0, xs_fmt("enqueue_object_request %s", id));
17+}
18+
19+
20 void enqueue_verify_links(snac *user)
21 /* enqueues a link verification */
22 {
M main.c
+6, -0
 1@@ -458,6 +458,12 @@ int main(int argc, char *argv[])
 2         return 0;
 3     }
 4 
 5+    if (strcmp(cmd, "request2") == 0) { /** **/
 6+        enqueue_object_request(&snac, url, 2);
 7+
 8+        return 0;
 9+    }
10+
11     if (strcmp(cmd, "actor") == 0) { /** **/
12         int status;
13         xs *data = NULL;
M snac.h
+1, -0
1@@ -226,6 +226,7 @@ void enqueue_telegram(const xs_str *msg, const char *bot, const char *chat_id);
2 void enqueue_ntfy(const xs_str *msg, const char *ntfy_server, const char *ntfy_token);
3 void enqueue_message(snac *snac, const xs_dict *msg);
4 void enqueue_close_question(snac *user, const char *id, int end_secs);
5+void enqueue_object_request(snac *user, const char *id, int forward_secs);
6 void enqueue_verify_links(snac *user);
7 void enqueue_actor_refresh(snac *user, const char *actor);
8 void enqueue_request_replies(snac *user, const char *id);