summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/main.c b/main.c
index 188b92f..db691eb 100644
--- a/main.c
+++ b/main.c
@@ -22,6 +22,7 @@ int usage(void)
22 printf("webfinger {basedir} {user} Queries about a @user@host or actor\n"); 22 printf("webfinger {basedir} {user} Queries about a @user@host or actor\n");
23 printf("queue {basedir} {uid} Processes a user queue\n"); 23 printf("queue {basedir} {uid} Processes a user queue\n");
24 printf("follow {basedir} {uid} {actor} Follows an actor\n"); 24 printf("follow {basedir} {uid} {actor} Follows an actor\n");
25 printf("unfollow {basedir} {uid} {actor} Unfollows an actor\n");
25 26
26// printf("check {basedir} [{uid}] Checks the database\n"); 27// printf("check {basedir} [{uid}] Checks the database\n");
27 28
@@ -177,6 +178,24 @@ int main(int argc, char *argv[])
177 return 0; 178 return 0;
178 } 179 }
179 180
181 if (strcmp(cmd, "unfollow") == 0) {
182 xs *object = NULL;
183
184 if (valid_status(following_get(&snac, url, &object))) {
185 xs *msg = msg_undo(&snac, xs_dict_get(object, "object"));
186
187 following_del(&snac, url);
188
189 enqueue_output(&snac, msg, url, 0);
190
191 snac_log(&snac, xs_fmt("unfollowed actor %s", url));
192 }
193 else
194 snac_log(&snac, xs_fmt("actor is not being followed %s", url));
195
196 return 0;
197 }
198
180 if (strcmp(cmd, "request") == 0) { 199 if (strcmp(cmd, "request") == 0) {
181 int status; 200 int status;
182 xs *data = NULL; 201 xs *data = NULL;