aboutsummaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
authorgrunfink <grunfink@comam.es>2025-07-27 15:54:09 +0200
committergrunfink <grunfink@comam.es>2025-07-27 15:54:09 +0200
commit4923628ac6f23c4cf4257e8f11e9668295721a8d (patch)
treecbb778e29a4364eb557cd73fda81fddcfccf061b /activitypub.c
parent8278719e13bc70dc12daabda3b8d6b1f010b17a8 (diff)
Fixed bug in new delete targets.
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/activitypub.c b/activitypub.c
index f8b08fb..968450b 100644
--- a/activitypub.c
+++ b/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;
}