25 lines
762 B
Python
25 lines
762 B
Python
from apscheduler.schedulers.background import BackgroundScheduler
|
|
from apscheduler.triggers.cron import CronTrigger
|
|
from datetime import datetime
|
|
from .database import get_db
|
|
from .discord_notify import send_reminder
|
|
|
|
scheduler = BackgroundScheduler(timezone="Europe/Paris")
|
|
|
|
def check_reminders():
|
|
now = datetime.now().strftime("%H:%M")
|
|
with get_db() as conn:
|
|
memos = conn.execute(
|
|
"SELECT * FROM memos WHERE is_done = 0 AND reminder_time = ?",
|
|
(now,)
|
|
).fetchall()
|
|
for memo in memos:
|
|
send_reminder(dict(memo))
|
|
|
|
def start():
|
|
scheduler.add_job(check_reminders, CronTrigger(minute="*"), id="check_reminders", replace_existing=True)
|
|
scheduler.start()
|
|
|
|
def stop():
|
|
scheduler.shutdown()
|