From 4be79b977f0c3d2eaf43810be926f2f4c7cd4301 Mon Sep 17 00:00:00 2001 From: UnCLAS-Prommer Date: Sun, 23 Mar 2025 14:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E7=A8=8B=E6=A3=80=E6=9F=A5=EF=BC=8C?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E6=97=A5=E7=A8=8B=E9=98=BB=E5=A1=9E=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/schedule/schedule_generator.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index d6ba165ee..b26b29549 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -97,14 +97,28 @@ class ScheduleGenerator: reg = r"\{(.|\r|\n)+\}" matched = re.search(reg, schedule_text)[0] schedule_dict = json.loads(matched) + self._check_schedule_validity(schedule_dict) return schedule_dict except json.JSONDecodeError: logger.exception("解析日程失败: {}".format(schedule_text)) return False + except ValueError as e: + logger.exception(f"解析日程失败: {str(e)}") + return False except Exception as e: logger.exception(f"解析日程发生错误:{str(e)}") return False + def _check_schedule_validity(self, schedule_dict: Dict[str, str]): + """检查日程是否合法""" + if not schedule_dict: + return + for time_str in schedule_dict.keys(): + try: + self._parse_time(time_str) + except ValueError: + raise ValueError("日程时间格式不正确") from None + def _parse_time(self, time_str: str) -> str: """解析时间字符串,转换为时间""" return datetime.datetime.strptime(time_str, "%H:%M")