from nonebot import on_message from nonebot.plugin import PluginMetadata from nonebot_plugin_alconna import UniMsg from nonebot_plugin_session import EventSession from zhenxun.configs.config import Config from zhenxun.configs.utils import PluginExtraData, RegisterConfig from zhenxun.models.chat_history import ChatHistory from zhenxun.services.log import logger from zhenxun.utils.enum import PluginType __plugin_meta__ = PluginMetadata( name="消息存储", description="消息存储,被动存储群消息", usage="", extra=PluginExtraData( author="HibiKier", version="0.1", plugin_type=PluginType.HIDDEN, configs=[ RegisterConfig( module="chat_history", key="FLAG", value=True, help="是否开启消息自从存储", default_value=True, type=bool, ) ], ).to_dict(), ) def rule(message: UniMsg) -> bool: return bool(Config.get_config("chat_history", "FLAG") and message) chat_history = on_message(rule=rule, priority=1, block=False) @chat_history.handle() async def handle_message(message: UniMsg, session: EventSession): """处理消息存储""" try: await ChatHistory.create( user_id=session.id1, group_id=session.id2, text=str(message), plain_text=message.extract_plain_text(), bot_id=session.bot_id, platform=session.platform, ) except Exception as e: logger.warning("存储聊天记录失败", "chat_history", e=e)