snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 45f0988fb390f20356e6cc03d7303367122fc465
parent 3a1123bfa4fe7b513fd385b6d6935e625e046bc1
Author: default <nobody@localhost>
Date:   Thu, 13 Oct 2022 15:44:38 +0200

New command-line command 'unfollow'.

Diffstat:
Mmain.c | 19+++++++++++++++++++
1 file changed, 19 insertions(+), 0 deletions(-)

diff --git a/main.c b/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;