Compare commits

...

2 Commits

Author SHA1 Message Date
JianFeeeee
a0e9bf1b44 modified: src/mainprocess.py
modified:   src/modules/user_modules.py
modified:   src/plugin_manager.py
2025-08-17 11:27:07 +08:00
JianFeeeee
2d00fa4c0f modified: src/file_store_api.py 2025-08-17 09:01:43 +08:00
4 changed files with 13 additions and 34 deletions

View File

@ -21,13 +21,6 @@ logger = logging.getLogger(__name__)
def configure_wal(cursor, cache_size=-50000, busy_timeout=5000):
"""
配置SQLite WAL选项线程安全
:param cursor: 数据库连接的cursor对象
:param cache_size: 页面缓存大小负数为KB表示
:param busy_timeout: 锁等待超时时间(毫秒)
"""
logger = logging.getLogger(__name__)
try:

View File

@ -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:

View File

@ -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)#保存发送的消息

View File

@ -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):
"""兼容旧版钩子注册(装饰器模式,保持原样)"""