import random from Hellbot import __version__ from Hellbot.core import ENV, db ALIVE_TEMPLATES = [ ( "•────────────────•\n" "• 𝐇ᴇʟʟ𝐁ᴏᴛ 𝐈s 𝐀ʟɪᴠᴇ •\n" "╭────────────────•\n" "╰➢ ᴏᴡɴᴇʀ » {owner}\n" "╰➢ ᴘʏʀᴏɢʀᴀᴍ » {pyrogram}\n" "╰➢ ʜᴇʟʟʙᴏᴛ » {hellbot}\n" "╰➢ ᴘʏᴛʜᴏɴ » {python}\n" "╰➢ ᴜᴘᴛɪᴍᴇ » {uptime}\n" "╰────────────────•\n" "𝖡𝗒 © @HellBot_Networks\n" "•────────────────•\n" ), ] PING_TEMPLATES = [ """**🍀 𝖯𝗂𝗇𝗀!** ⚘ **ѕρєє∂:** {speed} m/s ⚘ **υρтιмє:** {uptime} ⚘ **σωηєя:** {owner}""", ] HELP_MENU_TEMPLATES = [ """**🍀 𝖧𝖾𝗅𝗉 𝖬𝖾𝗇𝗎 𝖿𝗈𝗋:** {owner} __📃 𝖫𝗈𝖺𝖽𝖾𝖽__ **{plugins} 𝗉𝗅𝗎𝗀𝗂𝗇𝗌** __𝗐𝗂𝗍𝗁 𝖺 𝗍𝗈𝗍𝖺𝗅 𝗈𝖿__ **{commands} 𝖼𝗈𝗆𝗆𝖺𝗇𝖽𝗌.** **📑 Page:** __{current}/{last}__""", ] COMMAND_MENU_TEMPLATES = [ """**𝖯𝗅𝗎𝗀𝗂𝗇 𝖥𝗂𝗅𝖾:** `{file}` **𝖯𝗅𝗎𝗀𝗂𝗇 𝖨𝗇𝖿𝗈:** __{info} 🍀__ **📃 𝖫𝗈𝖺𝖽𝖾𝖽 𝖢𝗈𝗆𝗆𝖺𝗇𝖽𝗌:** `{commands}`""", ] ANIME_TEMPLATES = [ """ {name} ╭────────────────• ╰➢ **𝖲𝖼𝗈𝗋𝖾:** `{score}` ╰➢ **𝖲𝗈𝗎𝗋𝖼𝖾:** `{source}` ╰➢ **𝖳𝗒𝗉𝖾:** `{mtype}` ╰➢ **𝖤𝗉𝗂𝗌𝗈𝖽𝖾𝗌:** `{episodes}` ╰➢ **𝖣𝗎𝗋𝖺𝗍𝗂𝗈𝗇:** `{duration} minutes` ╰➢ **𝖲𝗍𝖺𝗍𝗎𝗌:** `{status}` ╰➢ **𝖥𝗈𝗋𝗆𝖺𝗍:** `{format}` ╰➢ **𝖦𝖾𝗇𝗋𝖾:** `{genre}` ╰➢ **𝖳𝖺𝗀𝗌:** `{tags}` ╰➢ **𝖠𝖽𝗎𝗅𝗍 𝖱𝖺𝗍𝖾𝖽:** `{isAdult}` ╰➢ **𝖲𝗍𝗎𝖽𝗂𝗈:** `{studio}` ╰➢ **𝖳𝗋𝖺𝗂𝗅𝖾𝗋:** {trailer} ╰➢ **𝖶𝖾𝖻𝗌𝗂𝗍𝖾:** {siteurl} ╰➢ **𝖲𝗒𝗇𝗈𝗉𝗌𝗂𝗌:** [𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾]({description}) ╰────────────────• """ ] MANGA_TEMPLATES = [ """ {name} ╭────────────────• ╰➢ **𝖲𝖼𝗈𝗋𝖾:** `{score}` ╰➢ **𝖲𝗈𝗎𝗋𝖼𝖾:** `{source}` ╰➢ **𝖳𝗒𝗉𝖾:** `{mtype}` ╰➢ **𝖢𝗁𝖺𝗉𝗍𝖾𝗋𝗌:** `{chapters}` ╰➢ **𝖵𝗈𝗅𝗎𝗆𝖾𝗌:** `{volumes}` ╰➢ **𝖲𝗍𝖺𝗍𝗎𝗌:** `{status}` ╰➢ **𝖥𝗈𝗋𝗆𝖺𝗍:** `{format}` ╰➢ **𝖦𝖾𝗇𝗋𝖾:** `{genre}` ╰➢ **𝖠𝖽𝗎𝗅𝗍 𝖱𝖺𝗍𝖾𝖽:** `{isAdult}` ╰➢ **𝖶𝖾𝖻𝗌𝗂𝗍𝖾:** {siteurl} ╰➢ **𝖲𝗒𝗇𝗈𝗉𝗌𝗂𝗌:** [𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾]({description}) ╰────────────────• """ ] CHARACTER_TEMPLATES = [ """ {name} ╭────────────────• ╰➢ **𝖦𝖾𝗇𝖽𝖾𝗋:** `{gender}` ╰➢ **𝖣𝖺𝗍𝖾 𝗈𝖿 𝖡𝗂𝗋𝗍𝗁:** `{date_of_birth}` ╰➢ **𝖠𝗀𝖾:** `{age}` ╰➢ **𝖡𝗅𝗈𝗈𝖽 𝖳𝗒𝗉𝖾:** `{blood_type}` ╰➢ **𝖥𝖺𝗏𝗈𝗎𝗋𝗂𝗍𝖾𝗌:** `{favorites}` ╰➢ **𝖶𝖾𝖻𝗌𝗂𝗍𝖾:** {siteurl}{role_in} ╰────────────────• {description} """ ] AIRING_TEMPLATES = [ """ {name} ╭────────────────• ╰➢ **𝖲𝗍𝖺𝗍𝗎𝗌:** `{status}` ╰➢ **𝖤𝗉𝗂𝗌𝗈𝖽𝖾:** `{episode}` ╰────────────────•{airing_info} """ ] ANILIST_USER_TEMPLATES = [ """ **💫 {name}** ╭──── 𝖠𝗇𝗂𝗆𝖾 ─────• ╰➢ **𝖢𝗈𝗎𝗇𝗍:** `{anime_count}` ╰➢ **𝖲𝖼𝗈𝗋𝖾:** `{anime_score}` ╰➢ **𝖬𝗂𝗇𝗎𝗍𝖾𝗌 𝖲𝗉𝖾𝗇𝗍:** `{minutes}` ╰➢ **𝖤𝗉𝗂𝗌𝗈𝖽𝖾𝗌 𝖶𝖺𝗍𝖼𝗁𝖾𝖽:** `{episodes}` ╰────────────────• ╭──── 𝖬𝖺𝗇𝗀𝖺 ─────• ╰➢ **𝖢𝗈𝗎𝗇𝗍:** `{manga_count}` ╰➢ **𝖲𝖼𝗈𝗋𝖾:** `{manga_score}` ╰➢ **𝖢𝗁𝖺𝗉𝗍𝖾𝗋𝗌:** `{chapters}` ╰➢ **𝖵𝗈𝗅𝗎𝗆𝖾𝗌:** `{volumes}` ╰────────────────• 𝖶𝖾𝖻𝗌𝗂𝗍𝖾: {siteurl} """ ] CLIMATE_TEMPLATES = [ """ 🌆 {city_name}, {country} ╭────────────────• ╰➢ **𝖶𝖾𝖺𝗍𝗁𝖾𝗋:** {weather} ╰➢ **𝖳𝗂𝗆𝖾𝗓𝗈𝗇𝖾:** {timezone} ╰➢ **𝖲𝗎𝗇𝗋𝗂𝗌𝖾:** {sunrise} ╰➢ **𝖲𝗎𝗇𝗌𝖾𝗍:** {sunset} ╰➢ **𝖶𝗂𝗇𝖽:** {wind} ╰➢ **𝖳𝖾𝗆𝗉𝖾𝗋𝖺𝗍𝗎𝗋𝖾:** {temperature}°C ╰➢ **𝖥𝖾𝖾𝗅𝗌 𝗅𝗂𝗄𝖾:** {feels_like}°C ╰➢ **𝖬𝗂𝗇𝗂𝗆𝗎𝗆:** {temp_min}°C ╰➢ **𝖬𝖺𝗑𝗂𝗆𝗎𝗆:** {temp_max}°C ╰➢ **𝖯𝗋𝖾𝗌𝗌𝗎𝗋𝖾:** {pressure} hPa ╰➢ **𝖧𝗎𝗆𝗂𝖽𝗂𝗍𝗒:** {humidity}% ╰➢ **𝖵𝗂𝗌𝗂𝖻𝗂𝗅𝗂𝗍𝗒:** {visibility} m ╰➢ **𝖢𝗅𝗈𝗎𝖽𝗌:** {clouds}% ╰────────────────• """ ] AIR_POLLUTION_TEMPLATES = [ """ 🌆 {city_name} ╭────────────────• ╰➢ **𝖠𝖰𝖨:** {aqi} ╰➢ **𝖢𝖺𝗋𝖻𝗈𝗇 𝖬𝗈𝗇𝗈𝗑𝗂𝖽𝖾:** {co} ╰➢ **𝖭𝗈𝗂𝗍𝗋𝗈𝗀𝖾𝗇 𝖬𝗈𝗇𝗈𝗑𝗂𝖽𝖾:** {no} ╰➢ **𝖭𝗂𝗍𝗋𝗈𝗀𝖾𝗇 𝖣𝗂𝗈𝗑𝗂𝖽𝖾:** {no2} ╰➢ **𝖮𝗓𝗈𝗇𝖾:** {o3} ╰➢ **𝖲𝗎𝗅𝗉𝗁𝗎𝗋 𝖣𝗂𝗈𝗑𝗂𝖽𝖾:** {so2} ╰➢ **𝖠𝗆𝗆𝗈𝗇𝗂𝖺:** {nh3} ╰➢ **𝖥𝗂𝗇𝖾 𝖯𝖺𝗋𝗍𝗂𝖼𝗅𝖾𝗌 (PM{sub2_5}):** {pm2_5} ╰➢ **𝖢𝗈𝖺𝗋𝗌𝖾 𝖯𝖺𝗋𝗍𝗂𝖼𝗅𝖾𝗌 (PM{sub10}):** {pm10} ╰────────────────• """ ] GITHUB_USER_TEMPLATES = [ """ 🍀 {username} ({git_id}) ╭──────── {id_type} ────────• ╰➢ **𝖭𝖺𝗆𝖾:** [{name}]({profile_url}) ╰➢ **𝖡𝗅𝗈𝗀:** {blog} ╰➢ **𝖢𝗈𝗆𝗉𝖺𝗇𝗒:** {company} ╰➢ **𝖤𝗆𝖺𝗂𝗅:** {email} ╰➢ **𝖫𝗈𝖼𝖺𝗍𝗂𝗈𝗇:** {location} ╰➢ **𝖱𝖾𝗉𝗈:** {public_repos} ╰➢ **𝖦𝗂𝗌𝗍𝗌:** {public_gists} ╰➢ **𝖥𝗈𝗅𝗅𝗈𝗐𝖾𝗋𝗌:** {followers} ╰➢ **𝖥𝗈𝗅𝗅𝗈𝗐𝗂𝗇𝗀:** {following} ╰➢ **𝖠𝖼𝖼𝗈𝗎𝗇𝗍 𝖼𝗋𝖾𝖺𝗍𝖾𝖽:** {created_at} ╰────────────────• **💫 𝖡𝗂𝗈:** {bio} """ ] STATISTICS_TEMPLATES = [ """ 🍀 {name} ╭──────── 𝖢𝗁𝖺𝗇𝗇𝖾𝗅𝗌 ────────• ╰➢ **𝖳𝗈𝗍𝖺𝗅:** `{channels}` ╰➢ **𝖠𝖽𝗆𝗂𝗇:** `{ch_admin}` ╰➢ **𝖮𝗐𝗇𝖾𝗋:** `{ch_owner}` ╭──────── 𝖦𝗋𝗈𝗎𝗉𝗌 ────────• ╰➢ **𝖳𝗈𝗍𝖺𝗅:** `{groups}` ╰➢ **𝖠𝖽𝗆𝗂𝗇:** `{gc_admin}` ╰➢ **𝖮𝗐𝗇𝖾𝗋:** `{gc_owner}` ╭──────── 𝖮𝗍𝗁𝖾𝗋𝗌 ────────• ╰➢ **𝖯𝗋𝗂𝗏𝖺𝗍𝖾:** `{users}` ╰➢ **𝖡𝗈𝗍𝗌:** `{bots}` ╰➢ **𝖴𝗇𝗋𝖾𝖺𝖽 𝖬𝖾𝗌𝗌𝖺𝗀𝖾𝗌:** `{unread_msg}` ╰➢ **𝖴𝗇𝗋𝖾𝖺𝖽 𝖬𝖾𝗇𝗍𝗂𝗈𝗇𝗌:** `{unread_mention}` ⌛ **𝖳𝗂𝗆𝖾 𝖳𝖺𝗄𝖾𝗇:** `{time_taken}` """ ] GBAN_TEMPLATES = [ """ ╭──────── {gtype} ────────• ╰➢ **𝖵𝗂𝖼𝗍𝗂𝗆:** {name} ╰➢ **𝖲𝗎𝖼𝖼𝖾𝗌𝗌:** {success} ╰➢ **𝖥𝖺𝗂𝗅𝖾𝖽:** {failed} ╰➢ **𝖱𝖾𝖺𝗌𝗈𝗇:** {reason} ╰────────────────• """ ] USAGE_TEMPLATES = [ """ **📝 𝖣𝗂𝗌𝗄 & 𝖣𝗒𝗇𝗈 𝖴𝗌𝖺𝗀𝖾:** **➢ 𝖣𝗒𝗇𝗈 𝖴𝗌𝖺𝗀𝖾 𝖿𝗈𝗋** `{appName}` ◈ __{appHours}hrs {appMinutes}mins__ | __{appPercentage}%__ **➢ 𝖣𝗒𝗇𝗈 𝗋𝖾𝗆𝖺𝗂𝗇𝗂𝗇𝗀 𝗍𝗁𝗂𝗌 𝗆𝗈𝗇𝗍𝗁:** ◈ __{hours}hrs {minutes}mins__ | __{percentage}%__ **➢ 𝖣𝗂𝗌𝗄 𝖴𝗌𝖺𝗀𝖾:** ◈ __{diskUsed}GB__ / __{diskTotal}GB__ | __{diskPercent}%__ **➢ 𝖬𝖾𝗆𝗈𝗋𝗒 𝖴𝗌𝖺𝗀𝖾:** ◈ __{memoryUsed}GB__ / __{memoryTotal}GB__ | __{memoryPercent}%__ """ ] USER_INFO_TEMPLATES = [ """ **🍀 𝖴𝗌𝖾𝗋 𝖨𝗇𝖿𝗈 𝗈𝖿 {mention}:** **➢ 𝖥𝗂𝗋𝗌𝗍 𝖭𝖺𝗆𝖾:** `{firstName}` **➢ 𝖫𝖺𝗌𝗍 𝖭𝖺𝗆𝖾:** `{lastName}` **➢ 𝖴𝗌𝖾𝗋𝖨𝖣:** `{userId}` **➢ 𝖢𝗈𝗆𝗆𝗈𝗇 𝖦𝗋𝗈𝗎𝗉𝗌:** `{commonGroups}` **➢ 𝖣𝖢-𝖨𝖣:** `{dcId}` **➢ 𝖯𝗂𝖼𝗍𝗎𝗋𝖾𝗌:** `{totalPictures}` **➢ 𝖱𝖾𝗌𝗍𝗋𝗂𝖼𝗍𝖾𝖽:** `{isRestricted}` **➢ 𝖵𝖾𝗋𝗂𝖿𝗂𝖾𝖽:** `{isVerified}` **➢ 𝖡𝗈𝗍:** `{isBot}` **➢ 𝖡𝗂𝗈:** `{bio}` ** @HellBot_Networks** """ ] CHAT_INFO_TEMPLATES = [ """ **🍀 𝖢𝗁𝖺𝗍 𝖨𝗇𝖿𝗈:** **➢ 𝖢𝗁𝖺𝗍 𝖭𝖺𝗆𝖾:** `{chatName}` **➢ 𝖢𝗁𝖺𝗍 𝖨𝖣:** `{chatId}` **➢ 𝖢𝗁𝖺𝗍 𝖫𝗂𝗇𝗄:** {chatLink} **➢ 𝖮𝗐𝗇𝖾𝗋:** {chatOwner} **➢ 𝖣𝖢-𝖨𝖣:** `{dcId}` **➢ 𝖬𝖾𝗆𝖻𝖾𝗋𝗌:** `{membersCount}` **➢ 𝖠𝖽𝗆𝗂𝗇𝗌:** `{adminsCount}` **➢ 𝖡𝗈𝗍𝗌:** `{botsCount}` **➢ 𝖣𝖾𝗌𝖼𝗋𝗂𝗉𝗍𝗂𝗈𝗇:** `{description}` ** @HellBot_Networks** """ ] async def alive_template(owner: str, uptime: str) -> str: template = await db.get_env(ENV.alive_template) if template: message = template else: message = random.choice(ALIVE_TEMPLATES) return message.format( owner=owner, pyrogram=__version__["pyrogram"], hellbot=__version__["hellbot"], python=__version__["python"], uptime=uptime, ) async def ping_template(speed: float, uptime: str, owner: str) -> str: template = await db.get_env(ENV.ping_template) if template: message = template else: message = random.choice(PING_TEMPLATES) return message.format(speed=speed, uptime=uptime, owner=owner) async def help_template( owner: str, cmd_n_plgn: tuple[int, int], page: tuple[int, int] ) -> str: template = await db.get_env(ENV.help_template) if template: message = template else: message = random.choice(HELP_MENU_TEMPLATES) return message.format( owner=owner, commands=cmd_n_plgn[0], plugins=cmd_n_plgn[1], current=page[0], last=page[1], ) async def command_template(file: str, info: str, commands: str) -> str: template = await db.get_env(ENV.command_template) if template: message = template else: message = random.choice(COMMAND_MENU_TEMPLATES) return message.format(file=file, info=info, commands=commands) async def anime_template(**kwargs) -> str: template = await db.get_env(ENV.anime_template) if template: message = template else: message = random.choice(ANIME_TEMPLATES) return message.format(**kwargs) async def manga_templates(**kwargs) -> str: template = await db.get_env(ENV.manga_template) if template: message = template else: message = random.choice(MANGA_TEMPLATES) return message.format(**kwargs) async def character_templates(**kwargs) -> str: template = await db.get_env(ENV.character_template) if template: message = template else: message = random.choice(CHARACTER_TEMPLATES) return message.format(**kwargs) async def airing_templates(**kwargs) -> str: template = await db.get_env(ENV.airing_template) if template: message = template else: message = random.choice(AIRING_TEMPLATES) return message.format(**kwargs) async def anilist_user_templates( name: str, anime: tuple, manga: tuple, siteurl: str ) -> str: template = await db.get_env(ENV.anilist_user_template) if template: message = template else: message = random.choice(ANILIST_USER_TEMPLATES) return message.format( name=name, anime_count=anime[0], anime_score=anime[1], minutes=anime[2], episodes=anime[3], manga_count=manga[0], manga_score=manga[1], chapters=manga[2], volumes=manga[3], siteurl=siteurl, ) async def climate_templates(**kwargs) -> str: template = await db.get_env(ENV.climate_template) if template: message = template else: message = random.choice(CLIMATE_TEMPLATES) return message.format(**kwargs) async def airpollution_templates(**kwargs) -> str: template = await db.get_env(ENV.airpollution_template) if template: message = template else: message = random.choice(AIR_POLLUTION_TEMPLATES) return message.format(**kwargs) async def statistics_templates(**kwargs) -> str: template = await db.get_env(ENV.statistics_template) if template: message = template else: message = random.choice(STATISTICS_TEMPLATES) return message.format(**kwargs) async def github_user_templates(**kwargs) -> str: template = await db.get_env(ENV.github_user_template) if template: message = template else: message = random.choice(GITHUB_USER_TEMPLATES) return message.format(**kwargs) async def gban_templates(**kwargs) -> str: template = await db.get_env(ENV.gban_template) if template: message = template else: message = random.choice(GBAN_TEMPLATES) return message.format(**kwargs) async def usage_templates(**kwargs) -> str: template = await db.get_env(ENV.usage_template) if template: message = template else: message = random.choice(USAGE_TEMPLATES) return message.format(**kwargs) async def user_info_templates(**kwargs) -> str: template = await db.get_env(ENV.user_info_template) if template: message = template else: message = random.choice(USER_INFO_TEMPLATES) return message.format(**kwargs) async def chat_info_templates(**kwargs) -> str: template = await db.get_env(ENV.chat_info_template) if template: message = template else: message = random.choice(CHAT_INFO_TEMPLATES) return message.format(**kwargs)