[Update] Ultroid v0.6

Co-Authored-By: Amit Sharma <48654350+buddhhu@users.noreply.github.com>
Co-Authored-By: MMETMA <79155572+MMETMA@users.noreply.github.com>
Co-Authored-By: Aditya <me@xditya.me>
Co-Authored-By: marat2509 <93652988+marat2509@users.noreply.github.com>
Co-Authored-By: smartman_ru <14003491+smartmanru@users.noreply.github.com>
Co-Authored-By: Flasho <75789819+flashokillerify@users.noreply.github.com>
Co-Authored-By: ÁÑÑÍHÌLÅTØR SPÄRK <75305464+annihilatorrrr@users.noreply.github.com>
This commit is contained in:
Devesh Pal
2022-06-06 23:18:16 +05:30
parent d4085913e7
commit 4d30dd7dd7
41 changed files with 1062 additions and 1153 deletions

View File

@@ -7,18 +7,12 @@ FROM theteamultroid/ultroid:main
# set timezone
ENV TZ=Asia/Kolkata
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
# cloning the repo and installing requirements.
&& git clone https://github.com/TeamUltroid/Ultroid.git /root/TeamUltroid/ \
&& pip3 install --no-cache-dir -r root/TeamUltroid/requirements.txt \
&& pip3 install av --no-binary av
# Railway's banned dependency
RUN if [ ! $RAILWAY_STATIC_URL ]; then pip3 install --no-cache-dir yt-dlp; fi
RUN bash installer.sh
# changing workdir
WORKDIR /root/TeamUltroid/
WORKDIR "/root/TeamUltroid"
# start the bot
# start the bot.
CMD ["bash", "startup"]

View File

