Ultroid v0.0.7 Fixes 24/05
ChangeLog - https://t.me/TheUltroid/44 Co-authored-by: Anonymous <69723581+New-dev0@users.noreply.github.com> Co-authored-by: Amit Sharma <48654350+buddhhu@users.noreply.github.com> Co-authored-by: 1Danish-00 <danish@ultroid.tech>
This commit is contained in:
6
app.json
6
app.json
@@ -16,11 +16,13 @@
|
||||
"env": {
|
||||
"API_ID": {
|
||||
"description": "You api id, from my.telegram.org or @ScrapperRoBot.",
|
||||
"value": ""
|
||||
"value": "",
|
||||
"required": false
|
||||
},
|
||||
"API_HASH": {
|
||||
"description": "You api hash, from my.telegram.org or @ScrapperRoBot.",
|
||||
"value": ""
|
||||
"value": "",
|
||||
"required": false
|
||||
},
|
||||
"SESSION": {
|
||||
"description": "Your session string. Can be added now, or after deploy. (The bot will NOT work without a session string!!)",
|
||||
|
||||
@@ -69,13 +69,18 @@ async def update(eve):
|
||||
if Var.HEROKU_API:
|
||||
import heroku3
|
||||
|
||||
heroku = heroku3.from_key(Var.HEROKU_API)
|
||||
heroku_app = None
|
||||
heroku_applications = heroku.apps()
|
||||
try:
|
||||
heroku = heroku3.from_key(Var.HEROKU_API)
|
||||
heroku_app = None
|
||||
heroku_applications = heroku.apps()
|
||||
except BaseException:
|
||||
return await eve.edit(
|
||||
"`Invalid Heroku credentials for updating userbot dyno.`"
|
||||
)
|
||||
for app in heroku_applications:
|
||||
if app.name == Var.HEROKU_APP_NAME:
|
||||
heroku_app = app
|
||||
if heroku_app is None:
|
||||
if not heroku_app:
|
||||
await eve.edit("`Invalid Heroku credentials for updating userbot dyno.`")
|
||||
repo.__del__()
|
||||
return
|
||||
@@ -99,18 +104,6 @@ async def update(eve):
|
||||
repo.__del__()
|
||||
return
|
||||
await eve.edit("`Successfully Updated!\nRestarting, please wait...`")
|
||||
elif Var.HEROKU_API is None:
|
||||
try:
|
||||
ups_rem.pull(ac_br)
|
||||
except GitCommandError:
|
||||
repo.git.reset("--hard", "FETCH_HEAD")
|
||||
await updateme_requirements()
|
||||
await eve.edit(
|
||||
"`Successfully Updated!\nBot is restarting... Wait for a second!`"
|
||||
)
|
||||
os.system("git pull"), os.system(
|
||||
"pip3.9 install -U -r requirements.txt"
|
||||
), os.execl(sys.executable, sys.executable, "-m", "pyUltroid")
|
||||
else:
|
||||
try:
|
||||
ups_rem.pull(ac_br)
|
||||
|
||||
@@ -30,7 +30,7 @@ except ModuleNotFoundError:
|
||||
|
||||
|
||||
start_time = time.time()
|
||||
ultroid_version = "v0.0.7"
|
||||
ultroid_version = "v0.0.7.1"
|
||||
OWNER_NAME = ultroid_bot.me.first_name
|
||||
OWNER_ID = ultroid_bot.me.id
|
||||
|
||||
|
||||
@@ -45,13 +45,6 @@ async def ult(ult):
|
||||
except BaseException:
|
||||
await eor(ult, "Error 🤔 occured.")
|
||||
else:
|
||||
# if BOT_MODE:
|
||||
# await ultroid_bot.send_message(
|
||||
# ult.chat_id,
|
||||
# f"Bot of {ultroid_bot.me.first_name}",
|
||||
# buttons=[Button.inline(text="Open Help", data="open")],
|
||||
# )
|
||||
# return
|
||||
try:
|
||||
results = await ultroid_bot.inline_query(tgbot, "ultd")
|
||||
except BotMethodInvalidError:
|
||||
|
||||
@@ -155,9 +155,10 @@ async def when_ultd_added_to_chat(event):
|
||||
async def leave_ch_at(event):
|
||||
cht = event.data_match.group(1).decode("UTF-8")
|
||||
ch_id, client = cht.split("|")
|
||||
name = (await event.get_chat()).title
|
||||
if client == "bot":
|
||||
name = (await asst.get_entity(int(ch_id))).title
|
||||
await asst.delete_dialog(int(ch_id))
|
||||
elif client == "user":
|
||||
name = (await ultroid_bot.get_entity(int(ch_id))).title
|
||||
await ultroid_bot.delete_dialog(int(ch_id))
|
||||
await event.edit(f"Left `{name}`")
|
||||
|
||||
@@ -38,7 +38,7 @@ import heroku3
|
||||
import requests
|
||||
from git import Repo
|
||||
from pyUltroid import __version__ as UltVer
|
||||
from telethon import __version__
|
||||
from telethon import __version__, events
|
||||
from telethon.errors.rpcerrorlist import ChatSendMediaForbiddenError
|
||||
|
||||
from . import *
|
||||
@@ -98,10 +98,14 @@ async def lol(ult):
|
||||
await eor(ult, als, link_preview=False)
|
||||
|
||||
|
||||
@ultroid_cmd(
|
||||
pattern="ping$",
|
||||
)
|
||||
@ultroid_bot.on(events.NewMessage(pattern=f"{HNDLR}ping"))
|
||||
async def _(event):
|
||||
if event.fwd_from:
|
||||
return
|
||||
if not event.sender_id == OWNER_ID:
|
||||
if not is_sudo(event.sender_id):
|
||||
if udB.get(OWNER_ID):
|
||||
return
|
||||
start = dt.now()
|
||||
x = await eor(event, "`Pong !`")
|
||||
end = dt.now()
|
||||
@@ -145,10 +149,13 @@ async def shutdownbot(ult):
|
||||
await shutdown(ult)
|
||||
|
||||
|
||||
@ultroid_cmd(
|
||||
pattern="logs",
|
||||
)
|
||||
async def get_logs(event):
|
||||
@ultroid_bot.on(events.NewMessage(pattern=f"{HNDLR}logs"))
|
||||
async def _(event):
|
||||
if event.fwd_from:
|
||||
return
|
||||
if not event.sender_id == OWNER_ID:
|
||||
if not is_sudo(event.sender_id):
|
||||
return
|
||||
try:
|
||||
opt = event.text.split(" ", maxsplit=1)[1]
|
||||
except IndexError:
|
||||
|
||||
@@ -78,6 +78,12 @@ async def _(e):
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.PIPE,
|
||||
)
|
||||
if proce.returncode is None:
|
||||
proce = await asyncio.create_subprocess_shell(
|
||||
f'ffmpeg -hide_banner -loglevel quiet -progress {progress} -i """{file.name}""" -preset ultrafast -vcodec libx265 -crf {crf} """{out}""" -y',
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.PIPE,
|
||||
)
|
||||
while proce.returncode != 0:
|
||||
await asyncio.sleep(3)
|
||||
with open(progress, "r+") as fil:
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
|
||||
• `{i}eval <cmds>`
|
||||
Evaluate python commands on telegram.
|
||||
Shortcuts:
|
||||
client = bot = event.client
|
||||
e = event
|
||||
p = print
|
||||
reply = await event.get_reply_message()
|
||||
chat = event.chat_id
|
||||
|
||||
• `{i}sysinfo`
|
||||
Shows System Info.
|
||||
@@ -163,15 +169,15 @@ async def _(event):
|
||||
|
||||
|
||||
async def aexec(code, event):
|
||||
e = message = event
|
||||
client = event.client
|
||||
exec(
|
||||
f"async def __aexec(e, client): "
|
||||
+ "\n message = event = e"
|
||||
+ "\n reply = await event.get_reply_message()"
|
||||
+ "\n chat = e.chat_id"
|
||||
+ "".join(f"\n {l}" for l in code.split("\n")),
|
||||
)
|
||||
|
||||
return await locals()["__aexec"](e, e.client)
|
||||
return await locals()["__aexec"](event, event.client)
|
||||
|
||||
|
||||
HELP.update({f"{__name__.split('.')[1]}": f"{__doc__.format(i=HNDLR)}"})
|
||||
|
||||
@@ -35,14 +35,14 @@ async def evalJs(
|
||||
os.system(f"node ./src/ecmaHelper/eval.d.js")
|
||||
if os.path.exists("./src/ecmaHelper/evalJs.result.d.txt"):
|
||||
await ultroid_bot.send_file(
|
||||
event.chat.id,
|
||||
event.chat_id,
|
||||
"./src/ecmaHelper/evalJs.result.d.txt",
|
||||
force_document=True,
|
||||
caption=f"**☞ evalJS\n\n• Command:**\n`{command}` \n\n**• TimeTaken:**\n`{time.time() - startTime:.2f}s` \n\n**• Result:**\n`[Info]: Uploaded File For Better Visualisation Of Indents.`",
|
||||
)
|
||||
else:
|
||||
await ultroid_bot.send_file(
|
||||
event.chat.id,
|
||||
event.chat_id,
|
||||
"./src/ecmaHelper/evalJs.result.d.txt",
|
||||
force_document=True,
|
||||
caption=f"**☞ evalJS\n\n• Command:**\n`{command}` \n\n**• TimeTaken:**\n`{time.time() - startTime:.2f}` \n\n**• Result:**\n`[Warning]: Unexpected Error Occured !`",
|
||||
|
||||
@@ -67,21 +67,28 @@ async def _(event):
|
||||
except IndexError:
|
||||
REASON = "#TBMassBanned"
|
||||
else:
|
||||
arg = event.text.split(" ", maxsplit=2)
|
||||
try:
|
||||
REASON = "#TBMassBanned"
|
||||
arg = event.text.split()
|
||||
if len(arg) == 2:
|
||||
FBAN = arg[1]
|
||||
REASON = arg[2]
|
||||
except IndexError:
|
||||
try:
|
||||
FBAN = arg[1]
|
||||
except BaseException:
|
||||
return await msg.edit("No user was designated.")
|
||||
REASON = "#TBMassBanned"
|
||||
elif len(arg) > 2:
|
||||
FBAN = arg[1]
|
||||
REASON = event.text.split(maxsplit=2)[-1]
|
||||
else:
|
||||
return await msg.edit("No user was designated.")
|
||||
|
||||
if FBAN.startswith("@"):
|
||||
usr = FBAN
|
||||
else:
|
||||
try:
|
||||
usr = int(FBAN)
|
||||
except BaseException:
|
||||
return await msg.edit("Give username or id.")
|
||||
try:
|
||||
uid = int(FBAN)
|
||||
except ValueError:
|
||||
x = await ultroid(GetFullUserRequest(FBAN))
|
||||
uid = x.user.id
|
||||
x = await ultroid_bot.get_entity(usr)
|
||||
uid = x.id
|
||||
except BaseException:
|
||||
return await msg.edit("Incorrect user was designated.")
|
||||
|
||||
if str(uid) in DEVLIST:
|
||||
return await msg.edit("The user is my Dev and cannot be FBanned!")
|
||||
@@ -90,7 +97,6 @@ async def _(event):
|
||||
chat = int(udB.get("FBAN_GROUP_ID"))
|
||||
else:
|
||||
chat = await event.get_chat()
|
||||
|
||||
fedList = []
|
||||
if not len(fedList):
|
||||
for a in range(3):
|
||||
|
||||
@@ -50,7 +50,9 @@ from telethon.tl.types import ChatAdminRights
|
||||
from . import *
|
||||
|
||||
|
||||
@ultroid_cmd(pattern="gpromote ?(.*)")
|
||||
@ultroid_cmd(
|
||||
pattern="gpromote ?(.*)",
|
||||
)
|
||||
async def _(e):
|
||||
if not e.out and not is_fullsudo(e.sender_id):
|
||||
return await eod(e, "`This Command Is Sudo Restricted.`")
|
||||
@@ -225,7 +227,9 @@ async def _(e):
|
||||
return await eor(ev, f"Promoted {name.first_name} in Total : {c} {key} chats.")
|
||||
|
||||
|
||||
@ultroid_cmd(pattern="gdemote ?(.*)")
|
||||
@ultroid_cmd(
|
||||
pattern="gdemote ?(.*)",
|
||||
)
|
||||
async def _(e):
|
||||
if not e.out and not is_fullsudo(e.sender_id):
|
||||
return await eod(e, "`This Command Is Sudo Restricted.`")
|
||||
@@ -401,21 +405,12 @@ async def _(e):
|
||||
)
|
||||
async def _(e):
|
||||
xx = await eor(e, "`UnGbanning...`")
|
||||
if e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
elif e.reply_to_msg_id:
|
||||
if e.reply_to_msg_id:
|
||||
userid = (await e.get_reply_message()).sender_id
|
||||
elif e.pattern_match.group(1):
|
||||
if (e.pattern_match.group(1)).isdigit():
|
||||
try:
|
||||
userid = (await e.client.get_entity(int(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
else:
|
||||
try:
|
||||
userid = (await e.client.get_entity(str(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
userid = await get_user_id(e.pattern_match.group(1))
|
||||
elif e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
else:
|
||||
return await eod(xx, "`Reply to some msg or add their id.`", time=5)
|
||||
name = (await e.client.get_entity(userid)).first_name
|
||||
@@ -444,13 +439,7 @@ async def _(e):
|
||||
return await eor(e, "`This Command Is Sudo Restricted.`")
|
||||
xx = await eor(e, "`Gbanning...`")
|
||||
reason = ""
|
||||
if e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
try:
|
||||
reason = e.text.split(" ", maxsplit=1)[1]
|
||||
except IndexError:
|
||||
reason = ""
|
||||
elif e.reply_to_msg_id:
|
||||
if e.reply_to_msg_id:
|
||||
userid = (await e.get_reply_message()).sender_id
|
||||
try:
|
||||
reason = e.text.split(" ", maxsplit=1)[1]
|
||||
@@ -458,20 +447,17 @@ async def _(e):
|
||||
reason = ""
|
||||
elif e.pattern_match.group(1):
|
||||
usr = e.text.split(" ", maxsplit=2)[1]
|
||||
if (e.pattern_match.group(1)).isdigit():
|
||||
try:
|
||||
userid = (await e.client.get_entity(int(usr))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
else:
|
||||
try:
|
||||
userid = (await e.client.get_entity(str(usr))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
userid = await get_user_id(usr)
|
||||
try:
|
||||
reason = e.text.split(" ", maxsplit=2)[2]
|
||||
except IndexError:
|
||||
reason = ""
|
||||
elif e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
try:
|
||||
reason = e.text.split(" ", maxsplit=1)[1]
|
||||
except IndexError:
|
||||
reason = ""
|
||||
else:
|
||||
return await eod(xx, "`Reply to some msg or add their id.`", tome=5)
|
||||
name = (await e.client.get_entity(userid)).first_name
|
||||
@@ -556,21 +542,12 @@ async def gucast(event):
|
||||
)
|
||||
async def gkick(e):
|
||||
xx = await eor(e, "`Gkicking...`")
|
||||
if e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
elif e.reply_to_msg_id:
|
||||
if e.reply_to_msg_id:
|
||||
userid = (await e.get_reply_message()).sender_id
|
||||
elif e.pattern_match.group(1):
|
||||
if (e.pattern_match.group(1)).isdigit():
|
||||
try:
|
||||
userid = (await e.client.get_entity(int(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
else:
|
||||
try:
|
||||
userid = (await e.client.get_entity(str(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
userid = await get_user_id(e.pattern_match.group(1))
|
||||
elif e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
else:
|
||||
return await eod(xx, "`Reply to some msg or add their id.`", time=5)
|
||||
name = (await e.client.get_entity(userid)).first_name
|
||||
@@ -596,21 +573,12 @@ async def _(e):
|
||||
if not e.out and not is_fullsudo(e.sender_id):
|
||||
return await eor(e, "`This Command Is Sudo Restricted.`")
|
||||
xx = await eor(e, "`Gmuting...`")
|
||||
if e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
elif e.reply_to_msg_id:
|
||||
if e.reply_to_msg_id:
|
||||
userid = (await e.get_reply_message()).sender_id
|
||||
elif e.pattern_match.group(1):
|
||||
if (e.pattern_match.group(1)).isdigit():
|
||||
try:
|
||||
userid = (await e.client.get_entity(int(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
else:
|
||||
try:
|
||||
userid = (await e.client.get_entity(str(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
userid = await get_user_id(e.pattern_match.group(1))
|
||||
elif e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
else:
|
||||
return await eod(xx, "`Reply to some msg or add their id.`", tome=5)
|
||||
name = (await e.client.get_entity(userid)).first_name
|
||||
@@ -637,21 +605,12 @@ async def _(e):
|
||||
)
|
||||
async def _(e):
|
||||
xx = await eor(e, "`UnGmuting...`")
|
||||
if e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
elif e.reply_to_msg_id:
|
||||
if e.reply_to_msg_id:
|
||||
userid = (await e.get_reply_message()).sender_id
|
||||
elif e.pattern_match.group(1):
|
||||
if (e.pattern_match.group(1)).isdigit():
|
||||
try:
|
||||
userid = (await e.client.get_entity(int(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
else:
|
||||
try:
|
||||
userid = (await e.client.get_entity(str(e.pattern_match.group(1)))).id
|
||||
except ValueError as err:
|
||||
return await eod(xx, f"{str(err)}", time=5)
|
||||
userid = await get_user_id(e.pattern_match.group(1))
|
||||
elif e.is_private:
|
||||
userid = (await e.get_chat()).id
|
||||
else:
|
||||
return await eod(xx, "`Reply to some msg or add their id.`", time=5)
|
||||
name = (await e.client.get_entity(userid)).first_name
|
||||
@@ -692,7 +651,9 @@ async def _(e):
|
||||
pass
|
||||
|
||||
|
||||
@ultroid_cmd(pattern="listgban")
|
||||
@ultroid_cmd(
|
||||
pattern="listgban",
|
||||
)
|
||||
async def list_gengbanned(event):
|
||||
users = gbanned_user()
|
||||
x = await eor(event, get_string("com_1"))
|
||||
@@ -725,7 +686,9 @@ async def list_gengbanned(event):
|
||||
await x.edit(gbanned_users)
|
||||
|
||||
|
||||
@ultroid_cmd(pattern="gstat ?(.*)")
|
||||
@ultroid_cmd(
|
||||
pattern="gstat ?(.*)",
|
||||
)
|
||||
async def gstat_(e):
|
||||
xx = await eor(e, get_string("com_1"))
|
||||
if e.is_private:
|
||||
|
||||
@@ -165,7 +165,7 @@ async def setgb(event):
|
||||
await eor(x, "`Goodbye note saved`")
|
||||
elif r and r.text:
|
||||
add_goodbye(event.chat_id, r.message, None)
|
||||
await eor(x, "`Goddbye note saved`")
|
||||
await eor(x, "`Goodbye note saved`")
|
||||
else:
|
||||
await eod(x, "`Reply to message which u want to set as goodbye`")
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
"""
|
||||
|
||||
import glob
|
||||
import os
|
||||
import random
|
||||
import time
|
||||
@@ -38,6 +39,8 @@ async def logo_gen(event):
|
||||
if hasattr(temp.media, "document"):
|
||||
if "font" in temp.file.mime_type:
|
||||
font_ = await temp.download_media()
|
||||
elif (".ttf" in temp.file.name) or (".otf" in temp.file.name):
|
||||
font_ = await temp.download_media()
|
||||
elif "pic" in mediainfo(temp.media):
|
||||
bg_ = await temp.download_media()
|
||||
else:
|
||||
@@ -60,14 +63,12 @@ async def logo_gen(event):
|
||||
id_ = random.choice(pics)
|
||||
bg_ = await id_.download_media()
|
||||
if not font_:
|
||||
fpath_ = "resources/fonts/"
|
||||
f = random.choice(os.listdir(fpath_))
|
||||
font_ = fpath_ + f
|
||||
# next level logic, ignore
|
||||
if len(name) < 8:
|
||||
fpath_ = glob.glob("resources/fonts/*")
|
||||
font_ = random.choice(fpath_)
|
||||
if len(name) <= 8:
|
||||
fnt_size = 150
|
||||
strke = 10
|
||||
elif len(name) > 10:
|
||||
elif len(name) >= 9:
|
||||
fnt_size = 50
|
||||
strke = 5
|
||||
else:
|
||||
|
||||
@@ -46,6 +46,8 @@ TMP_DOWNLOAD_DIRECTORY = "resources/downloads/"
|
||||
pattern="setbio ?(.*)",
|
||||
)
|
||||
async def _(ult):
|
||||
if not ult.out and not is_fullsudo(ult.sender_id):
|
||||
return await eod(ult, "`This Command Is Sudo Restricted.`")
|
||||
ok = await eor(ult, "...")
|
||||
set = ult.pattern_match.group(1)
|
||||
try:
|
||||
@@ -64,6 +66,8 @@ async def _(ult):
|
||||
pattern="setname ?((.|//)*)",
|
||||
)
|
||||
async def _(ult):
|
||||
if not ult.out and not is_fullsudo(ult.sender_id):
|
||||
return await eod(ult, "`This Command Is Sudo Restricted.`")
|
||||
ok = await eor(ult, "...")
|
||||
names = ult.pattern_match.group(1)
|
||||
first_name = names
|
||||
@@ -91,32 +95,28 @@ async def _(ult):
|
||||
pattern="setpic$",
|
||||
)
|
||||
async def _(ult):
|
||||
ok = await eor(ult, "...")
|
||||
if not ult.out and not is_fullsudo(ult.sender_id):
|
||||
return await eod(ult, "`This Command Is Sudo Restricted.`")
|
||||
if not ult.is_reply:
|
||||
return await eod(ult, "`Reply to a Media..`")
|
||||
reply_message = await ult.get_reply_message()
|
||||
await ok.edit("`Downloading that picture...`")
|
||||
if not os.path.isdir(TMP_DOWNLOAD_DIRECTORY):
|
||||
os.makedirs(TMP_DOWNLOAD_DIRECTORY)
|
||||
photo = None
|
||||
ok = await eor(ult, "...")
|
||||
replfile = await reply_message.download_media()
|
||||
file = await ultroid_bot.upload_file(replfile)
|
||||
mediain = mediainfo(reply_message.media)
|
||||
try:
|
||||
photo = await ultroid_bot.download_media(reply_message, TMP_DOWNLOAD_DIRECTORY)
|
||||
if "pic" in mediain:
|
||||
await ultroid_bot(UploadProfilePhotoRequest(file))
|
||||
elif "gif" or "video" in mediain:
|
||||
await ultroid_bot(UploadProfilePhotoRequest(video=file))
|
||||
else:
|
||||
return await ok.edit("`Invalid MEDIA Type !`")
|
||||
await ok.edit("`My Profile Photo has Successfully Changed !`")
|
||||
except Exception as ex:
|
||||
await ok.edit("Error occured.\n`{}`".format(str(ex)))
|
||||
else:
|
||||
if photo:
|
||||
await ok.edit("`Uploading it to my profile...`")
|
||||
file = await ultroid_bot.upload_file(photo)
|
||||
try:
|
||||
await ultroid_bot(UploadProfilePhotoRequest(file))
|
||||
except Exception as ex:
|
||||
await ok.edit("Error occured.\n`{}`".format(str(ex)))
|
||||
else:
|
||||
await ok.edit("`My profile picture has been changed !`")
|
||||
os.remove(replfile)
|
||||
await asyncio.sleep(10)
|
||||
await ok.delete()
|
||||
try:
|
||||
os.remove(photo)
|
||||
except Exception as ex:
|
||||
LOGS.exception(ex)
|
||||
|
||||
|
||||
# delete profile pic(s)
|
||||
@@ -126,6 +126,8 @@ async def _(ult):
|
||||
pattern="delpfp ?(.*)",
|
||||
)
|
||||
async def remove_profilepic(delpfp):
|
||||
if not delpfp.out and not is_fullsudo(delpfp.sender_id):
|
||||
return await eod(delpfp, "`This Command Is Sudo Restricted.`")
|
||||
ok = await eor(delpfp, "...")
|
||||
group = delpfp.text[8:]
|
||||
if group == "all":
|
||||
|
||||
@@ -61,7 +61,9 @@ async def _(ult):
|
||||
ok = await eor(ult, "`Deleting data from Redis ...`")
|
||||
try:
|
||||
key = ult.pattern_match.group(1)
|
||||
udB.delete(key)
|
||||
k = udB.delete(key)
|
||||
if k == 0:
|
||||
return await ok.edit("`No Such Key.`")
|
||||
await ok.edit(f"`Successfully deleted key {key}`")
|
||||
except BaseException:
|
||||
await ok.edit("`Something Went Wrong`")
|
||||
|
||||
@@ -33,7 +33,7 @@ async def size(e):
|
||||
img = await ultroid_bot.download_media(r.media)
|
||||
im = Image.open(img)
|
||||
x, y = im.size
|
||||
await k.edit(f"Dimension Of This Image Is\n`{x} : {y}`")
|
||||
await k.edit(f"Dimension Of This Image Is\n`{x} x {y}`")
|
||||
os.remove(img)
|
||||
|
||||
|
||||
|
||||
@@ -149,7 +149,6 @@ async def hehe(args):
|
||||
user.username = user.first_name
|
||||
message = await args.get_reply_message()
|
||||
photo = None
|
||||
emojibypass = False
|
||||
is_anim = False
|
||||
emoji = None
|
||||
if message and message.media:
|
||||
@@ -166,7 +165,6 @@ async def hehe(args):
|
||||
in message.media.document.attributes
|
||||
):
|
||||
emoji = message.media.document.attributes[1].alt
|
||||
emojibypass = True
|
||||
elif "video" in message.media.document.mime_type.split("/"):
|
||||
await xx.edit(f"`{random.choice(KANGING_STR)}`")
|
||||
xy = await message.download_media()
|
||||
@@ -186,7 +184,6 @@ async def hehe(args):
|
||||
if isinstance(attribute, DocumentAttributeSticker):
|
||||
emoji = attribute.alt
|
||||
|
||||
emojibypass = True
|
||||
is_anim = True
|
||||
photo = 1
|
||||
else:
|
||||
@@ -198,8 +195,7 @@ async def hehe(args):
|
||||
|
||||
if photo:
|
||||
splat = args.text.split()
|
||||
if not emojibypass:
|
||||
emoji = "🔰"
|
||||
emoji = "🏵"
|
||||
pack = 1
|
||||
if len(splat) == 3:
|
||||
pack = splat[2] # User sent ultroid_both
|
||||
|
||||
@@ -28,16 +28,11 @@ from . import *
|
||||
pattern="addsudo ?(.*)",
|
||||
)
|
||||
async def _(ult):
|
||||
if not ult.out and not is_fullsudo(ult.sender_id):
|
||||
return await eod(ult, "`This Command is Sudo Restricted!..`")
|
||||
inputs = ult.pattern_match.group(1)
|
||||
if Var.BOT_MODE:
|
||||
try:
|
||||
if ult.sender_id != int(Redis(OWNER_ID)):
|
||||
return await eod(ult, "`Sudo users can't add new sudos!`", time=10)
|
||||
except BaseException:
|
||||
pass
|
||||
else:
|
||||
if ult.sender_id != ultroid_bot.uid:
|
||||
return await eod(ult, "`Sudo users can't add new sudos!`", time=10)
|
||||
if BOT_MODE and ult.sender_id != int(Redis(OWNER_ID)):
|
||||
return await eod(ult, "`Sudo users can't add new sudos!`", time=10)
|
||||
ok = await eor(ult, "`Updating SUDO Users List ...`")
|
||||
if ult.reply_to_msg_id:
|
||||
replied_to = await ult.get_reply_message()
|
||||
@@ -88,20 +83,15 @@ async def _(ult):
|
||||
pattern="delsudo ?(.*)",
|
||||
)
|
||||
async def _(ult):
|
||||
if not ult.out and not is_fullsudo(ult.sender_id):
|
||||
return await eod(ult, "`This Command is Sudo Restricted!..`")
|
||||
inputs = ult.pattern_match.group(1)
|
||||
if Var.BOT_MODE:
|
||||
try:
|
||||
if ult.sender_id != int(Redis(OWNER_ID)):
|
||||
return await eod(
|
||||
ult,
|
||||
"You are sudo user, You cant add other sudo user.",
|
||||
time=5,
|
||||
)
|
||||
except BaseException:
|
||||
pass
|
||||
else:
|
||||
if ult.sender_id != ultroid_bot.uid:
|
||||
return await eor(ult, "You are sudo user, You cant add other sudo user.")
|
||||
if BOT_MODE and ult.sender_id != int(Redis(OWNER_ID)):
|
||||
return await eod(
|
||||
ult,
|
||||
"You are sudo user, You cant add other sudo user.",
|
||||
time=5,
|
||||
)
|
||||
ok = await eor(ult, "`Updating SUDO Users List ...`")
|
||||
if ult.reply_to_msg_id:
|
||||
replied_to = await ult.get_reply_message()
|
||||
|
||||
@@ -39,7 +39,6 @@ from asyncio.exceptions import TimeoutError
|
||||
from pathlib import Path
|
||||
|
||||
import cv2
|
||||
import emoji
|
||||
from googletrans import Translator
|
||||
from hachoir.metadata import extractMetadata
|
||||
from hachoir.parser import createParser
|
||||
@@ -72,8 +71,6 @@ async def _(event):
|
||||
lan = input or "en"
|
||||
else:
|
||||
return await eod(xx, f"`{hndlr}tr LanguageCode` as reply to a message", time=5)
|
||||
text = emoji.demojize(text.strip())
|
||||
lan = lan.strip()
|
||||
translator = Translator()
|
||||
try:
|
||||
tt = translator.translate(text, dest=lan)
|
||||
@@ -218,18 +215,14 @@ async def _(e):
|
||||
)
|
||||
taime = time.time()
|
||||
foile = await uploader("circle.mp4", "circle.mp4", taime, z, "Uᴘʟᴏᴀᴅɪɴɢ...")
|
||||
f = "circle.mp4"
|
||||
metadata = extractMetadata(createParser(f))
|
||||
metadata = extractMetadata(createParser("circle.mp4"))
|
||||
duration = metadata.get("duration").seconds
|
||||
height = metadata.get("height")
|
||||
width = metadata.get("width")
|
||||
attributes = [video(duration=duration, w=width, h=height, round_message=True)]
|
||||
attributes = [video(duration=duration, w=320, h=320, round_message=True)]
|
||||
await e.client.send_file(
|
||||
e.chat_id,
|
||||
foile,
|
||||
thumb=thumb,
|
||||
reply_to=a,
|
||||
video_note=True,
|
||||
attributes=attributes,
|
||||
)
|
||||
await z.delete()
|
||||
|
||||
@@ -16,6 +16,11 @@ from telethon.tl.functions.channels import ExportMessageLinkRequest as GetLink
|
||||
|
||||
from . import *
|
||||
|
||||
ULTPIC = "resources/extras/inline.jpg"
|
||||
CL = udB.get("INLINE_PIC")
|
||||
if CL:
|
||||
ULTPIC = CL
|
||||
|
||||
|
||||
@ultroid_cmd(pattern="update$")
|
||||
async def _(e):
|
||||
@@ -24,12 +29,12 @@ async def _(e):
|
||||
if m:
|
||||
x = await ultroid_bot.asst.send_file(
|
||||
int(udB.get("LOG_CHANNEL")),
|
||||
"resources/extras/inline.jpg",
|
||||
ULTPIC,
|
||||
caption="• **Update Available** •",
|
||||
force_document=False,
|
||||
buttons=Button.inline("Changelogs", data="changes"),
|
||||
)
|
||||
Link = (await ultroid_bot(GetLink(x.peer_id.channel_id, x.id))).link
|
||||
Link = (await ultroid_bot(GetLink(x.chat_id, x.id))).link
|
||||
await eor(
|
||||
e,
|
||||
f'<strong><a href="{Link}">[ChangeLogs]</a></strong>',
|
||||
@@ -51,7 +56,7 @@ async def updava(event):
|
||||
await event.delete()
|
||||
await ultroid_bot.asst.send_file(
|
||||
int(udB.get("LOG_CHANNEL")),
|
||||
"resources/extras/inline.jpg",
|
||||
ULTPIC,
|
||||
caption="• **Update Available** •",
|
||||
force_document=False,
|
||||
buttons=Button.inline("Changelogs", data="changes"),
|
||||
|
||||
@@ -188,7 +188,10 @@ async def stats(
|
||||
unread_mentions += dialog.unread_mentions_count
|
||||
unread += dialog.unread_count
|
||||
stop_time = time.time() - start_time
|
||||
ct = (await ultroid_bot(GetBlockedRequest(1, 0))).count
|
||||
try:
|
||||
ct = (await ultroid_bot(GetBlockedRequest(1, 0))).count
|
||||
except AttributeError:
|
||||
ct = 0
|
||||
full_name = inline_mention(await ultroid_bot.get_me())
|
||||
response = f"🔸 **Stats for {full_name}** \n\n"
|
||||
response += f"**Private Chats:** {private_chats} \n"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
• `{i}ytsa <(youtube) search query>`
|
||||
Search and download audio from youtube.
|
||||
|
||||
• `{i}ytsv <(youtube) link>`
|
||||
• `{i}ytsv <(youtube) search query>`
|
||||
Search and download video from youtube.
|
||||
"""
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
py-Ultroid==2021.5.22
|
||||
py-Ultroid==2021.5.24
|
||||
|
||||
@@ -18,6 +18,7 @@ PyPDF2
|
||||
psutil
|
||||
pytz
|
||||
requests>=2.18.4
|
||||
screen
|
||||
scikit-image
|
||||
selenium
|
||||
speedtest-cli==2.1.3
|
||||
@@ -40,3 +41,4 @@ pyyaml
|
||||
hachoir
|
||||
aria2p
|
||||
gdown
|
||||
qrcode
|
||||
|
||||
197
strings/strings/fa.yml
Normal file
197
strings/strings/fa.yml
Normal file
@@ -0,0 +1,197 @@
|
||||
name: Persian
|
||||
natively: Farsi
|
||||
|
||||
authors:
|
||||
- rez4ie
|
||||
|
||||
# commons
|
||||
com_1: "`یکم صبر کن...`"
|
||||
com_2: "`دارم میگردم...`"
|
||||
# help
|
||||
help_1: "`{}` اصن همچین دستوری ندارم من"
|
||||
help_2: "ربات جواب نداد \n دستور `{}restart` رو بفرست."
|
||||
help_3: "`لطفا حالت inline mode را برای ربات دستیارت از طریق ` @Botfather روشنش کن."
|
||||
|
||||
# autopic
|
||||
autopic_1: "یه متن بهم بده تا جستجو کنم اسکل"
|
||||
autopic_2: "چیزی برای `{}` پیدا نکردم"
|
||||
autopic_3: "یافتم `{}`!\nاز الان ببعد عکس پروفایلت اتوماتیکه... !"
|
||||
|
||||
# inline
|
||||
inline_1: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**منوی کمکی برای {}.\n\n
|
||||
افزونه ها ~ {}**"
|
||||
inline_2: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**منوی کمکی برای {}.\n\n
|
||||
افزونه های کمکی ~ {}**"
|
||||
inline_3: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**منوی کمکی برای {}.\n\n
|
||||
افزونه های کمکی ~ {}\n\n
|
||||
دستور **`.setredis ADDONS True`** رو برای فعال کردن افزونه های کمکی بفرست.**"
|
||||
inline_4: "** ربات {}\n\nفهرست اصلی\n\nافزونه ها ~ {}\nافزونه های کمکی ~ {}\nتمام دستورات ~ {}**"
|
||||
inline_5: "**فهرستو بستی**"
|
||||
|
||||
# tagnotif
|
||||
tagnot_1: "{} شما در {}\n\n```{}``` تگ شدید\n\n[📨 Message 📨]({})"
|
||||
tagnot_2: "{} شما در {} تگ شدید\n\n [📨 Message 📨]({})"
|
||||
|
||||
# whisper
|
||||
wspr_1: "@{} پیام مخفی برای شما.\nاین پیام را بعد از خواندن پاک کنید.\nدر غیر اینصورت پیام بعدی بروزرسانی نخواهد شد."
|
||||
wspr_2: "پیام"
|
||||
|
||||
# afk
|
||||
afk_1: "`الان انلاینم\n\n
|
||||
واسه ~ {} یه مدتی نبودم`"
|
||||
afk_2: "#حالت_آفلاین\n
|
||||
اکانتتو از حالت آفلاین بکش بیرون.\n
|
||||
رفته بودم برای `{}`"
|
||||
afk_3: "`الان نمیتونم پیام بدم.\n
|
||||
آخرین بازدید {} قبل.`\n\n
|
||||
**دلیل:** `{}`"
|
||||
afk_4: "`الان نمیتونم پیام بدم.\n\n
|
||||
آخرین بازدید {} قبل.`"
|
||||
afk_5: "`من آفلاین شدم :D`\n\n
|
||||
**دلیل:** `{}`"
|
||||
afk_6: "دارم آفلاین میشم"
|
||||
afk_7: "الان آفلاینم به دلیل {}"
|
||||
afk_8: "الان آفلاینم"
|
||||
|
||||
# bot
|
||||
alive_1: "**ربات کمکی آلتروید...**\n\n
|
||||
**{}**\n\n
|
||||
┏━━━━━━━━━━━━━━━━━━━━━\n
|
||||
┣ **مالک** - `{}`\n
|
||||
┣ **ورژن** - `{}`\n
|
||||
┣ **Py-Ultroid** - `{}`\n
|
||||
┣ **مدت بیداری** - `{}`\n
|
||||
┣ **ورژن پایتون** - `{}`\n
|
||||
┣ **ورژن تله تون** - `{}`\n
|
||||
┣ **شاخه** - `{}`\n
|
||||
┗━━━━━━━━━━━━━━━━━━━━━"
|
||||
تاریخچه: "**Heroku** تاریخچه ربات.\n [اینجا] هم پیستش کردم({})!"
|
||||
پینگ: "**پونگ !!** `{}میلی ثانیه`\n**مدت بیداری ربات** - `{}`"
|
||||
استفاده: "**⚙️ استفاده از سیستم ⚙️**:\n\n
|
||||
-> **استفاده سیستم برای** `{}`:\n
|
||||
• **{}ساعت** **{}دقیقه** |** `[{}%]`\n
|
||||
-> **مقدار زمان باقیمانده برای سیستم در این ماه**:\n
|
||||
• **{}ساعت** **{}دقیقه |** `[{}%]`\n\n
|
||||
**فضای کلی هارد دیسک**: `{}`\n
|
||||
**استفاده شده**: `{}`\n
|
||||
**آزاد**: `{}`\n\n
|
||||
**📊 استفاده داده 📊\n
|
||||
**آپلود**: `{}`\n
|
||||
**دانلود**: `{}`\n\n
|
||||
**پردازنده**: `{}%`\n
|
||||
**حافضه موقت**: `{}%`\n
|
||||
**هارد دیسک**: `{}%`"
|
||||
shutdown: "خدافظ {}.\n`در حال خاموش شدن...`"
|
||||
|
||||
# broadcast
|
||||
bd_1: "`دارم به دیتابیس اضافش میکنم...`"
|
||||
bd_2: "`دارم تمام کانالای ادمین رو به دیتابیس اضافه میکنم...`"
|
||||
bd_3: "**و تمام.**\nچت هایی که هنوز تو دیتابیس بودن: {}\nاونایی که تازه اضافه شدن: {}"
|
||||
bd_4: "کانال اضافه شد!"
|
||||
bd_5: "`به دیتابیس اضافه شد!`"
|
||||
bd_6: "`این کانال همین الانشم ذخیره شده!`"
|
||||
|
||||
# carbon
|
||||
carbon_1: "صبر کن..."
|
||||
carbon_2: "تبدیل به کد شده توسط [{}](tg://user?id={})"
|
||||
|
||||
# chats
|
||||
chats_1: "`صبر کن...`"
|
||||
chats_2: "`نمیتونم این چت رو پاک کنم`"
|
||||
chats_3: "`من که مدیر نیستم`"
|
||||
chats_4: "#حذف شد\n{} رو حذف کردم"
|
||||
chats_5: "گروه [{}]({}) ساخته شد رئیس!"
|
||||
chats_6: "به ما @TeamUltroid بپیوندید"
|
||||
|
||||
# converter
|
||||
cvt_1: "به یه عکس/ویدیو/گیف یا سند ریپلای کن."
|
||||
cvt_2: "اسم و پسوند فایلو بهم بده"
|
||||
cvt_3: "`صبر کن...`"
|
||||
cvt_4: "به یه رسانه(عکس/ویدیو/گیف) ریپلای کن"
|
||||
|
||||
# core
|
||||
core_1: "ماژول یافت شد"
|
||||
core_2: "{}.py از دستور .paste استفاده کن تا توی neko و raw پیستش کنم.."
|
||||
core_3: "دوباره بگردم..؟"
|
||||
core_4: "ماژول {} وجود نداره"
|
||||
core_5: "{}.py از دستور .paste استفاده کن تا توی neko و raw پیستش کنم.."
|
||||
core_6: "ماژول {}.py رو پیدا نکردم"
|
||||
core_7: "همچین ماژولی ندارم"
|
||||
core_8: "هیچ ماژولی با این اسم نیست\n {}.py"
|
||||
core_9: "`اسم افزونه یی که میخوای از حافظم بکشم بیرونو بگو`"
|
||||
core_10: "**افزونه** `{}` **رو انداختم بیرون.**"
|
||||
core_11: "**نمیتونم افزونه های رسمی رباتو بندازم بیرون**"
|
||||
core_12: "**افزونه یی با این نام وجود نداره**\n `{}`"
|
||||
core_13: "`نام افزونه یی که میخوای حذف کنی رو بفرست`"
|
||||
core_14: "**افزونه ی** `{}` **رو با موفقیت پاک کردم.**"
|
||||
core_15: "**نمیشه افزونه های رسمی رو پاک کرد**"
|
||||
core_16: "`اسم افزونه یی که میخوای بارگذاری بشه رو بنویس`"
|
||||
core_17: "`{}` **بارگذاری شد**"
|
||||
core_18: "**نمیشه** `{}` *رو بارگذاری کرد* **بخاطر خطای زیر.**\n`{}`"
|
||||
|
||||
# fedutils
|
||||
sf_1: "در حال بن فدرالی"
|
||||
sf_2: "`کاربرو مشخص کن`"
|
||||
sf_3: "تو نمیتونی ایشونو بن کنی شاسکول خفه شو!"
|
||||
sf_4: "`یا رز جواب نمیده یا افزونه خراب شده`"
|
||||
sf_5: "از دستورات فدرالی فقط هر 5 دقیقه یکبار میتونی استفاده کنی"
|
||||
sf_6: "5 دقیقه صبر کن"
|
||||
sf_7: "نتونستم لیست مدیرای فدرالی رو پیدا کنم. در حال تلاش مجدد ({}/3)..."
|
||||
sf_8: "خاطا"
|
||||
sf_9: "لیست مدیرای فدرالو پیدا نکردم."
|
||||
sf_10: "در حال بن فدرالی در فدرال(های) {}."
|
||||
sf_11: "آیدی مشخص شده برای بن فدرالی درست نیست."
|
||||
sf_12: "{} شامل نیستند."
|
||||
sf_13: "خطا در اخراج فایل ادمین فدرالی.\n{}"
|
||||
sf_14: "ابربن فدرالی تمام شد.\nتمام فدرال ها - {}.\nآنهایی که شامل نیستند - {}.\n فدرال های {} مبتلا شدند.\n#TB"
|
||||
sf_15: "درحال آنبن فدرالی عظیم..."
|
||||
sf_16: "ابرآنبن فدرالی تمام شد .\nتعداد فدرال ها - {}.\nآنهایی که شامل نیستند - {}.\n فدرال های {} مبتلا شدند.\n#TB"
|
||||
sf_17: "`آیدی طرفو بهم بده یا به مسیجش ریپلای بده تا وضعیت فدرالی شو چک کنم`"
|
||||
sf_18: "لیست فدرال هایی که {} توش بن شده.\n\nبا استفاده از آلتروید جمع آوری شد."
|
||||
sf_19: "**خاطا**\n @MissRose_Bot `رو آنبلاک کن` `بعد دوباره تلاش کن!"
|
||||
sf_20: "`در حال استخراج معلومات...`"
|
||||
sf_21: "\n\nمعلومات فدرالی استخراج شده توسط آلتروید"
|
||||
|
||||
# gdrive
|
||||
gdrive_1: "`تو همین الانشم تایید کردی گوگل درایوتو`"
|
||||
gdrive_2: "برو [اینجا](https://console.developers.google.com/flows/enableapi?apiid=drive) and get your `GDRIVE_CLIENT_ID` and `GDRIVE_CLIENT_SECRET`\n\n
|
||||
GDRIVE_CLIENT_ID و GDRIVE_CLIENT_SECRET رو بصورت.\n`GDRIVE_CLIENT_ID GDRIVE_CLIENT_SECRET` (جدا شده توسط فاصله) بفرست."
|
||||
gdrive_3: "`Client Id اشتباهه`"
|
||||
gdrive_4: "`یه چیزی درست نیست! دستور `/auth` رو دوباره بفرست.\nاگه دوباره نشد بیا تو این گروه گزارشش کن `@TheUltroid"
|
||||
gdrive_5: "`هورا!\nالان میتونی از دستورات مربوط به گوگل درایو آلتروید استافاده کنی`"
|
||||
gdrive_6: "`برو به `{}` و دستور ``/auth رو بفرست.`"
|
||||
gdrive_7: "**فایل با موفقیت به گوگل درایو آپلود شد :**\n\n[{}]({})"
|
||||
|
||||
# pmpermit
|
||||
pmperm_1: "لطفا صبر کن تا بهت جواب بدم وگرنه به عنوان هرزنامه ریپورت میشی!!"
|
||||
pmperm_2: "تو داشتی تو پی ویم اسپم میکردی منم خوشم نمیاد.\nبلاک و ریپورتت کردم."
|
||||
pmperm_3: "یا به پیام یکی ریپلای کن یا این دستورو تو پی وی یکی بفرست"
|
||||
|
||||
# updater
|
||||
upd_1: "`صبر کن...`"
|
||||
upd_2: "`اوه شت، بروزرسانی متوقف شد بدلایل مختلف`\n\n**LOGTRACE:**\n"
|
||||
upd_3: "**بروز رسانی جدید در دسترسه [[{}]]({}/درخت/{}):\n\nتغییرات ورژن جدید**\n\n{}"
|
||||
upd_4: "`لیست تغییرات خیلی بزرگه خودت فایلو ببین`"
|
||||
upd_5: "دکمه زیر رو برای بروزرسانی بزن"
|
||||
upd_6: "دکمه زیر رو برای بروزرسانی بزن"
|
||||
upd_7: "\n`رباتت` **کاملا بروز شد** `با` **[[{}]]({}/درخت/{})**\n"
|
||||
|
||||
# upload download
|
||||
udl_1: "`به فایل یا رسانه یی که میخوای دانلود کنم ریپلای کن`"
|
||||
udl_2: "با موفقیت دانلودش کردم\nآدرس » \n`{}`\nزمان در بر گرفته » `{}`"
|
||||
udl_3: "`مسیر فایلو بم بده`"
|
||||
|
||||
# words
|
||||
wrd_1: "**کلمه** - `{}`\n\n**معنی** - \n"
|
||||
wrd_2: "**کلمه** - `{}`\n\n**مترادف** - \n"
|
||||
wrd_3: "**کلمه** - `{}`\n\n**متضاد** - \n"
|
||||
|
||||
# ---------------------------------------------------#
|
||||
|
||||
# assisant
|
||||
ast_1: "رابط برنامه نویسی که مد نظرته رو انتخاب کن"
|
||||
ast_2: "**رابط کاربری remove.bg**\nرابط برنامه نویسی که از remove.bg دریافت کردی رو بفرست.\n\nاز دستور /cancel برای لغو کردن استافاده کن"
|
||||
ast_3: "سلام {}. از طریق گزینه ها گشت و گذار کن"
|
||||
197
strings/strings/my.yml
Normal file
197
strings/strings/my.yml
Normal file
@@ -0,0 +1,197 @@
|
||||
name: Malaysia
|
||||
natively: Bahasa Malaysia
|
||||
|
||||
authors:
|
||||
- yuno74
|
||||
|
||||
# commons
|
||||
com_1: "`memproses...`"
|
||||
com_2: "`mencari...`"
|
||||
# help
|
||||
help_1: "`{}` bukan plugin yang sah!"
|
||||
help_2: "Bot tidak bertindak balas terhadap pertanyaan sebaris.\nDicadangkan untuk menggunakan `{}restart`"
|
||||
help_3: "`Sila hidupkan mod sebaris untuk bot anda dari` @Botfather."
|
||||
|
||||
# autopic
|
||||
autopic_1: "Beri saya Teks .."
|
||||
autopic_2: "Tiada keputusan dijumpai `{}`"
|
||||
autopic_3: "Mendapat Koleksi `{}` yang berkaitan dengan carian anda! \nMulai Autopic!"
|
||||
|
||||
# inline
|
||||
inline_1: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**Hᴇʟᴘ Mᴇɴᴜ Oғ {}.\n\n
|
||||
Pʟᴜɢɪɴs ~ {}**"
|
||||
inline_2: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**Hᴇʟᴘ Mᴇɴᴜ Oғ {}.\n\n
|
||||
Aᴅᴅᴏɴs ~ {}**"
|
||||
inline_3: "[Uʟᴛʀᴏɪᴅ Sᴜᴘᴘᴏʀᴛ](t.me/ultroidsupport)\n\n
|
||||
**Hᴇʟᴘ Mᴇɴᴜ Oғ {}.\n\n
|
||||
Aᴅᴅᴏɴs ~ {}\n\n
|
||||
Buat **`.setredis ADDONS kepada True`** dan memulakan semula untuk dapatkan addon.**"
|
||||
inline_4: "** Bᴏᴛ kepada {}\n\nMᴇɴᴜ Utama\n\nPʟᴜɢɪɴ ~ {}\nAᴅᴅᴏɴ ~ {}\nJumlah Perintah ~ {}**"
|
||||
inline_5: "**Mᴇɴᴜ Telah ditutup**"
|
||||
|
||||
# tagnotif
|
||||
tagnot_1: "{} telah tag Anda di {}\n\n```{}```\n\n[📨 Mesej 📨]({})"
|
||||
tagnot_2: "{} telah tag Anda di {}\n\n [📨 Mesej 📨]({})"
|
||||
|
||||
# whisper
|
||||
wspr_1: "@{} mesej rahsia untuk Anda.\nPadam mesej Anda selepas dibaca.\natau mesej seterusnya tidak akan dikemaskini"
|
||||
wspr_2: "Mesej dipadam"
|
||||
|
||||
# afk
|
||||
afk_1: "`Tidak lagi Afk\n\n
|
||||
Tidak ada untuk ~ {}`"
|
||||
afk_2: "#AFK\n
|
||||
Set mod AFK kepada **tidak aktif**\n
|
||||
Tidak ada untuk `{}`"
|
||||
afk_3: "`Saya sedang AFK.\n
|
||||
Terakhir dilihat {} lepas.`\n\n
|
||||
**Sebab:** `{}`"
|
||||
afk_4: "`Saya sedang AFK.\n\n
|
||||
Terakhir dilihat {} lepas.`"
|
||||
afk_5: "`Saya akan pergi AFK.`\n\n
|
||||
**Sebab:** `{}`"
|
||||
afk_6: "Saya akan pergi AFK."
|
||||
afk_7: "Sedang AFK dengan sebab {}"
|
||||
afk_8: "Sedang AFK."
|
||||
|
||||
# bot
|
||||
alive_1: "**Userbot Ultroid...**\n\n
|
||||
**{}**\n\n
|
||||
┏━━━━━━━━━━━━━━━━━━━━━\n
|
||||
┣ **Pemilik** - `{}`\n
|
||||
┣ **Versi** - `{}`\n
|
||||
┣ **Py-Ultroid** - `{}`\n
|
||||
┣ **Masa hidup** - `{}`\n
|
||||
┣ **Python** - `{}`\n
|
||||
┣ **Telethon** - `{}`\n
|
||||
┣ **Cawangan** - `{}`\n
|
||||
┗━━━━━━━━━━━━━━━━━━━━━"
|
||||
log: "**Heroku** Log Ultroid. \nTerap [di sini] ({}) juga!"
|
||||
ping: "**Pong !!** `{}ms`\n**Masa hidup** - `{}`"
|
||||
usage: "**⚙️ Penggunaan Dyno ⚙️**:\n\n
|
||||
-> **Penggunaan Dyno untuk** `{}`:\n
|
||||
• **{}J** **{}m** |** `[{}%]`\n
|
||||
-> **Baki kuota jam Dyno bulan ini**:\n
|
||||
• **{}J** **{}m |** `[{}%]`\n\n
|
||||
**Jumlah Ruang Simpanan**: `{}`\n
|
||||
**Digunakan**: `{}`\n
|
||||
**Tidak Digunakan**: `{}`\n\n
|
||||
**📊 Penggunaan Data 📊\n
|
||||
**muat naik**: `{}`\n
|
||||
**muat turun**: `{}`\n\n
|
||||
**CPU**: `{}%`\n
|
||||
**RAM**: `{}%`\n
|
||||
**Storan**: `{}%`"
|
||||
shutdown: "Selamat tinggal {}.\n`mematikan bot...`"
|
||||
|
||||
# broadcast
|
||||
bd_1: "`Ditambah ke db...`"
|
||||
bd_2: "`Cuba menambah semua channel admin ke db...`"
|
||||
bd_3: "**Selesai.**\nChat sudah ada di database: {}\nNewly Added: {}"
|
||||
bd_4: "Channel ditambah!"
|
||||
bd_5: "`Ditambah ke database!`"
|
||||
bd_6: "`Channel sudah berada di database`"
|
||||
|
||||
# carbon
|
||||
carbon_1: "Memproses..."
|
||||
carbon_2: "Carbonised oleh [{}](tg://user?id={})"
|
||||
|
||||
# chats
|
||||
chats_1: "`Memproses...`"
|
||||
chats_2: "`Tidak boleh memadam chat ini`"
|
||||
chats_3: "`Saya bukan admin`"
|
||||
chats_4: "#Dipadam\nDipadam {}"
|
||||
chats_5: "Anda punya [{}]({}) Group telah dibuat!"
|
||||
chats_6: "Sertai @TeamUltroid"
|
||||
|
||||
# converter
|
||||
cvt_1: "membalas kepada mana-mana media/Document."
|
||||
cvt_2: "Beri Nama dan extension fail"
|
||||
cvt_3: "`Memproses...`"
|
||||
cvt_4: "membalas kepada mana-mana media"
|
||||
|
||||
# core
|
||||
core_1: "Modul Dijumpai"
|
||||
core_2: "{}.py guna .paste untuk menampal di neko dan raw.."
|
||||
core_3: "Cari Lagi..?"
|
||||
core_4: "Modul {} dijumpai"
|
||||
core_5: "{}.py guna .paste untuk menampal di neko dan raw.."
|
||||
core_6: "Modul {}.py tak dijumpai"
|
||||
core_7: "Modul sepertinya tiada"
|
||||
core_8: "Tiada modul bernama {}.py"
|
||||
core_9: "`Bagi nama plugin yang Anda ingin matikan`"
|
||||
core_10: "**Dimatikan** `{}` **Telah berjaya.**"
|
||||
core_11: "**Anda tidak boleh mematikan Oғғɪᴄɪᴀʟ Pʟᴜɢɪɴ**"
|
||||
core_12: "**Tiada Pʟᴜɢɪɴ bernama** `{}`"
|
||||
core_13: "`Beri nama plugin yang ingin anda nyahpasang`"
|
||||
core_14: "**menyahpasang** `{}` **Telah berjaya.**"
|
||||
core_15: "**Anda tidak boleh nyahpasang Oғғɪᴄɪᴀʟ Pʟᴜɢɪɴs**"
|
||||
core_16: "`Bagi nama plugin yang anda ingin hidupkan`"
|
||||
core_17: "**Berjaya di hidupkan** `{}`"
|
||||
core_18: "**Tidak boleh hidupkan** `{}` **kerana kesalahan berikut.**\n`{}`"
|
||||
|
||||
# fedutils
|
||||
sf_1: "Memulakan Mass-FedBan..."
|
||||
sf_2: "`Tiada user yang ditetapkan!`"
|
||||
sf_3: "Anda tidak boleh ban dev saya, noob!!"
|
||||
sf_4: "`Sepertinya rose tidak bertindak balas, atau plugin tidak berfungsi`"
|
||||
sf_5: "Anda hanya boleh menggunakan perintah Fed 5 minit sekali"
|
||||
sf_6: "Cuba lagi 5 minit kemudian."
|
||||
sf_7: "Tidak dapat kumpul FedAdminList. Mencuba semula ({}/3)..."
|
||||
sf_8: "Ralat"
|
||||
sf_9: "Tidak dapat kumpul FedAdminList."
|
||||
sf_10: "FBaning dalam {} feds."
|
||||
sf_11: "ID Kumpulan FBan yang dinyatakan tidak betul."
|
||||
sf_12: "{} Dikecualikan."
|
||||
sf_13: "Ralat semasa membuang fail FedAdmin.\n{}"
|
||||
sf_14: "SuperFBan Selesai. \nJumlah Feds - {}. \nTidak termasuk - {}. \n {} Fed terjejas.\n#TB"
|
||||
sf_15: "Memulakan Mass-UnFedBan..."
|
||||
sf_16: "SuperUnFBan Selesai. \nJumlah Feds - {}. \nTidak termasuk - {}. \n {} Fed terjejas.\n#TB"
|
||||
sf_17: "`Beri saya id seseorang, atau balas mesej seseorang untuk memeriksa fedstatnya.`"
|
||||
sf_18: "Senarai feds {} telah dilarang masuk. \n\nDikumpulkan menggunakan Ultroid."
|
||||
sf_19: "**Ralat**\n `Buka sekatan` @MissRose_Bot `and try again!"
|
||||
sf_20: "`Mengambil maklumat...`"
|
||||
sf_21: "\n\nFedInfo diekstrak oleh Ultroid"
|
||||
|
||||
# gdrive
|
||||
gdrive_1: "`Anda telah memberi kebenaran kepada Google Drive`"
|
||||
gdrive_2: "Pergi [Sini](https://console.developers.google.com/flows/enableapi?apiid=drive) dan dapatkan anda punya `GDRIVE_CLIENT_ID` beserta `GDRIVE_CLIENT_SECRET`\n\n
|
||||
hantar anda punya GDRIVE_CLIENT_ID beserta GDRIVE_CLIENT_SECRET mengikut ini.\n`GDRIVE_CLIENT_ID GDRIVE_CLIENT_SECRET` dipisahkan dengan ruang."
|
||||
gdrive_3: "`Salah Client Id`"
|
||||
gdrive_4: "`Ada yang tidak kena! Hantar`/auth` lagi sekali.\nJika sama hubungi `@TheUltroid"
|
||||
gdrive_5: "`Berjaya!\nAnda sudah bersedia untuk menggunakan Google Drive dengan Ultroid Userbot.`"
|
||||
gdrive_6: "`Pergi ke `{}` dan hantar ``/auth.`"
|
||||
gdrive_7: "**Fail berjaya dimuat naik ke G-Drive :**\n\n[{}]({})"
|
||||
|
||||
# pmpermit
|
||||
pmperm_1: "Tunggu saya balas atau anda akan disekat dan dilaporkan sebagai spam!!"
|
||||
pmperm_2: "Anda telah menghantar spam kepada mesej Master saya, dan saya tidak menyukainya. \nAnda telah Disekat dan dilaporkan sebagai SPAM, sehingga diberitahu kemudian."
|
||||
pmperm_3: "Balas mesej seseorang atau cuba perintah ini secara peribadi."
|
||||
|
||||
# updater
|
||||
upd_1: "`Memeriksa kemas kini, sila tunggu ....`"
|
||||
upd_2: "`Oops.. Updater tidak dapat diteruskan kerana terdapat beberapa masalah.`\n\n**LOGTRACE:**\n"
|
||||
upd_3: "**Kemaskini baru tersedia untuk [[{}]]({}/tree/{}):\n\nYang Baru**\n\n{}"
|
||||
upd_4: "`Changelog terlalu besar, lihat fail untuk melihatnya.`"
|
||||
upd_5: "Klik butang di bawah untuk mengemas kini."
|
||||
upd_6: "Klik butang di bawah untuk mengemas kini."
|
||||
upd_7: "\n`Bot Anda` **di versi terkini** `dengan` **[[{}]]({}/tree/{})**\n"
|
||||
|
||||
# upload download
|
||||
udl_1: "`Balas fail / media yang ingin anda muat turun ...`"
|
||||
udl_2: "Muat turun Berjaya...\nKepada\n`{}`\nin `{}`"
|
||||
udl_3: "`Berikan spesifik tempat ke fail`"
|
||||
|
||||
# words
|
||||
wrd_1: "**Perkataan** - `{}`\n\n**Makna** - \n"
|
||||
wrd_2: "**Perkataan** - `{}`\n\n**Sinonim** - \n"
|
||||
wrd_3: "**Perkataan** - `{}`\n\n**Antonim** - \n"
|
||||
|
||||
# ---------------------------------------------------#
|
||||
|
||||
# assisant
|
||||
ast_1: "Pilih API mana yang ingin anda tetapkan."
|
||||
ast_2: "**remove.bg API**\nMasukkan API key anda dari remove.bg.\n\nGuna /cancel untuk menghentikan operasi."
|
||||
ast_3: "Hi {}. Sila semak pilihan"
|
||||
Reference in New Issue
Block a user