- Corrected undefined variable 'x' in funcs.py. - Refactored configuration loading in funcs.py for clarity and to resolve Pylint errors. - Changed logging f-strings to %-style formatting across multiple files. - Added encoding='utf-8' to open() calls. - Replaced list comprehensions used for side-effects with for-loops. - Made some broad exception catches more specific. - Added check=True to subprocess.run() calls in loader.py. - Corrected function signature parameter orders (e.g., *args placement). - Removed some unused variables and imports. - Added Pylint disable comments for known false positives (e.g., no-member for psycopg2.errors and base class methods). - Improved error handling and logging in funcs.py for startup sequences. - Addressed dependency installation issues by commenting out 'pokedex' (unavailable on PyPI) and correcting case for 'SpeechRecognition' in requirements.txt.
100 lines
2.8 KiB
Python
100 lines
2.8 KiB
Python
# 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 Exception: # Changed from BaseException
|
|
pass
|
|
else:
|
|
try:
|
|
HELP.update({"Addons": {base_name: doc}})
|
|
except Exception: # Changed from BaseException, removed unused 'em'
|
|
pass
|