diff options
Diffstat (limited to 'activitypub.c')
| -rw-r--r-- | activitypub.c | 22 |
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) | |||
| 1519 | msg = msg_base(snac, "Delete", "@object", snac->actor, "@now", tomb); | 1519 | msg = msg_base(snac, "Delete", "@object", snac->actor, "@now", tomb); |
| 1520 | 1520 | ||
| 1521 | xs *to = xs_list_new(); | 1521 | xs *to = xs_list_new(); |
| 1522 | xs *likes = object_likes(id); | 1522 | xs *admirers = object_likes(id); |
| 1523 | xs *boosts = object_announces(id); | 1523 | xs *boosts = object_announces(id); |
| 1524 | const char *v; | 1524 | admirers = xs_list_cat(admirers, boosts); |
| 1525 | const char *md5; | ||
| 1525 | 1526 | ||
| 1526 | /* add everybody */ | 1527 | /* add everybody */ |
| 1527 | to = xs_list_append(to, public_address); | 1528 | to = xs_list_append(to, public_address); |
| 1528 | 1529 | ||
| 1529 | /* add actors that liked or boosted this */ | 1530 | /* add actors that liked or boosted this */ |
| 1530 | xs_list_foreach(likes, v) | 1531 | xs_list_foreach(admirers, md5) { |
| 1531 | to = xs_list_append(to, v); | 1532 | xs *actor = NULL; |
| 1532 | xs_list_foreach(boosts, v) | 1533 | |
| 1533 | to = xs_list_append(to, v); | 1534 | if (valid_status(object_get_by_md5(md5, &actor))) { |
| 1535 | const char *id = xs_dict_get(actor, "id"); | ||
| 1536 | |||
| 1537 | if (xs_is_string(id)) | ||
| 1538 | to = xs_list_append(to, id); | ||
| 1539 | } | ||
| 1540 | } | ||
| 1534 | 1541 | ||
| 1535 | msg = xs_dict_append(msg, "to", to); | 1542 | msg = xs_dict_append(msg, "to", to); |
| 1536 | 1543 | ||
| 1544 | xs_json_dump(msg, 4, stdout); | ||
| 1545 | printf("\n"); | ||
| 1546 | |||
| 1537 | return msg; | 1547 | return msg; |
| 1538 | } | 1548 | } |
| 1539 | 1549 | ||