commit b6da5b7

default  ·  2023-04-24 15:37:59 +0000 UTC
parent f625d88
Added emojis to mastoapi_account().
1 files changed,  +36, -1
+36, -1
 1@@ -462,7 +462,7 @@ xs_dict *mastoapi_account(const xs_dict *actor)
 2 
 3     acct = xs_dict_append(acct, "note", note);
 4 
 5-    acct = xs_dict_append(acct, "url",          id);
 6+    acct = xs_dict_append(acct, "url", id);
 7 
 8     xs *avatar  = NULL;
 9     xs_dict *av = xs_dict_get(actor, "icon");
10@@ -474,6 +474,41 @@ xs_dict *mastoapi_account(const xs_dict *actor)
11 
12     acct = xs_dict_append(acct, "avatar", avatar);
13 
14+    /* emojis */
15+    xs_list *p;
16+    if (!xs_is_null(p = xs_dict_get(actor, "tag"))) {
17+        xs *eml = xs_list_new();
18+        xs_dict *v;
19+        xs *t = xs_val_new(XSTYPE_TRUE);
20+
21+        while (xs_list_iter(&p, &v)) {
22+            const char *type = xs_dict_get(v, "type");
23+
24+            if (!xs_is_null(type) && strcmp(type, "Emoji") == 0) {
25+                const char *name    = xs_dict_get(v, "name");
26+                const xs_dict *icon = xs_dict_get(v, "icon");
27+
28+                if (!xs_is_null(name) && !xs_is_null(icon)) {
29+                    const char *url = xs_dict_get(icon, "url");
30+
31+                    if (!xs_is_null(url)) {
32+                        xs *nm = xs_strip_chars_i(xs_dup(name), ":");
33+                        xs *d1 = xs_dict_new();
34+
35+                        d1 = xs_dict_append(d1, "shortcode",         nm);
36+                        d1 = xs_dict_append(d1, "url",               url);
37+                        d1 = xs_dict_append(d1, "static_url",        url);
38+                        d1 = xs_dict_append(d1, "visible_in_picker", t);
39+
40+                        eml = xs_list_append(eml, d1);
41+                    }
42+                }
43+            }
44+        }
45+
46+        acct = xs_dict_append(acct, "emojis", eml);
47+    }
48+
49     return acct;
50 }
51