From e6ce484c15cb33ee4b4daf34a09c436d0324f8cb Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sun, 22 Dec 2024 05:06:15 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=B8=8D=E5=8A=A0=E8=BD=BD=E5=B7=B2?= =?UTF-8?q?=E7=BB=8Foutdated=E7=9A=84reminder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/reminder/main.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/reminder/main.py b/packages/reminder/main.py index afd35c88d..e6b91e8e1 100644 --- a/packages/reminder/main.py +++ b/packages/reminder/main.py @@ -23,16 +23,24 @@ class Main(star.Star): self._init_scheduler() self.scheduler.start() - + def _init_scheduler(self): '''Initialize the scheduler.''' for group in self.reminder_data: for reminder in self.reminder_data[group]: if "datetime" in reminder: + if self.check_is_outdated(reminder): + continue self.scheduler.add_job(self._reminder_callback, 'date', args=[reminder["text"], reminder], run_date=datetime.datetime.strptime(reminder["datetime"], "%Y-%m-%d %H:%M")) elif "cron" in reminder: self.scheduler.add_job(self._reminder_callback, 'cron', args=[reminder["text"], reminder], **self._parse_cron_expr(reminder["cron"])) - + + def check_is_outdated(self, reminder: dict): + '''Check if the reminder is outdated.''' + if "datetime" in reminder: + return datetime.datetime.strptime(reminder["datetime"], "%Y-%m-%d %H:%M") < datetime.datetime.now() + return False + async def _save_data(self): '''Save the reminder data.''' with open("data/astrbot-reminder.json", "w") as f: