# 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 # . 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