endcord-aemoji/endcord_aemoji.py

36 lines
1.1 KiB
Python

import re
from endcord.app import Endcord
EXT_NAME = "endcord_aemoji"
EXT_VERSION = "0.1.0"
EXT_ENDCORD_VERSION = "1.4.2"
EXT_DESCRIPTION = "View animated custom emoji as GIFs"
EXT_COMMAND_ASSIST = ("view_aemoji - View animated emoji", "view_aemoji")
EMOJI_RE = re.compile("^<:(.+):(\d+)>$")
def get_emoji_url(emoji: str) -> str | None:
m = EMOJI_RE.fullmatch(emoji)
if m is None:
return None
emoji_id = m.group(2)
return f"https://cdn.discordapp.com/emojis/{emoji}.gif"
class Extension:
def __init__(self, app):
self.app: Endcord = app
def on_execute_command(self, command_text: str, chat_sel: int, tree_sel: int):
if command_text.startswith("view_aemoji"):
try:
emoji = command_text.split(" ")[1]
except IndexError:
self.app.update_extra_line("Emoji argument not given")
return
emoji_url = get_emoji_url(emoji)
if emoji_url is None:
self.app.update_extra_line("Invalid emoji")
return
self.app.download_file(emoji_url, open_media=True)