From 3e4dca8571ac11801f37e17432fc18f21e0bd2ed Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 2 Jun 2025 12:40:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=BF=9D=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/focus_chat/heartFC_Cycleinfo.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/chat/focus_chat/heartFC_Cycleinfo.py b/src/chat/focus_chat/heartFC_Cycleinfo.py index a12dc861f..88ea5139e 100644 --- a/src/chat/focus_chat/heartFC_Cycleinfo.py +++ b/src/chat/focus_chat/heartFC_Cycleinfo.py @@ -1,6 +1,9 @@ import time import os from typing import Optional, Dict, Any +from src.common.logger_manager import get_logger + +logger = get_logger("hfc") # Logger Name Changed log_dir = "log/log_cycle_debug/" @@ -81,17 +84,19 @@ class CycleDetail: """完成循环,记录结束时间""" self.end_time = time.time() - # 处理 prefix,只保留中英文字符 + # 处理 prefix,只保留中英文字符和基本标点 if not self.prefix: self.prefix = "group" else: - # 只保留中文和英文字符 - self.prefix = "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char.isascii()) - if not self.prefix: - self.prefix = "group" + # 只保留中文、英文字母、数字和基本标点 + allowed_chars = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_") + self.prefix = "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char in allowed_chars) or "group" current_time_minute = time.strftime("%Y%m%d_%H%M", time.localtime()) - self.log_cycle_to_file(log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json") + try: + self.log_cycle_to_file(log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json") + except Exception as e: + logger.warning(f"写入文件日志,可能是群名称包含非法字符: {e}") def log_cycle_to_file(self, file_path: str): """将循环信息写入文件"""