feat:初版
This commit is contained in:
58
database/messsagDB.py
Normal file
58
database/messsagDB.py
Normal 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()
|
||||
Reference in New Issue
Block a user