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;