26 lines
753 B
Python
26 lines
753 B
Python
import importlib
|
|
import pkgutil
|
|
|
|
from yuxi.utils.logging_config import logger
|
|
|
|
|
|
def load_plugins(package_name: str = "yuxi.channel.extensions") -> list[str]:
|
|
"""自动扫描并导入内置渠道插件包,触发 define_channel_plugin_entry 注册。"""
|
|
|
|
loaded: list[str] = []
|
|
try:
|
|
package = importlib.import_module(package_name)
|
|
except ModuleNotFoundError:
|
|
logger.warning("Channel plugin package '%s' not found, skipping load", package_name)
|
|
return loaded
|
|
|
|
prefix = f"{package_name}."
|
|
|
|
for _, module_name, is_pkg in pkgutil.iter_modules(package.__path__, prefix):
|
|
if is_pkg:
|
|
continue
|
|
importlib.import_module(module_name)
|
|
loaded.append(module_name)
|
|
|
|
return loaded
|