Преглед изворни кода

New command-line command 'unfollow'.

default пре 3 година
родитељ
комит
45f0988fb3
1 измењених фајлова са 19 додато и 0 уклоњено
  1. 19 0
      main.c

+ 19 - 0
main.c

@@ -22,6 +22,7 @@ int usage(void)
     printf("webfinger {basedir} {user}       Queries about a @user@host or actor\n");
     printf("queue {basedir} {uid}            Processes a user queue\n");
     printf("follow {basedir} {uid} {actor}   Follows an actor\n");
+    printf("unfollow {basedir} {uid} {actor} Unfollows an actor\n");
 
 //    printf("check {basedir} [{uid}]          Checks the database\n");
 
@@ -177,6 +178,24 @@ int main(int argc, char *argv[])
         return 0;
     }
 
+    if (strcmp(cmd, "unfollow") == 0) {
+        xs *object = NULL;
+
+        if (valid_status(following_get(&snac, url, &object))) {
+            xs *msg = msg_undo(&snac, xs_dict_get(object, "object"));
+
+            following_del(&snac, url);
+
+            enqueue_output(&snac, msg, url, 0);
+
+            snac_log(&snac, xs_fmt("unfollowed actor %s", url));
+        }
+        else
+            snac_log(&snac, xs_fmt("actor is not being followed %s", url));
+
+        return 0;
+    }
+
     if (strcmp(cmd, "request") == 0) {
         int status;
         xs *data = NULL;