重大版本调整:gewechat兼容。

This commit is contained in:
liuwei
2025-04-22 11:17:03 +08:00
parent 41def62467
commit a62bb61901
48 changed files with 2855 additions and 1420 deletions
+7 -9
View File
@@ -3,10 +3,9 @@
from datetime import datetime
from typing import Dict, List, Optional
from wcferry import WxMsg
from db.base import BaseDBOperator
from db.connection import DBConnectionManager
from gewechat.call_back_message.message import WxMessage
class MessageStorageDB(BaseDBOperator):
@@ -15,14 +14,15 @@ class MessageStorageDB(BaseDBOperator):
def __init__(self, db_manager: DBConnectionManager):
super().__init__(db_manager)
def archive_message(self, msg: WxMsg) -> bool:
def archive_message(self, msg: WxMessage) -> bool:
"""存档消息"""
now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
sql = """
INSERT INTO messages (group_id, timestamp, sender, content, message_type, attachment_url, message_id, message_xml, message_thumb)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
"""
params = (msg.roomid, now_time, msg.sender, msg.content, msg.type, msg.extra, msg.id, msg.xml, msg.thumb)
params = (
msg.roomid, now_time, msg.sender, msg.content, msg.msg_type, msg.content, msg.msg_id, msg.msg_source, "")
result = self.execute_update(sql, params)
return result
@@ -51,7 +51,6 @@ class MessageStorageDB(BaseDBOperator):
"""
return self.execute_query(sql, (date,)) or []
def get_speech_ranking(self, date: str, group_id: str, limit: int = 20) -> List[Dict]:
"""获取指定日期和群组的发言排名"""
sql = """
@@ -87,7 +86,6 @@ class MessageStorageDB(BaseDBOperator):
params = (group_id, wx_id, date, count)
return self.execute_update(sql, params)
def get_message_trend(self, group_id: str, days: int = 7) -> List[Dict]:
"""获取指定群组的消息趋势数据
@@ -111,7 +109,7 @@ class MessageStorageDB(BaseDBOperator):
return self.execute_query(sql, (group_id, days)) or []
def get_messages_by_filter(self, group_id=None, start_date=None, end_date=None,
search_text=None, page=1, page_size=20) -> Dict:
search_text=None, page=1, page_size=20) -> Dict:
"""按条件筛选消息并支持分页和模糊搜索
Args:
@@ -200,11 +198,11 @@ class MessageStorageDB(BaseDBOperator):
WHERE message_id = %s
"""
params = (image_path, message_id)
# 执行更新操作
result = self.execute_update(sql, params)
return result
except Exception as e:
# 使用已有的日志记录方式
print(f"更新消息图片路径出错: {e}")
return False
return False