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)