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_SOURCE = "https://git.silvertke.net/SilverTke/endcord-aemoji" EXT_COMMAND_ASSIST = (("view_aemoji - View animated emoji", "view_aemoji"),) EMOJI_RE = re.compile(r"^<:(.+):(\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_id}.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 ) -> bool: if command_text.startswith("view_aemoji"): try: emoji = command_text.split(" ")[1] except IndexError: self.app.update_extra_line("Emoji argument not given") return True emoji_url = get_emoji_url(emoji) if emoji_url is None: self.app.update_extra_line("Invalid emoji") return True self.app.download_file(emoji_url, open_media=True) return True return False