From d4d81258ba91c53ea1a9dfcbd903bc28afdeda0d Mon Sep 17 00:00:00 2001 From: nekobit Date: Wed, 8 Jun 2022 22:01:31 +0000 Subject: [PATCH] Custom emoji reactions FossilOrigin-Name: 0aae537cb034f505724ba9bf1c90c2f0b946d665bc306e1de944cf564d3dfb63 --- dist/treebird20.css | 21 ++++++++++++++++----- src/emoji_reaction.c | 19 ++++++++++++++++++- static/custom_emoji_reaction.tmpl | 1 + static/emoji_reaction.tmpl | 2 +- 4 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 static/custom_emoji_reaction.tmpl diff --git a/dist/treebird20.css b/dist/treebird20.css index 7e69aa6..4bc72c6 100644 --- a/dist/treebird20.css +++ b/dist/treebird20.css @@ -1251,7 +1251,8 @@ p} /* Emoji */ .status-content .emoji, .notification-content .emoji, -.username .emoji +.username .emoji, +.custom-emoji-react { font-family: monospace; display: inline; @@ -1263,10 +1264,16 @@ p} transition: transform .2s; } +.custom-emoji-react +{ + width: 27px; + height: 27px; +} + .username .emoji { - width: 20px; - height: 20px; + width: 26px; + height: 26px; } .status-content .emoji:hover, @@ -1441,10 +1448,14 @@ p} { display: inline-block; list-style-type: none; - padding: 3px 7px; + padding: 5px 7px; margin: 1px 2px; vertical-align: middle; - +} + +.emoji-react-box.custom-emoji-container +{ + padding: 1px 5px; } .emoji diff --git a/src/emoji_reaction.c b/src/emoji_reaction.c index 21e06f2..2720941 100644 --- a/src/emoji_reaction.c +++ b/src/emoji_reaction.c @@ -23,6 +23,7 @@ #include "easprintf.h" // Templates +#include "../static/custom_emoji_reaction.ctmpl" #include "../static/emoji_reaction.ctmpl" #include "../static/emoji_reactions.ctmpl" @@ -34,14 +35,30 @@ struct construct_emoji_reactions_args char* construct_emoji_reaction(char* id, struct mstdnt_emoji_reaction* emo, size_t* str_size) { + char* ret; + char* emoji = emo->name; + if (emo->url) + { + struct custom_emoji_reaction_template c_data = { + .url = emo->url, + }; + emoji = tmpl_gen_custom_emoji_reaction(&c_data, NULL); + } + struct emoji_reaction_template data = { .prefix = config_url_prefix, .status_id = id, + .custom_emoji = emo->url ? "custom-emoji-container" : NULL, .emoji = emo->name, + .emoji_display = emoji, .emoji_active = emo->me ? "active" : NULL, .emoji_count = emo->count }; - return tmpl_gen_emoji_reaction(&data, str_size); + + ret = tmpl_gen_emoji_reaction(&data, str_size); + if (emoji != emo->name) + free(emoji); + return ret; } static char* construct_emoji_reactions_voidwrap(void* passed, size_t index, size_t* res) diff --git a/static/custom_emoji_reaction.tmpl b/static/custom_emoji_reaction.tmpl new file mode 100644 index 0000000..1904aa6 --- /dev/null +++ b/static/custom_emoji_reaction.tmpl @@ -0,0 +1 @@ + diff --git a/static/emoji_reaction.tmpl b/static/emoji_reaction.tmpl index 0611a4d..1d1b710 100644 --- a/static/emoji_reaction.tmpl +++ b/static/emoji_reaction.tmpl @@ -1 +1 @@ -{{%s:emoji}} {{%u:emoji_count}} +{{%s:emoji_display}} {{%u:emoji_count}}