Przeglądaj źródła

New command-line option 'refresh'.

grunfink 6 miesięcy temu
rodzic
commit
d8d40acfd1
2 zmienionych plików z 17 dodań i 2 usunięć
  1. 1 1
      activitypub.c
  2. 16 1
      main.c

+ 1 - 1
activitypub.c

@@ -3395,7 +3395,7 @@ void process_user_queue_item(snac *user, xs_dict *q_item)
                 actor_add(actor, actor_o);
             }
             else {
-                if (status == HTTP_STATUS_GONE) {
+                if (status == HTTP_STATUS_GONE || status == HTTP_STATUS_NOT_FOUND) {
                     actor_failure(actor, 1);
                     snac_log(user, xs_fmt("actor_refresh marking actor %s as broken %d", actor, status));
                 }

+ 16 - 1
main.c

@@ -77,7 +77,8 @@ int usage(const char *cmd)
         "list_remove {basedir} {uid} {name}   Removes an existing list\n"
         "list_add {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n"
         "list_del {basedir} {uid} {name} {actor} Deletes an actor URL from a list\n"
-        "top_ten {basedir} {uid} [{N}]        Prints the most popular posts\n";
+        "top_ten {basedir} {uid} [{N}]        Prints the most popular posts\n"
+        "refresh {basedir} {uid}              Refreshes all actors\n";
 
     if (cmd == NULL)
         printf("%s", cmds);
@@ -369,6 +370,20 @@ int main(int argc, char *argv[])
         return 0;
     }
 
+    if (strcmp(cmd, "refresh") == 0) { /** **/
+        xs *fwers = follower_list(&snac);
+        xs *fwing = following_list(&snac);
+        const char *id;
+
+        xs_list_foreach(fwers, id)
+            enqueue_actor_refresh(&snac, id, 0);
+
+        xs_list_foreach(fwing, id)
+            enqueue_actor_refresh(&snac, id, 0);
+
+        return 0;
+    }
+
     if ((url = GET_ARGV()) == NULL)
         return usage(cmd);