summaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c22
1 files changed, 22 insertions, 0 deletions
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)
706 } 706 }
707 } 707 }
708 708
709 /* is this a tag we're following? */
710 const xs_list *tags_in_msg = xs_dict_get(msg, "tag");
711 if (xs_type(tags_in_msg) == XSTYPE_LIST) {
712 const xs_list *fw_tags = xs_dict_get(snac->config, "followed_hashtags");
713 if (xs_type(fw_tags) == XSTYPE_LIST) {
714 const xs_dict *te;
715
716 /* iterate the tags in the message */
717 xs_list_foreach(tags_in_msg, te) {
718 if (xs_type(te) == XSTYPE_DICT) {
719 const char *type = xs_dict_get(te, "type");
720 const char *name = xs_dict_get(te, "name");
721
722 if (xs_type(type) == XSTYPE_STRING && xs_type(name) == XSTYPE_STRING) {
723 if (strcmp(type, "Hashtag") == 0 && xs_list_in(fw_tags, name) != -1)
724 return 7;
725 }
726 }
727 }
728 }
729 }
730
709 return 0; 731 return 0;
710} 732}
711 733