diff options
Diffstat (limited to 'utils.c')
| -rw-r--r-- | utils.c | 26 |
1 files changed, 26 insertions, 0 deletions
| @@ -337,3 +337,29 @@ int resetpwd(snac *snac) | |||
| 337 | 337 | ||
| 338 | return ret; | 338 | return ret; |
| 339 | } | 339 | } |
| 340 | |||
| 341 | |||
| 342 | int deluser(snac *user) | ||
| 343 | /* deletes a user */ | ||
| 344 | { | ||
| 345 | int ret = 0; | ||
| 346 | xs *fwers = following_list(user); | ||
| 347 | xs_list *p = fwers; | ||
| 348 | xs_str *v; | ||
| 349 | |||
| 350 | while (xs_list_iter(&p, &v)) { | ||
| 351 | xs *object = NULL; | ||
| 352 | |||
| 353 | if (valid_status(following_get(user, v, &object))) { | ||
| 354 | xs *msg = msg_undo(user, xs_dict_get(object, "object")); | ||
| 355 | |||
| 356 | following_del(user, v); | ||
| 357 | |||
| 358 | enqueue_output_by_actor(user, msg, v, 0); | ||
| 359 | |||
| 360 | printf("Unfollowing actor %s\n", v); | ||
| 361 | } | ||
| 362 | } | ||
| 363 | |||
| 364 | return ret; | ||
| 365 | } | ||