diff options
author | default <nobody@localhost> | 2022-10-13 15:44:38 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2022-10-13 15:44:38 +0200 |
commit | 45f0988fb390f20356e6cc03d7303367122fc465 (patch) | |
tree | 544cae303136f7d3bc65da485fac1d12914220b0 /main.c | |
parent | 3a1123bfa4fe7b513fd385b6d6935e625e046bc1 (diff) |
New command-line command 'unfollow'.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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; |