summaryrefslogtreecommitdiff
path: root/mastoapi.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-04-11 05:12:13 +0200
committerdefault <nobody@localhost>2024-04-11 05:12:13 +0200
commit877fb079f34f10c857c42cd04ffd0b5e0cd4ca69 (patch)
tree356ff30c1bacb5850fcdb11b31935258bbcc856b /mastoapi.c
parent1a6bb79921b78f89dd975b5f6a7b3ad7d454a7b6 (diff)
mastoapi: 'unfavourite' and 'unreblog' actions now fully work.
Diffstat (limited to 'mastoapi.c')
-rw-r--r--mastoapi.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/mastoapi.c b/mastoapi.c
index fab71f1..4d80f69 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -2314,11 +2314,13 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
}
else
if (strcmp(op, "unfavourite") == 0) { /** **/
- /* partial support: as the original Like message
- is not stored anywhere here, it's not possible
- to send an Undo + Like; the only thing done here
- is to delete the actor from the list of likes */
- object_unadmire(id, snac.actor, 1);
+ xs *n_msg = msg_repulsion(&snac, id, "Like");
+
+ if (n_msg != NULL) {
+ enqueue_message(&snac, n_msg);
+
+ out = mastoapi_status(&snac, msg);
+ }
}
else
if (strcmp(op, "reblog") == 0) { /** **/
@@ -2333,8 +2335,13 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
}
else
if (strcmp(op, "unreblog") == 0) { /** **/
- /* partial support: see comment in 'unfavourite' */
- object_unadmire(id, snac.actor, 0);
+ xs *n_msg = msg_repulsion(&snac, id, "Announce");
+
+ if (n_msg != NULL) {
+ enqueue_message(&snac, n_msg);
+
+ out = mastoapi_status(&snac, msg);
+ }
}
else
if (strcmp(op, "bookmark") == 0) { /** **/