TAPBACK_VALUE_MAP: dict[str, int] = { "love": 0, "heart": 0, "like": 1, "thumbs_up": 1, "dislike": 2, "thumbs_down": 2, "laugh": 3, "exclaim": 4, "question": 5, } TAPBACK_EMOJI_MAP: dict[str, str] = { "❤️": "love", "👍": "like", "👎": "dislike", "😂": "laugh", "❗": "exclaim", "❓": "question", } TAPBACK_REVERSE_MAP: dict[int, str] = { 0: "❤️", 1: "👍", 2: "👎", 3: "😂", 4: "❗", 5: "❓", } TAPBACK_NAME_MAP: dict[int, str] = { 0: "❤️ Loved", 1: "👍 Liked", 2: "👎 Disliked", 3: "😂 Laughed", 4: "❗ Emphasized", 5: "❓ Questioned", } def emoji_to_tapback(emoji: str) -> str | None: return TAPBACK_EMOJI_MAP.get(emoji) def resolve_tapback_value(tapback_name: str) -> int | None: return TAPBACK_VALUE_MAP.get(tapback_name.lower().strip().lstrip(":")) def tapback_to_emoji(tapback_value: int) -> str | None: return TAPBACK_REVERSE_MAP.get(tapback_value) def describe_tapback(tapback_value: int) -> str: return TAPBACK_NAME_MAP.get(tapback_value, "Reacted") def is_valid_tapback(emoji: str) -> bool: return emoji in TAPBACK_EMOJI_MAP