v0.1
能跑但是没写部署教程,主题和记忆识别也没写完
This commit is contained in:
48
src/plugins/chat/storage.py
Normal file
48
src/plugins/chat/storage.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from typing import Dict, List, Any, Optional
|
||||
import time
|
||||
import threading
|
||||
from collections import defaultdict
|
||||
import asyncio
|
||||
from .message import Message
|
||||
from ...common.database import Database
|
||||
from .image_utils import storage_compress_image
|
||||
|
||||
class MessageStorage:
|
||||
def __init__(self):
|
||||
self.db = Database.get_instance()
|
||||
|
||||
async def store_message(self, message: Message, topic: Optional[str] = None) -> None:
|
||||
"""存储消息到数据库"""
|
||||
try:
|
||||
if not message.is_emoji:
|
||||
message_data = {
|
||||
"group_id": message.group_id,
|
||||
"user_id": message.user_id,
|
||||
"message_id": message.message_id,
|
||||
"raw_message": message.raw_message,
|
||||
"plain_text": message.plain_text,
|
||||
"processed_plain_text": message.processed_plain_text,
|
||||
"time": message.time,
|
||||
"user_nickname": message.user_nickname,
|
||||
"group_name": message.group_name,
|
||||
"topic": topic,
|
||||
}
|
||||
else:
|
||||
message_data = {
|
||||
"group_id": message.group_id,
|
||||
"user_id": message.user_id,
|
||||
"message_id": message.message_id,
|
||||
"raw_message": message.raw_message,
|
||||
"plain_text": message.plain_text,
|
||||
"processed_plain_text": '[表情包]',
|
||||
"time": message.time,
|
||||
"user_nickname": message.user_nickname,
|
||||
"group_name": message.group_name,
|
||||
"topic": topic,
|
||||
}
|
||||
|
||||
self.db.db.messages.insert_one(message_data)
|
||||
except Exception as e:
|
||||
print(f"\033[1;31m[错误]\033[0m 存储消息失败: {e}")
|
||||
|
||||
# 如果需要其他存储相关的函数,可以在这里添加
|
||||
Reference in New Issue
Block a user