Füge Cron-Version des SERMAN RSS Feed Generators hinzu, einschließlich automatischem Setup, Logging und Quiet-Mode-Unterstützung. Entferne das Setup-Script und aktualisiere die README.md für bessere Benutzeranleitung.
This commit is contained in:
193
CRON_README.md
Normal file
193
CRON_README.md
Normal file
@ -0,0 +1,193 @@
|
||||
# SERMAN RSS Feed Generator - Cron-Version
|
||||
|
||||
Automatischer RSS-Feed-Generator für Podcast-Apps, optimiert für Cron-Jobs.
|
||||
|
||||
## 🚀 Schnellstart für Cron-Jobs
|
||||
|
||||
### 1. Automatisches Setup
|
||||
```bash
|
||||
./cron_setup.sh
|
||||
```
|
||||
|
||||
Das Setup-Script:
|
||||
- ✅ Testet die Python-Umgebung
|
||||
- ✅ Erstellt Wrapper-Scripts für Cron
|
||||
- ✅ Bietet automatische Cron-Installation
|
||||
- ✅ Konfiguriert Log-Rotation
|
||||
|
||||
### 2. Manueller Aufruf (ohne Cron)
|
||||
```bash
|
||||
# Standard-Ausführung
|
||||
python main.py
|
||||
|
||||
# Mit benutzerdefinierten Parametern
|
||||
python main.py --audio-dir "/pfad/zu/mp3s" --output "mein_podcast.xml"
|
||||
|
||||
# Stille Ausführung (für Cron)
|
||||
python main.py --quiet
|
||||
```
|
||||
|
||||
## ⏰ Cron-Konfiguration
|
||||
|
||||
### Häufige Cron-Intervalle
|
||||
|
||||
```bash
|
||||
# Alle 15 Minuten
|
||||
*/15 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
|
||||
|
||||
# Jede Stunde (empfohlen)
|
||||
0 * * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
|
||||
|
||||
# Alle 6 Stunden
|
||||
0 */6 * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
|
||||
|
||||
# Täglich um 6:00 Uhr
|
||||
0 6 * * * /pfad/zum/script/run_rss_generator.sh >/dev/null 2>&1
|
||||
```
|
||||
|
||||
### Cron-Installation
|
||||
|
||||
1. **Crontab öffnen:**
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
2. **Zeile hinzufügen** (z.B. stündlich):
|
||||
```
|
||||
0 * * * * /Users/manuel/dev/serman/rss-feeder/run_rss_generator.sh >/dev/null 2>&1
|
||||
```
|
||||
|
||||
3. **Speichern und beenden** (meist `Ctrl+X`, dann `Y`, dann `Enter`)
|
||||
|
||||
## 📋 Logging und Monitoring
|
||||
|
||||
### Log-Datei anzeigen
|
||||
```bash
|
||||
# Aktuelle Logs anzeigen
|
||||
tail -f rss_generator.log
|
||||
|
||||
# Letzte 50 Zeilen
|
||||
tail -n 50 rss_generator.log
|
||||
|
||||
# Log-Datei komplett anzeigen
|
||||
cat rss_generator.log
|
||||
```
|
||||
|
||||
### Log-Rotation
|
||||
Das System rotiert die Logs automatisch (behält nur die letzten 100 Zeilen).
|
||||
|
||||
## 🛠️ Kommandozeilen-Parameter
|
||||
|
||||
```bash
|
||||
python main.py [OPTIONEN]
|
||||
|
||||
Optionen:
|
||||
-a, --audio-dir PATH Verzeichnis mit MP3-Dateien
|
||||
(Standard: ../httpdocs/_audio)
|
||||
|
||||
-o, --output DATEI Ausgabedatei für RSS-Feed
|
||||
(Standard: serman_podcast.xml)
|
||||
|
||||
-u, --base-url URL Basis-URL für Audio-Dateien
|
||||
(Standard: https://www.serman.club)
|
||||
|
||||
-t, --title TITEL Titel des Podcasts
|
||||
(Standard: "SERMAN - Organic House Podcast")
|
||||
|
||||
--author AUTOR Autor des Podcasts
|
||||
(Standard: "SERMAN")
|
||||
|
||||
-q, --quiet Unterdrückt Ausgaben (für Cron-Jobs)
|
||||
|
||||
-h, --help Zeigt diese Hilfe an
|
||||
```
|
||||
|
||||
## 📁 Verzeichnisstruktur
|
||||
|
||||
```
|
||||
rss-feeder/
|
||||
├── main.py # Haupt-Script (ohne Server)
|
||||
├── local_podcast_generator.py # Generator-Klasse
|
||||
├── cron_setup.sh # Automatisches Cron-Setup
|
||||
├── run_rss_generator.sh # Cron-Wrapper (wird erstellt)
|
||||
├── rotate_logs.sh # Log-Rotation (wird erstellt)
|
||||
├── rss_generator.log # Log-Datei (wird erstellt)
|
||||
├── serman_podcast.xml # Generierter RSS-Feed
|
||||
└── _audio/ # MP3-Dateien
|
||||
├── track1.mp3
|
||||
├── track2.mp3
|
||||
└── cover_track1.jpg # Automatisch extrahierte Cover
|
||||
```
|
||||
|
||||
## 🔧 Troubleshooting
|
||||
|
||||
### Cron-Job läuft nicht
|
||||
1. **Pfade prüfen:**
|
||||
```bash
|
||||
which python3
|
||||
# Oder
|
||||
which uv
|
||||
```
|
||||
|
||||
2. **Script manuell testen:**
|
||||
```bash
|
||||
./run_rss_generator.sh
|
||||
```
|
||||
|
||||
3. **Log-Datei prüfen:**
|
||||
```bash
|
||||
tail -f rss_generator.log
|
||||
```
|
||||
|
||||
### Keine MP3-Dateien gefunden
|
||||
- Prüfe ob das Audio-Verzeichnis existiert
|
||||
- Prüfe Dateiberechtigungen
|
||||
- Verwende absolute Pfade in der Cron-Konfiguration
|
||||
|
||||
### Dependencies fehlen
|
||||
```bash
|
||||
# Mit UV (empfohlen)
|
||||
uv sync
|
||||
|
||||
# Oder mit pip
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## 🎵 Audio-Format-Unterstützung
|
||||
|
||||
- **Unterstützt:** MP3-Dateien (.mp3)
|
||||
- **Cover-Art:** Automatische Extraktion aus ID3-Tags
|
||||
- **Metadaten:** Titel, Künstler, Album, Dauer aus ID3-Tags
|
||||
|
||||
## 🌐 Webserver-Integration
|
||||
|
||||
Der RSS-Feed kann direkt auf einen Webserver kopiert werden:
|
||||
|
||||
```bash
|
||||
# Manuelle Kopie
|
||||
cp serman_podcast.xml /var/www/html/
|
||||
|
||||
# Automatisch im Wrapper-Script (wenn httpdocs existiert)
|
||||
# Der Feed wird automatisch nach ../httpdocs/ kopiert
|
||||
```
|
||||
|
||||
## 📱 Podcast-App-Kompatibilität
|
||||
|
||||
Optimiert für:
|
||||
- ✅ Apple Podcasts
|
||||
- ✅ Spotify
|
||||
- ✅ Google Podcasts
|
||||
- ✅ Overcast
|
||||
- ✅ Pocket Casts
|
||||
- ✅ Alle RSS-2.0-kompatiblen Apps
|
||||
|
||||
## 🔄 Aktualisierungsverhalten
|
||||
|
||||
- **Neue MP3-Dateien:** Werden automatisch erkannt und hinzugefügt
|
||||
- **Metadaten-Änderungen:** Werden bei der nächsten Ausführung übernommen
|
||||
- **Cover-Art:** Wird einmalig extrahiert und wiederverwendet
|
||||
- **Sortierung:** Neueste Dateien erscheinen zuerst (nach Änderungsdatum)
|
||||
|
||||
---
|
||||
|
||||
**💡 Tipp:** Für die beste Performance empfiehlt sich eine stündliche Aktualisierung via Cron-Job.
|
Reference in New Issue
Block a user