commit f332acc

default  ·  2024-03-12 18:44:08 +0000 UTC
parent cd0e211
More actor refreshing tweaks.
2 files changed,  +11, -7
M data.c
+10, -6
 1@@ -127,8 +127,14 @@ int actor_request(snac *user, const char *actor, xs_dict **data)
 2     /* get from disk first */
 3     status = actor_get(actor, data);
 4 
 5-    if (status != 200) {
 6-        /* actor data non-existent or stale: get from the net */
 7+    if (status == 205) {
 8+        /* stale actor: use it, but request a refresh */
 9+        if (!xs_startswith(actor, srv_baseurl))
10+            enqueue_actor_request(user, actor);
11+    }
12+    else
13+    if (!valid_status(status)) {
14+        /* actor data non-existent: get from the net */
15         status = activitypub_request(user, actor, &payload);
16 
17         if (valid_status(status)) {
18@@ -149,8 +155,6 @@ int actor_request(snac *user, const char *actor, xs_dict **data)
19         if (valid_status(status) && data && *data)
20             inbox_add_by_actor(*data);
21     }
22-    else
23-        srv_debug(2, xs_fmt("NOT collected"));
24 
25     return status;
26 }
27@@ -2248,9 +2252,9 @@ void process_user_queue_item(snac *snac, xs_dict *q_item)
28     if (strcmp(type, "actor_request") == 0) {
29         const char *actor = xs_dict_get(q_item, "actor");
30         double mtime = object_mtime(actor);
31-        double max_time = 3600.0 * 36.0;
32 
33-        if (mtime + max_time < (double) time(NULL)) {
34+        /* only refresh if it was refreshed more than an hour ago */
35+        if (mtime + 3600.0 < (double) time(NULL)) {
36             xs *actor_o = NULL;
37             int status;
38 
M data.c
+1, -1
1@@ -1596,7 +1596,7 @@ int actor_get_refresh(snac *user, const char *actor, xs_dict **data)
2 {
3     int status = actor_get(actor, data);
4 
5-    if (status == 205 && user && !xs_startswith(user->actor, srv_baseurl))
6+    if (status == 205 && user && !xs_startswith(actor, srv_baseurl))
7         enqueue_actor_request(user, actor);
8 
9     return status;