From 8278719e13bc70dc12daabda3b8d6b1f010b17a8 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Jul 2025 15:41:40 +0200 Subject: In msg_delete(), also add actors that liked or boosted as destinations. --- activitypub.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'activitypub.c') diff --git a/activitypub.c b/activitypub.c index 100db67..f8b08fb 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1518,7 +1518,21 @@ xs_dict *msg_delete(snac *snac, const char *id) /* now create the Delete */ msg = msg_base(snac, "Delete", "@object", snac->actor, "@now", tomb); - msg = xs_dict_append(msg, "to", public_address); + xs *to = xs_list_new(); + xs *likes = object_likes(id); + xs *boosts = object_announces(id); + const char *v; + + /* 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); + + msg = xs_dict_append(msg, "to", to); return msg; } -- cgit v1.2.3 From 4923628ac6f23c4cf4257e8f11e9668295721a8d Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Jul 2025 15:54:09 +0200 Subject: Fixed bug in new delete targets. --- activitypub.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'activitypub.c') 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; } -- cgit v1.2.3 From 971fc024f25080238a3625c646ce3601318d9f0a Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 27 Jul 2025 16:02:01 +0200 Subject: Also add children to msg_delete(). --- activitypub.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'activitypub.c') diff --git a/activitypub.c b/activitypub.c index 968450b..634e243 100644 --- a/activitypub.c +++ b/activitypub.c @@ -1519,21 +1519,28 @@ 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 *admirers = object_likes(id); + xs *involved = object_likes(id); xs *boosts = object_announces(id); - admirers = xs_list_cat(admirers, boosts); + xs *children = object_children(id); const char *md5; + involved = xs_list_cat(involved, boosts); + involved = xs_list_cat(involved, children); + /* add everybody */ to = xs_list_append(to, public_address); - /* add actors that liked or boosted this */ - xs_list_foreach(admirers, md5) { + /* add actors that liked, boosted or replied to this */ + xs_list_foreach(involved, md5) { xs *actor = NULL; if (valid_status(object_get_by_md5(md5, &actor))) { const char *id = xs_dict_get(actor, "id"); + const char *atto = get_atto(actor); + if (xs_is_string(atto)) + to = xs_list_append(to, atto); + else if (xs_is_string(id)) to = xs_list_append(to, id); } @@ -1541,9 +1548,6 @@ xs_dict *msg_delete(snac *snac, const char *id) msg = xs_dict_append(msg, "to", to); -xs_json_dump(msg, 4, stdout); -printf("\n"); - return msg; } -- cgit v1.2.3