@@ -7,11 +7,11 @@
<b>A stable pluggable Telegram userbot + Voice & Video Call music bot, based on Telethon.</b>
[![](https://img.shields.io/badge/Ultroid-v0.5-blue)](#)
[![](https://img.shields.io/badge/Ultroid-v0.6-darkblue)](#)
[![Stars](https://img.shields.io/github/stars/TeamUltroid/Ultroid?style=flat-square&color=yellow)](https://github.com/TeamUltroid/Ultroid/stargazers)
[![Forks](https://img.shields.io/github/forks/TeamUltroid/Ultroid?style=flat-square&color=orange)](https://github.com/TeamUltroid/Ultroid/fork)
[![Size](https://img.shields.io/github/repo-size/TeamUltroid/Ultroid?style=flat-square&color=green)](https://github.com/TeamUltroid/Ultroid/)
[![Python](https://img.shields.io/badge/Python-v3.10.2-blue)](https://www.python.org/)
[![Python](https://img.shields.io/badge/Python-v3.10.3-blue)](https://www.python.org/)
[![CodeFactor](https://www.codefactor.io/repository/github/teamultroid/ultroid/badge/main)](https://www.codefactor.io/repository/github/teamultroid/ultroid/overview/main)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/TeamUltroid/Ultroid/graphs/commit-activity)
[![Docker Pulls](https://img.shields.io/docker/pulls/theteamultroid/ultroid?style=flat-square)](https://img.shields.io/docker/pulls/theteamultroid/ultroid?style=flat-square)
@@ -23,8 +23,9 @@
----
# Deploy
- [Heroku](#Deploy-to-Heroku)
- [Local Machine](#Deploy-Locally)
- [Heroku](#deploy-to-heroku)
- [Okteto](#deploy-to-okteto)
- [Local Machine](#deploy-locally)
# Documentation
[![Documentation](https://img.shields.io/badge/Documentation-Ultroid-blue)](http://ultroid.tech/)
@@ -40,10 +41,15 @@ Get the [Necessary Variables](#Necessary-Variables) and then click the button be
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://deploy.ultroid.tech)
## Deploy to Okteto
Get the [Necessary Variables](#Necessary-Variables) and then click the button below!
[![Develop on Okteto](https://okteto.com/develop-okteto.svg)](https://cloud.okteto.com/deploy?repository=https://github.com/TeamUltroid/Ultroid)
## Deploy Locally
- [Traditional Method](#local-deploy---traditional-method)
- [Easy Method](#local-deploy---easy-method)
- [Ultroid CLI](#Ultroid-CLI)
- [Ultroid CLI](#ultroid-cli)
### Local Deploy - Easy Method
- Linux - `wget -O locals.py https://git.io/JY9UM && python3 locals.py`

View File

@@ -20,7 +20,7 @@ try:
from pyUltroid.functions.gDrive import GDriveManager
except ImportError:
GDriveManager = None
from pyUltroid.functions.helper import fast_download, progress, uploader
from pyUltroid.functions.helper import fast_download, progress
from pyUltroid.functions.tools import (
Carbon,
async_searcher,
@@ -1284,8 +1284,10 @@ async def fdroid_dler(event):
)
),
)
tt = time.time()
n_file = await uploader(file, file, tt, event, "Uploading...")
time.time()
n_file = await event.client.fast_uploader(
file, show_progress=True, event=event, message="Uploading...", to_delete=True
)
buttons = Button.switch_inline("Search Back", query="fdroid", same_peer=True)
try:
msg = await event.edit(
@@ -1304,10 +1306,8 @@ async def fdroid_dler(event):
)
except Exception as er:
os.remove(thumb)
os.remove(file)
LOGS.exception(er)
return await event.edit(f"**ERROR**: `{er}`", buttons=buttons)
if msg and hasattr(msg, "media"):
FD_MEDIA.update({uri: msg.media})
os.remove(thumb)
os.remove(file)

View File

@@ -180,7 +180,7 @@ async def repo(e):
@in_pattern("go", owner=True)
async def gsearch(q_event):
try:
match = q_event.text.split(" ", maxsplit=1)[1]
match = q_event.text.split(maxsplit=1)[1]
except IndexError:
return await q_event.answer(
[], switch_pm="Google Search. Enter a query!", switch_pm_param="start"
@@ -273,7 +273,7 @@ async def _(e):
@in_pattern("xda", owner=True)
async def xda_dev(event):
QUERY = event.text.split(" ", maxsplit=1)
QUERY = event.text.split(maxsplit=1)
try:
query = QUERY[1]
except IndexError:
@@ -749,7 +749,7 @@ async def inline_tl(ult):
try:
match = ult.text.split(maxsplit=1)[1]
except IndexError:
text = f"**It is Telegram TlObjects Searcher.**\n__(Don't use if you don't know what it is!)__\n\n• Example Usage\n`@{asst.me.username} tl GetUserRequest`"
text = f"**Telegram TlObjects Searcher.**\n__(Don't use if you don't know what it is!)__\n\n• Example Usage\n`@{asst.me.username} tl GetFullUserRequest`"
return await ult.answer(
[
await ult.builder.article(

View File

@@ -10,6 +10,7 @@ import random
import aiohttp
from pyUltroid.dB import DEVLIST
from pyUltroid.functions.admins import admin_check
from . import *
@@ -24,6 +25,8 @@ async def dheh(e):
@asst_cmd(pattern="echo( (.*)|$)")
async def oqha(e):
if not await admin_check(e):
return
match = e.pattern_match.group(1).strip()
if match:
text = match

View File

@@ -9,4 +9,7 @@ services:
API_ID: $API_ID # defaults to None
API_HASH: $API_HASH # defaults to None
MONGO_URI: $MONGO_URI # defaults to None
BOT_TOKEN: $BOT_TOKEN # Not mandatory
LOG_CHANNEL: $LOG_CHANNEL # Not mandatory
DATABASE_URL: $DATABASE_URL # defaults to None
OKTETO_TOKEN: $OKTETO_TOKEN

54
installer.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
REPO="https://github.com/TeamUltroid/Ultroid.git"
DIR="/root/TeamUltroid"
spinner(){
local pid=$!
while [ "$(ps a | awk '{print $1}' | grep $pid)" ];
do
for i in "Ooooo" "oOooo" "ooOoo" "oooOo" "ooooO" "oooOo" "ooOoo" "oOooo" "Ooooo"
do
echo -ne "\r• $i"
sleep 0.2
done
done
}
clone_repo(){
if [ ! $BRANCH ]
then export BRANCH="main"
fi
echo -e "\n\nCloning Ultroid ${BRANCH}... "
git clone -b $BRANCH $REPO $DIR
}
install_requirements(){
echo -e "\n\nInstalling requirements... "
pip3 install -q --no-cache-dir -r $DIR/requirements.txt && pip3 install av -q --no-binary av
}
railways_dep(){
if [ ! $RAILWAY_STATIC_URL ]
then
echo -e "\n\nInstalling YouTube dependency... "
pip3 install -q --no-cache-dir yt-dlp
fi
}
install_okteto_cli(){
if [ $OKTETO_TOKEN ]
then
echo -e "\n\nInstalling Okteto-CLI... "
curl https://get.okteto.com -sSfL | sh
fi
}
main(){
(clone_repo) & spinner
(install_requirements) & spinner
(railways_dep) & spinner
(install_okteto_cli) & spinner
}
main

3
okteto-pipeline.yml Normal file
View File

@@ -0,0 +1,3 @@
icon: https://raw.githubusercontent.com/TeamUltroid/Ultroid/main/resources/extras/logo_readme.jpg
deploy:
- okteto stack deploy --build -f docker-compose.yml

View File

@@ -5,7 +5,6 @@
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
import asyncio
import os
import time

View File

@@ -19,7 +19,17 @@ from telethon import Button
from telethon.tl.types import InputWebDocument, Message
from telethon.utils import resolve_bot_file_id
from . import HNDLR, INLINE_PIC, LOGS, OWNER_NAME, asst, get_string, start_time, udB
from . import (
HNDLR,
INLINE_PIC,
LOGS,
OWNER_NAME,
asst,
get_string,
split_list,
start_time,
udB,
)
from ._help import _main_help_menu
# ================================================#
@@ -270,83 +280,38 @@ async def _(event):
await event.answer(pin, cache_time=0, alert=True)
InPlugin = {
"Pʟᴀʏ Sᴛʀᴇ Aᴘᴘs": "app telegram",
"Mᴅᴅᴇᴅ Aᴘᴘs": "mods minecraft",
"Sᴇᴀʀʜ Oɴ Gɢʟᴇ": "go TeamUltroid",
"Search on XDA": "xda telegram",
"ɪSᴘᴇʀ": "wspr @username Hello🎉",
"YTʙᴇ Dɴʟᴀᴅᴇʀ": "yt Ed Sheeran Perfect",
"Piston Eval": "run javascript console.log('Hello Ultroid')",
"OʀᴀɴɢᴇFx🦊": "ofox beryllium",
"Tɪᴛᴛᴇʀ Usᴇʀ": "twitter theultroid",
"K Sᴇᴀʀʜ": "koo @__kumar__amit",
"Fᴅʀɪᴅ Sᴇᴀʀʜ": "fdroid telegram",
"Sᴀᴀɴ sᴇᴀʀʜ": "saavn",
"Tʟ Sᴇᴀʀʜ": "tl",
"GɪᴛHʙ ғᴇᴇᴅs": "gh",
"OᴍɢUʙɴᴛ": "omgu cutefish",
}
_InButtons = [Button.switch_inline(_, query=InPlugin[_]) for _ in list(InPlugin.keys())]
InButtons = split_list(_InButtons, 2)
@callback(data="inlone", owner=True)
async def _(e):
button = [
[
Button.switch_inline(
"Pʟᴀʏ Sᴛʀᴇ Aᴘᴘs",
query="app telegram",
same_peer=True,
),
Button.switch_inline(
"Mᴅᴅᴇᴅ Aᴘᴘs",
query="mods minecraft",
same_peer=True,
),
],
[
Button.switch_inline(
"Sᴇᴀʀʜ Oɴ Gɢʟᴇ",
query="go TeamUltroid",
same_peer=True,
),
Button.switch_inline(
"Search on XDA",
query="xda telegram",
same_peer=True,
),
],
[
Button.switch_inline(
"ɪSᴘᴇʀ",
query="wspr @username Hello🎉",
same_peer=True,
),
Button.switch_inline(
"YTʙᴇ Dɴʟᴀᴅᴇʀ",
query="yt Ed Sheeran Perfect",
same_peer=True,
),
],
[
Button.switch_inline(
"Piston Eval",
query="run javascript console.log('Hello Ultroid')",
same_peer=True,
),
Button.switch_inline(
"OʀᴀɴɢᴇFx🦊",
query="ofox beryllium",
same_peer=True,
),
],
[
Button.switch_inline(
"Tɪᴛᴛᴇʀ Usᴇʀ", query="twitter theultroid", same_peer=True
),
Button.switch_inline(
"K Sᴇᴀʀʜ", query="koo @__kumar__amit", same_peer=True
),
],
[
Button.switch_inline(
"Fᴅʀɪᴅ Sᴇᴀʀʜ", query="fdroid telegram", same_peer=True
),
Button.switch_inline("Sᴀᴀɴ sᴇᴀʀʜ", query="saavn", same_peer=True),
],
[
Button.switch_inline("Tʟ Sᴇᴀʀʜ", query="tl", same_peer=True),
Button.switch_inline("GɪᴛHʙ ғᴇᴇᴅs", query="gh", same_peer=True),
],
[Button.switch_inline("OᴍɢUʙɴᴛ", query="omgu cutefish", same_peer=True)],
button = InButtons.copy()
button.append(
[
Button.inline(
"« Bᴀ",
data="open",
),
],
]
)
await e.edit(buttons=button, link_preview=False)

View File

@@ -39,7 +39,8 @@ async def _(e):
okk = await e.get_reply_message()
if okk.sender.username:
put = f"@{okk.sender.username}"
put = okk.sender_id
else:
put = okk.sender_id
else:
put = e.pattern_match.group(1).strip()
if put:
@@ -72,7 +73,8 @@ async def _(e):
text="You Didn't Type Username or id.",
)
return await e.answer([sur])
except ValueError:
except ValueError as er:
LOGS.exception(er)
sur = e.builder.article(
title="User Not Found",
description="Make sure username or id is correct.",
@@ -141,11 +143,9 @@ async def _(e):
same_peer=True,
),
]
sur = e.builder.document(
sur = e.builder.article(
title=user.first_name,
description=desc,
file=logi.full_user.profile_photo,
include_media=False,
text=text,
buttons=button,
)

View File

@@ -48,7 +48,7 @@ from pyUltroid.dB import DEVLIST
from pyUltroid.functions.admins import ban_time
from telethon.errors import BadRequestError
from telethon.errors.rpcerrorlist import ChatNotModifiedError, UserIdInvalidError
from telethon.tl.functions.channels import GetFullChannelRequest
from telethon.tl.functions.channels import EditAdminRequest, GetFullChannelRequest
from telethon.tl.functions.messages import GetFullChatRequest, SetHistoryTTLRequest
from telethon.tl.types import InputMessagesFilterPinned
from telethon.utils import get_display_name
@@ -62,7 +62,6 @@ from . import (
get_uinfo,
inline_mention,
types,
ultroid_bot,
ultroid_cmd,
)
@@ -79,19 +78,31 @@ async def prmte(ult):
await ult.get_chat()
user, rank = await get_uinfo(ult)
rank = rank or "Admin"
FullRight = False
if not user:
return await xx.edit(get_string("pro_1"))
if rank.split()[0] == "-f":
try:
rank = rank.split(maxsplit=1)[1]
except IndexError:
rank = "Admin"
FullRight = True
try:
await ult.client.edit_admin(
ult.chat_id,
user.id,
invite_users=True,
ban_users=True,
delete_messages=True,
pin_messages=True,
manage_call=True,
title=rank,
)
if FullRight:
await ult.client(
EditAdminRequest(ult.chat_id, user.id, ult.chat.admin_rights, rank)
)
else:
await ult.client.edit_admin(
ult.chat_id,
user.id,
invite_users=True,
ban_users=True,
delete_messages=True,
pin_messages=True,
manage_call=True,
title=rank,
)
await eod(
xx, get_string("pro_2").format(inline_mention(user), ult.chat.title, rank)
)
@@ -220,6 +231,7 @@ async def kck(ult):
return await xx.edit(get_string("kick_1"))
except Exception as e:
LOGS.exception(e)
return
text = get_string("kick_4").format(
inline_mention(user), inline_mention(await ult.get_sender()), ult.chat.title
)
@@ -268,13 +280,7 @@ async def tkicki(e):
return await e.eor(str(m))
@ultroid_cmd(
pattern="pin$",
admins_only=True,
manager=True,
require="pin_messages",
fullsudo=True,
)
@ultroid_cmd(pattern="pin$", manager=True, require="pin_messages", fullsudo=True)
async def pin(msg):
if not msg.is_reply:
return await eor(msg, get_string("pin_1"))
@@ -294,7 +300,6 @@ async def pin(msg):
@ultroid_cmd(
pattern="unpin($| (.*))",
admins_only=True,
manager=True,
require="pin_messages",
fullsudo=True,
@@ -387,7 +392,7 @@ async def fastpurger(purg):
)
async def fastpurgerme(purg):
num = purg.pattern_match.group(1).strip()
if num and not purg.is_reply:
if num:
try:
nnt = int(num)
except BaseException:
@@ -401,32 +406,27 @@ async def fastpurgerme(purg):
mp += 1
await eor(purg, f"Purged {mp} Messages!", time=5)
return
chat = await purg.get_input_chat()
msgs = []
count = 0
if not (purg.reply_to_msg_id or num):
elif purg.reply_to_msg_id:
pass
else:
return await eod(
purg,
"`Reply to a message to purge from or use it like ``purgeme <num>`",
time=10,
)
chat = await purg.get_input_chat()
msgs = []
async for msg in purg.client.iter_messages(
chat,
from_user="me",
min_id=purg.reply_to_msg_id,
):
msgs.append(msg)
count += 1
msgs.append(purg.reply_to_msg_id)
if len(msgs) == 100:
await ultroid_bot.delete_messages(chat, msgs)
msgs = []
if msgs:
await purg.client.delete_messages(chat, msgs)
await eod(
purg,
"__Fast purge complete!__\n**Purged** `" + str(count) + "` **messages.**",
"__Fast purge complete!__\n**Purged** `" + str(len(msgs)) + "` **messages.**",
)
@@ -516,7 +516,7 @@ async def autodelte(ult):
try:
await ult.client(SetHistoryTTLRequest(ult.chat_id, period=tt))
except ChatNotModifiedError:
return await eor(
ult, f"Auto Delete Setting is Already same to `{match}`", time=5
return await ult.eor(
f"Auto Delete Setting is Already same to `{match}`", time=5
)
await ult.eor(f"Auto Delete Status Changed to `{match}` !")

140
plugins/beautify.py Normal file
View File

@@ -0,0 +1,140 @@
# Ultroid - UserBot
# Copyright (C) 2021-2022 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
• `{i}carbon <text/reply to msg/reply to document>`
Carbonise the text with default settings.
• `{i}rcarbon <text/reply to msg/reply to document>`
Carbonise the text, with random bg colours.
• `{i}ccarbon <color ><text/reply to msg/reply to document>`
Carbonise the text, with custom bg colours.
• `{i}rayso <opt-theme> <text>/<reply to message>`
`{i}rayso list` - `Get list of themes.`
"""
import random
from telethon.utils import get_display_name
from . import Carbon, eor, get_string, inline_mention, os, ultroid_cmd
_colorspath = "resources/colorlist.txt"
if os.path.exists(_colorspath):
with open(_colorspath, "r") as f:
all_col = f.read().split()
else:
all_col = []
@ultroid_cmd(
pattern="(rc|c)arbon",
)
async def crbn(event):
xxxx = await event.eor(get_string("com_1"))
te = event.pattern_match.group(1)
col = random.choice(all_col) if te[0] == "r" else "White"
if event.reply_to_msg_id:
temp = await event.get_reply_message()
if temp.media:
b = await event.client.download_media(temp)
with open(b) as a:
code = a.read()
os.remove(b)
else:
code = temp.message
else:
try:
code = event.text.split(" ", maxsplit=1)[1]
except IndexError:
return await eor(xxxx, get_string("carbon_2"))
xx = await Carbon(code=code, file_name="ultroid_carbon", backgroundColor=col)
await xxxx.delete()
await event.reply(
f"Carbonised by {inline_mention(event.sender)}",
file=xx,
)
@ultroid_cmd(
pattern="ccarbon( (.*)|$)",
)
async def crbn(event):
match = event.pattern_match.group(1).strip()
if not match:
return await event.eor(get_string("carbon_3"))
msg = await event.eor(get_string("com_1"))
if event.reply_to_msg_id:
temp = await event.get_reply_message()
if temp.media:
b = await event.client.download_media(temp)
with open(b) as a:
code = a.read()
os.remove(b)
else:
code = temp.message
else:
try:
match = match.split(" ", maxsplit=1)
code = match[1]
match = match[0]
except IndexError:
return await eor(msg, get_string("carbon_2"))
xx = await Carbon(code=code, backgroundColor=match)
await msg.delete()
await event.reply(
f"Carbonised by {inline_mention(event.sender)}",
file=xx,
)
RaySoTheme = [
"meadow",
"breeze",
"raindrop",
"candy",
"crimson",
"falcon",
"sunset",
"midnight",
]
@ultroid_cmd(pattern="rayso")
async def pass_on(ult):
spli = ult.text.split()
theme, dark, title, text = None, True, get_display_name(ult.chat), None
if len(spli) > 2:
if spli[1] in RaySoTheme:
theme = spli[1]
dark = bool(spli[2].lower().strip() in ["true", "t"])
elif len(spli) > 1:
if spli[1] in RaySoTheme:
theme = spli[1]
elif spli[1] == "list":
text = "**List of Rayso Themes:**\n"
text += "\n".join([f"- `{th_}`" for th_ in RaySoTheme])
await ult.eor(text)
return
else:
try:
text = ult.text.split(maxsplit=1)[1]
except IndexError:
pass
if not theme:
theme = random.choice(RaySoTheme)
if ult.is_reply:
msg = await ult.get_reply_message()
text = msg.text
title = get_display_name(msg.sender)
await ult.reply(
file=await Carbon(text, rayso=True, title=title, theme=theme, darkMode=dark)
)

View File

@@ -1,233 +0,0 @@
# Ultroid - UserBot
# Copyright (C) 2021-2022 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
• `{i}carbon <text/reply to msg/reply to document>`
Carbonise the text with default settings.
• `{i}rcarbon <text/reply to msg/reply to document>`
Carbonise the text, with random bg colours.
• `{i}ccarbon <color ><text/reply to msg/reply to document>`
Carbonise the text, with custom bg colours.
"""
import random
from . import Carbon, eor, get_string, inline_mention, os, ultroid_cmd
all_col = [
"Black",
"Navy",
"DarkBlue",
"MediumBlue",
"Blue",
"DarkGreen",
"Green",
"Teal",
"DarkCyan",
"DeepSkyBlue",
"DarkTurquoise",
"MediumSpringGreen",
"Lime",
"SpringGreen",
"Aqua",
"Cyan",
"MidnightBlue",
"DodgerBlue",
"LightSeaGreen",
"ForestGreen",
"SeaGreen",
"DarkSlateGray",
"DarkSlateGrey",
"LimeGreen",
"MediumSeaGreen",
"Turquoise",
"RoyalBlue",
"SteelBlue",
"DarkSlateBlue",
"MediumTurquoise",
"Indigo ",
"DarkOliveGreen",
"CadetBlue",
"CornflowerBlue",
"RebeccaPurple",
"MediumAquaMarine",
"DimGray",
"DimGrey",
"SlateBlue",
"OliveDrab",
"SlateGray",
"SlateGrey",
"LightSlateGray",
"LightSlateGrey",
"MediumSlateBlue",
"LawnGreen",
"Chartreuse",
"Aquamarine",
"Maroon",
"Purple",
"Olive",
"Gray",
"Grey",
"SkyBlue",
"LightSkyBlue",
"BlueViolet",
"DarkRed",
"DarkMagenta",
"SaddleBrown",
"DarkSeaGreen",
"LightGreen",
"MediumPurple",
"DarkViolet",
"PaleGreen",
"DarkOrchid",
"YellowGreen",
"Sienna",
"Brown",
"DarkGray",
"DarkGrey",
"LightBlue",
"GreenYellow",
"PaleTurquoise",
"LightSteelBlue",
"PowderBlue",
"FireBrick",
"DarkGoldenRod",
"MediumOrchid",
"RosyBrown",
"DarkKhaki",
"Silver",
"MediumVioletRed",
"IndianRed ",
"Peru",
"Chocolate",
"Tan",
"LightGray",
"LightGrey",
"Thistle",
"Orchid",
"GoldenRod",
"PaleVioletRed",
"Crimson",
"Gainsboro",
"Plum",
"BurlyWood",
"LightCyan",
"Lavender",
"DarkSalmon",
"Violet",
"PaleGoldenRod",
"LightCoral",
"Khaki",
"AliceBlue",
"HoneyDew",
"Azure",
"SandyBrown",
"Wheat",
"Beige",
"WhiteSmoke",
"MintCream",
"GhostWhite",
"Salmon",
"AntiqueWhite",
"Linen",
"LightGoldenRodYellow",
"OldLace",
"Red",
"Fuchsia",
"Magenta",
"DeepPink",
"OrangeRed",
"Tomato",
"HotPink",
"Coral",
"DarkOrange",
"LightSalmon",
"Orange",
"LightPink",
"Pink",
"Gold",
"PeachPuff",
"NavajoWhite",
"Moccasin",
"Bisque",
"MistyRose",
"BlanchedAlmond",
"PapayaWhip",
"LavenderBlush",
"SeaShell",
"Cornsilk",
"LemonChiffon",
"FloralWhite",
"Snow",
"Yellow",
"LightYellow",
"Ivory",
"White",
]
@ultroid_cmd(
pattern="(rc|c)arbon",
)
async def crbn(event):
xxxx = await event.eor(get_string("com_1"))
te = event.text
col = random.choice(all_col) if te[1] == "r" else "White"
if event.reply_to_msg_id:
temp = await event.get_reply_message()
if temp.media:
b = await event.client.download_media(temp)
with open(b) as a:
code = a.read()
os.remove(b)
else:
code = temp.message
else:
try:
code = event.text.split(" ", maxsplit=1)[1]
except IndexError:
return await eor(xxxx, get_string("carbon_2"))
xx = await Carbon(code=code, file_name="ultroid_carbon", backgroundColor=col)
await xxxx.delete()
await event.reply(
f"Carbonised by {inline_mention(event.sender)}",
file=xx,
)
@ultroid_cmd(
pattern="ccarbon( (.*)|$)",
)
async def crbn(event):
match = event.pattern_match.group(1).strip()
if not match:
return await event.eor(get_string("carbon_3"))
msg = await event.eor(get_string("com_1"))
if event.reply_to_msg_id:
temp = await event.get_reply_message()
if temp.media:
b = await event.client.download_media(temp)
with open(b) as a:
code = a.read()
os.remove(b)
else:
code = temp.message
else:
try:
match = match.split(" ", maxsplit=1)
code = match[1]
match = match[0]
except IndexError:
return await eor(msg, get_string("carbon_2"))
xx = await Carbon(code=code, backgroundColor=match)
await msg.delete()
await event.reply(
f"Carbonised by {inline_mention(event.sender)}",
file=xx,
)

View File

@@ -98,7 +98,7 @@ async def _(e):
chat = await e.get_chat()
if hasattr(chat, "username") and chat.username:
return await e.eor(f"Username: @{chat.username}")
request, usage, title = None, None, None
request, usage, title, link = None, None, None, None
if match:
split = match.split(maxsplit=1)
request = bool(split[0] in ["r", "request"])

View File

@@ -24,19 +24,15 @@
• `{i}help <plugin name>`
Shows you a help menu (like this) for every plugin.
• `{i}pick addons`
`{i}pick vcbot`
Instantly load 'Addons' or 'VcBot'.
• `{i}getaddons <raw link to code>`
Load Plugins from the given raw link.
"""
import os
from pyUltroid.startup.loader import Loader, load_addons
from pyUltroid.startup.loader import load_addons
from . import async_searcher, eod, get_string, safeinstall, udB, ultroid_cmd, un_plug
from . import async_searcher, eod, get_string, safeinstall, ultroid_cmd, un_plug
@ultroid_cmd(pattern="install", fullsudo=True)
@@ -115,27 +111,6 @@ async def load(event):
)
@ultroid_cmd(pattern="pick( (.*)|$)", fullsudo=True)
async def pickup_call(ult):
match_ = ult.pattern_match.group(1).strip()
match = match_.lower()
proc = await ult.eor(get_string("com_1"))
if match == "addons":
if udB.get_key("ADDONS"):
return await proc.eor("`Addons are Already Enabled!`", time=8)
udB.set_key("ADDONS", True)
Loader(path="addons", key="Addons").load(func=load_addons)
elif match == "vcbot":
if udB.get_key("VCBOT"):
return await proc.eor("`VcBot is Already Active!`", time=8)
Loader(path="vcbot", key="VCBot").load()
else:
return await proc.eor(
"`Found Nothing to pick!\nSpecify what to pick..`", time=8
)
await proc.eor(f"`Successfully Activated {match_}`", time=8)
@ultroid_cmd(pattern="getaddons( (.*)|$)", fullsudo=True)
async def get_the_addons_lol(event):
thelink = event.pattern_match.group(1).strip()

View File

@@ -28,8 +28,10 @@
Shows System Info.
"""
import inspect
import sys
import traceback
from datetime import datetime
from io import BytesIO, StringIO
from os import remove
from pprint import pprint
@@ -58,6 +60,8 @@ _ignore_eval = []
async def _(e):
xx = await e.eor(get_string("com_1"))
x, y = await bash("neofetch|sed 's/\x1B\\[[0-9;\\?]*[a-zA-Z]//g' >> neo.txt")
if y and y.endswith("NOT_FOUND"):
return await xx.edit(f"Error: `{y}`")
with open("neo.txt", "r") as neo:
p = (neo.read()).replace("\n\n", "")
haa = await Carbon(code=p, file_name="neofetch", backgroundColor=choice(ATRA_COL))
@@ -68,7 +72,7 @@ async def _(e):
@ultroid_cmd(pattern="bash", fullsudo=True, only_devs=True)
async def _(event):
carb = None
carb, yamlf = None, False
try:
cmd = event.text.split(" ", maxsplit=1)[1]
if cmd.split()[0] in ["-c", "--carbon"]:
@@ -82,14 +86,15 @@ async def _(event):
"`You cannot use this command now. Contact owner of this bot!`"
)
reply_to_id = event.reply_to_msg_id or event.id
stdout, stderr = await bash(cmd)
stdout, stderr = await bash(cmd, run_code=1)
OUT = f"**☞ BASH\n\n• COMMAND:**\n`{cmd}` \n\n"
err, out = "", ""
if stderr:
err = f"**• ERROR:** \n`{stderr}`\n\n"
if stdout:
if (carb or udB.get_key("CARBON_ON_BASH")) and (
event.chat.admin_rights
event.is_private
or event.chat.admin_rights
or event.chat.creator
or event.chat.default_banned_rights.embed_links
):
@@ -104,7 +109,24 @@ async def _(event):
out = "**• OUTPUT:**"
remove(li)
else:
out = f"**• OUTPUT:**\n`{stdout}`"
if all(":" in line for line in stdout.split("\n")):
try:
from strings.strings import safe_load
load = safe_load(stdout)
stdout = ""
for data in list(load.keys()):
res = load[data] or ""
if res and "http" not in str(res):
res = f"`{res}`"
stdout += f"**{data}** : {res}\n"
yamlf = True
except Exception as er:
stdout = f"`{stdout}`"
LOGS.exception(er)
else:
stdout = f"`{stdout}`"
out = f"**• OUTPUT:**\n{stdout}"
if not stderr and not stdout:
out = "**• OUTPUT:**\n`Success`"
OUT += err + out
@@ -124,7 +146,7 @@ async def _(event):
await xx.delete()
else:
await xx.edit(OUT, link_preview=True)
await xx.edit(OUT, link_preview=not yamlf)
pp = pprint # ignore: pylint
@@ -153,21 +175,30 @@ async def _(event):
cmd = event.text.split(" ", maxsplit=1)[1]
except IndexError:
return await event.eor(get_string("devs_2"), time=5)
silent = False
if cmd.split()[0] in ["-s", "--silent"]:
silent, gsource, xx = False, False, None
spli = cmd.split()
async def get_():
try:
cmd = cmd.split(maxsplit=1)[1]
cm = cmd.split(maxsplit=1)[1]
except IndexError:
return await event.eor("->> Wrong Format <<-")
await event.eor("->> Wrong Format <<-")
cm = None
return cm
if spli[0] in ["-s", "--silent"]:
await event.delete()
silent = True
elif cmd.split()[0] in ["-n", "-noedit"]:
try:
cmd = cmd.split(maxsplit=1)[1]
except IndexError:
return await event.eor("->> Wrong Format <<-")
cmd = await get_()
elif spli[0] in ["-n", "-noedit"]:
cmd = await get_()
xx = await event.reply(get_string("com_1"))
else:
elif spli[0] in ["-gs", "--source"]:
gsource = True
cmd = await get_()
if not cmd:
return
if not silent and not xx:
xx = await event.eor(get_string("com_1"))
if black:
try:
@@ -195,15 +226,23 @@ async def _(event):
old_stdout = sys.stdout
redirected_output = sys.stdout = StringIO()
redirected_error = sys.stderr = StringIO()
stdout, stderr, exc = None, None, None
stdout, stderr, exc, timeg = None, None, None, None
try:
start = datetime.now()
value = await aexec(cmd, event)
timeg = time_formatter((datetime.now() - start).microseconds / 1000)
except Exception:
value = None
exc = traceback.format_exc()
stdout = redirected_output.getvalue()
stderr = redirected_error.getvalue()
sys.stdout = old_stdout
sys.stderr = old_stderr
if value and gsource:
try:
exc = inspect.getsource(value)
except Exception:
exc = traceback.format_exc()
evaluation = exc or stderr or stdout or _parse_eval(value) or get_string("instu_4")
if silent:
if exc:
@@ -219,11 +258,13 @@ async def _(event):
await event.client.send_message(log_chat, msg, parse_mode="html")
return
final_output = (
"__►__ **EVALPy**\n```{}``` \n\n __►__ **OUTPUT**: \n```{}``` \n".format(
"__►__ **EVAL**\n```{}``` \n\n __►__ **OUTPUT**: \n```{}``` \n".format(
cmd,
evaluation,
)
)
if timeg:
final_output += f"Time Taken: `{timeg}`"
if len(final_output) > 4096:
final_output = evaluation
with BytesIO(str.encode(final_output)) as out_file:

View File

@@ -38,6 +38,7 @@ from . import (
downloader,
eor,
fast_download,
get_all_files,
get_string,
progress,
time_formatter,
@@ -178,7 +179,7 @@ async def _(event):
for result in results:
if os.path.isdir(result):
c, s = 0, 0
for files in sorted(glob.glob(result + "/*")):
for files in get_all_files(result):
attributes = None
if stream:
try:
@@ -220,6 +221,5 @@ async def _(event):
thumb=thumb,
attributes=attributes,
caption=f"`Uploaded` `{result}` `in {time_formatter(_*1000)}`",
reply_to=event.reply_to_msg_id or event,
)
await msg.try_delete()

View File

@@ -32,11 +32,8 @@ async def delete_it(delme):
msg_src = await delme.get_reply_message()
if not msg_src:
return
try:
await msg_src.delete()
await delme.delete()
except Exception as e:
await delme.eor(f"Couldn't delete the message.\n\n**ERROR:**\n`{e}`", time=5)
await msg_src.try_delete()
await delme.try_delete()
@ultroid_cmd(

View File

@@ -12,15 +12,17 @@
To get list of fonts
"""
import string
from . import HNDLR, eod, ultroid_cmd
fonts = ["small caps", "monospace", "double stroke", "script royal"]
_default = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
_small_caps = "ᴀʙᴅᴇғɢʜɪᴊᴋʟᴍɴᴘϙʀsᴛxʏABCDEFGHIJKLMNOPQRSTUVWXYZ"
_monospace = "𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉"
_double_stroke = "𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ"
_script_royal = "𝒶𝒷𝒸𝒹𝑒𝒻𝑔𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝑜𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵"
_default = string.ascii_letters
Fonts = {
"small caps": "ᴀʙᴅᴇғɢʜɪᴊᴋʟᴍɴᴘϙʀsᴛxʏABCDEFGHIJKLMNOPQRSTUVWXYZ",
"monospace": "𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉",
"double stroke": "𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ",
"script royal": "𝒶𝒷𝒸𝒹𝑒𝒻𝑔𝒽𝒾𝒿𝓀𝓁𝓂𝓃𝑜𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵",
}
@ultroid_cmd(
@@ -32,7 +34,7 @@ async def _(e):
help = __doc__.format(i=HNDLR)
if not input:
m = "**Available Fonts**\n\n"
for x in fonts:
for x in Fonts.keys():
m += f"• `{x}`\n"
return await e.eor(m, time=5)
if not reply:
@@ -47,16 +49,9 @@ async def _(e):
else:
font = input
text = reply.message
if font not in fonts:
if font not in Fonts.keys():
return await e.eor(f"`{font} not in font list`.", time=5)
if font == "small caps":
msg = gen_font(text, _small_caps)
elif font == "monospace":
msg = gen_font(text, _monospace)
elif font == "double stroke":
msg = gen_font(text, _double_stroke)
elif font == "script royal":
msg = gen_font(text, _script_royal)
msg = gen_font(text, Fonts[font])
await e.eor(msg)

View File

@@ -85,32 +85,6 @@ from . import (
)
@ultroid_cmd(
pattern="sketch$",
)
async def sketch(e):
ureply = await e.get_reply_message()
xx = await e.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
img = cv2.imread(file)
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
inverted_gray_image = 255 - gray_image
blurred_img = cv2.GaussianBlur(inverted_gray_image, (21, 21), 0)
inverted_blurred_img = 255 - blurred_img
pencil_sketch_IMG = cv2.divide(gray_image, inverted_blurred_img, scale=256.0)
cv2.imwrite("ultroid.png", pencil_sketch_IMG)
await e.reply(file="ultroid.png")
await xx.delete()
os.remove(file)
os.remove("ultroid.png")
@ultroid_cmd(pattern="color$")
async def _(event):
reply = await event.get_reply_message()
@@ -141,20 +115,67 @@ async def _(event):
await xx.delete()
@ultroid_cmd(
pattern="grey$",
)
async def ultd(event):
@ultroid_cmd(pattern="(grey|blur|negative|danger|mirror|quad|sketch|flip|toon)$")
async def ult_tools(event):
match = event.pattern_match.group(1)
ureply = await event.get_reply_message()
if not (ureply and (ureply.media)):
await event.eor(get_string("cvt_3"))
return
ultt = await ureply.download_media()
xx = await event.eor(get_string("com_1"))
if ultt.endswith(".tgs"):
xx = await event.eor(get_string("sts_9"))
xx = await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
ultroid = cv2.cvtColor(ult, cv2.COLOR_BGR2GRAY)
if match == "grey":
ultroid = cv2.cvtColor(ult, cv2.COLOR_BGR2GRAY)
elif match == "blur":
ultroid = cv2.GaussianBlur(ult, (35, 35), 0)
elif match == "negative":
ultroid = cv2.bitwise_not(ult)
elif match == "danger":
dan = cv2.cvtColor(ult, cv2.COLOR_BGR2RGB)
ultroid = cv2.cvtColor(dan, cv2.COLOR_HSV2BGR)
elif match == "mirror":
ish = cv2.flip(ult, 1)
ultroid = cv2.hconcat([ult, ish])
elif match == "flip":
trn = cv2.flip(ult, 1)
ish = cv2.rotate(trn, cv2.ROTATE_180)
ultroid = cv2.vconcat([ult, ish])
elif match == "quad":
ult = cv2.imread(file)
roid = cv2.flip(ult, 1)
mici = cv2.hconcat([ult, roid])
fr = cv2.flip(mici, 1)
trn = cv2.rotate(fr, cv2.ROTATE_180)
ultroid = cv2.vconcat([mici, trn])
elif match == "sketch":
gray_image = cv2.cvtColor(ult, cv2.COLOR_BGR2GRAY)
inverted_gray_image = 255 - gray_image
blurred_img = cv2.GaussianBlur(inverted_gray_image, (21, 21), 0)
inverted_blurred_img = 255 - blurred_img
ultroid = cv2.divide(gray_image, inverted_blurred_img, scale=256.0)
elif match == "toon":
height, width, _ = ult.shape
samples = np.zeros([height * width, 3], dtype=np.float32)
count = 0
for x in range(height):
for y in range(width):
samples[count] = ult[x][y]
count += 1
_, labels, centers = cv2.kmeans(
samples,
12,
None,
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10000, 0.0001),
5,
cv2.KMEANS_PP_CENTERS,
)
centers = np.uint8(centers)
ish = centers[labels.flatten()]
ultroid = ish.reshape(ult.shape)
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
@@ -163,227 +184,8 @@ async def ultd(event):
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="blur$",
)
async def ultd(event):
ureply = await event.get_reply_message()
if not (ureply and (ureply.media)):
await event.eor(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
xx = await event.eor(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
ultroid = cv2.GaussianBlur(ult, (35, 35), 0)
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
for i in ["ult.png", "ult.jpg", ultt]:
if os.path.exists(i):
os.remove(i)
@ultroid_cmd(
pattern="negative$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
ultroid = cv2.bitwise_not(ult)
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="mirror$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
ish = cv2.flip(ult, 1)
ultroid = cv2.hconcat([ult, ish])
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="flip$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
trn = cv2.flip(ult, 1)
ish = cv2.rotate(trn, cv2.ROTATE_180)
ultroid = cv2.vconcat([ult, ish])
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="quad$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
roid = cv2.flip(ult, 1)
mici = cv2.hconcat([ult, roid])
fr = cv2.flip(mici, 1)
trn = cv2.rotate(fr, cv2.ROTATE_180)
ultroid = cv2.vconcat([mici, trn])
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="toon$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
height, width, channels = ult.shape
samples = np.zeros([height * width, 3], dtype=np.float32)
count = 0
for x in range(height):
for y in range(width):
samples[count] = ult[x][y]
count += 1
compactness, labels, centers = cv2.kmeans(
samples,
12,
None,
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10000, 0.0001),
5,
cv2.KMEANS_PP_CENTERS,
)
centers = np.uint8(centers)
ish = centers[labels.flatten()]
ultroid = ish.reshape(ult.shape)
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
@ultroid_cmd(
pattern="danger$",
)
async def ultd(event):
ureply = await event.get_reply_message()
xx = await event.eor("`...`")
if not (ureply and (ureply.media)):
await xx.edit(get_string("cvt_3"))
return
ultt = await ureply.download_media()
if ultt.endswith(".tgs"):
await xx.edit(get_string("sts_9"))
file = await con.convert(ultt, convert_to="png", outname="ult")
ult = cv2.imread(file)
dan = cv2.cvtColor(ult, cv2.COLOR_BGR2RGB)
ultroid = cv2.cvtColor(dan, cv2.COLOR_HSV2BGR)
cv2.imwrite("ult.jpg", ultroid)
await event.client.send_file(
event.chat_id,
"ult.jpg",
force_document=False,
reply_to=event.reply_to_msg_id,
)
await xx.delete()
os.remove("ult.png")
os.remove("ult.jpg")
os.remove(ultt)
os.remove(file)
@ultroid_cmd(pattern="csample (.*)")

View File

@@ -1,67 +0,0 @@
# Ultroid - UserBot
# Copyright (C) 2021-2022 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
•`{i}megadl <link>`
It Downloads and Upload Files from mega.nz links.
"""
import time
from datetime import datetime
from . import (
HNDLR,
LOGS,
bash,
get_all_files,
get_string,
humanbytes,
os,
time_formatter,
ultroid_cmd,
uploader,
)
@ultroid_cmd(pattern="megadl( (.*)|$)")
async def _(e):
link = e.pattern_match.group(1).strip()
if os.path.isdir("mega"):
await bash("rm -rf mega")
os.mkdir("mega")
xx = await e.eor(f"{get_string('com_1')}\nTo Check Progress : `{HNDLR}ls mega`")
s = datetime.now()
x, y = await bash(f"megadl {link} --path mega")
ok = get_all_files("mega")
tt = time.time()
c = 0
for kk in ok:
try:
res = await uploader(kk, kk, tt, xx, get_string("com_6"))
await e.client.send_file(
e.chat_id,
res,
caption="`" + kk.split("/")[-1] + "`",
force_document=True,
thumb="resources/extras/ultroid.jpg",
)
c += 1
except Exception as er:
LOGS.info(er)
ee = datetime.now()
t = time_formatter(((ee - s).seconds) * 1000)
size = 0
for path, dirs, files in os.walk("mega"):
for f in files:
fp = os.path.join(path, f)
size += os.path.getsize(fp)
await xx.delete()
await e.client.send_message(
e.chat_id,
f"Downloaded And Uploaded Total - `{c}` files of `{humanbytes(size)}` in `{t}`",
)
await bash("rm -rf mega")

View File

@@ -94,7 +94,7 @@ async def nsfw_check(e):
NWARN.update({e.sender_id: count})
return await ultroid_bot.send_message(
chat,
f"**NSFW Warn {count}/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nDon't Send NSFW stuffs Here Or You will Be Get {action}",
f"**NSFW Warn {count}/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nNSFW prohibited! Repeated violation would lead to {action}",
)
if "mute" in action:
try:
@@ -108,7 +108,7 @@ async def nsfw_check(e):
except BaseException:
await ultroid_bot.send_message(
chat,
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nCan't Able to {action}.",
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",
)
elif "ban" in action:
try:
@@ -122,7 +122,7 @@ async def nsfw_check(e):
except BaseException:
await ultroid_bot.send_message(
chat,
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nCan't Able to {action}.",
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",
)
elif "kick" in action:
try:
@@ -134,14 +134,14 @@ async def nsfw_check(e):
except BaseException:
await ultroid_bot.send_message(
chat,
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nCan't Able to {action}.",
f"NSFW Warn 3/3 to [{e.sender.first_name}](tg://user?id={e.sender_id})\n\nUnable to {action}.",
)
NWARN.pop(e.sender_id)
else:
NWARN.update({e.sender_id: 1})
return await ultroid_bot.send_message(
chat,
f"**NSFW Warn 1/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nDon't Send NSFW stuffs Here Or You will Be Get {action}",
f"**NSFW Warn 1/3** To [{e.sender.first_name}](tg://user?id={e.sender_id})\nNSFW prohibited! Repeated violation would lead to {action}",
)

View File

@@ -375,9 +375,7 @@ if udB.get_key("PMSETTING"):
f"**{mention}** [`{user.id}`] was Blocked for spamming.",
)
@ultroid_cmd(
pattern="(start|stop|clear)archive$",
)
@ultroid_cmd(pattern="(start|stop|clear)archive$", fullsudo=True)
async def _(e):
x = e.pattern_match.group(1).strip()
if x == "start":
@@ -393,9 +391,7 @@ if udB.get_key("PMSETTING"):
except Exception as mm:
await e.eor(str(mm), time=5)
@ultroid_cmd(
pattern="(a|approve)(?: |$)",
)
@ultroid_cmd(pattern="(a|approve)(?: |$)", fullsudo=True)
async def approvepm(apprvpm):
if apprvpm.reply_to_msg_id:
user = (await apprvpm.get_reply_message()).sender
@@ -446,9 +442,7 @@ if udB.get_key("PMSETTING"):
else:
await apprvpm.eor("`User may already be approved.`", time=5)
@ultroid_cmd(
pattern="(da|disapprove)(?: |$)",
)
@ultroid_cmd(pattern="(da|disapprove)(?: |$)", fullsudo=True)
async def disapprovepm(e):
if e.reply_to_msg_id:
user = (await e.get_reply_message()).sender
@@ -520,7 +514,7 @@ async def blockpm(block):
)
await block.client(BlockRequest(user))
aname = await block.client.get_entity(user)
await block.eor(f"{inline_mention(aname)} `has been blocked!`")
await block.eor(f"{inline_mention(aname)} [`{user}`] `has been blocked!`")
try:
disapprove_user(user)
except AttributeError:
@@ -546,11 +540,12 @@ async def blockpm(block):
pass
@ultroid_cmd(pattern="unblock( (.*)|$)")
@ultroid_cmd(pattern="unblock( (.*)|$)", fullsudo=True)
async def unblockpm(event):
match = event.pattern_match.group(1).strip()
if event.reply_to_msg_id:
user = (await event.get_reply_message()).sender_id
reply = await event.get_reply_message()
if reply:
user = reply.sender_id
elif match:
if match == "all":
msg = await event.eor(get_string("com_1"))
@@ -576,14 +571,10 @@ async def unblockpm(event):
user = await event.client.parse_id(match)
except Exception as er:
return await event.eor(str(er))
elif block.is_private:
user = (await event.get_chat()).id
elif event.is_private:
user = event.chat_id
else:
return await event.eor(NO_REPLY, time=10)
try:
user = await event.client.parse_id(match)
except Exception as er:
return await event.eor(str(er))
try:
await event.client(UnblockRequest(user))
aname = await event.client.get_entity(user)

View File

@@ -112,6 +112,9 @@ async def remove_profilepic(delpfp):
async def gpoto(e):
ult = e.pattern_match.group(1).strip()
a = await e.eor(get_string("com_1"))
just_dl = ult in ["-dl", "--dl"]
if just_dl:
ult = None
if not ult:
if e.is_reply:
gs = await e.get_reply_message()
@@ -121,6 +124,8 @@ async def gpoto(e):
okla = await e.client.download_profile_photo(ult)
if not okla:
return await eor(a, "`Pfp Not Found...`")
await a.delete()
await e.reply(file=okla)
os.remove(okla)
if not just_dl:
await a.delete()
await e.reply(file=okla)
return os.remove(okla)
await a.edit(f"Downloaded pfp to [ `{okla}` ].")

View File

@@ -56,7 +56,7 @@ from . import (
ultroid_cmd,
uploader,
)
from .carbon import all_col
from .beautify import all_col
File = []

View File

@@ -63,7 +63,7 @@ from telethon.tl.types import (
)
from telethon.utils import pack_bot_file_id
from . import HNDLR, async_searcher, bash, con, eor, get_string
from . import HNDLR, LOGS, async_searcher, bash, con, eor, get_string
from . import humanbytes as hb
from . import inline_mention, is_url_ok, mediainfo, ultroid_cmd
@@ -94,6 +94,7 @@ async def _(event):
output_str = f"**TRANSLATED** from {fr} to {lan}\n{tt}"
await event.eor(output_str)
except Exception as exc:
LOGS.exception(exc)
await event.eor(str(exc), time=5)

View File

@@ -41,6 +41,8 @@ if HOSTED_ON == "heroku":
heroku_api, app_name = Var.HEROKU_API, Var.HEROKU_APP_NAME
try:
if heroku_api and app_name:
import heroku3
Heroku = heroku3.from_key(heroku_api)
app = Heroku.app(app_name)
HEROKU_API = heroku_api

View File

@@ -4,6 +4,7 @@
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -

View File

@@ -76,11 +76,12 @@ async def zipp(event):
await xx.delete()
@ultroid_cmd(pattern="unzip$")
@ultroid_cmd(pattern="unzip( (.*)|$)")
async def unzipp(event):
reply = await event.get_reply_message()
file = event.pattern_match.group(1).strip()
t = time.time()
if not reply:
if not ((reply and reply.media) or file):
await event.eor(get_string("zip_1"))
return
xx = await event.eor(get_string("com_1"))
@@ -117,7 +118,7 @@ async def unzipp(event):
async def azipp(event):
reply = await event.get_reply_message()
t = time.time()
if not reply:
if not (reply and reply.media):
await event.eor(get_string("zip_1"))
return
xx = await event.eor(get_string("com_1"))

View File

@@ -1,5 +1,5 @@
# Important Requirements here.
https://github.com/New-dev0/Telethon/archive/PlayTime.zip
py-Ultroid==2022.3.20
https://github.com/New-dev0/Telethon/archive/Cartoon.zip
py-Ultroid==2022.6.6
pytgcalls==3.0.0.dev21

148
resources/colorlist.txt Normal file
View File

@@ -0,0 +1,148 @@
AliceBlue
AntiqueWhite
Aqua
Aquamarine
Azure
Beige
Bisque
Black
BlanchedAlmond
Blue
BlueViolet
Brown
BurlyWood
CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornsilk
Crimson
Cyan
DarkBlue
DarkCyan
DarkGoldenRod
DarkGray
DarkGreen
DarkGrey
DarkKhaki
DarkMagenta
DarkOliveGreen
DarkOrange
DarkOrchid
DarkRed
DarkSalmon
DarkSeaGreen
DarkSlateBlue
DarkSlateGray
DarkSlateGrey
DarkTurquoise
DarkViolet
DeepPink
DeepSkyBlue
DimGray
DimGrey
DodgerBlue
FireBrick
FloralWhite
ForestGreen
Fuchsia
Gainsboro
GhostWhite
Gold
GoldenRod
Gray
Green
GreenYellow
Grey
HoneyDew
HotPink
IndianRed
Indigo
Ivory
Khaki
Lavender
LavenderBlush
LawnGreen
LemonChiffon
LightBlue
LightCoral
LightCyan
LightGoldenRodYellow
LightGray
LightGreen
LightGrey
LightPink
LightSalmon
LightSeaGreen
LightSkyBlue
LightSlateGray
LightSlateGrey
LightSteelBlue
LightYellow
Lime
LimeGreen
Linen
Magenta
Maroon
MediumAquaMarine
MediumBlue
MediumOrchid
MediumPurple
MediumSeaGreen
MediumSlateBlue
MediumSpringGreen
MediumTurquoise
MediumVioletRed
MidnightBlue
MintCream
MistyRose
Moccasin
NavajoWhite
Navy
OldLace
Olive
OliveDrab
Orange
OrangeRed
Orchid
PaleGoldenRod
PaleGreen
PaleTurquoise
PaleVioletRed
PapayaWhip
PeachPuff
Peru
Pink
Plum
PowderBlue
Purple
RebeccaPurple
Red
RosyBrown
RoyalBlue
SaddleBrown
Salmon
SandyBrown
SeaGreen
SeaShell
Sienna
Silver
SkyBlue
SlateBlue
SlateGray
SlateGrey
Snow
SpringGreen
SteelBlue
Tan
Teal
Thistle
Tomato
Turquoise
Violet
Wheat
White
WhiteSmoke
Yellow
YellowGreen

View File

@@ -16,8 +16,8 @@ def clear():
system("clear")
MANDATORY_REQS = [
"https://github.com/New-dev0/Telethon/archive/PlayTime.zip",
"py-Ultroid==2022.3.20",
"https://github.com/New-dev0/Telethon/archive/Cartoon.zip",
"py-Ultroid==2022.6.6",
"gitpython",
"enhancer==0.3.4",
"telegraph",
@@ -252,4 +252,4 @@ print("\nYou can head over to @UltroidSupport, if you get stuck somewhere, and n
sleep(0.5)
print("\nMade with ❤️ by @TeamUltroid...")
system("pip3 uninstall colorama -y")
system("pip3 uninstall -q colorama -y")

View File

@@ -16,6 +16,7 @@ git+https://github.com/buddhhu/img2html.git
git+https://github.com/programmingerror/heroku3.py.git
gitpython
google-api-python-client
feedparser
html-telegraph-poster
htmlwebshot
lottie

View File

@@ -13,7 +13,7 @@ then
fi
printf "*Putting some magical effect...*"
pip install colorama
pip install -q colorama
printf "Running up Installation tool.\n"
python resources/startup/_termux.py

View File

@@ -3,28 +3,29 @@
| Code | Language | Translated | Remaining |
|----|-------|-------|---|
| en | English [English] | 413 | 0 |
| ka | Kannada [ಕನ್ನಡ] | 112 | 301 |
| bn | Bengali [বাংলা] | 382 | 31 |
| od | Odia [ଓଡିଆ] | 112 | 301 |
| ru | Russian [Русский] | 411 | 2 |
| pt-br | Portuguese [Português] | 413 | NULL |
| my | Malay [Bahasa Melayu] | 112 | 301 |
| jp | Japanese [日本] | 413 | NULL |
| tr | Turkish [Türk] | 112 | 301 |
| si | sinhala [සිංහල] | 112 | 301 |
| fa | Persian [Farsi] | 391 | 22 |
| hi | Hindi [हिंदी] | 413 | NULL |
| az | Azerbaijan [Azərbaycan] | 382 | 31 |
| id | Indonesia [Indonesia] | 413 | NULL |
| cn | Chinese [简体中文] | 112 | 301 |
| ta | தமிழ் [தமிழ்] | 112 | 301 |
| mr | Marathi [मराठी] | 131 | 282 |
| ar | Arabic [العربية] | 411 | 2 |
| it | Italian [italiano] | 111 | 302 |
| gu | Gujarati [ગુજરાતી] | 109 | 304 |
| ml | Malayalam [മലയാളം] | 112 | 301 |
| es | Spanish [Español] | 409 | 4 |
| en | English [English] | 418 | 0 |
| ar | Arabic [العربية] | 418 | NULL |
| si | sinhala [සිංහල] | 112 | 306 |
| hi | Hindi [हिंदी] | 413 | 5 |
| fr | French [Français] | 110 | 308 |
| jp | Japanese [日本] | 413 | 5 |
| fa | Persian [Farsi] | 391 | 27 |
| id | Indonesia [Indonesia] | 413 | 5 |
| pt-br | Portuguese [Português] | 413 | 5 |
| gu | Gujarati [ગુજરાતી] | 109 | 309 |
| ml | Malayalam [മലയാളം] | 112 | 306 |
| ru | Russian [Русский] | 413 | 5 |
| ta | தமிழ் [தமிழ்] | 112 | 306 |
| my | Malay [Bahasa Melayu] | 112 | 306 |
| es | Spanish [Español] | 409 | 9 |
| od | Odia [ଓଡିଆ] | 112 | 306 |
| tr | Turkish [Türk] | 112 | 306 |
| mr | Marathi [मराठी] | 131 | 287 |
| cn | Chinese [简体中文] | 112 | 306 |
| ka | Kannada [ಕನ್ನಡ] | 112 | 306 |
| bn | Bengali [বাংলা] | 382 | 36 |
| it | Italian [italiano] | 111 | 307 |
| az | Azerbaijan [Azərbaycan] | 382 | 36 |
If Strings are not present, Google Translation will be used to Translate them at time of Usage.

View File

@@ -1,310 +1,399 @@
-,Arabic,Azerbaijan,Bengali,Chinese,Spanish,Persian,Gujarati,Hindi,Indonesia,Italian,Japanese,Kannada,Malayalam,Marathi,Malay,Odia,Portuguese,Russian,sinhala,தமிழ்,Turkish
com_3,,,,,,,,,,,,,,,,,,,,,
com_4,,,,,,,,,,,,,,,,,,,,,
com_5,,,,,,,,,,,,,,,,,,,,,
com_6,,,,,,,,,,,,,,,,,,,,,
com_7,,,,,,,,,,,,,,,,,,,,,
can_1,,,,,,,,,,,,,,,,,,,,,
can_2,,,,,,,,,,,,,,,,,,,,,
can_3,,,,,,,,,,,,,,,,,,,,,
can_4,,,,,,,,,,,,,,,,,,,,,
help_4,,,,,,,,,,,,,,,,,,,,,
help_5,,,,,,,,,,,,,,,,,,,,,
help_6,,,,,,,,,,,,,,,,,,,,,
help_7,,,,,,,,,,,,,,,,,,,,,
help_8,,,,,,,,,,,,,,,,,,,,,
help_9,,,,,,,,,,,,,,,,,,,,,
help_10,,,,,,,,,,,,,,,,,,,,,
help_11,,,,,,,,,,,,,,,,,,,,,
help_12,,,,,,,,,,,,,,,,,,,,,
help_13,,,,,,,,,,,,,,,,,,,,,
userlogs_1,,,,,,,,,,,,,,,,,,,,,
userlogs_2,,,,,,,,,,,,,,,,,,,,,
userlogs_3,,,,,,,,,,,,,,,,,,,,,
userlogs_4,,,,,,,,,,,,,,,,,,,,,
userlogs_5,,,,,,,,,,,,,,,,,,,,,
adm_1,,,,,,,,,,,,,,,,,,,,,
adm_2,,,,,,,,,,,,,,,,,,,,,
adm_3,,,,,,,,,,,,,,,,,,,,,
pro_1,,,,,,,,,,,,,,,,,,,,,
pro_2,,,,,,,,,,,,,,,,,,,,,
de_1,,,,,,,,,,,,,,,,,,,,,
de_2,,,,,,,,,,,,,,,,,,,,,
ban_1,,,,,,,,,,,,,,,,,,,,,
ban_2,,,,,,,,,,,,,,,,,,,,,
ban_3,,,,,,,,,,,,,,,,,,,,,
ban_4,,,,,,,,,,,,,,,,,,,,,
ban_5,,,,,,,,,,,,,,,,,,,,,
tban_1,,,,,,,,,,,,,,,,,,,,,
tban_2,,,,,,,,,,,,,,,,,,,,,
unban_1,,,,,,,,,,,,,,,,,,,,,
unban_2,,,,,,,,,,,,,,,,,,,,,
unban_3,,,,,,,,,,,,,,,,,,,,,
kick_1,,,,,,,,,,,,,,,,,,,,,
kick_2,,,,,,,,,,,,,,,,,,,,,
kick_3,,,,,,,,,,,,,,,,,,,,,
kick_4,,,,,,,,,,,,,,,,,,,,,
pin_1,,,,,,,,,,,,,,,,,,,,,
pinned_1,,,,,,,,,,,,,,,,,,,,,
pinned_2,,,,,,,,,,,,,,,,,,,,,
unpin_1,,,,,,,,,,,,,,,,,,,,,
listpin_1,,,,,,,,,,,,,,,,,,,,,
purge_1,,,,,,,,,,,,,,,,,,,,,
purgeall_1,,,,,,,,,,,,,,,,,,,,,
purgeall_2,,,,,,,,,,,,,,,,,,,,,
aki_1,,,,,,,,,,,,,,,,,,,,,
aki_2,,,,,,,,,,,,,,,,,,,,,
aki_3,,,,,,,,,,,,,,,,,,,,,
antiflood_1,,,,,,,,,,,,,,,,,,,,,
antiflood_2,,,,,,,,,,,,,,,,,,,,,
antiflood_3,,,,,,,,,,,,,,,,,,,,,
antiflood_4,,,,,,,,,,,,,,,,,,,,,
antiflood_5,,,,,,,,,,,,,,,,,,,,,
ascii_1,,,,,,,,,,,,,,,,,,,,,
ascii_2,,,,,,,,,,,,,,,,,,,,,
audiotools_1,,,,,,,,,,,,,,,,,,,,,
audiotools_2,,,,,,,,,,,,,,,,,,,,,
audiotools_3,,,,,,,,,,,,,,,,,,,,,
audiotools_4,,,,,,,,,,,,,,,,,,,,,
audiotools_5,,,,,,,,,,,,,,,,,,,,,
audiotools_6,,,,,,,,,,,,,,,,,,,,,
audiotools_7,,,,,,,,,,,,,,,,,,,,,
audiotools_8,,,,,,,,,,,,,,,,,,,,,
audiotools_9,,,,,,,,,,,,,,,,,,,,,
audiotools_10,,,,,,,,,,,,,,,,,,,,,
asstcmd_1,,,,,,,,,,,,,,,,,,,,,
asstcmd_2,,,,,,,,,,,,,,,,,,,,,
asstcmd_3,,,,,,,,,,,,,,,,,,,,,
asstcmd_4,,,,,,,,,,,,,,,,,,,,,
asstcmd_5,,,,,,,,,,,,,,,,,,,,,
asstcmd_6,,,,,,,,,,,,,,,,,,,,,
act_1,,,,,,,,,,,,,,,,,,,,,
act_2,,,,,,,,,,,,,,,,,,,,,
autopic_4,,,,,,,,,,,,,,,,,,,,,
autopic_5,,,,,,,,,,,,,,,,,,,,,
inline_6,,,,,,,,,,,,,,,,,,,,,
inline_7,,,,,,,,,,,,,,,,,,,,,
inline_8,,,,,,,,,,,,,,,,,,,,,
inline_9,,,,,,,,,,,,,,,,,,,,,
wspr_3,,,,,,,,,,,,,,,,,,,,,
wspr_4,,,,,,,,,,,,,,,,,,,,,
wspr_5,,,,,,,,,,,,,,,,,,,,,
bot_1,,,,,,,,,,,,,,,,,,,,,
bot_2,,,,,,,,,,,,,,,,,,,,,
bot_3,,,,,,,,,,,,,,,,,,,,,
bot_4,,,,,,,,,,,,,,,,,,,,,
bot_5,,,,,,,,,,,,,,,,,,,,,
log,,,,,,,,,,,,,,,,,,,,,
ping,,,,,,,,,,,,,,,,,,,,,
usage,,,,,,,,,,,,,,,,,,,,,
usage_simple,,,,,,,,,,,,,,,,,,,,,
shutdown,,,,,,,,,,,,,,,,,,,,,
blk_1,,,,,,,,,,,,,,,,,,,,,
blk_2,,,,,,,,,,,,,,,,,,,,,
blk_3,,,,,,,,,,,,,,,,,,,,,
blk_4,,,,,,,,,,,,,,,,,,,,,
blk_5,,,,,,,,,,,,,,,,,,,,,
blk_6,,,,,,,,,,,,,,,,,,,,,
bd_7,,,,,,,,,,,,,,,,,,,,,
bd_8,,,,,,,,,,,,,,,,,,,,,
bd_9,,,,,,,,,,,,,,,,,,,,,
calc_1,,,,,,,,,,,,,,,,,,,,,
calc_2,,,,,,,,,,,,,,,,,,,,,
cha_1,,,,,,,,,,,,,,,,,,,,,
cha_2,,,,,,,,,,,,,,,,,,,,,
cha_3,,,,,,,,,,,,,,,,,,,,,
cha_4,,,,,,,,,,,,,,,,,,,,,
cha_5,,,,,,,,,,,,,,,,,,,,,
cha_6,,,,,,,,,,,,,,,,,,,,,
cha_7,,,,,,,,,,,,,,,,,,,,,
cha_8,,,,,,,,,,,,,,,,,,,,,
carbon_3,,,,,,,,,,,,,,,,,,,,,
chab_1,,,,,,,,,,,,,,,,,,,,,
chab_2,,,,,,,,,,,,,,,,,,,,,
chab_3,,,,,,,,,,,,,,,,,,,,,
chats_6,,,,,,,,,,,,,,,,,,,,,
clan_1,,,,,,,,,,,,,,,,,,,,,
clan_2,,,,,,,,,,,,,,,,,,,,,
clan_3,,,,,,,,,,,,,,,,,,,,,
clan_4,,,,,,,,,,,,,,,,,,,,,
clan_5,,,,,,,,,,,,,,,,,,,,,
cvt_5,,,,,,,,,,,,,,,,,,,,,
cvt_6,,,,,,,,,,,,,,,,,,,,,
cvt_7,,,,,,,,,,,,,,,,,,,,,
cvt_8,,,,,,,,,,,,,,,,,,,,,
eod_1,,,,,,,,,,,,,,,,,,,,,
eod_2,,,,,,,,,,,,,,,,,,,,,
devs_1,,,,,,,,,,,,,,,,,,,,,
devs_2,,,,,,,,,,,,,,,,,,,,,
devs_3,,,,,,,,,,,,,,,,,,,,,
dm_1,,,,,,,,,,,,,,,,,,,,,
dm_2,,,,,,,,,,,,,,,,,,,,,
dm_3,,,,,,,,,,,,,,,,,,,,,
dm_4,,,,,,,,,,,,,,,,,,,,,
dm_5,,,,,,,,,,,,,,,,,,,,,
dm_6,,,,,,,,,,,,,,,,,,,,,
echo_1,,,,,,,,,,,,,,,,,,,,,
fka_1,,,,,,,,,,,,,,,,,,,,,
sf_22,,,,,,,,,,,,,,,,,,,,,
sf_23,,,,,,,,,,,,,,,,,,,,,
flr_1,,,,,,,,,,,,,,,,,,,,,
flr_2,,,,,,,,,,,,,,,,,,,,,
flr_3,,,,,,,,,,,,,,,,,,,,,
flr_4,,,,,,,,,,,,,,,,,,,,,
flr_5,,,,,,,,,,,,,,,,,,,,,
flr_6,,,,,,,,,,,,,,,,,,,,,
fgn_1,,,,,,,,,,,,,,,,,,,,,
fsub_1,,,,,,,,,,,,,,,,,,,,,
fsub_2,,,,,,,,,,,,,,,,,,,,,
fsub_3,,,,,,,,,,,,,,,,,,,,,
fsub_4,,,,,,,,,,,,,,,,,,,,,
fsub_5,,,,,,,,,,,,,,,,,,,,,
fsub_6,,,,,,,,,,,,,,,,,,,,,
fsub_7,,,,,,,,,,,,,,,,,,,,,
fsub_8,,,,,,,,,,,,,,,,,,,,,
ex_1,,,,,,,,,,,,,,,,,,,,,
gas_1,,,,,,,,,,,,,,,,,,,,,
grt_1,,,,,,,,,,,,,,,,,,,,,
grt_2,,,,,,,,,,,,,,,,,,,,,
grt_3,,,,,,,,,,,,,,,,,,,,,
grt_4,,,,,,,,,,,,,,,,,,,,,
grt_5,,,,,,,,,,,,,,,,,,,,,
grt_6,,,,,,,,,,,,,,,,,,,,,
grt_7,,,,,,,,,,,,,,,,,,,,,
glitch_1,,,,,,,,,,,,,,,,,,,,,
mdi_1,,,,,,,,,,,,,,,,,,,,,
nightm_1,,,,,,,,,,,,,,,,,,,,,
nightm_2,,,,,,,,,,,,,,,,,,,,,
nightm_3,,,,,,,,,,,,,,,,,,,,,
nightm_4,,,,,,,,,,,,,,,,,,,,,
nightm_5,,,,,,,,,,,,,,,,,,,,,
schdl_1,,,,,,,,,,,,,,,,,,,,,
schdl_2,,,,,,,,,,,,,,,,,,,,,
srch_1,,,,,,,,,,,,,,,,,,,,,
srch_2,,,,,,,,,,,,,,,,,,,,,
srch_3,,,,,,,,,,,,,,,,,,,,,
snip_1,,,,,,,,,,,,,,,,,,,,,
snip_2,,,,,,,,,,,,,,,,,,,,,
snip_3,,,,,,,,,,,,,,,,,,,,,
spcltool_1,,,,,,,,,,,,,,,,,,,,,
spcltool_2,,,,,,,,,,,,,,,,,,,,,
spcltool_3,,,,,,,,,,,,,,,,,,,,,
spcltool_4,,,,,,,,,,,,,,,,,,,,,
spcltool_5,,,,,,,,,,,,,,,,,,,,,
spcltool_6,,,,,,,,,,,,,,,,,,,,,
spcltool_7,,,,,,,,,,,,,,,,,,,,,
spcltool_8,,,,,,,,,,,,,,,,,,,,,
spcltool_9,,,,,,,,,,,,,,,,,,,,,
sudo_1,,,,,,,,,,,,,,,,,,,,,
sudo_2,,,,,,,,,,,,,,,,,,,,,
sudo_3,,,,,,,,,,,,,,,,,,,,,
sudo_4,,,,,,,,,,,,,,,,,,,,,
unspl_1,,,,,,,,,,,,,,,,,,,,,
upd_5,,,,,,,,,,,,,,,,,,,,,
upd_7,,,,,,,,,,,,,,,,,,,,,
udl_4,,,,,,,,,,,,,,,,,,,,,
udl_5,,,,,,,,,,,,,,,,,,,,,
udl_6,,,,,,,,,,,,,,,,,,,,,
udl_7,,,,,,,,,,,,,,,,,,,,,
vct_1,,,,,,,,,,,,,,,,,,,,,
vct_2,,,,,,,,,,,,,,,,,,,,,
vct_3,,,,,,,,,,,,,,,,,,,,,
vct_4,,,,,,,,,,,,,,,,,,,,,
vct_5,,,,,,,,,,,,,,,,,,,,,
vct_6,,,,,,,,,,,,,,,,,,,,,
wrd_1,,,,,,,,,,,,,,,,,,,,,
wrd_2,,,,,,,,,,,,,,,,,,,,,
wrd_3,,,,,,,,,,,,,,,,,,,,,
wrd_4,,,,,,,,,,,,,,,,,,,,,
wrd_5,,,,,,,,,,,,,,,,,,,,,
wrd_6,,,,,,,,,,,,,,,,,,,,,
wrd_7,,,,,,,,,,,,,,,,,,,,,
wrd_8,,,,,,,,,,,,,,,,,,,,,
prof_1,,,,,,,,,,,,,,,,,,,,,
prof_2,,,,,,,,,,,,,,,,,,,,,
notes_1,,,,,,,,,,,,,,,,,,,,,
notes_2,,,,,,,,,,,,,,,,,,,,,
notes_3,,,,,,,,,,,,,,,,,,,,,
notes_4,,,,,,,,,,,,,,,,,,,,,
notes_5,,,,,,,,,,,,,,,,,,,,,
sts_1,,,,,,,,,,,,,,,,,,,,,
sts_2,,,,,,,,,,,,,,,,,,,,,
sts_3,,,,,,,,,,,,,,,,,,,,,
sts_4,,,,,,,,,,,,,,,,,,,,,
sts_5,,,,,,,,,,,,,,,,,,,,,
sts_6,,,,,,,,,,,,,,,,,,,,,
sts_7,,,,,,,,,,,,,,,,,,,,,
sts_8,,,,,,,,,,,,,,,,,,,,,
sts_9,,,,,,,,,,,,,,,,,,,,,
sts_10,,,,,,,,,,,,,,,,,,,,,
sts_11,,,,,,,,,,,,,,,,,,,,,
sts_12,,,,,,,,,,,,,,,,,,,,,
sts_13,,,,,,,,,,,,,,,,,,,,,
whs_1,,,,,,,,,,,,,,,,,,,,,
whs_2,,,,,,,,,,,,,,,,,,,,,
whs_3,,,,,,,,,,,,,,,,,,,,,
whs_4,,,,,,,,,,,,,,,,,,,,,
wbl_1,,,,,,,,,,,,,,,,,,,,,
writer_1,,,,,,,,,,,,,,,,,,,,,
wbs_1,,,,,,,,,,,,,,,,,,,,,
wbs_2,,,,,,,,,,,,,,,,,,,,,
wbs_3,,,,,,,,,,,,,,,,,,,,,
youtube_1,,,,,,,,,,,,,,,,,,,,,
youtube_2,,,,,,,,,,,,,,,,,,,,,
youtube_3,,,,,,,,,,,,,,,,,,,,,
youtube_4,,,,,,,,,,,,,,,,,,,,,
youtube_5,,,,,,,,,,,,,,,,,,,,,
youtube_6,,,,,,,,,,,,,,,,,,,,,
youtube_7,,,,,,,,,,,,,,,,,,,,,
youtube_8,,,,,,,,,,,,,,,,,,,,,
zip_1,,,,,,,,,,,,,,,,,,,,,
zip_2,,,,,,,,,,,,,,,,,,,,,
zip_3,,,,,,,,,,,,,,,,,,,,,
fsh_1,,,,,,,,,,,,,,,,,,,,,
fsh_2,,,,,,,,,,,,,,,,,,,,,
fsh_3,,,,,,,,,,,,,,,,,,,,,
fsh_4,,,,,,,,,,,,,,,,,,,,,
instu_1,,,,,,,,,,,,,,,,,,,,,
instu_2,,,,,,,,,,,,,,,,,,,,,
instu_3,,,,,,,,,,,,,,,,,,,,,
instu_4,,,,,,,,,,,,,,,,,,,,,
games_1,,,,,,,,,,,,,,,,,,,,,
games_2,,,,,,,,,,,,,,,,,,,,,
games_3,,,,,,,,,,,,,,,,,,,,,
games_4,,,,,,,,,,,,,,,,,,,,,
games_5,,,,,,,,,,,,,,,,,,,,,
games_6,,,,,,,,,,,,,,,,,,,,,
clst_1,,,,,,,,,,,,,,,,,,,,,
clst_2,,,,,,,,,,,,,,,,,,,,,
clst_3,,,,,,,,,,,,,,,,,,,,,
clst_4,,,,,,,,,,,,,,,,,,,,,
clst_5,,,,,,,,,,,,,,,,,,,,,
pmbot_1,,,,,,,,,,,,,,,,,,,,,
pmbot_2,,,,,,,,,,,,,,,,,,,,,
pmbot_3,,,,,,,,,,,,,,,,,,,,,
pmbot_4,,,,,,,,,,,,,,,,,,,,,
pmbot_5,,,,,,,,,,,,,,,,,,,,,
pmbot_6,,,,,,,,,,,,,,,,,,,,,
pmbot_7,,,,,,,,,,,,,,,,,,,,,
vcbot_1,,,,,,,,,,,,,,,,,,,,,
vcbot_2,,,,,,,,,,,,,,,,,,,,,
vcbot_3,,,,,,,,,,,,,,,,,,,,,
vcbot_4,,,,,,,,,,,,,,,,,,,,,
vcbot_5,,,,,,,,,,,,,,,,,,,,,
vcbot_6,,,,,,,,,,,,,,,,,,,,,
vcbot_7,,,,,,,,,,,,,,,,,,,,,
vcbot_8,,,,,,,,,,,,,,,,,,,,,
vcbot_9,,,,,,,,,,,,,,,,,,,,,
vcbot_10,,,,,,,,,,,,,,,,,,,,,
vcbot_11,,,,,,,,,,,,,,,,,,,,,
vcbot_12,,,,,,,,,,,,,,,,,,,,,
vcbot_13,,,,,,,,,,,,,,,,,,,,,
vcbot_14,,,,,,,,,,,,,,,,,,,,,
vcbot_15,,,,,,,,,,,,,,,,,,,,,
vcbot_16,,,,,,,,,,,,,,,,,,,,,
vcbot_17,,,,,,,,,,,,,,,,,,,,,
vcbot_18,,,,,,,,,,,,,,,,,,,,,
vcbot_19,,,,,,,,,,,,,,,,,,,,,
vcbot_20,,,,,,,,,,,,,,,,,,,,,
vcbot_21,,,,,,,,,,,,,,,,,,,,,
vcbot_22,,,,,,,,,,,,,,,,,,,,,
-,Arabic,Azerbaijan,Bengali,Chinese,Spanish,Persian,French,Gujarati,Hindi,Indonesia,Italian,Japanese,Kannada,Malayalam,Marathi,Malay,Odia,Portuguese,Russian,sinhala,தமிழ்,Turkish
com_3,,,,,,,,,,,,,,,,,,,,,,
com_4,,,,,,,,,,,,,,,,,,,,,,
com_5,,,,,,,,,,,,,,,,,,,,,,
com_6,,,,,,,,,,,,,,,,,,,,,,
com_7,,,,,,,,,,,,,,,,,,,,,,
can_1,,,,,,,,,,,,,,,,,,,,,,
can_2,,,,,,,,,,,,,,,,,,,,,,
can_3,,,,,,,,,,,,,,,,,,,,,,
can_4,,,,,,,,,,,,,,,,,,,,,,
help_4,,,,,,,,,,,,,,,,,,,,,,
help_5,,,,,,,,,,,,,,,,,,,,,,
help_6,,,,,,,,,,,,,,,,,,,,,,
help_7,,,,,,,,,,,,,,,,,,,,,,
help_8,,,,,,,,,,,,,,,,,,,,,,
help_9,,,,,,,,,,,,,,,,,,,,,,
help_10,,,,,,,,,,,,,,,,,,,,,,
help_11,,,,,,,,,,,,,,,,,,,,,,
help_12,,,,,,,,,,,,,,,,,,,,,,
help_13,,,,,,,,,,,,,,,,,,,,,,
userlogs_1,,,,,,,,,,,,,,,,,,,,,,
userlogs_2,,,,,,,,,,,,,,,,,,,,,,
userlogs_3,,,,,,,,,,,,,,,,,,,,,,
userlogs_4,,,,,,,,,,,,,,,,,,,,,,
userlogs_5,,,,,,,,,,,,,,,,,,,,,,
adm_1,,,,,,,,,,,,,,,,,,,,,,
adm_2,,,,,,,,,,,,,,,,,,,,,,
adm_3,,,,,,,,,,,,,,,,,,,,,,
pro_1,,,,,,,,,,,,,,,,,,,,,,
pro_2,,,,,,,,,,,,,,,,,,,,,,
de_1,,,,,,,,,,,,,,,,,,,,,,
de_2,,,,,,,,,,,,,,,,,,,,,,
ban_1,,,,,,,,,,,,,,,,,,,,,,
ban_2,,,,,,,,,,,,,,,,,,,,,,
ban_3,,,,,,,,,,,,,,,,,,,,,,
ban_4,,,,,,,,,,,,,,,,,,,,,,
ban_5,,,,,,,,,,,,,,,,,,,,,,
tban_1,,,,,,,,,,,,,,,,,,,,,,
tban_2,,,,,,,,,,,,,,,,,,,,,,
unban_1,,,,,,,,,,,,,,,,,,,,,,
unban_2,,,,,,,,,,,,,,,,,,,,,,
unban_3,,,,,,,,,,,,,,,,,,,,,,
kick_1,,,,,,,,,,,,,,,,,,,,,,
kick_2,,,,,,,,,,,,,,,,,,,,,,
kick_3,,,,,,,,,,,,,,,,,,,,,,
kick_4,,,,,,,,,,,,,,,,,,,,,,
pin_1,,,,,,,,,,,,,,,,,,,,,,
pinned_1,,,,,,,,,,,,,,,,,,,,,,
pinned_2,,,,,,,,,,,,,,,,,,,,,,
unpin_1,,,,,,,,,,,,,,,,,,,,,,
listpin_1,,,,,,,,,,,,,,,,,,,,,,
purge_1,,,,,,,,,,,,,,,,,,,,,,
purgeall_1,,,,,,,,,,,,,,,,,,,,,,
purgeall_2,,,,,,,,,,,,,,,,,,,,,,
aki_1,,,,,,,,,,,,,,,,,,,,,,
aki_2,,,,,,,,,,,,,,,,,,,,,,
aki_3,,,,,,,,,,,,,,,,,,,,,,
antiflood_1,,,,,,,,,,,,,,,,,,,,,,
antiflood_2,,,,,,,,,,,,,,,,,,,,,,
antiflood_3,,,,,,,,,,,,,,,,,,,,,,
antiflood_4,,,,,,,,,,,,,,,,,,,,,,
antiflood_5,,,,,,,,,,,,,,,,,,,,,,
ascii_1,,,,,,,,,,,,,,,,,,,,,,
ascii_2,,,,,,,,,,,,,,,,,,,,,,
audiotools_1,,,,,,,,,,,,,,,,,,,,,,
audiotools_2,,,,,,,,,,,,,,,,,,,,,,
audiotools_3,,,,,,,,,,,,,,,,,,,,,,
audiotools_4,,,,,,,,,,,,,,,,,,,,,,
audiotools_5,,,,,,,,,,,,,,,,,,,,,,
audiotools_6,,,,,,,,,,,,,,,,,,,,,,
audiotools_7,,,,,,,,,,,,,,,,,,,,,,
audiotools_8,,,,,,,,,,,,,,,,,,,,,,
audiotools_9,,,,,,,,,,,,,,,,,,,,,,
audiotools_10,,,,,,,,,,,,,,,,,,,,,,
asstcmd_1,,,,,,,,,,,,,,,,,,,,,,
asstcmd_2,,,,,,,,,,,,,,,,,,,,,,
asstcmd_3,,,,,,,,,,,,,,,,,,,,,,
asstcmd_4,,,,,,,,,,,,,,,,,,,,,,
asstcmd_5,,,,,,,,,,,,,,,,,,,,,,
asstcmd_6,,,,,,,,,,,,,,,,,,,,,,
act_1,,,,,,,,,,,,,,,,,,,,,,
act_2,,,,,,,,,,,,,,,,,,,,,,
autopic_4,,,,,,,,,,,,,,,,,,,,,,
autopic_5,,,,,,,,,,,,,,,,,,,,,,
inline_6,,,,,,,,,,,,,,,,,,,,,,
inline_7,,,,,,,,,,,,,,,,,,,,,,
inline_8,,,,,,,,,,,,,,,,,,,,,,
inline_9,,,,,,,,,,,,,,,,,,,,,,
wspr_3,,,,,,,,,,,,,,,,,,,,,,
wspr_4,,,,,,,,,,,,,,,,,,,,,,
wspr_5,,,,,,,,,,,,,,,,,,,,,,
afk_1,,,,,,,,,,,,,,,,,,,,,,
afk_2,,,,,,,,,,,,,,,,,,,,,,
afk_3,,,,,,,,,,,,,,,,,,,,,,
afk_4,,,,,,,,,,,,,,,,,,,,,,
afk_5,,,,,,,,,,,,,,,,,,,,,,
afk_6,,,,,,,,,,,,,,,,,,,,,,
bot_1,,,,,,,,,,,,,,,,,,,,,,
bot_2,,,,,,,,,,,,,,,,,,,,,,
bot_3,,,,,,,,,,,,,,,,,,,,,,
bot_4,,,,,,,,,,,,,,,,,,,,,,
bot_5,,,,,,,,,,,,,,,,,,,,,,
alive_1,,,,,,,,,,,,,,,,,,,,,,
log,,,,,,,,,,,,,,,,,,,,,,
ping,,,,,,,,,,,,,,,,,,,,,,
usage,,,,,,,,,,,,,,,,,,,,,,
usage_simple,,,,,,,,,,,,,,,,,,,,,,
shutdown,,,,,,,,,,,,,,,,,,,,,,
blk_1,,,,,,,,,,,,,,,,,,,,,,
blk_2,,,,,,,,,,,,,,,,,,,,,,
blk_3,,,,,,,,,,,,,,,,,,,,,,
blk_4,,,,,,,,,,,,,,,,,,,,,,
blk_5,,,,,,,,,,,,,,,,,,,,,,
blk_6,,,,,,,,,,,,,,,,,,,,,,
bd_1,,,,,,,,,,,,,,,,,,,,,,
bd_2,,,,,,,,,,,,,,,,,,,,,,
bd_3,,,,,,,,,,,,,,,,,,,,,,
bd_4,,,,,,,,,,,,,,,,,,,,,,
bd_5,,,,,,,,,,,,,,,,,,,,,,
bd_6,,,,,,,,,,,,,,,,,,,,,,
bd_7,,,,,,,,,,,,,,,,,,,,,,
bd_8,,,,,,,,,,,,,,,,,,,,,,
bd_9,,,,,,,,,,,,,,,,,,,,,,
calc_1,,,,,,,,,,,,,,,,,,,,,,
calc_2,,,,,,,,,,,,,,,,,,,,,,
cha_1,,,,,,,,,,,,,,,,,,,,,,
cha_2,,,,,,,,,,,,,,,,,,,,,,
cha_3,,,,,,,,,,,,,,,,,,,,,,
cha_4,,,,,,,,,,,,,,,,,,,,,,
cha_5,,,,,,,,,,,,,,,,,,,,,,
cha_6,,,,,,,,,,,,,,,,,,,,,,
cha_7,,,,,,,,,,,,,,,,,,,,,,
cha_8,,,,,,,,,,,,,,,,,,,,,,
carbon_1,,,,,,,,,,,,,,,,,,,,,,
carbon_2,,,,,,,,,,,,,,,,,,,,,,
carbon_3,,,,,,,,,,,,,,,,,,,,,,
chab_1,,,,,,,,,,,,,,,,,,,,,,
chab_2,,,,,,,,,,,,,,,,,,,,,,
chab_3,,,,,,,,,,,,,,,,,,,,,,
chats_1,,,,,,,,,,,,,,,,,,,,,,
chats_2,,,,,,,,,,,,,,,,,,,,,,
chats_3,,,,,,,,,,,,,,,,,,,,,,
chats_4,,,,,,,,,,,,,,,,,,,,,,
chats_5,,,,,,,,,,,,,,,,,,,,,,
chats_6,,,,,,,,,,,,,,,,,,,,,,
clan_1,,,,,,,,,,,,,,,,,,,,,,
clan_2,,,,,,,,,,,,,,,,,,,,,,
clan_3,,,,,,,,,,,,,,,,,,,,,,
clan_4,,,,,,,,,,,,,,,,,,,,,,
clan_5,,,,,,,,,,,,,,,,,,,,,,
cvt_1,,,,,,,,,,,,,,,,,,,,,,
cvt_2,,,,,,,,,,,,,,,,,,,,,,
cvt_3,,,,,,,,,,,,,,,,,,,,,,
cvt_4,,,,,,,,,,,,,,,,,,,,,,
cvt_5,,,,,,,,,,,,,,,,,,,,,,
cvt_6,,,,,,,,,,,,,,,,,,,,,,
cvt_7,,,,,,,,,,,,,,,,,,,,,,
cvt_8,,,,,,,,,,,,,,,,,,,,,,
eod_1,,,,,,,,,,,,,,,,,,,,,,
eod_2,,,,,,,,,,,,,,,,,,,,,,
core_1,,,,,,,,,,,,,,,,,,,,,,
core_2,,,,,,,,,,,,,,,,,,,,,,
core_3,,,,,,,,,,,,,,,,,,,,,,
core_4,,,,,,,,,,,,,,,,,,,,,,
core_5,,,,,,,,,,,,,,,,,,,,,,
core_6,,,,,,,,,,,,,,,,,,,,,,
core_7,,,,,,,,,,,,,,,,,,,,,,
core_8,,,,,,,,,,,,,,,,,,,,,,
core_9,,,,,,,,,,,,,,,,,,,,,,
core_10,,,,,,,,,,,,,,,,,,,,,,
core_11,,,,,,,,,,,,,,,,,,,,,,
core_12,,,,,,,,,,,,,,,,,,,,,,
core_13,,,,,,,,,,,,,,,,,,,,,,
core_14,,,,,,,,,,,,,,,,,,,,,,
core_15,,,,,,,,,,,,,,,,,,,,,,
core_16,,,,,,,,,,,,,,,,,,,,,,
core_17,,,,,,,,,,,,,,,,,,,,,,
core_18,,,,,,,,,,,,,,,,,,,,,,
devs_1,,,,,,,,,,,,,,,,,,,,,,
devs_2,,,,,,,,,,,,,,,,,,,,,,
devs_3,,,,,,,,,,,,,,,,,,,,,,
dm_1,,,,,,,,,,,,,,,,,,,,,,
dm_2,,,,,,,,,,,,,,,,,,,,,,
dm_3,,,,,,,,,,,,,,,,,,,,,,
dm_4,,,,,,,,,,,,,,,,,,,,,,
dm_5,,,,,,,,,,,,,,,,,,,,,,
dm_6,,,,,,,,,,,,,,,,,,,,,,
echo_1,,,,,,,,,,,,,,,,,,,,,,
fka_1,,,,,,,,,,,,,,,,,,,,,,
sf_1,,,,,,,,,,,,,,,,,,,,,,
sf_2,,,,,,,,,,,,,,,,,,,,,,
sf_3,,,,,,,,,,,,,,,,,,,,,,
sf_4,,,,,,,,,,,,,,,,,,,,,,
sf_5,,,,,,,,,,,,,,,,,,,,,,
sf_6,,,,,,,,,,,,,,,,,,,,,,
sf_7,,,,,,,,,,,,,,,,,,,,,,
sf_8,,,,,,,,,,,,,,,,,,,,,,
sf_9,,,,,,,,,,,,,,,,,,,,,,
sf_10,,,,,,,,,,,,,,,,,,,,,,
sf_11,,,,,,,,,,,,,,,,,,,,,,
sf_12,,,,,,,,,,,,,,,,,,,,,,
sf_13,,,,,,,,,,,,,,,,,,,,,,
sf_14,,,,,,,,,,,,,,,,,,,,,,
sf_15,,,,,,,,,,,,,,,,,,,,,,
sf_16,,,,,,,,,,,,,,,,,,,,,,
sf_17,,,,,,,,,,,,,,,,,,,,,,
sf_18,,,,,,,,,,,,,,,,,,,,,,
sf_19,,,,,,,,,,,,,,,,,,,,,,
sf_20,,,,,,,,,,,,,,,,,,,,,,
sf_21,,,,,,,,,,,,,,,,,,,,,,
sf_22,,,,,,,,,,,,,,,,,,,,,,
sf_23,,,,,,,,,,,,,,,,,,,,,,
flr_1,,,,,,,,,,,,,,,,,,,,,,
flr_2,,,,,,,,,,,,,,,,,,,,,,
flr_3,,,,,,,,,,,,,,,,,,,,,,
flr_4,,,,,,,,,,,,,,,,,,,,,,
flr_5,,,,,,,,,,,,,,,,,,,,,,
flr_6,,,,,,,,,,,,,,,,,,,,,,
fgn_1,,,,,,,,,,,,,,,,,,,,,,
fsub_1,,,,,,,,,,,,,,,,,,,,,,
fsub_2,,,,,,,,,,,,,,,,,,,,,,
fsub_3,,,,,,,,,,,,,,,,,,,,,,
fsub_4,,,,,,,,,,,,,,,,,,,,,,
fsub_5,,,,,,,,,,,,,,,,,,,,,,
fsub_6,,,,,,,,,,,,,,,,,,,,,,
fsub_7,,,,,,,,,,,,,,,,,,,,,,
fsub_8,,,,,,,,,,,,,,,,,,,,,,
ex_1,,,,,,,,,,,,,,,,,,,,,,
gdrive_1,,,,,,,,,,,,,,,,,,,,,,
gdrive_2,,,,,,,,,,,,,,,,,,,,,,
gdrive_3,,,,,,,,,,,,,,,,,,,,,,
gdrive_4,,,,,,,,,,,,,,,,,,,,,,
gdrive_5,,,,,,,,,,,,,,,,,,,,,,
gdrive_6,,,,,,,,,,,,,,,,,,,,,,
gdrive_7,,,,,,,,,,,,,,,,,,,,,,
gas_1,,,,,,,,,,,,,,,,,,,,,,
grt_1,,,,,,,,,,,,,,,,,,,,,,
grt_2,,,,,,,,,,,,,,,,,,,,,,
grt_3,,,,,,,,,,,,,,,,,,,,,,
grt_4,,,,,,,,,,,,,,,,,,,,,,
grt_5,,,,,,,,,,,,,,,,,,,,,,
grt_6,,,,,,,,,,,,,,,,,,,,,,
grt_7,,,,,,,,,,,,,,,,,,,,,,
glitch_1,,,,,,,,,,,,,,,,,,,,,,
mdi_1,,,,,,,,,,,,,,,,,,,,,,
nightm_1,,,,,,,,,,,,,,,,,,,,,,
nightm_2,,,,,,,,,,,,,,,,,,,,,,
nightm_3,,,,,,,,,,,,,,,,,,,,,,
nightm_4,,,,,,,,,,,,,,,,,,,,,,
nightm_5,,,,,,,,,,,,,,,,,,,,,,
pmperm_1,,,,,,,,,,,,,,,,,,,,,,
pmperm_2,,,,,,,,,,,,,,,,,,,,,,
pmperm_3,,,,,,,,,,,,,,,,,,,,,,
schdl_1,,,,,,,,,,,,,,,,,,,,,,
schdl_2,,,,,,,,,,,,,,,,,,,,,,
srch_1,,,,,,,,,,,,,,,,,,,,,,
srch_2,,,,,,,,,,,,,,,,,,,,,,
srch_3,,,,,,,,,,,,,,,,,,,,,,
snip_1,,,,,,,,,,,,,,,,,,,,,,
snip_2,,,,,,,,,,,,,,,,,,,,,,
snip_3,,,,,,,,,,,,,,,,,,,,,,
spcltool_1,,,,,,,,,,,,,,,,,,,,,,
spcltool_2,,,,,,,,,,,,,,,,,,,,,,
spcltool_3,,,,,,,,,,,,,,,,,,,,,,
spcltool_4,,,,,,,,,,,,,,,,,,,,,,
spcltool_5,,,,,,,,,,,,,,,,,,,,,,
spcltool_6,,,,,,,,,,,,,,,,,,,,,,
spcltool_7,,,,,,,,,,,,,,,,,,,,,,
spcltool_8,,,,,,,,,,,,,,,,,,,,,,
spcltool_9,,,,,,,,,,,,,,,,,,,,,,
sudo_1,,,,,,,,,,,,,,,,,,,,,,
sudo_2,,,,,,,,,,,,,,,,,,,,,,
sudo_3,,,,,,,,,,,,,,,,,,,,,,
sudo_4,,,,,,,,,,,,,,,,,,,,,,
unspl_1,,,,,,,,,,,,,,,,,,,,,,
upd_1,,,,,,,,,,,,,,,,,,,,,,
upd_2,,,,,,,,,,,,,,,,,,,,,,
upd_3,,,,,,,,,,,,,,,,,,,,,,
upd_4,,,,,,,,,,,,,,,,,,,,,,
upd_5,,,,,,,,,,,,,,,,,,,,,,
upd_6,,,,,,,,,,,,,,,,,,,,,,
upd_7,,,,,,,,,,,,,,,,,,,,,,
udl_1,,,,,,,,,,,,,,,,,,,,,,
udl_2,,,,,,,,,,,,,,,,,,,,,,
udl_3,,,,,,,,,,,,,,,,,,,,,,
udl_4,,,,,,,,,,,,,,,,,,,,,,
udl_5,,,,,,,,,,,,,,,,,,,,,,
udl_6,,,,,,,,,,,,,,,,,,,,,,
udl_7,,,,,,,,,,,,,,,,,,,,,,
vct_1,,,,,,,,,,,,,,,,,,,,,,
vct_2,,,,,,,,,,,,,,,,,,,,,,
vct_3,,,,,,,,,,,,,,,,,,,,,,
vct_4,,,,,,,,,,,,,,,,,,,,,,
vct_5,,,,,,,,,,,,,,,,,,,,,,
vct_6,,,,,,,,,,,,,,,,,,,,,,
wrd_1,,,,,,,,,,,,,,,,,,,,,,
wrd_2,,,,,,,,,,,,,,,,,,,,,,
wrd_3,,,,,,,,,,,,,,,,,,,,,,
wrd_4,,,,,,,,,,,,,,,,,,,,,,
wrd_5,,,,,,,,,,,,,,,,,,,,,,
wrd_6,,,,,,,,,,,,,,,,,,,,,,
wrd_7,,,,,,,,,,,,,,,,,,,,,,
wrd_8,,,,,,,,,,,,,,,,,,,,,,
prof_1,,,,,,,,,,,,,,,,,,,,,,
prof_2,,,,,,,,,,,,,,,,,,,,,,
notes_1,,,,,,,,,,,,,,,,,,,,,,
notes_2,,,,,,,,,,,,,,,,,,,,,,
notes_3,,,,,,,,,,,,,,,,,,,,,,
notes_4,,,,,,,,,,,,,,,,,,,,,,
notes_5,,,,,,,,,,,,,,,,,,,,,,
sts_1,,,,,,,,,,,,,,,,,,,,,,
sts_2,,,,,,,,,,,,,,,,,,,,,,
sts_3,,,,,,,,,,,,,,,,,,,,,,
sts_4,,,,,,,,,,,,,,,,,,,,,,
sts_5,,,,,,,,,,,,,,,,,,,,,,
sts_6,,,,,,,,,,,,,,,,,,,,,,
sts_7,,,,,,,,,,,,,,,,,,,,,,
sts_8,,,,,,,,,,,,,,,,,,,,,,
sts_9,,,,,,,,,,,,,,,,,,,,,,
sts_10,,,,,,,,,,,,,,,,,,,,,,
sts_11,,,,,,,,,,,,,,,,,,,,,,
sts_12,,,,,,,,,,,,,,,,,,,,,,
sts_13,,,,,,,,,,,,,,,,,,,,,,
whs_1,,,,,,,,,,,,,,,,,,,,,,
whs_2,,,,,,,,,,,,,,,,,,,,,,
whs_3,,,,,,,,,,,,,,,,,,,,,,
whs_4,,,,,,,,,,,,,,,,,,,,,,
wbl_1,,,,,,,,,,,,,,,,,,,,,,
writer_1,,,,,,,,,,,,,,,,,,,,,,
wbs_1,,,,,,,,,,,,,,,,,,,,,,
wbs_2,,,,,,,,,,,,,,,,,,,,,,
wbs_3,,,,,,,,,,,,,,,,,,,,,,
youtube_1,,,,,,,,,,,,,,,,,,,,,,
youtube_2,,,,,,,,,,,,,,,,,,,,,,
youtube_3,,,,,,,,,,,,,,,,,,,,,,
youtube_4,,,,,,,,,,,,,,,,,,,,,,
youtube_5,,,,,,,,,,,,,,,,,,,,,,
youtube_6,,,,,,,,,,,,,,,,,,,,,,
youtube_7,,,,,,,,,,,,,,,,,,,,,,
youtube_8,,,,,,,,,,,,,,,,,,,,,,
zip_1,,,,,,,,,,,,,,,,,,,,,,
zip_2,,,,,,,,,,,,,,,,,,,,,,
zip_3,,,,,,,,,,,,,,,,,,,,,,
fsh_1,,,,,,,,,,,,,,,,,,,,,,
fsh_2,,,,,,,,,,,,,,,,,,,,,,
fsh_3,,,,,,,,,,,,,,,,,,,,,,
fsh_4,,,,,,,,,,,,,,,,,,,,,,
ast_1,,,,,,,,,,,,,,,,,,,,,,
ast_2,,,,,,,,,,,,,,,,,,,,,,
ast_3,,,,,,,,,,,,,,,,,,,,,,
instu_1,,,,,,,,,,,,,,,,,,,,,,
instu_2,,,,,,,,,,,,,,,,,,,,,,
instu_3,,,,,,,,,,,,,,,,,,,,,,
instu_4,,,,,,,,,,,,,,,,,,,,,,
games_1,,,,,,,,,,,,,,,,,,,,,,
games_2,,,,,,,,,,,,,,,,,,,,,,
games_3,,,,,,,,,,,,,,,,,,,,,,
games_4,,,,,,,,,,,,,,,,,,,,,,
games_5,,,,,,,,,,,,,,,,,,,,,,
games_6,,,,,,,,,,,,,,,,,,,,,,
clst_1,,,,,,,,,,,,,,,,,,,,,,
clst_2,,,,,,,,,,,,,,,,,,,,,,
clst_3,,,,,,,,,,,,,,,,,,,,,,
clst_4,,,,,,,,,,,,,,,,,,,,,,
clst_5,,,,,,,,,,,,,,,,,,,,,,
pmbot_1,,,,,,,,,,,,,,,,,,,,,,
pmbot_2,,,,,,,,,,,,,,,,,,,,,,
pmbot_3,,,,,,,,,,,,,,,,,,,,,,
pmbot_4,,,,,,,,,,,,,,,,,,,,,,
pmbot_5,,,,,,,,,,,,,,,,,,,,,,
pmbot_6,,,,,,,,,,,,,,,,,,,,,,
pmbot_7,,,,,,,,,,,,,,,,,,,,,,
rss_1,,,,,,,,,,,,,,,,,,,,,,
rss_2,,,,,,,,,,,,,,,,,,,,,,
rss_3,,,,,,,,,,,,,,,,,,,,,,
rss_4,,,,,,,,,,,,,,,,,,,,,,
rss_5,,,,,,,,,,,,,,,,,,,,,,
vcbot_1,,,,,,,,,,,,,,,,,,,,,,
vcbot_2,,,,,,,,,,,,,,,,,,,,,,
vcbot_3,,,,,,,,,,,,,,,,,,,,,,
vcbot_4,,,,,,,,,,,,,,,,,,,,,,
vcbot_5,,,,,,,,,,,,,,,,,,,,,,
vcbot_6,,,,,,,,,,,,,,,,,,,,,,
vcbot_7,,,,,,,,,,,,,,,,,,,,,,
vcbot_8,,,,,,,,,,,,,,,,,,,,,,
vcbot_9,,,,,,,,,,,,,,,,,,,,,,
vcbot_10,,,,,,,,,,,,,,,,,,,,,,
vcbot_11,,,,,,,,,,,,,,,,,,,,,,
vcbot_12,,,,,,,,,,,,,,,,,,,,,,
vcbot_13,,,,,,,,,,,,,,,,,,,,,,
vcbot_14,,,,,,,,,,,,,,,,,,,,,,
vcbot_15,,,,,,,,,,,,,,,,,,,,,,
vcbot_16,,,,,,,,,,,,,,,,,,,,,,
vcbot_17,,,,,,,,,,,,,,,,,,,,,,
vcbot_18,,,,,,,,,,,,,,,,,,,,,,
vcbot_19,,,,,,,,,,,,,,,,,,,,,,
vcbot_20,,,,,,,,,,,,,,,,,,,,,,
vcbot_21,,,,,,,,,,,,,,,,,,,,,,
vcbot_22,,,,,,,,,,,,,,,,,,,,,,
1 - Arabic Azerbaijan Bengali Chinese Spanish Persian French Gujarati Hindi Indonesia Italian Japanese Kannada Malayalam Marathi Malay Odia Portuguese Russian sinhala தமிழ் Turkish
2 com_3
3 com_4
4 com_5
5 com_6
6 com_7
7 can_1
8 can_2
9 can_3
10 can_4
11 help_4
12 help_5
13 help_6
14 help_7
15 help_8
16 help_9
17 help_10
18 help_11
19 help_12
20 help_13
21 userlogs_1
22 userlogs_2
23 userlogs_3
24 userlogs_4
25 userlogs_5
26 adm_1
27 adm_2
28 adm_3
29 pro_1
30 pro_2
31 de_1
32 de_2
33 ban_1
34 ban_2
35 ban_3
36 ban_4
37 ban_5
38 tban_1
39 tban_2
40 unban_1
41 unban_2
42 unban_3
43 kick_1
44 kick_2
45 kick_3
46 kick_4
47 pin_1
48 pinned_1
49 pinned_2
50 unpin_1
51 listpin_1
52 purge_1
53 purgeall_1
54 purgeall_2
55 aki_1
56 aki_2
57 aki_3
58 antiflood_1
59 antiflood_2
60 antiflood_3
61 antiflood_4
62 antiflood_5
63 ascii_1
64 ascii_2
65 audiotools_1
66 audiotools_2
67 audiotools_3
68 audiotools_4
69 audiotools_5
70 audiotools_6
71 audiotools_7
72 audiotools_8
73 audiotools_9
74 audiotools_10
75 asstcmd_1
76 asstcmd_2
77 asstcmd_3
78 asstcmd_4
79 asstcmd_5
80 asstcmd_6
81 act_1
82 act_2
83 autopic_4
84 autopic_5
85 inline_6
86 inline_7
87 inline_8
88 inline_9
89 wspr_3
90 wspr_4
91 wspr_5
92 bot_1 afk_1
93 bot_2 afk_2
94 bot_3 afk_3
95 bot_4 afk_4
96 bot_5 afk_5
97 log afk_6
98 ping bot_1
99 usage bot_2
100 usage_simple bot_3
101 shutdown bot_4
102 blk_1 bot_5
103 blk_2 alive_1
104 blk_3 log
105 blk_4 ping
106 blk_5 usage
107 blk_6 usage_simple
108 bd_7 shutdown
109 bd_8 blk_1
110 bd_9 blk_2
111 calc_1 blk_3
112 calc_2 blk_4
113 cha_1 blk_5
114 cha_2 blk_6
115 cha_3 bd_1
116 cha_4 bd_2
117 cha_5 bd_3
118 cha_6 bd_4
119 cha_7 bd_5
120 cha_8 bd_6
121 carbon_3 bd_7
122 chab_1 bd_8
123 chab_2 bd_9
124 chab_3 calc_1
125 chats_6 calc_2
126 clan_1 cha_1
127 clan_2 cha_2
128 clan_3 cha_3
129 clan_4 cha_4
130 clan_5 cha_5
131 cvt_5 cha_6
132 cvt_6 cha_7
133 cvt_7 cha_8
134 cvt_8 carbon_1
135 eod_1 carbon_2
136 eod_2 carbon_3
137 devs_1 chab_1
138 devs_2 chab_2
139 devs_3 chab_3
140 dm_1 chats_1
141 dm_2 chats_2
142 dm_3 chats_3
143 dm_4 chats_4
144 dm_5 chats_5
145 dm_6 chats_6
146 echo_1 clan_1
147 fka_1 clan_2
148 sf_22 clan_3
149 sf_23 clan_4
150 flr_1 clan_5
151 flr_2 cvt_1
152 flr_3 cvt_2
153 flr_4 cvt_3
154 flr_5 cvt_4
155 flr_6 cvt_5
156 fgn_1 cvt_6
157 fsub_1 cvt_7
158 fsub_2 cvt_8
159 fsub_3 eod_1
160 fsub_4 eod_2
161 fsub_5 core_1
162 fsub_6 core_2
163 fsub_7 core_3
164 fsub_8 core_4
165 ex_1 core_5
166 gas_1 core_6
167 grt_1 core_7
168 grt_2 core_8
169 grt_3 core_9
170 grt_4 core_10
171 grt_5 core_11
172 grt_6 core_12
173 grt_7 core_13
174 glitch_1 core_14
175 mdi_1 core_15
176 nightm_1 core_16
177 nightm_2 core_17
178 nightm_3 core_18
179 nightm_4 devs_1
180 nightm_5 devs_2
181 schdl_1 devs_3
182 schdl_2 dm_1
183 srch_1 dm_2
184 srch_2 dm_3
185 srch_3 dm_4
186 snip_1 dm_5
187 snip_2 dm_6
188 snip_3 echo_1
189 spcltool_1 fka_1
190 spcltool_2 sf_1
191 spcltool_3 sf_2
192 spcltool_4 sf_3
193 spcltool_5 sf_4
194 spcltool_6 sf_5
195 spcltool_7 sf_6
196 spcltool_8 sf_7
197 spcltool_9 sf_8
198 sudo_1 sf_9
199 sudo_2 sf_10
200 sudo_3 sf_11
201 sudo_4 sf_12
202 unspl_1 sf_13
203 upd_5 sf_14
204 upd_7 sf_15
205 udl_4 sf_16
206 udl_5 sf_17
207 udl_6 sf_18
208 udl_7 sf_19
209 vct_1 sf_20
210 vct_2 sf_21
211 vct_3 sf_22
212 vct_4 sf_23
213 vct_5 flr_1
214 vct_6 flr_2
215 wrd_1 flr_3
216 wrd_2 flr_4
217 wrd_3 flr_5
218 wrd_4 flr_6
219 wrd_5 fgn_1
220 wrd_6 fsub_1
221 wrd_7 fsub_2
222 wrd_8 fsub_3
223 prof_1 fsub_4
224 prof_2 fsub_5
225 notes_1 fsub_6
226 notes_2 fsub_7
227 notes_3 fsub_8
228 notes_4 ex_1
229 notes_5 gdrive_1
230 sts_1 gdrive_2
231 sts_2 gdrive_3
232 sts_3 gdrive_4
233 sts_4 gdrive_5
234 sts_5 gdrive_6
235 sts_6 gdrive_7
236 sts_7 gas_1
237 sts_8 grt_1
238 sts_9 grt_2
239 sts_10 grt_3
240 sts_11 grt_4
241 sts_12 grt_5
242 sts_13 grt_6
243 whs_1 grt_7
244 whs_2 glitch_1
245 whs_3 mdi_1
246 whs_4 nightm_1
247 wbl_1 nightm_2
248 writer_1 nightm_3
249 wbs_1 nightm_4
250 wbs_2 nightm_5
251 wbs_3 pmperm_1
252 youtube_1 pmperm_2
253 youtube_2 pmperm_3
254 youtube_3 schdl_1
255 youtube_4 schdl_2
256 youtube_5 srch_1
257 youtube_6 srch_2
258 youtube_7 srch_3
259 youtube_8 snip_1
260 zip_1 snip_2
261 zip_2 snip_3
262 zip_3 spcltool_1
263 fsh_1 spcltool_2
264 fsh_2 spcltool_3
265 fsh_3 spcltool_4
266 fsh_4 spcltool_5
267 instu_1 spcltool_6
268 instu_2 spcltool_7
269 instu_3 spcltool_8
270 instu_4 spcltool_9
271 games_1 sudo_1
272 games_2 sudo_2
273 games_3 sudo_3
274 games_4 sudo_4
275 games_5 unspl_1
276 games_6 upd_1
277 clst_1 upd_2
278 clst_2 upd_3
279 clst_3 upd_4
280 clst_4 upd_5
281 clst_5 upd_6
282 pmbot_1 upd_7
283 pmbot_2 udl_1
284 pmbot_3 udl_2
285 pmbot_4 udl_3
286 pmbot_5 udl_4
287 pmbot_6 udl_5
288 pmbot_7 udl_6
289 vcbot_1 udl_7
290 vcbot_2 vct_1
291 vcbot_3 vct_2
292 vcbot_4 vct_3
293 vcbot_5 vct_4
294 vcbot_6 vct_5
295 vcbot_7 vct_6
296 vcbot_8 wrd_1
297 vcbot_9 wrd_2
298 vcbot_10 wrd_3
299 vcbot_11 wrd_4
300 vcbot_12 wrd_5
301 vcbot_13 wrd_6
302 vcbot_14 wrd_7
303 vcbot_15 wrd_8
304 vcbot_16 prof_1
305 vcbot_17 prof_2
306 vcbot_18 notes_1
307 vcbot_19 notes_2
308 vcbot_20 notes_3
309 vcbot_21 notes_4
310 vcbot_22 notes_5
311 sts_1
312 sts_2
313 sts_3
314 sts_4
315 sts_5
316 sts_6
317 sts_7
318 sts_8
319 sts_9
320 sts_10
321 sts_11
322 sts_12
323 sts_13
324 whs_1
325 whs_2
326 whs_3
327 whs_4
328 wbl_1
329 writer_1
330 wbs_1
331 wbs_2
332 wbs_3
333 youtube_1
334 youtube_2
335 youtube_3
336 youtube_4
337 youtube_5
338 youtube_6
339 youtube_7
340 youtube_8
341 zip_1
342 zip_2
343 zip_3
344 fsh_1
345 fsh_2
346 fsh_3
347 fsh_4
348 ast_1
349 ast_2
350 ast_3
351 instu_1
352 instu_2
353 instu_3
354 instu_4
355 games_1
356 games_2
357 games_3
358 games_4
359 games_5
360 games_6
361 clst_1
362 clst_2
363 clst_3
364 clst_4
365 clst_5
366 pmbot_1
367 pmbot_2
368 pmbot_3
369 pmbot_4
370 pmbot_5
371 pmbot_6
372 pmbot_7
373 rss_1
374 rss_2
375 rss_3
376 rss_4
377 rss_5
378 vcbot_1
379 vcbot_2
380 vcbot_3
381 vcbot_4
382 vcbot_5
383 vcbot_6
384 vcbot_7
385 vcbot_8
386 vcbot_9
387 vcbot_10
388 vcbot_11
389 vcbot_12
390 vcbot_13
391 vcbot_14
392 vcbot_15
393 vcbot_16
394 vcbot_17
395 vcbot_18
396 vcbot_19
397 vcbot_20
398 vcbot_21
399 vcbot_22

View File

@@ -13,32 +13,7 @@ except ImportError:
try:
from yaml import safe_load
except ModuleNotFoundError:
def _get_value(stri):
try:
value = eval(stri.strip())
except Exception as er:
LOGS.debug(er)
value = stri.strip()
return value
def safe_load(file, *args, **kwargs):
read = file.readlines()
out = {}
for line in read:
if ":" in line: # Ignores Empty & Invalid lines
spli = line.split(":", maxsplit=1)
key = spli[0].strip()
value = _get_value(spli[1])
out.update({key: value or []})
elif "-" in line:
spli = line.split("-", maxsplit=1)
where = out[list(out.keys())[-1]]
if isinstance(where, list):
value = _get_value(spli[1])
if value:
where.append(value)
return out
from pyUltroid.functions.tools import safe_load
language = [udB.get_key("language") or "en"]
languages = {}

View File

@@ -230,6 +230,8 @@ upd_2: "`┇أوبــس .. الــمــحــدث غــيــر قــادر
upd_3: "**┇يــتــوفــر تــحــديــث جــديــد لــ [[{}]]({}/tree/{}):\n\n**┇ســجــل الــتــغــيــيــرات \n\n{}"
upd_4: "`┇حــجــم ســجــل الــتــغــيــيــرات كــبــيــر جــداً , اعــرض الــمــلــف لــرؤيــتــه `"
upd_6: "\n`┇بــوتــك` **بــأخــر تــحــديــث** `بـــ` **[[{}]]({}/tree/{})**\n"
upd_5: "اضغط علي الزر بالاسفل للتحديث."
upd_7: "`جار التحديث السريع...`"
# upload download
udl_1: "`┇قــم بــالــرد عــلــى الــمــلــف / الــمــيــديــا الــمــراد تــحــمــيــلــهــا ♻️`"
@@ -294,7 +296,7 @@ bot_1: "مرحبا، انا علي قيد الحياة."
bot_2: "احصائيات"
bot_3: "Repo"
bot_4: "مجموعة المساعدة"
bot_5: "• `جار اعدة التشغيل...`"
bot_5: "• `جار إعادة التشغيل...`"
usage_simple: "**مساحة الذاكرة**: `{}`\n**المستخدم**: `{}`\n**المتاح**: `{}`\n\n**📊 البيانات المستخدمة 📊**\n**رفع**: `{}`\n**تنزيل**: `{}`\n\n**CPU**: `{}%`\n**RAM**: `{}%`\n**الذاكرة**: `{}%`"
blk_1: "`قم بإعطاء كلمة لحظرها..`"
blk_2: "تم حظر كلمة : `{}` هنا."
@@ -499,6 +501,13 @@ pmbot_5: "من فضلك قم بالرد علي احدهم لالغاء حظره.
pmbot_6: "هذ المستخدم لم يتم حظره ابدا!"
pmbot_7: "`مبروك! تم الغاء حظرك.`"
# rss feeds
rss_1: "`قم بإعطاء عنوان Rss لإضافته..`"
rss_2: "فشل تأكيد عنوان Rss\n__خطأ: {}__"
rss_3: "`لم يتم اضافة احداث Rss لهذه المحادثة.`"
rss_4: "`تم حذف احداث Rss من هذه المحادثة..`"
rss_5: "`تم الاضافة لهذه المحادثة بنجاح.`"
# vcbot
vcbot_1: "`تم مغادرة المحادثة الصوتية.`"
vcbot_2: "**حدث خطأ:**\n{}"

View File

@@ -2,7 +2,6 @@ name: English
natively: English
authors:
- karboncopy
- xditya
- rojserbest
- sppidy
@@ -55,7 +54,7 @@ pro_2: "{} `is now an admin in {} with title {}.`"
de_1: "`Reply to a user to demote him!`"
de_2: "{} `is no longer an admin in {}`"
ban_1: "`Reply to a user or give username to ban him!`"
ban_2: " `LoL, I can't Ban my Developer 😂`"
ban_2: " `Sorry, but I can't Ban my Developer 😂`"
ban_3: "`I don't have the right to ban a user.`"
ban_4: "{} **was banned by** {} **in** `{}`"
ban_5: "\n**Reason**: `{}`"
@@ -65,7 +64,7 @@ unban_1: "`Reply to a user or give username to unban him!`"
unban_2: "`I don't have the right to unban a user.`"
unban_3: "{} **was unbanned by** {} **in** `{}`"
kick_1: "`I don't have the right to kick a user.`"
kick_2: " `Lol, I can't Kick my Developer`😂"
kick_2: " `Sorry, but I can't Kick my Developer`😂"
kick_3: "`I Cant kick him ever...`"
kick_4: "{} **was kicked by** {} **in** `{}`"
pin_1: "`Reply to a message to pin it!`"
@@ -535,6 +534,13 @@ pmbot_5: "Please reply to someone to Unban him."
pmbot_6: "User was never banned!"
pmbot_7: "`Congrats! You have been unbanned.`"
# rss feeds
rss_1: "`Provide Rss url to add..`"
rss_2: "Failed to verify rss url\n__Error: {}__"
rss_3: "`No rss feed has been added to this chat.`"
rss_4: "`Removed rss feed from this chat..`"
rss_5: "`Successfully added to this chat.`"
# -------------------------- VcBot ------------------------------- #
vcbot_1: "`Left the voice chat.`"

View File

@@ -404,7 +404,9 @@ upd_1: "`Проверка обновлений, пожалуйста подож
upd_2: "`Упс.. Компонент обновления не может продолжить из-за ошибки`\n\n**LOGTRACE:**\n"
upd_3: "**Новое обновление доступно для [[{}]]({}/tree/{}):\n\nИзменения**\n\n{}"
upd_4: "`Список изменений слишком большой, откройте файл для просмотра изменений`"
upd_5: "Нажмите на кнопку ниже для обновления"
upd_6: "\n`Ваш бот` **актуален** `с` **[[{}]]({}/tree/{})**\n"
upd_7: "`Быстрое обновление...`"
#upload download
udl_1: "`Ответьте на сообщение с медиафайлом/документом которые вы хотите загрузить..`"