תזכורות בבוט
סקירה קצרה
מערכת התזכורות מאפשרת למשתמשי הבוט ליצור, לדחות ולנהל תזכורות אישיות דרך שיחה אינטראקטיבית או פקודות קצרות. המידע נשמר ב-MongoDB (reminders/database.py) ומנוהל דרך ישויות Reminder ו-ReminderConfig.
פקודות עיקריות
/remind– פותח אשף אינטראקטיבי: כותרת → זמן → תיאור./remind "כותרת" tomorrow 10:00– יצירה מהירה עם פרמטרים בשורה אחת (סיומות נפוצות:tomorrow 10:00,in 2 hours,בעוד 30 דקות)./reminders– מציג רשימת תזכורות פעילות עם כפתורי השלמה/עריכה/מחיקה./cancel– ביטול האשף בכל שלב.
איך הוויזרד עובד
כותרת – חובה; עוברת ולידציה מול
ReminderValidator.בחירת זמן – כפתורי קיצור (15/30 דקות, שעה, מחר 09:00, שבוע) או קלט חופשי שנפרש ע“י
reminders.utils.parse_time.תיאור – אופציונלי; ניתן לדלג עם
/skipאו ”דלג“.בסיום נוצרת רשומה חדשה דרך
RemindersDB.create_reminderומתוזמן job ייעודי ב-JobQueue.
טיפים לשימוש בפקודה מהירה
/remind "לעדכן לוגים" in 45 minutes
/remind "פגישת סנכרון" 2025-01-15 14:00
/remind "לשלוח PR" בעעוד שעה
המרכאות סביב הכותרת חובה כאשר משתמשים בנתיב המהיר. כל מה שלאחר הכותרת מתפרש כזמן.
ניהול התזכורות
בחלון הרשימה מוצג לכל תזכורת כפתור
✅(סימון כהושלמה),✏️(עריכה),🗑️(מחיקה).בעת התראת ”⏰ תזכורת“ מתקבלים גם כפתורי דחייה (15/60/180 דקות או ”מחר“).
עריכה מתבצעת בשני שלבים: בחירת שדה דרך כפתורים ואז שליחת קלט חופשי (כולל תמיכה ב-
/skipלניקוי תיאור).ניתן לדחות תזכורת גם לאחר שנשלחה; המערכת תעדכן את ה-job הקיים ותשמור סטטוס
SNOOZED.
מגבלות ומדיניות
עד
50תזכורות פעילות למשתמש (ReminderConfig.max_reminders_per_user).כותרת עד
200תווים, תיאור עד1000תווים וללא תווים בעייתיים כמו<>[]{}.זמן חייב להיות בעתיד ולא יותר משנה קדימה.
ברירת המחדל לאזור זמן היא
Asia/Jerusalem; ניתן להתאים בעתיד דרך DB אם מוסיפים שדהuser_timezone.
מתזמן והתאוששות
reminders/scheduler.pyטוען תזכורות ממתינות ואת אלה שמתוזמנות קדימה ומריץ אותן ב-JobQueue.בעת אתחול, המתזמן מסמן תזכורות עבר שנשלחו אך לא הושלמו, כך שכפתורי השלמה עדיין עובדים.
תזכורות מחזוריות (Daily/Weekly/Monthly) נוצרות מחדש באמצעות
handle_recurring_remindersשמופעל פעם בשעה.
חיבור לקוד
חיבור ל-PTB:
reminders.handlers.setup_reminder_handlers(application)מוסיף את האשף, רשימת התזכורות וטיפול ב-callbackים.Scheduler:
reminders.scheduler.setup_reminder_scheduler(application)מוודא שטעינת התזמונים מתבצעת אחרי עליית הבוט.