פרויקט זה מאפשר שליחה אוטומטית של עדכונים על פרקי פודקאסטים מערוצי RSS לערוץ Telegram. הוא כולל אפשרויות לניהול פודקאסטים בבסיס נתונים, הורדת קבצי פרקים ושליחת התראות ל-Telegram.
בוט הפודקאסטים ל-Telegram מאפשר קבלת פרקים מערוצי RSS שונים ושליחת עדכונים, כולל קישורים ותיאורים, לערוץ Telegram ייעודי. זהו כלי שימושי להפצת פודקאסטים לקהילה באופן אוטומטי.
- קבלת פרקי פודקאסטים מערוצי RSS.
- סינון ועיבוד נתוני פודקאסטים.
- הורדת קבצי פודקאסטים.
- שליחת עדכונים מעוצבים לערוץ Telegram.
- ניהול ערוצי פודקאסטים בבסיס נתונים.
- תמיכה בהרצה בסביבת Docker.
- Python 3.7+ (אם לא משתמשים ב-Docker)
- Token של בוט Telegram
- Docker (לסביבת הרצה במכולה)
-
יש לשכפל את המאגר:
git clone https://github.com/ZviCode/rss-podcast-to-telegram.git cd rss-podcast-to-telegram
-
יצירת סביבה וירטואלית והפעלתה:
python -m venv venv source venv/bin/activate # ב-Windows יש להשתמש ב `venv\Scripts\activate`
-
התקנת התלויות הנדרשות:
pip install -r requirements.txt
-
הגדרת בסיס הנתונים PostgreSQL והטבלאות כפי שמתואר בקובץ
tables.py
. -
יצירת קובץ
.env
בספריית השורש עם ההגדרות שלך (ראה הגדרה).
-
ודא כי Docker מותקן ורץ על המחשב שלך.
-
בניית התמונה של Docker:
docker build -t rss-podcast-bot .
-
יצירת קובץ
.env
בספריית השורש עם ההגדרות שלך (ראה הגדרה).
יש ליצור קובץ .env
בספריית השורש ולהוסיף את המשתנים הבאים:
START_PATH=/app/downloads
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
TELEGRAM_CHAT_ID=-1001995413878
DATABASE_URL=your-database-url
START_PATH
: נתיב הספריה לאחסון קבצי הפודקאסטים שהורדו.TELEGRAM_BOT_TOKEN
: Token של בוט Telegram לשליחת הודעות.TELEGRAM_CHAT_ID
: מזהה הערוץ ב-Telegram אליו יש לשלוח את העדכונים.DATABASE_URL
: מחרוזת ההתחברות לבסיס הנתונים שלך PostgreSQL.
-
הפעלת הסביבה הווירטואלית:
source venv/bin/activate # ב-Windows יש להשתמש ב `venv\Scripts\activate`
-
הרצת הסקריפט
app.py
להתחלת קבלת הפרקים ועיבודם:python app.py
-
הרצת המכולה של Docker:
docker run -d --name rss-podcast-bot --env-file .env rss-podcast-bot
פקודה זו תתחיל את המכולה במצב נפרד ותהריץ את הסקריפט כל שעה כפי שצוין בקובץ
crontab
.
להוספת ערוץ RSS חדש לבסיס הנתונים, יש לפעול על פי ההנחיות הבאות:
-
ודא כי בסיס הנתונים מוגדר וזמין עם ה-
DATABASE_URL
שצוין בקובץ.env
. -
השתמש בפונקציה
add_podcast
מתוך הקובץrepo.py
להוספת ערוץ RSS חדש.import repo podcast_name = 'שם הפודקאסט שלך' rss_link = 'https://your-podcast.com/rss' chat_id = '-1001234567890' # החלף במזהה הערוץ שלך ב-Telegram repo.add_podcast(podcast_name, rss_link, chat_id)
-
ניתן להריץ את הסקריפט הנ"ל או להוסיף אותו לסקריפט הראשי להוספת ערוצי RSS באופן דינמי.
להרצת הפרויקט באמצעות Docker, פעל לפי ההוראות הבאות:
-
ודא כי הקבצים הבאים נמצאים בספריית השורש בנוסף לקבצים הרגילים:
Dockerfile
: מגדיר את תמונת Docker.crontab
: מגדיר את עבודת ה-cron להרצת הסקריפט כל שעה.requirements.txt
: מפרט את התלויות הנדרשות לפרויקט.
-
בניית תמונת Docker:
docker build -t rss-podcast-bot .
-
הרצת מכולת Docker:
docker run -d --name rss-podcast-bot --env-file .env rss-podcast-bot
-
בדיקת יומנים כדי לוודא שהסקריפט פועל כראוי:
docker logs rss-podcast-bot
app.py
: הסקריפט הראשי לקבלה, עיבוד ושליחת עדכונים על הפודקאסטים.repo.py
: פעולות בסיס הנתונים והורדת הקבצים.utils.py
: פונקציות עזר להודעות ופעולות על קבצים.config.py
: ניהול הגדרות באמצעות משתני סביבה..env
: קובץ ההגדרות של הסביבה.requirements.txt
: רשימת התלויות של הפרויקט.Dockerfile
: קובץ Docker ליצירת תמונה של Docker.crontab
: קובץ crontab להגדרת עבודת cron.README.md
: קובץ זה..gitignore
: קבצים שלא ישמרו במאגר.
- chatgpt (readme file)
- my_telegram_group(idea)