From 233d7d8a10bbef5200b5026bb59acfe5d8a252fd Mon Sep 17 00:00:00 2001 From: default Date: Wed, 28 Sep 2022 15:41:07 +0200 Subject: More HTML work. --- data.c | 3 ++- html.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 2 deletions(-) diff --git a/data.c b/data.c index b20dc9e..1062896 100644 --- a/data.c +++ b/data.c @@ -606,7 +606,8 @@ void timeline_admire(snac *snac, char *id, char *admirer, int like) list = xs_list_append(list, admirer); /* set the admirer as the referrer */ - meta = xs_dict_set(meta, "referrer", admirer); + if (!like) + meta = xs_dict_set(meta, "referrer", admirer); /* re-store */ if (like) diff --git a/html.c b/html.c index 8160b4e..b2c75fe 100644 --- a/html.c +++ b/html.c @@ -372,12 +372,84 @@ d_char *html_top_controls(snac *snac, d_char *s) d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level) { - char *id = xs_dict_get(msg, "id"); + char *id = xs_dict_get(msg, "id"); + char *type = xs_dict_get(msg, "type"); + char *meta = xs_dict_get(msg, "_snac"); + xs *actor_o = NULL; + char *actor; /* return if already seen */ if (xs_set_add(seen, id) == 0) return s; + if (strcmp(type, "Follow") == 0) + return s; + + /* bring the main actor */ + if ((actor = xs_dict_get(msg, "attributedTo")) == NULL) + return s; + + if (!valid_status(actor_get(snac, actor, &actor_o))) + return s; + + if (level == 0) { + char *referrer; + + s = xs_str_cat(s, "
"); + + if (!xs_startswith(c, "
")) { + xs *s1 = c; + c = xs_fmt("
%s
", s1); + } + + xs *s1 = xs_fmt("