# 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
# .
"""
✘ 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.
• `{i}getaddons `
Load Plugins from the given raw link.
"""
import os
from pyUltroid.startup.loader import load_addons
from . import eod, get_string, requests, safeinstall, ultroid_cmd, un_plug
@ultroid_cmd(pattern="install", fullsudo=True)
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 event.eor(get_string("core_9"))
return
lsd = os.listdir("addons")
lst = os.listdir("plugins")
zym = shortname + ".py"
if zym in lsd:
try:
un_plug(shortname)
await event.eor(f"**Uɴʟᴏᴀᴅᴇᴅ** `{shortname}` **Sᴜᴄᴄᴇssғᴜʟʟʏ.**", time=3)
except Exception as ex:
return await event.eor(str(ex))
elif zym in lst:
return await event.eor(get_string("core_11"), time=3)
else:
return await event.eor(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 event.eor(get_string("core_13"))
return
lsd = os.listdir("addons")
lst = os.listdir("plugins")
zym = shortname + ".py"
if zym in lsd:
try:
un_plug(shortname)
await event.eor(f"**Uɴɪɴsᴛᴀʟʟᴇᴅ** `{shortname}` **Sᴜᴄᴄᴇssғᴜʟʟʏ.**", time=3)
os.remove(f"addons/{shortname}.py")
except Exception as ex:
return await event.eor(str(ex))
elif zym in lst:
return await event.eor(get_string("core_15"), time=3)
else:
return await event.eor(f"**Nᴏ Pʟᴜɢɪɴ Nᴀᴍᴇᴅ** `{shortname}`", time=3)
@ultroid_cmd(
pattern=r"load ?(.*)",
fullsudo=True,
)
async def load(event):
shortname = event.pattern_match.group(1)
if not shortname:
await event.eor(get_string("core_16"))
return
try:
try:
un_plug(shortname)
except BaseException:
pass
load_addons(shortname)
await event.eor(get_string("core_17").format(shortname), time=3)
except Exception as e:
await eod(
event,
get_string("core_18").format(shortname, e),
time=3,
)
@ultroid_cmd(pattern="getaddons ?(.*)", fullsudo=True)
async def get_the_addons_lol(event):
thelink = event.pattern_match.group(1)
xx = await event.eor(get_string("com_1"))
fool = get_string("gas_1")
if thelink is None:
return await xx.eor(fool, time=10)
split_thelink = thelink.split("/")
if "raw" not in thelink:
return await xx.eor(fool, time=10)
name_of_it = split_thelink[(len(split_thelink) - 1)]
plug = requests.get(thelink).text
fil = f"addons/{name_of_it}"
await xx.edit("Packing the codes...")
with open(fil, "w", encoding="utf-8") as uult:
uult.write(plug)
await xx.edit("Packed. Now loading the plugin..")
shortname = name_of_it.split(".")[0]
try:
load_addons(shortname)
await xx.eor(get_string("core_17").format(shortname), time=15)
except Exception as e:
await eod(
xx,
get_string("core_18").format(shortname, e),
time=3,
)