# Ultroid - UserBot
# Copyright (C) 2020 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# .
"""
✘ Commands Available -
• `{i}install `
To install the plugin,
`{i}install f`
To force Install.
• `{i}uninstall `
To unload and remove the plugin.
• `{i}load `
To load unloaded unofficial plugin.
• `{i}unload `
To unload unofficial plugin.
• `{i}help `
Shows you a help menu (like this) for every plugin.
"""
import os
from telethon import Button
from . import *
@in_pattern(
"send ?(.*)",
)
@in_owner
async def inline_handler(event):
builder = event.builder
input_str = event.pattern_match.group(1)
plug = [*PLUGINS]
plugs = []
if input_str == None or input_str == "":
for i in plug:
try:
plugs.append(
await event.builder.document(
f"./plugins/{i}.py",
title=f"{i}.py",
description=f"Module Found",
text=f"{i}.py use .paste to paste in neko and raw..",
buttons=[
[
Button.switch_inline(
"Search Again..?",
query="send ",
same_peer=True,
),
],
],
),
)
except BaseException:
pass
await event.answer(plugs)
else:
try:
ultroid = builder.document(
f"./plugins/{input_str}.py",
title=f"{input_str}.py",
description=f"Module {input_str} Found",
text=f"{input_str}.py use .paste to paste in neko and raw..",
buttons=[
[
Button.switch_inline(
"Search Again..?",
query="send ",
same_peer=True,
),
],
],
)
await event.answer([ultroid])
return
except BaseException:
ultroidcode = builder.article(
title=f"Module {input_str}.py Not Found",
description=f"No Such Module",
text=f"No Module Named {input_str}.py",
buttons=[
[
Button.switch_inline(
"Search Again",
query="send ",
same_peer=True,
),
],
],
)
await event.answer([ultroidcode])
return
@ultroid_cmd(
pattern="install",
)
async def install(event):
await safeinstall(event)
@ultroid_cmd(
pattern=r"unload ?(.*)",
)
async def unload(event):
shortname = event.pattern_match.group(1)
if not shortname:
await eor(event, "`Give name of plugin which u want to unload`")
return
lsd = os.listdir("addons")
lst = os.listdir("plugins")
zym = shortname + ".py"
if zym in lsd:
try:
un_plug(shortname)
await eod(event, f"**Uɴʟᴏᴀᴅᴇᴅ** `{shortname}` **Sᴜᴄᴄᴇssғᴜʟʟʏ.**", time=3)
except Exception as ex:
return await eor(event, str(ex))
elif zym in lst:
return await eod(event, "**Yᴏᴜ Cᴀɴ'ᴛ Uɴʟᴏᴀᴅ Oғғɪᴄɪᴀʟ Pʟᴜɢɪɴs**", time=3)
else:
return await eod(event, f"**Nᴏ Pʟᴜɢɪɴ Nᴀᴍᴇᴅ** `{shortname}`", time=3)
@ultroid_cmd(
pattern=r"uninstall ?(.*)",
)
async def uninstall(event):
shortname = event.pattern_match.group(1)
if not shortname:
await eor(event, "`Give name of plugin which u want to uninstall`")
return
lsd = os.listdir("addons")
lst = os.listdir("plugins")
zym = shortname + ".py"
if zym in lsd:
try:
un_plug(shortname)
await eod(event, f"**Uɴɪɴsᴛᴀʟʟᴇᴅ** `{shortname}` **Sᴜᴄᴄᴇssғᴜʟʟʏ.**", time=3)
os.remove(f"addons/{shortname}.py")
except Exception as ex:
return await eor(event, str(ex))
elif zym in lst:
return await eod(event, "**Yᴏᴜ Cᴀɴ'ᴛ Uɴɪɴsᴛᴀʟʟ Oғғɪᴄɪᴀʟ Pʟᴜɢɪɴs**", time=3)
else:
return await eod(event, f"**Nᴏ Pʟᴜɢɪɴ Nᴀᴍᴇᴅ** `{shortname}`", time=3)
@ultroid_cmd(
pattern=r"load ?(.*)",
)
async def load(event):
shortname = event.pattern_match.group(1)
if not shortname:
await eor(event, "`Give name of plugin which u want to load`")
return
try:
try:
un_plug(shortname)
except BaseException:
pass
load_addons(shortname)
await eod(event, f"**Sᴜᴄᴄᴇssғᴜʟʟʏ Lᴏᴀᴅᴇᴅ** `{shortname}`", time=3)
except Exception as e:
await eod(
event,
f"**Could not load** `{shortname}` **because of the following error.**\n`{str(e)}`",
time=3,
)
HELP.update({f"{__name__.split('.')[1]}": f"{__doc__.format(i=HNDLR)}"})