From ff9f50ced2164672e29d16aa148fde2c65b34360 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Sat, 25 Nov 2023 03:04:25 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E5=BE=AA?= =?UTF-8?q?=E7=8E=AFseq=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenshinUID/client.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/GenshinUID/client.py b/GenshinUID/client.py index 9b703a08..c218cf2d 100644 --- a/GenshinUID/client.py +++ b/GenshinUID/client.py @@ -5,8 +5,9 @@ import uuid import base64 import asyncio from pathlib import Path -from typing import Any, Dict, List, Union, Optional from collections import OrderedDict +from typing import Any, Dict, List, Union, Optional + import websockets.client from nonebot.log import logger from nonebot.adapters import Bot @@ -826,7 +827,9 @@ async def group_send( assert isinstance(bot, qqbot) assert isinstance(target_id, str) - async def _send(text: Optional[str], img: Optional[str], msg_seq: int): + async def _send( + text: Optional[str], img: Optional[str], mid: Optional[str] + ): message = Message() if img: if img.startswith('link://'): @@ -851,6 +854,11 @@ async def group_send( if buttons: message.append(MessageSegment.keyboard(_kb(buttons))) + if mid is None: + msg_seq = None + else: + msg_seq = msg_id_seq[mid] + if target_type == 'group': await bot.send_to_group( group_openid=target_id, @@ -868,7 +876,10 @@ async def group_send( msg_seq=msg_seq, ) - msg_id_seq[msg_id] = 1 + msg_id_seq[mid] += 1 + + if msg_id not in msg_id_seq: + msg_id_seq[msg_id] = 1 if len(msg_id_seq) >= 30: oldest_key = next(iter(msg_id_seq)) @@ -877,13 +888,11 @@ async def group_send( if node: for _msg in node: if _msg['type'] == 'image': - await _send(None, _msg['data'], msg_id_seq[msg_id]) - msg_id_seq[msg_id] += 1 + await _send(None, _msg['data'], msg_id) elif _msg['type'] == 'text': - await _send(_msg['data'], None, msg_id_seq[msg_id]) - msg_id_seq[msg_id] += 1 + await _send(_msg['data'], None, msg_id) else: - await _send(content, image, msg_id_seq[msg_id]) + await _send(content, image, msg_id) async def ntchat_send(