From adc94900d8dce2e9055bc2fe6dbfd862a048c6c8 Mon Sep 17 00:00:00 2001 From: Bakadax Date: Wed, 2 Apr 2025 11:03:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E3=80=81=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=9B=BE=E7=89=87/=E8=A1=A8=E6=83=85=E5=8C=85?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=B8=8D=E8=AE=A1=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index f2eee1a3..9cf97e85 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -360,6 +360,10 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ - 如果只有一个中文字符,将使用3倍的中文输入时间 - 在所有输入结束后,额外加上回车时间0.3秒 """ + # 回复、发送图片/表情包操作不计时 + pattern = re.compile(r'\[[回复 ,表情包:,图片:][\s\S]*?\]') + input_string = re.sub(pattern, '', input_string) + mood_manager = MoodManager.get_instance() # 将0-1的唤醒度映射到-1到1 mood_arousal = mood_manager.current_mood.arousal From b499847ef20891d2a3b52dc4639a92ba96389e35 Mon Sep 17 00:00:00 2001 From: Bakadax Date: Wed, 2 Apr 2025 11:10:08 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E3=80=81=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=9B=BE=E7=89=87/=E8=A1=A8=E6=83=85=E5=8C=85?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E7=9F=AD=E6=9A=82=E8=AE=A1=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/utils.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 9cf97e85..6b5af723 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -360,9 +360,12 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ - 如果只有一个中文字符,将使用3倍的中文输入时间 - 在所有输入结束后,额外加上回车时间0.3秒 """ - # 回复、发送图片/表情包操作不计时 + # 回复、发送图片/表情包操作短暂计时 + total_time = 0.0 pattern = re.compile(r'\[[回复 ,表情包:,图片:][\s\S]*?\]') - input_string = re.sub(pattern, '', input_string) + if re.match(pattern, input_string): + input_string = re.sub(pattern, '', input_string) + total_time += random.randrange(1, 3, 0.1) mood_manager = MoodManager.get_instance() # 将0-1的唤醒度映射到-1到1 @@ -379,9 +382,8 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ return chinese_time * 3 + 0.3 # 加上回车时间 # 正常计算所有字符的输入时间 - total_time = 0.0 for char in input_string: - if "\u4e00" <= char <= "\u9fff": # 判断是否为中文字符 + if not is_western_char(char): # 判断是否为中文字符 total_time += chinese_time else: # 其他字符(如英文) total_time += english_time From e3544b789b6d1ceadd0ad46202001f8a84b2f4ac Mon Sep 17 00:00:00 2001 From: Bakadax Date: Wed, 2 Apr 2025 11:14:29 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E5=AD=97=E7=AC=A6=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 6b5af723..8b56d90c 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -375,7 +375,7 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ chinese_time *= 1 / typing_speed_multiplier english_time *= 1 / typing_speed_multiplier # 计算中文字符数 - chinese_chars = sum(1 for char in input_string if "\u4e00" <= char <= "\u9fff") + chinese_chars = sum(1 for char in input_string if not is_western_char(char)) # 如果只有一个中文字符,使用3倍时间 if chinese_chars == 1 and len(input_string.strip()) == 1: From 6c448c0a73e6d02f38352fde3e90868ba094afff Mon Sep 17 00:00:00 2001 From: Bakadax Date: Wed, 2 Apr 2025 11:27:24 +0800 Subject: [PATCH 4/5] modified: src/plugins/chat/utils.py --- src/plugins/chat/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 8b56d90c..f68519d3 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -365,7 +365,7 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ pattern = re.compile(r'\[[回复 ,表情包:,图片:][\s\S]*?\]') if re.match(pattern, input_string): input_string = re.sub(pattern, '', input_string) - total_time += random.randrange(1, 3, 0.1) + total_time += random.randrange(1, 3) mood_manager = MoodManager.get_instance() # 将0-1的唤醒度映射到-1到1 From e9f89aeaf59526b1c075133be29d12d28a4813a8 Mon Sep 17 00:00:00 2001 From: Bakadax Date: Wed, 2 Apr 2025 11:39:33 +0800 Subject: [PATCH 5/5] Update src/plugins/chat/utils.py Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- src/plugins/chat/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index f68519d3..08116d73 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -362,7 +362,7 @@ def calculate_typing_time(input_string: str, chinese_time: float = 0.2, english_ """ # 回复、发送图片/表情包操作短暂计时 total_time = 0.0 - pattern = re.compile(r'\[[回复 ,表情包:,图片:][\s\S]*?\]') + pattern = re.compile(r'\[(回复|表情包:|图片:)[\s\S]*?\]') if re.match(pattern, input_string): input_string = re.sub(pattern, '', input_string) total_time += random.randrange(1, 3)