commit 436dbf9

default  ·  2023-02-08 19:19:36 +0000 UTC
parent 2ed2914
Followers can be deleted.
1 files changed,  +21, -13
M html.c
M html.c
+21, -13
 1@@ -1030,8 +1030,10 @@ d_char *html_people_list(snac *snac, d_char *os, d_char *list, const char *heade
 2 
 3             if (following_check(snac, actor_id))
 4                 s = html_button(s, "unfollow", L("Unfollow"));
 5-            else
 6+            else {
 7                 s = html_button(s, "follow", L("Follow"));
 8+                s = html_button(s, "delete", L("Delete"));
 9+            }
10 
11             if (is_muted(snac, actor_id))
12                 s = html_button(s, "unmute", L("Unmute"));
13@@ -1551,22 +1553,28 @@ int html_post_handler(d_char *req, char *q_path, d_char *payload, int p_size,
14         }
15         else
16         if (strcmp(action, L("Delete")) == 0) {
17-            /* delete an entry */
18-            if (xs_startswith(id, snac.actor)) {
19-                /* it's a post by us: generate a delete */
20-                xs *msg = msg_delete(&snac, id);
21-
22-                enqueue_message(&snac, msg);
23+            if (actor != NULL) {
24+                /* delete follower */
25+                if (valid_status(follower_del(&snac, actor)))
26+                    snac_log(&snac, xs_fmt("deleted follower %s", actor));
27+                else
28+                    snac_log(&snac, xs_fmt("error deleting follower %s", actor));
29+            }
30+            else {
31+                /* delete an entry */
32+                if (xs_startswith(id, snac.actor)) {
33+                    /* it's a post by us: generate a delete */
34+                    xs *msg = msg_delete(&snac, id);
35 
36-                /* FIXME: also post this Tombstone to people
37-                   that Announce'd it */
38+                    enqueue_message(&snac, msg);
39 
40-                snac_log(&snac, xs_fmt("posted tombstone for %s", id));
41-            }
42+                    snac_log(&snac, xs_fmt("posted tombstone for %s", id));
43+                }
44 
45-            timeline_del(&snac, id);
46+                timeline_del(&snac, id);
47 
48-            snac_log(&snac, xs_fmt("deleted entry %s", id));
49+                snac_log(&snac, xs_fmt("deleted entry %s", id));
50+            }
51         }
52         else
53             status = 404;