snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit c53052471e0b1e40a3251fab97be0eb16f3fa769
parent f1c3ff105a24f1c2b6d9b7dd84956c15fc1f994f
Author: default <nobody@localhost>
Date:   Mon, 17 Oct 2022 11:59:11 +0200

Process :shortnames: in user names.

Diffstat:
Mhtml.c | 21++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/html.c b/html.c @@ -54,7 +54,7 @@ d_char *html_msg_icon(snac *snac, d_char *os, char *msg) if (actor_id && valid_status(actor_get(snac, actor_id, &actor))) { xs *name = NULL; xs *avatar = NULL; - char *v; + char *p, *v; /* get the name */ if (xs_is_null((v = xs_dict_get(actor, "name"))) || *v == '\0') { @@ -65,6 +65,25 @@ d_char *html_msg_icon(snac *snac, d_char *os, char *msg) name = xs_dup(v); + /* replace the :shortnames: */ + if (!xs_is_null(p = xs_dict_get(actor, "tag"))) { + /* iterate the tags */ + while (xs_list_iter(&p, &v)) { + char *t = xs_dict_get(v, "type"); + + if (t && strcmp(t, "Emoji") == 0) { + char *n = xs_dict_get(v, "name"); + char *i = xs_dict_get(v, "icon"); + + if (n && i) { + char *u = xs_dict_get(i, "url"); + + name = xs_replace_i(name, n, u); + } + } + } + } + /* get the avatar */ if ((v = xs_dict_get(actor, "icon")) != NULL && (v = xs_dict_get(v, "url")) != NULL) {