From bd753acd2c2511a2fa3c1589177d3de7f113eca3 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sat, 5 Apr 2025 12:28:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E6=83=85?= =?UTF-8?q?=E5=8C=85=E6=89=93=E5=AD=97=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelogs/changelog_dev.md | 4 ++++ src/plugins/chat/message_sender.py | 2 +- src/plugins/chat/utils.py | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/changelogs/changelog_dev.md b/changelogs/changelog_dev.md index acfb7e03f..82190eb0e 100644 --- a/changelogs/changelog_dev.md +++ b/changelogs/changelog_dev.md @@ -1,4 +1,8 @@ 这里放置了测试版本的细节更新 + +## [test-0.6.1-snapshot-1] - 2025-4-5 +- 修复pfc回复出错bug + ## [test-0.6.0-snapshot-9] - 2025-4-4 - 可以识别gif表情包 diff --git a/src/plugins/chat/message_sender.py b/src/plugins/chat/message_sender.py index e86efb64e..9621819cc 100644 --- a/src/plugins/chat/message_sender.py +++ b/src/plugins/chat/message_sender.py @@ -64,7 +64,7 @@ class Message_Sender: logger.warning(f"消息“{message.processed_plain_text}”已被撤回,不发送") break if not is_recalled: - typing_time = calculate_typing_time(message.processed_plain_text) + typing_time = calculate_typing_time(message.processed_plain_text,message.is_emoji) await asyncio.sleep(typing_time) message_json = message.to_dict() diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 9646fe73b..028335640 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -334,16 +334,18 @@ def process_llm_response(text: str) -> List[str]: return sentences -def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_time: float = 0.1) -> float: +def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_time: float = 0.1, is_emoji: bool = False) -> float: """ 计算输入字符串所需的时间,中文和英文字符有不同的输入时间 input_string (str): 输入的字符串 chinese_time (float): 中文字符的输入时间,默认为0.2秒 english_time (float): 英文字符的输入时间,默认为0.1秒 + is_emoji (bool): 是否为emoji,默认为False 特殊情况: - 如果只有一个中文字符,将使用3倍的中文输入时间 - 在所有输入结束后,额外加上回车时间0.3秒 + - 如果is_emoji为True,将使用固定1秒的输入时间 """ # 如果输入是列表,将其连接成字符串 @@ -376,6 +378,9 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ else: # 其他字符(如英文) total_time += english_time + if is_emoji: + total_time = 0.7 + return total_time + 0.3 # 加上回车时间