Răsfoiți Sursa

Fixed bug in new delete targets.

grunfink 1 an în urmă
părinte
comite
4923628ac6
1 a modificat fișierele cu 16 adăugiri și 6 ștergeri
  1. 16 6
      activitypub.c

+ 16 - 6
activitypub.c

@@ -1519,21 +1519,31 @@ xs_dict *msg_delete(snac *snac, const char *id)
     msg = msg_base(snac, "Delete", "@object", snac->actor, "@now", tomb);
 
     xs *to = xs_list_new();
-    xs *likes = object_likes(id);
+    xs *admirers = object_likes(id);
     xs *boosts = object_announces(id);
-    const char *v;
+    admirers = xs_list_cat(admirers, boosts);
+    const char *md5;
 
     /* add everybody */
     to = xs_list_append(to, public_address);
 
     /* add actors that liked or boosted this */
-    xs_list_foreach(likes, v)
-        to = xs_list_append(to, v);
-    xs_list_foreach(boosts, v)
-        to = xs_list_append(to, v);
+    xs_list_foreach(admirers, md5) {
+        xs *actor = NULL;
+
+        if (valid_status(object_get_by_md5(md5, &actor))) {
+            const char *id = xs_dict_get(actor, "id");
+
+            if (xs_is_string(id))
+                to = xs_list_append(to, id);
+        }
+    }
 
     msg = xs_dict_append(msg, "to", to);
 
+xs_json_dump(msg, 4, stdout);
+printf("\n");
+
     return msg;
 }