summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2023-04-23 08:51:02 +0200
committerGravatar default2023-04-23 08:51:02 +0200
commit4fca7c8a7ea2ee1373827c1e4d3726c8e763e2cc (patch)
tree682a006056d815b4cb3fe427ababfaf96b45150a
parentAdded mastoapi follow. (diff)
downloadpenes-snac2-4fca7c8a7ea2ee1373827c1e4d3726c8e763e2cc.tar.gz
penes-snac2-4fca7c8a7ea2ee1373827c1e4d3726c8e763e2cc.tar.xz
penes-snac2-4fca7c8a7ea2ee1373827c1e4d3726c8e763e2cc.zip
Added mastoapi unfollow.
-rw-r--r--data.c2
-rw-r--r--mastoapi.c16
-rw-r--r--snac.h2
3 files changed, 18 insertions, 2 deletions
diff --git a/data.c b/data.c
index 8332ec3..73244a5 100644
--- a/data.c
+++ b/data.c
@@ -1125,7 +1125,7 @@ int following_check(snac *snac, const char *actor)
1125} 1125}
1126 1126
1127 1127
1128int following_get(snac *snac, char *actor, d_char **data) 1128int following_get(snac *snac, const char *actor, d_char **data)
1129/* returns the 'Follow' object */ 1129/* returns the 'Follow' object */
1130{ 1130{
1131 xs *fn = _following_fn(snac, actor); 1131 xs *fn = _following_fn(snac, actor);
diff --git a/mastoapi.c b/mastoapi.c
index 894996d..ce1e547 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -1644,6 +1644,22 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
1644 } 1644 }
1645 else 1645 else
1646 if (strcmp(opt, "unfollow") == 0) { 1646 if (strcmp(opt, "unfollow") == 0) {
1647 if (valid_status(object_get_by_md5(md5, &actor_o))) {
1648 const char *actor = xs_dict_get(actor_o, "id");
1649
1650 /* get the following object */
1651 xs *object = NULL;
1652
1653 if (valid_status(following_get(&snac, actor, &object))) {
1654 xs *msg = msg_undo(&snac, xs_dict_get(object, "object"));
1655
1656 following_del(&snac, actor);
1657
1658 enqueue_output_by_actor(&snac, msg, actor, 0);
1659
1660 rsp = mastoapi_relationship(&snac, md5);
1661 }
1662 }
1647 } 1663 }
1648 } 1664 }
1649 1665
diff --git a/snac.h b/snac.h
index 689dd54..224dec2 100644
--- a/snac.h
+++ b/snac.h
@@ -115,7 +115,7 @@ d_char *local_list(snac *snac, int max);
115int following_add(snac *snac, const char *actor, const xs_dict *msg); 115int following_add(snac *snac, const char *actor, const xs_dict *msg);
116int following_del(snac *snac, char *actor); 116int following_del(snac *snac, char *actor);
117int following_check(snac *snac, const char *actor); 117int following_check(snac *snac, const char *actor);
118int following_get(snac *snac, char *actor, d_char **data); 118int following_get(snac *snac, const char *actor, d_char **data);
119d_char *following_list(snac *snac); 119d_char *following_list(snac *snac);
120 120
121void mute(snac *snac, const char *actor); 121void mute(snac *snac, const char *actor);