From f3dfee22162cfc05559cbf5be28243672e1e4889 Mon Sep 17 00:00:00 2001 From: meng_xi_pan Date: Sun, 6 Apr 2025 02:42:03 +0800 Subject: [PATCH] =?UTF-8?q?group=5Finfo=E4=B8=BA=E7=A9=BA=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/message_buffer.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/plugins/chat/message_buffer.py b/src/plugins/chat/message_buffer.py index 1d0291a1c..a87ed4e9d 100644 --- a/src/plugins/chat/message_buffer.py +++ b/src/plugins/chat/message_buffer.py @@ -3,7 +3,7 @@ from src.common.logger import get_module_logger import asyncio from dataclasses import dataclass, field from .message import MessageRecv -from ..message.message_base import BaseMessageInfo +from ..message.message_base import BaseMessageInfo, GroupInfo import hashlib from typing import Dict from collections import OrderedDict @@ -25,9 +25,12 @@ class MessageBuffer: self.buffer_pool: Dict[str, OrderedDict[str, CacheMessages]] = {} self.lock = asyncio.Lock() - def get_person_id_(self, platform:str, user_id:str, group_id:str): + def get_person_id_(self, platform:str, user_id:str, group_info:GroupInfo): """获取唯一id""" - group_id = group_id or "私聊" + if group_info: + group_id = group_info.group_id + else: + group_id = "私聊" key = f"{platform}_{user_id}_{group_id}" return hashlib.md5(key.encode()).hexdigest() @@ -40,7 +43,7 @@ class MessageBuffer: return person_id_ = self.get_person_id_(message.message_info.platform, message.message_info.user_info.user_id, - message.message_info.group_info.group_id) + message.message_info.group_info) async with self.lock: if person_id_ not in self.buffer_pool: @@ -108,7 +111,7 @@ class MessageBuffer: return True person_id_ = self.get_person_id_(message.message_info.platform, message.message_info.user_info.user_id, - message.message_info.group_info.group_id) + message.message_info.group_info) async with self.lock: