From 25e1f7f4d11ac208291e9eacf93a7dc6b883e23d Mon Sep 17 00:00:00 2001 From: default Date: Mon, 30 Dec 2024 10:34:53 +0100 Subject: Started support for hashtag following. --- activitypub.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/activitypub.c b/activitypub.c index 88d8fd8..311255f 100644 --- a/activitypub.c +++ b/activitypub.c @@ -706,6 +706,28 @@ int is_msg_for_me(snac *snac, const xs_dict *c_msg) } } + /* is this a tag we're following? */ + const xs_list *tags_in_msg = xs_dict_get(msg, "tag"); + if (xs_type(tags_in_msg) == XSTYPE_LIST) { + const xs_list *fw_tags = xs_dict_get(snac->config, "followed_hashtags"); + if (xs_type(fw_tags) == XSTYPE_LIST) { + const xs_dict *te; + + /* iterate the tags in the message */ + xs_list_foreach(tags_in_msg, te) { + if (xs_type(te) == XSTYPE_DICT) { + const char *type = xs_dict_get(te, "type"); + const char *name = xs_dict_get(te, "name"); + + if (xs_type(type) == XSTYPE_STRING && xs_type(name) == XSTYPE_STRING) { + if (strcmp(type, "Hashtag") == 0 && xs_list_in(fw_tags, name) != -1) + return 7; + } + } + } + } + } + return 0; } -- cgit v1.2.3