import os
import logging
from django.conf import settings

logger = logging.getLogger(__name__)

def load_plugins():
    """
    sh:
    动态加载并初始化位于'plugins'目录中的插件。
    此函数旨在Django应用注册表就绪时被调用（通常在项目启动阶段）。

    加载逻辑说明：
    1. 遍历配置中激活的插件列表（settings.ACTIVE_PLUGINS）
    2. 检查插件目录是否存在且包含必要的入口文件（plugin.py）
    3. 动态导入符合条件的插件并记录加载状态
    """
    for plugin_name in settings.ACTIVE_PLUGINS:

        plugin_path = os.path.join(settings.PLUGINS_DIR, plugin_name)

        if os.path.isdir(plugin_path) and os.path.exists(os.path.join(plugin_path, 'plugin.py')):
            try:
                __import__(f'plugins.{plugin_name}.plugin')
                logger.info(f"Successfully loaded plugin: {plugin_name}")
            except ImportError as e:
                logger.error(f"Failed to import plugin: {plugin_name}", exc_info=e)