modified: nonebot_plugin_marshoai/models.py

new file:   nonebot_plugin_marshoai/tools/marshoai-megakits/a.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/__init__.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/tools.json
This commit is contained in:
Twisuki 2024-12-05 12:29:42 +08:00
parent edd907fe83
commit 5d1cdecfc0
2 changed files with 18 additions and 4 deletions

View File

@ -1,9 +1,12 @@
from nonebot_plugin_alconna.uniseg.adapters import module
from .util import * from .util import *
from .config import config from .config import config
import os import os
import re import re
import json import json
import importlib import importlib
import sys
# import importlib.util # import importlib.util
import traceback import traceback
@ -74,6 +77,11 @@ class MarshoTools:
for package_name in os.listdir(tools_dir): for package_name in os.listdir(tools_dir):
package_path = os.path.join(tools_dir, package_name) package_path = os.path.join(tools_dir, package_name)
logger.info(f"尝试加载工具包 {package_name}")
sys.path.append(package_path)
if os.path.isdir(package_path) and os.path.exists( if os.path.isdir(package_path) and os.path.exists(
os.path.join(package_path, "__init__.py") os.path.join(package_path, "__init__.py")
): ):
@ -84,13 +92,14 @@ class MarshoTools:
data = json.load(json_file) data = json.load(json_file)
for i in data: for i in data:
self.tools_list.append(i) self.tools_list.append(i)
# 导入包
spec = importlib.util.spec_from_file_location( spec = importlib.util.spec_from_file_location(
package_name, os.path.join(package_path, "__init__.py") package_name, os.path.join(package_path, "__init__.py")
) )
package = importlib.util.module_from_spec(spec) module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(package) sys.modules[spec.name] = module
self.imported_packages[package_name] = package spec.loader.exec_module(sys.modules[spec.name])
logger.success(f"成功加载工具包 {package_name}") logger.success(f"成功加载工具包 {package_name}")
except json.JSONDecodeError as e: except json.JSONDecodeError as e:
logger.error(f"解码 JSON {json_path} 时发生错误: {e}") logger.error(f"解码 JSON {json_path} 时发生错误: {e}")

View File

@ -0,0 +1,5 @@
from nonebot import logger
def b () :
logger.success("测试成功")