feat:初版

This commit is contained in:
2025-12-03 15:48:44 +08:00
commit b4df26f61d
199 changed files with 23434 additions and 0 deletions

58
database/messsagDB.py Normal file
View File

@@ -0,0 +1,58 @@
"""
MessageDB - 消息数据库(简化版,仅使用 aiosqlite
"""
import aiosqlite
from loguru import logger
from utils.singleton import Singleton
class MessageDB(metaclass=Singleton):
"""消息存储数据库"""
def __init__(self):
self.db_path = "database/message.db"
self.conn = None
async def initialize(self):
"""初始化数据库"""
self.conn = await aiosqlite.connect(self.db_path)
await self.conn.execute("""
CREATE TABLE IF NOT EXISTS messages (
msg_id INTEGER PRIMARY KEY,
sender_wxid TEXT,
from_wxid TEXT,
msg_type INTEGER,
content TEXT,
is_group INTEGER,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
await self.conn.commit()
logger.debug("MessageDB 初始化完成")
async def save_message(
self,
msg_id: int,
sender_wxid: str,
from_wxid: str,
msg_type: int,
content: str,
is_group: bool
):
"""保存消息"""
try:
await self.conn.execute(
"""INSERT OR REPLACE INTO messages
(msg_id, sender_wxid, from_wxid, msg_type, content, is_group)
VALUES (?, ?, ?, ?, ?, ?)""",
(msg_id, sender_wxid, from_wxid, msg_type, content, int(is_group))
)
await self.conn.commit()
except Exception as e:
logger.error(f"保存消息失败: {e}")
async def close(self):
"""关闭连接"""
if self.conn:
await self.conn.close()