Update configuration and README for improved setup and security; disable default API and emoji sync, and enhance Discord permission checks in API routes.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
379
bot/utils/emoji.py
Normal file
379
bot/utils/emoji.py
Normal file
@@ -0,0 +1,379 @@
|
||||
# ╔══════════════════════════════════════════════════════════════════╗
|
||||
# ║ ║
|
||||
# ║ ░█▀▀░█▀█░█▀▄░█▀▀░█░█ ░█▀▄░█▀▀░█░█░█▀▀ ║
|
||||
# ║ ░█░░░█░█░█░█░█▀▀░▄▀▄ ░█░█░█▀▀░▀▄▀░▀▀█ ║
|
||||
# ║ ░▀▀▀░▀▀▀░▀▀░░▀▀▀░▀░▀ ░▀▀░░▀▀▀░░▀░░▀▀▀ ║
|
||||
# ║ ║
|
||||
# ║ © 2026 CodeX Devs — All Rights Reserved ║
|
||||
# ║ ║
|
||||
# ║ discord ── https://discord.gg/codexdev ║
|
||||
# ║ youtube ── https://youtube.com/@CodeXDevs ║
|
||||
# ║ github ── https://github.com/RayExo ║
|
||||
# ║ ║
|
||||
# ╚══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
"""
|
||||
Centralized emoji module for the Zyrox bot.
|
||||
All emoji definitions are stored here for easy management and consistency.
|
||||
"""
|
||||
|
||||
# ============================================================================
|
||||
# DISCORD CUSTOM EMOJIS (Static)
|
||||
# ============================================================================
|
||||
BOOST = "<:boost:1448966463586041906>"
|
||||
BUG_HUNTER = "<:BugHunterLevel1:1448949674898620518>"
|
||||
BUG_HUNTER_LVL2 = "<:BugHunterLvl2:1122549925237375086>"
|
||||
CAST = "<:zcast:1448951414301655175>"
|
||||
CERTIFIED_MODERATOR = "<:CertifiedDiscordModerator:1448949742792085516>"
|
||||
CHANNEL = "<:channel:1448951734096625727>"
|
||||
CODEBASE = "<:codebase:1448951697853386826>"
|
||||
CODED = "<:coded:1448966435622752389>"
|
||||
CROSS = "<:zcross:1448951756372443296>"
|
||||
CROSS_ALT = "<:CrossIcon:1327829124894429235>"
|
||||
CUTE_CUTE_CUTE = "<:Cute_Cute_Cute:1384578375221248010>"
|
||||
DELETE = "<:delete:1327842168693461022>"
|
||||
DELETE_ALT1 = "<:delete:1448966413242073088>"
|
||||
DENIED = "<:Denied:1294218790082711553>"
|
||||
DISABLE = "<:Disable:1448949515787964417>"
|
||||
DND = "<:dnd:1448951614172954664>"
|
||||
EARLY_SUPPORTER = "<:EarlySupporter:1448949719752773703>"
|
||||
ENABLE = "<:Enable:1448949527846322296>"
|
||||
ERROR = "<:error:1397218903389044776>"
|
||||
FORWARD = "<:forward:1329361532999569439>"
|
||||
GAMES = "<:games:1448951285498777641>"
|
||||
HANDSHAKE = "<:handshake:1448949571811282984>"
|
||||
HAPPY_PANDA = "<:happy_panda:1384576519904559206>"
|
||||
HEADMOD = "<:headmod:1274781954482376857>"
|
||||
HEART3 = "<:heart3:1448966390353756200>"
|
||||
HEART_EM = "<:heart_em:1274781856406962250>"
|
||||
HEERIYE = "<:Heeriye:1274769360560328846>"
|
||||
HOME = "<:icons_home:1337295807430393958>"
|
||||
HYPESQUAD_BRILLIANCE = "<:Hypesquad_Brilliance:1448949708381749370>"
|
||||
ICONLOAD = "<:iconLoad:1327829324518391824>"
|
||||
ICONS_CHANNEL = "<:icons_channel:1327829380935843941>"
|
||||
ICONS_MUSIC = "<:icons_music:1327829459729911900>"
|
||||
ICONS_PAUSE = "<:icons_pause:1327829480835780609>"
|
||||
ICONS_PLUS = "<:icons_plus:1328966531140288524>"
|
||||
ICONS_WARNING = "<:icons_warning:1448949538944716922>"
|
||||
ICONS_WARNING_ALT1 = "<:icons_warning:1327829522573430864>"
|
||||
ICON_BROWSER = "<:icon_browser:1448951659521773598>"
|
||||
IDLE = "<:idle:1448951603028693042>"
|
||||
INDEX = "<:index:1448951296370544790>"
|
||||
INFO = "<:info:1374723970376405113>"
|
||||
KING = "<:king:1448951721479901334>"
|
||||
LEVEL_UP = "<:zlevelup:1448964376504696943>"
|
||||
LOCK = "<:lock:1448949549455511685>"
|
||||
MANAGER = "<:manager:1394348646803439709>"
|
||||
MENTION = "<:zyrox_mention:1448949481776222218>"
|
||||
MESSAGE = "<:zmsg:1448964399166394483>"
|
||||
MINECRAFT = "<:zmc:1448964387426537474>"
|
||||
ML_CROSS = "<:ml_cross:1204106928675102770>"
|
||||
MUSIC = "<:zmusic:1448951372707008533>"
|
||||
MUSICSTOP_ICONS = "<:musicstop_icons:1327829536053923934>"
|
||||
MUTE = "<:zmute:1448951435478700072>"
|
||||
NEW = "<:New:1448949337395695616>"
|
||||
NEXT = "<:icons_next:1327829470027055184>"
|
||||
NEXT_ALT1 = "<:next:1448949316109733920>"
|
||||
OFFLINE = "<:offline:1448951625506099261>"
|
||||
PARTNER_BADGE = "<:PartneredServerOwner:1122549945532297246>"
|
||||
PC = "<:pc:1448951637266665542>"
|
||||
PIN = "<:zpin:1448949810462855249>"
|
||||
PREVIOUS = "<:next:1327829548426854522>"
|
||||
RED_BUTTON = "<:red_button:1401444612874305671>"
|
||||
RED_PIN = "<:red_pin:1448949326846889994>"
|
||||
REWIND = "<:rewind1:1329360839874056225>"
|
||||
REWIND_ALT1 = "<:rewind:1500793294865563658>"
|
||||
SEED = "<:zseed:1448951477640101929>"
|
||||
SHUFFLE = "<:shuffle:1329360518367936564>"
|
||||
SKIP = "<:skip:1329359900563996754>"
|
||||
STAR = "<:starr:1448951307707748395>"
|
||||
SWORD = "<:zsowrd:1448951362238021682>"
|
||||
SYSTEM = "<:zyrox_system:1448949359159939143>"
|
||||
THUNDER = "<:zyroxthunder:1448949415200034907>"
|
||||
TICK = "<:ztick:1448951767990796298>"
|
||||
TICKET = "<:zticket:1448951318713470987>"
|
||||
TICK_ALT = "<:tick:1327829594954530896>"
|
||||
TIME = "<:zyrox_time:1448949493012889610>"
|
||||
TIMER = "<:ztimer:1448949799528173621>"
|
||||
UNLOCK = "<:unlock:1448949560457171070>"
|
||||
UPTIME = "<:uptime:1398280366501920829>"
|
||||
U_ADMIN = "<:U_admin:1327829252120510567>"
|
||||
WARNING = "<:warning:1448951779353038949>"
|
||||
WARNING_ALT = "<:warning:1396796622347833378>"
|
||||
WIFI = "<:zwifi:1448951466931912715>"
|
||||
ZAI = "<:zai:1448949821611446302>"
|
||||
ZARROW = "<:zArrow:1448951532837015643>"
|
||||
ZBACK = "<:zback:1448949305229443124>"
|
||||
ZBAN = "<:zban:1448951424665784373>"
|
||||
ZBOT = "<:zbot:1448951393216888905>"
|
||||
ZCIRCLE = "<:zcircle:1448964410155470848>"
|
||||
ZCIRCLE_ALT1 = "<:zcircle:1448951351601270814>"
|
||||
ZCLOUD = "<:zCloud:1448951498213032036>"
|
||||
ZCOUNTING = "<:zcounting:1448949348103749713>"
|
||||
ZCROSS = "<:zcross:1448951767990796298>"
|
||||
ZDIL = "<:zdil:1448949605676093540>"
|
||||
ZHUMAN = "<:zHuman:1448951509235531869>"
|
||||
ZMODULE = "<:zmodule:1448951340716785744>"
|
||||
ZMUSICPAUSE = "<:zmusicpause:1448951801931108413>"
|
||||
ZPAUSE = "<:zpause:1448949283423522928>"
|
||||
ZPEOPLE = "<:zpeople:1448951456861519962>"
|
||||
ZPLAY = "<:zplay:1448949294412337222>"
|
||||
ZPLUS = "<:zplus:1448951790463615038>"
|
||||
ZROCKET = "<:zrocket:1448951445989888010>"
|
||||
ZSAFE = "<:zSafe:1448951403434479626>"
|
||||
ZSETTINGS = "<:zsettings:1448951745706459206>"
|
||||
ZTADA = "<:ztada:1448951329664925717>"
|
||||
ZTICK = "<:Ztick:1222750301233090600>"
|
||||
ZUNMUTE = "<:zunmute:1448951487970414694>"
|
||||
ZWARNING = "<:zwarning:1448949627712966717>"
|
||||
ZWRENCH = "<:zwrench:1448951382597177495>"
|
||||
ZYROXCONNECTION = "<:zyroxconnection:1448949425828528230>"
|
||||
ZYROXHAMMER = "<:zyroxhammer:1448949447617806458>"
|
||||
ZYROXLINKS = "<:zyroxlinks:1448949436939239495>"
|
||||
ZYROXSYS = "<:zyroxsys:1448949469650620426>"
|
||||
ZYROX_CODE = "<:zyrox_code:1448949381436014662>"
|
||||
ZYROX_COMMAND = "<:zyrox_command:1448949381436014662>"
|
||||
ZYROX_GLOBAL = "<:zyrox_global:1448949370539217026>"
|
||||
ZYROX_OWNER = "<:zyrox_owner:1448949381436014662>"
|
||||
ZYROX_SEARCH = "<:zyrox_search:1448949381436014662>"
|
||||
|
||||
# ============================================================================
|
||||
# DISCORD CUSTOM EMOJIS (Animated)
|
||||
# ============================================================================
|
||||
ACTIVE_DEVELOPER = "<a:Active_Developer:1448949755181793280>"
|
||||
ARROWRED = "<a:ArrowRed:1448951520077811806>"
|
||||
BLACKCROWN = "<a:BlackCrown:1448949787842973697>"
|
||||
BLOBPART = "<a:blobpart:1435923345748004969>"
|
||||
BOOSTS = "<a:boosts:1448949652547436654>"
|
||||
EARLY_VERIFIED_BOT_DEV = "<a:EarlyVerifiedBotDeveloper:1448949731777839184>"
|
||||
EMOTE = "<a:emote:1448966401887961149>"
|
||||
GIFD = "<a:GIFD:1275850452323401789>"
|
||||
GIFN = "<a:GIFN:1275850451212042391>"
|
||||
HYPESQUAD_BALANCE = "<a:a_Hypesquad_Balance:1448949777067806720>"
|
||||
HYPESQUAD_BRAVERY = "<a:a_Hypesquad_Bravery:1448949697577353307>"
|
||||
HYPESQUAD_EVENTS = "<a:HypesquadEvents:1448949663821598812>"
|
||||
KING_ALT1 = "<a:king:1234399917792034846>"
|
||||
LOADING = "<a:loading:1448949404185657354>"
|
||||
LOADINGRED = "<a:loadingred:1448966488865247232>"
|
||||
LOADING_ALT1 = "<a:loading:1448951579603505154>"
|
||||
MAX__A = "<a:max__A:1295014945641201685>"
|
||||
MENTION_ALT1 = "<a:mention:1448966424495390801>"
|
||||
MINGLE = "<a:mingle:1367773396745846895>"
|
||||
MOBILE = "<a:mobile:1448951648490885132>"
|
||||
MUSIC_ALT1 = "<a:music:1448966355935301643>"
|
||||
NITRO_BOOST = "<a:nitroboost:1448949639540899921>"
|
||||
ONLINE = "<a:online:1448951591305744427>"
|
||||
PREMIUM = "<a:premium:1204110058124873889>"
|
||||
RACECAR64 = "<a:racecar64:1448966449535127623>"
|
||||
REDDOT = "<a:reddot:1398280090198081578>"
|
||||
REDHEART = "<a:RedHeart:1272229548280512547>"
|
||||
REDRULESBOOK = "<a:RedRulesBook:1448966523258404955>"
|
||||
SG_RD = "<a:sg_rd:1273974278433280122>"
|
||||
STAFF = "<a:staff:1448949765931925504>"
|
||||
STAR_ALT1 = "<a:Star:1273588820373147803>"
|
||||
STAR_ALT2 = "<a:star:1251876754516349059>"
|
||||
TADAA = "<a:TADAA:1448966368044126249>"
|
||||
TIMER_ALT1 = "<a:timer:1329404677820911697>"
|
||||
_37496ALERT = "<a:37496alert:1273959128490049556>"
|
||||
|
||||
# ============================================================================
|
||||
# DISCORD BADGE EMOJIS MAPPING (Dictionary)
|
||||
# ============================================================================
|
||||
DISCORD_BADGE_EMOJIS = {
|
||||
"staff": STAFF,
|
||||
"partner": PARTNER_BADGE,
|
||||
"hypesquad": HYPESQUAD_BRILLIANCE,
|
||||
"hypesquad_bravery": HYPESQUAD_BRAVERY,
|
||||
"hypesquad_brilliance": HYPESQUAD_BRILLIANCE,
|
||||
"hypesquad_balance": HYPESQUAD_BALANCE,
|
||||
"bug_hunter": BUG_HUNTER,
|
||||
"bug_hunter_level_2": BUG_HUNTER_LVL2,
|
||||
"early_supporter": EARLY_SUPPORTER,
|
||||
"early_verified_bot_developer": EARLY_VERIFIED_BOT_DEV,
|
||||
"certified_moderator": CERTIFIED_MODERATOR,
|
||||
"active_developer": ACTIVE_DEVELOPER,
|
||||
"discord_mod": CERTIFIED_MODERATOR,
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# UNICODE EMOJIS
|
||||
# ============================================================================
|
||||
ARROW_DOWN = "⬇️"
|
||||
ARROW_LEFT = "⬅️"
|
||||
ARROW_RIGHT = "➡️"
|
||||
ARROW_UP = "⬆️"
|
||||
BLOCK = "🚫"
|
||||
BUBBLE_TEA = "🧋"
|
||||
CELEBRATE = "🎉"
|
||||
CHERRIES = "🍒"
|
||||
CLOCK = "⏱️"
|
||||
COOKIE = "🍪"
|
||||
CURSOR = "🖱️"
|
||||
DIZZY = "🥴"
|
||||
ERROR_UNICODE = "❌"
|
||||
GAME_CONTROLLER = "🎮"
|
||||
HEARTS = "💕"
|
||||
JAVA_COFFEE = "☕"
|
||||
LAUGH1 = "😂"
|
||||
LAUGH2 = "🤣"
|
||||
LAUGH3 = "😆"
|
||||
LOCK_UNICODE = "🔒"
|
||||
MONEY = "💸"
|
||||
MOON = "🌙"
|
||||
NOTE = "📝"
|
||||
PAPER = "\U0001f4f0"
|
||||
PEACH = "🍑"
|
||||
REFRESH = "🔄"
|
||||
ROCK = "\U0001faa8"
|
||||
SCISSORS = "\U00002702"
|
||||
SHOCKED = "😳"
|
||||
SPARKLE = "✨"
|
||||
STAR_UNICODE = "⭐"
|
||||
STOP_BUTTON = "⏹️"
|
||||
SUCCESS = "✅"
|
||||
TARGET = "🎯"
|
||||
TONGUE_OUT = "😜"
|
||||
UPSIDE_DOWN = "🙃"
|
||||
WARNING_UNICODE = "⚠️"
|
||||
|
||||
# ============================================================================
|
||||
# EMOJI COLLECTIONS BY CATEGORY (Dictionaries)
|
||||
# ============================================================================
|
||||
GAME_BUTTONS = {
|
||||
"up": ARROW_UP,
|
||||
"down": ARROW_DOWN,
|
||||
"left": ARROW_LEFT,
|
||||
"right": ARROW_RIGHT,
|
||||
"stop": STOP_BUTTON,
|
||||
"target": "🎯",
|
||||
}
|
||||
|
||||
ACTION_EMOJIS = {
|
||||
"success": SUCCESS,
|
||||
"error": ERROR_UNICODE,
|
||||
"warning": WARNING_UNICODE,
|
||||
"clock": CLOCK,
|
||||
"refresh": REFRESH,
|
||||
}
|
||||
|
||||
RPS_CHOICES = {
|
||||
"rock": ROCK,
|
||||
"scissors": SCISSORS,
|
||||
"paper": PAPER,
|
||||
}
|
||||
|
||||
BUTTON_EMOJIS = {
|
||||
"note": NOTE,
|
||||
"privacy": LOCK_UNICODE,
|
||||
"claim": STAR_UNICODE,
|
||||
"untrust": ERROR_UNICODE,
|
||||
"block": BLOCK,
|
||||
"target": "🎯",
|
||||
"edit": "✏️",
|
||||
}
|
||||
|
||||
REACTION_TEST_EMOJIS = [
|
||||
COOKIE, CELEBRATE, BUBBLE_TEA, CHERRIES, PEACH, MONEY, MOON, HEARTS
|
||||
]
|
||||
|
||||
FUN_EMOJIS = [
|
||||
LAUGH1, LAUGH2, LAUGH3, SHOCKED, DIZZY, UPSIDE_DOWN, TONGUE_OUT
|
||||
]
|
||||
|
||||
MINECRAFT_EMOJIS = {
|
||||
"success": SUCCESS,
|
||||
"error": ERROR_UNICODE,
|
||||
"warning": WARNING_UNICODE,
|
||||
"clock": CLOCK,
|
||||
"refresh": REFRESH,
|
||||
"java": JAVA_COFFEE,
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# FEATURE EMOJIS (Dictionaries)
|
||||
# ============================================================================
|
||||
MODERATION_EMOJIS = {
|
||||
"warn": WARNING,
|
||||
"mute": MUTE,
|
||||
"ban": SWORD,
|
||||
"kick": SWORD,
|
||||
"lock": LOCK,
|
||||
}
|
||||
|
||||
TICKET_EMOJIS = {
|
||||
"ticket": TICKET,
|
||||
"close": ERROR,
|
||||
"open": SUCCESS,
|
||||
"pin": PIN,
|
||||
}
|
||||
|
||||
LEVEL_EMOJIS = {
|
||||
"level_up": LEVEL_UP,
|
||||
"sparkle": SPARKLE,
|
||||
"achievement": STAR,
|
||||
}
|
||||
|
||||
UTILITY_EMOJIS = {
|
||||
"music": MUSIC,
|
||||
"system": SYSTEM,
|
||||
"new": NEW,
|
||||
"message": MESSAGE,
|
||||
"wifi": WIFI,
|
||||
"cast": CAST,
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# HELPER FUNCTIONS
|
||||
# ============================================================================
|
||||
|
||||
def get_badge_emoji(badge_name: str) -> str:
|
||||
"""
|
||||
Get Discord badge emoji by name.
|
||||
|
||||
Args:
|
||||
badge_name: The name of the badge (e.g., 'staff', 'partner', 'bug_hunter')
|
||||
|
||||
Returns:
|
||||
The emoji string for the badge, or None if not found
|
||||
"""
|
||||
return DISCORD_BADGE_EMOJIS.get(badge_name.lower())
|
||||
|
||||
|
||||
def get_action_emoji(action: str) -> str:
|
||||
"""
|
||||
Get emoji for a common action.
|
||||
|
||||
Args:
|
||||
action: The action name (e.g., 'success', 'error', 'warning')
|
||||
|
||||
Returns:
|
||||
The emoji string for the action
|
||||
"""
|
||||
return ACTION_EMOJIS.get(action.lower())
|
||||
|
||||
|
||||
def get_button_emoji(button_type: str) -> str:
|
||||
"""
|
||||
Get emoji for a button type.
|
||||
|
||||
Args:
|
||||
button_type: The button type (e.g., 'note', 'privacy', 'claim')
|
||||
|
||||
Returns:
|
||||
The emoji string for the button
|
||||
"""
|
||||
return BUTTON_EMOJIS.get(button_type.lower())
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# COMPATIBILITY ALIASES
|
||||
# ============================================================================
|
||||
|
||||
# Common aliases for frequently used emojis
|
||||
CHECKMARK = TICK
|
||||
CROSS_MARK = CROSS
|
||||
CHECK = SUCCESS
|
||||
FAIL = ERROR
|
||||
OK = SUCCESS
|
||||
NOT_OK = ERROR
|
||||
|
||||
Reference in New Issue
Block a user