修复了多文件导入问题 & 重写了MegaKits (#18)

* modified:   pyproject.toml
	nonebot_plugin_marshoai/tools/marshoai-megakits/

* 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

* modified:   nonebot_plugin_marshoai/models.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/__init__.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/tools.json

* deleted:    nonebot_plugin_marshoai/tools/marshoai-megakits/a.py
	new file:   nonebot_plugin_marshoai/tools/marshoai-megakits/mk_Common.py
	new file:   nonebot_plugin_marshoai/tools/marshoai-megakits/mk_Info.py
	new file:   nonebot_plugin_marshoai/tools/marshoai-megakits/mk_MorseCode.py
	new file:   nonebot_plugin_marshoai/tools/marshoai-megakits/mk_NyaCode.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/__init__.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/tools.json

* modified:   nonebot_plugin_marshoai/models.py
	modified:   nonebot_plugin_marshoai/tools/marshoai-megakits/mk_Info.py
	modified:   nonebot_plugin_marshoai/util.py
	modified:   pyproject.toml
	nonebot_plugin_marshoai/tools/marshoai-megakits/__init__.py
	nonebot_plugin_marshoai/tools/marshoai-megakits/tools.json
This commit is contained in:
Nya_Twisuki
2024-12-05 18:44:26 +08:00
committed by GitHub
parent c1385f81d0
commit 5c51797e00
5 changed files with 135 additions and 3 deletions

View File

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