azils3's picture
Upload 216 files
618430a verified
# Ultroid - UserBot
# Copyright (C) 2021-2025 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://github.com/TeamUltroid/pyUltroid/blob/main/LICENSE>.
from importlib import util
from sys import modules
# for addons
configPaths = [
"ub",
"var",
"support",
"userbot",
"telebot",
"fridaybot",
"uniborg.util",
"telebot.utils",
"userbot.utils",
"userbot.events",
"userbot.config",
"fridaybot.utils",
"fridaybot.Config",
"userbot.uniborgConfig",
]
def load_addons(plugin_name):
base_name = plugin_name.split("/")[-1].split("\\")[-1].replace(".py", "")
if base_name.startswith("__"):
return
from pyUltroid import fns
from .. import HNDLR, LOGS, asst, udB, ultroid_bot
from .._misc import _supporter as config
from .._misc._assistant import asst_cmd, callback, in_pattern
from .._misc._decorators import ultroid_cmd
from .._misc._supporter import Config, admin_cmd, sudo_cmd
from .._misc._wrappers import eod, eor
from ..configs import Var
from ..dB._core import HELP
name = plugin_name.replace("/", ".").replace("\\", ".").replace(".py", "")
spec = util.spec_from_file_location(name, plugin_name)
mod = util.module_from_spec(spec)
for path in configPaths:
modules[path] = config
modules["pyUltroid.functions"] = fns
mod.LOG_CHANNEL = udB.get_key("LOG_CHANNEL")
mod.udB = udB
mod.asst = asst
mod.tgbot = asst
mod.ultroid_bot = ultroid_bot
mod.ub = ultroid_bot
mod.bot = ultroid_bot
mod.ultroid = ultroid_bot
mod.borg = ultroid_bot
mod.telebot = ultroid_bot
mod.jarvis = ultroid_bot
mod.friday = ultroid_bot
mod.eod = eod
mod.edit_delete = eod
mod.LOGS = LOGS
mod.in_pattern = in_pattern
mod.hndlr = HNDLR
mod.handler = HNDLR
mod.HNDLR = HNDLR
mod.CMD_HNDLR = HNDLR
mod.Config = Config
mod.Var = Var
mod.eor = eor
mod.edit_or_reply = eor
mod.asst_cmd = asst_cmd
mod.ultroid_cmd = ultroid_cmd
mod.on_cmd = ultroid_cmd
mod.callback = callback
mod.Redis = udB.get_key
mod.admin_cmd = admin_cmd
mod.sudo_cmd = sudo_cmd
mod.HELP = HELP.get("Addons", {})
mod.CMD_HELP = HELP.get("Addons", {})
spec.loader.exec_module(mod)
modules[name] = mod
doc = modules[name].__doc__.format(i=HNDLR) if modules[name].__doc__ else ""
if "Addons" in HELP.keys():
update_cmd = HELP["Addons"]
try:
update_cmd.update({base_name: doc})
except BaseException:
pass
else:
try:
HELP.update({"Addons": {base_name: doc}})
except BaseException as em:
pass