Merge pull request #685 from na10xi27da/dev

group_info为空的问题
This commit is contained in:
SengokuCola
2025-04-06 09:54:55 +08:00
committed by GitHub

View File

@@ -3,7 +3,7 @@ from src.common.logger import get_module_logger
import asyncio import asyncio
from dataclasses import dataclass, field from dataclasses import dataclass, field
from .message import MessageRecv from .message import MessageRecv
from ..message.message_base import BaseMessageInfo from ..message.message_base import BaseMessageInfo, GroupInfo
import hashlib import hashlib
from typing import Dict from typing import Dict
from collections import OrderedDict from collections import OrderedDict
@@ -25,9 +25,12 @@ class MessageBuffer:
self.buffer_pool: Dict[str, OrderedDict[str, CacheMessages]] = {} self.buffer_pool: Dict[str, OrderedDict[str, CacheMessages]] = {}
self.lock = asyncio.Lock() 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""" """获取唯一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}" key = f"{platform}_{user_id}_{group_id}"
return hashlib.md5(key.encode()).hexdigest() return hashlib.md5(key.encode()).hexdigest()
@@ -40,7 +43,7 @@ class MessageBuffer:
return return
person_id_ = self.get_person_id_(message.message_info.platform, person_id_ = self.get_person_id_(message.message_info.platform,
message.message_info.user_info.user_id, message.message_info.user_info.user_id,
message.message_info.group_info.group_id) message.message_info.group_info)
async with self.lock: async with self.lock:
if person_id_ not in self.buffer_pool: if person_id_ not in self.buffer_pool:
@@ -108,7 +111,7 @@ class MessageBuffer:
return True return True
person_id_ = self.get_person_id_(message.message_info.platform, person_id_ = self.get_person_id_(message.message_info.platform,
message.message_info.user_info.user_id, message.message_info.user_info.user_id,
message.message_info.group_info.group_id) message.message_info.group_info)
async with self.lock: async with self.lock: