Skip to content

sudo-py-dev/shabat-bot

Repository files navigation

בוט שבת 🤖🕯️

בוט טלגרם המנהל אוטומטית נעילה ופתיחה של קבוצות טלגרם במהלך שבת וחגים יהודיים, ועוזר לבעלי קבוצות לנעול אוטומטית את הקבוצה לפני כניסת שבת.

✨ תכונות

  • ניהול קבוצות אוטומטי: נעילה/פתיחה אוטומטית של קבוצות במהלך שבת וחגים יהודיים
  • הודעות מותאמות אישית: הגדרת הודעות אישיות לכניסת שבת ויציאת שבת עם תמיכה בטקסט ותמונות
  • שילוב לוח עברי: שימוש בנתוני לוח עברי מדויקים לקביעת התזמון המדויק
  • תמיכה בריבוי שפות: ממשק בעברית עם תמיכה בפקודות בעברית ואנגלית
  • בקרת מנהלים: פקודות מאובטחות למנהלים בלבד לניהול קבוצות
  • תמיכה בחגים: טיפול הן בשבת והן בחגים יהודיים מרכזיים
  • טיפול שגיאות מתקדם: טיפול מקיף בתרחישי קצה שונים

🚀 התחלה מהירה

דרישות מוקדמות

התקנה

  1. שכפול המאגר

    git clone https://github.com/sudo-py-dev/shabat-bot.git
    cd shabat-bot
  2. הגדרת סביבת עבודה וירטואלית

    python -m venv venv
    source venv/bin/activate  # ב-Windows: venv\Scripts\activate
  3. התקנת ספריות תלות

    pip install -r requirements.txt
  4. הגדרת משתני סביבה

    cp .env_example .env

    ערוך את הקובץ .env עם הפרטים שלך:

    API_ID=your_api_id
    API_HASH=your_api_hash
    BOT_TOKEN=your_bot_token
    BEFORE_SHABAT=40
    
  5. הרצת הבוט

    python index.py

📖 שימוש

למנהלי קבוצות

  1. הוסף את הבוט לקבוצה שלך עם הרשאות מנהל
  2. רשום את הקבוצה שלך:
    /register
    
  3. הגדר הודעת כניסת שבת מותאמת אישית:
    /calendar
    
    השב להודעה (טקסט או תמונה) שתרצה להשתמש בה כהודעת כניסה
  4. הגדר הודעת הבדלה מותאמת אישית:
    /havdalah
    
    השב להודעה עבור הודעת היציאה

פקודות זמינות

פקודה תיאור שימוש
/start הודעת ברכה ומידע על הבוט בצ'אט פרטי בלבד
/help הצגת פקודות זמינות בצ'אט פרטי בלבד
/register רישום קבוצה לניהול שבת מנהל קבוצה בלבד
/permission עדכון הרשאות קבוצה מנהל קבוצה בלבד
/calendar / /כניסה הגדרת הודעת כניסת שבת מנהל קבוצה בלבד
/havdalah / /הבדלה הגדרת הודעת יציאת שבת מנהל קבוצה בלבד

פקודות בעברית

הבוט תומך בפקודות עבריות לדוברי עברית:

  • /כניסה במקום /calendar
  • /הבדלה במקום /havdalah

⚙️ הגדרות

משתני סביבה

משתנה תיאור נדרש
API_ID מזהה API של טלגרם כן
API_HASH Hash של API טלגרם כן
BOT_TOKEN אסימון בוט טלגרם כן
BEFORE_SHABAT מספר דקות לפני כניסת השבת לנעילת הקבוצות (ברירת מחדל: 40) לא

איך זה עובד

  1. תזמון: הבוט מריץ מתזמן יומי הבודק זמני שבת/חג קרובים
  2. לוח עברי: משתמש ב-API של לוח עברי לקבלת תזמון מדויק להדלקת נרות והבדלה
  3. נעילת קבוצה: בזמן המתאים, נועל את הקבוצה על ידי הגבלת שליחת הודעות
  4. הודעות מותאמות אישית: שולח את ההודעות שהגדרת בעת נעילה/פתיחה
  5. פתיחה אוטומטית: פותח אוטומטית את הקבוצה בסיום השבת/החג

🛠️ פרטים טכניים

ארכיטקטורה

  • מסגרת: Pyrogram (ספריית טלגרם אסינכרונית)
  • מתזמן: APScheduler לתזמון מדויק
  • מסד נתונים: SQLite לאחסון נתוני קבוצות
  • לוח שנה: שילוב API לוח עברי
  • מטמון: TTL cache להרשאות מנהלים

רכיבים מרכזיים

  • index.py - יישום הבוט הראשי ומטפלי הודעות
  • schaduler.py - לוגיקת תזמון שבת/חג
  • database.py - ניהול נתוני קבוצות והרשאות
  • tools.py - פונקציות עזר ושילוב לוח עברי
  • enums.py - תבניות הודעות וקבועי הרשאות

ספריות תלות

pyrotgfork - פרוק של pyrogram לניהול בוטים בטלגרם
apscheduler - תזמון משימות
sqlalchemy - ORM מסד נתונים
python-dotenv - ניהול משתני סביבה
pytz - טיפול באזורי זמן
hebcal-api - נתוני לוח עברי
cachetools - כלי מטמון
tgcrypto - הצפנת טלגרם

📱 הרשאות בוט

בעת הוספת הבוט לקבוצה, ודא שיש לו הרשאות מנהל אלה:

  • מחיקת הודעות
  • הגבלת חברים

🐛 פתרון בעיות

בעיות נפוצות

  1. הבוט לא מגיב: בדוק אם אסימון הבוט נכון והבוט רץ
  2. הקבוצה לא ננעלת: ודא שהקבוצה רשומה עם /register ולבוט יש הרשאות מנהל
  3. תזמון שגוי: הבוט משתמש באזור זמן ישראל (Asia/Jerusalem) לחישובים
  4. שגיאות הרשאה: ודא שלבוט יש את הרשאות המנהל הנדרשות בקבוצה

יומנים

הבוט מתעד את כל הפעילויות למסוף ושומר קובץ יומן. בדוק את היומנים למידע מפורט על שגיאות.

🤝 תרומה

תרומות יתקבלו בברכה! אנא שלח בקשת משיכה (Pull Request).

הגדרת פיתוח

  1. Fork את המאגר
  2. צור ענף תכונה (feature branch)
  3. בצע את השינויים שלך
  4. בדוק היטב
  5. שלח בקשת משיכה

📄 רישיון

הפרויקט מורשה תחת רישיון MIT.

🙏 תודות

  • נתוני לוח עברי מסופקים על ידי Hebcal API
  • נבנה עם pyrotgfork

📞 תמיכה

אם אתה צריך עזרה או יש לך שאלות:

  • בדוק את היומנים עבור הודעות שגיאה
  • בדוק את ההגדרות בקובץ .env
  • ודא שכל ספריות התלות מותקנים כראוי
  • בדוק הרשאות בוט בקבוצה שלך

שבת שלום! 🕯️✨

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages