diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2023-08-21 19:25:03 +0200 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2024-02-18 11:32:54 +0100 |
commit | fed3a064a788b94f1c0b420bf276c158f8197ddf (patch) | |
tree | e2da384f076e579185e1dfb1c640b2e768bcc7b3 /slack/slack_message.py | |
parent | 9453d1771232882ca111ff53ca3bf343fccbb62a (diff) | |
download | wee-slack-fed3a064a788b94f1c0b420bf276c158f8197ddf.tar.gz |
Support rendering emoji unicode characters
Diffstat (limited to 'slack/slack_message.py')
-rw-r--r-- | slack/slack_message.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/slack/slack_message.py b/slack/slack_message.py index d1d29fe..ab72582 100644 --- a/slack/slack_message.py +++ b/slack/slack_message.py @@ -16,6 +16,7 @@ from slack.util import with_color if TYPE_CHECKING: from slack_api.slack_conversations_history import SlackMessage as SlackMessageDict from slack_api.slack_conversations_history import SlackMessageReaction + from typing_extensions import assert_never from slack.slack_conversation import SlackConversation from slack.slack_workspace import SlackWorkspace @@ -321,6 +322,22 @@ class SlackMessage: return re_mention.sub(unfurl_ref, message) + def _get_emoji(self, emoji_name: str) -> str: + emoji_name_with_colons = f":{emoji_name}:" + if shared.config.look.render_emoji_as.value == "name": + return emoji_name_with_colons + + emoji_item = shared.standard_emojis.get(emoji_name) + if emoji_item is None: + return emoji_name_with_colons + + if shared.config.look.render_emoji_as.value == "emoji": + return emoji_item["unicode"] + elif shared.config.look.render_emoji_as.value == "both": + return f"{emoji_item['unicode']}({emoji_name_with_colons})" + else: + assert_never(shared.config.look.render_emoji_as.value) + async def _create_reaction_string(self, reaction: SlackMessageReaction) -> str: if shared.config.look.display_reaction_nicks.value: # TODO: initialize_items? @@ -332,7 +349,7 @@ class SlackMessage: else: users_str = len(reaction["users"]) - reaction_string = f":{reaction['name']}:{users_str}" + reaction_string = f"{self._get_emoji(reaction['name'])}{users_str}" if self.workspace.my_user.id in reaction["users"]: return with_color( |