modified: src/mainprocess.py
modified: src/modules/user_modules.py modified: src/plugin_manager.py
This commit is contained in:
@ -29,7 +29,7 @@ def process_message(uid: str, gid: str | None, message: str) -> str:
|
||||
except Exception as e:
|
||||
print(f"error:Plugin {plugin.__class__.__name__} before_load error: {str(e)}")
|
||||
|
||||
# 原始加载逻辑
|
||||
# 消息加载逻辑
|
||||
if gid is not None:
|
||||
ctx.group.messages = ctx.chat_manager.load_group_messages(ctx.group)
|
||||
ctx.user.messages = ctx.chat_manager.load_user_group_messages(user=ctx.user, group=ctx.group)
|
||||
@ -53,7 +53,7 @@ def process_message(uid: str, gid: str | None, message: str) -> str:
|
||||
except Exception as e:
|
||||
print(f"error:Plugin {plugin.__class__.__name__} after_load error: {str(e)}")
|
||||
|
||||
# 原始保存逻辑
|
||||
# 消息保存逻辑
|
||||
if gid is not None:
|
||||
ctx.chat_manager.save_group_message(ctx.group, role="user", content=ctx.raw_message, sender_id=ctx.user.user_id)
|
||||
else:
|
||||
|
@ -59,9 +59,12 @@ class User:
|
||||
requests.request("POST","{0}/set_input_status".format(self.url), headers=headers, data=payload)
|
||||
time.sleep(0.5)
|
||||
|
||||
def send_message(self, message):
|
||||
def send_message(self, message):#发送消息
|
||||
requests.post(url='{0}/send_private_msg'.format(self.url), json={'user_id':self.user_id, 'message':message})
|
||||
self.db.save_private_message(self,role = 'assistant',content=message)#保存发送的消息
|
||||
def send_file(self,dir,name):#上传文件
|
||||
requests.post(url='{0}/upload_private_file'.format(self.url), json={'user_id':self.user_id, 'file':dir,"name":name})
|
||||
self.db.save_private_message(self,role = 'assistant',content="发送了名为{name}的文件")
|
||||
|
||||
class Group:
|
||||
def __init__(self, group_id,url = mainurl,user=None,users=None):
|
||||
@ -114,6 +117,10 @@ class Group:
|
||||
else:
|
||||
print(f"请求失败,状态码: {response.status_code}")
|
||||
|
||||
def send_message(self,message):
|
||||
def send_message(self,message):#发送消息
|
||||
requests.post(url='{0}/send_group_msg'.format(self.url), json={'group_id': self.group_id, 'message': message})
|
||||
self.db.save_group_message(self,'assistant',message, sender_id=0)#保存发送的消息
|
||||
def upload_file(self,dir,name,id):#上传文件
|
||||
requests.post(url='{0}/upload_group_file'.format(self.url), json={'group_id': self.group_id, 'file': dir , "name": name,"folder_id": id})
|
||||
self.db.save_group_message(self,'assistant',"上传了名为{name}的文件到群文件夹{id}", sender_id=0)#保存发送的消息
|
||||
|
||||
|
@ -136,7 +136,7 @@ class PluginManager:
|
||||
self.scan_plugins
|
||||
|
||||
def scan_plugins(self):
|
||||
"""扫描并加载所有ZIP插件(保持原接口不变)"""
|
||||
"""扫描并加载所有ZIP插件"""
|
||||
if not os.path.exists(PLUGIN_DIR):
|
||||
os.makedirs(PLUGIN_DIR, exist_ok=True)
|
||||
|
||||
@ -144,7 +144,7 @@ class PluginManager:
|
||||
self.load_plugin(str(item))
|
||||
|
||||
def load_plugin(self, zip_path: str) -> bool:
|
||||
"""动态加载ZIP格式插件(支持内嵌依赖)"""
|
||||
"""动态加载ZIP格式插件"""
|
||||
try:
|
||||
# 解压到临时目录(保持原逻辑)
|
||||
temp_dir = tempfile.mkdtemp(prefix=f"plugin_{Path(zip_path).stem}_")
|
||||
@ -221,27 +221,6 @@ class PluginManager:
|
||||
|
||||
return plugin_registered
|
||||
|
||||
def process_message(self, uid: str, gid: Optional[str], message: str) -> str:
|
||||
"""主消息处理入口(保持完全兼容)"""
|
||||
ctx = MessageContext(uid, gid, message)
|
||||
|
||||
# 优先执行新版插件流程
|
||||
for name, plugin_cls in self._plugins.items():
|
||||
try:
|
||||
plugin = plugin_cls(ctx)
|
||||
if result := plugin.process():
|
||||
ctx.response = result
|
||||
ctx.intercepted = True
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"⚠️ 插件错误 {name}: {str(e)}")
|
||||
|
||||
# 如果没有被拦截,运行旧版钩子
|
||||
if not ctx.intercepted:
|
||||
for hook in self._hook_registry.get("on_message", []):
|
||||
hook(ctx)
|
||||
|
||||
return ctx.response or "ok"
|
||||
|
||||
def register_hook(self, hook_name: str):
|
||||
"""兼容旧版钩子注册(装饰器模式,保持原样)"""
|
||||
|
Reference in New Issue
Block a user