#!/bin/bash # # Eurojackpot Cron Setup Script # # Richtet automatische Cronjobs ein für: # - Montag & Donnerstag 09:00: Tipps generieren # - Dienstag & Freitag 21:00: Daten aktualisieren & lernen # set -e SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PROJECT_PATH="$SCRIPT_DIR" PYTHON_VENV="$PROJECT_PATH/venv/bin/python" LOGS_DIR="$PROJECT_PATH/logs" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ EUROJACKPOT AUTOMATION - CRON SETUP ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" # 1. Prüfe ob venv existiert echo "🔍 Prüfe virtuelle Umgebung..." if [ ! -f "$PYTHON_VENV" ]; then echo " ❌ Virtuelle Umgebung nicht gefunden!" echo " 📁 Erwartet: $PYTHON_VENV" echo "" echo " 💡 Bitte zuerst venv erstellen:" echo " python3 -m venv venv" echo " source venv/bin/activate" echo " pip install requests beautifulsoup4 pandas numpy scikit-learn" exit 1 fi echo " ✅ venv gefunden" # 2. Erstelle Log-Verzeichnis echo "" echo "📁 Erstelle Log-Verzeichnis..." mkdir -p "$LOGS_DIR" echo " ✅ $LOGS_DIR" # 3. Teste Scripts echo "" echo "🧪 Teste Scripts..." echo " 📝 Teste weekly_tip_generator.py..." cd "$PROJECT_PATH" source venv/bin/activate if python scripts/automation/weekly_tip_generator.py --history > /dev/null 2>&1; then echo " ✅ Script funktioniert" else echo " ⚠️ Script hat Fehler (möglicherweise OK wenn Historie leer)" fi echo " 📝 Teste auto_update_and_learn.py..." if python -c "import sys; sys.path.insert(0, '$PROJECT_PATH'); from scripts.automation.auto_update_and_learn import AutoUpdateAndLearn" > /dev/null 2>&1; then echo " ✅ Script kann importiert werden" else echo " ❌ Script hat Import-Fehler" exit 1 fi # 4. Zeige Cron-Konfiguration echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ CRON-KONFIGURATION ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "Die folgenden Cronjobs werden hinzugefügt:" echo "" echo "┌────────────────────────────────────────────────────────────────┐" echo "│ MONTAG & DONNERSTAG 09:00 - Tipps generieren │" echo "└────────────────────────────────────────────────────────────────┘" echo "0 9 * * 1,4 cd \"$PROJECT_PATH\" && source venv/bin/activate && python scripts/automation/weekly_tip_generator.py >> \"$LOGS_DIR/tips_generation.log\" 2>&1" echo "" echo "┌────────────────────────────────────────────────────────────────┐" echo "│ DIENSTAG & FREITAG 21:00 - Update & Learning │" echo "└────────────────────────────────────────────────────────────────┘" echo "0 21 * * 2,5 cd \"$PROJECT_PATH\" && source venv/bin/activate && python scripts/automation/auto_update_and_learn.py >> \"$LOGS_DIR/auto_update.log\" 2>&1" echo "" # 5. Frage Benutzer echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ INSTALLATION ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "Möchtest du diese Cronjobs jetzt installieren?" echo "" echo " [1] Ja, Cronjobs automatisch hinzufügen" echo " [2] Nein, nur Anleitung für manuelle Installation zeigen" echo " [3] Abbrechen" echo "" read -p "Wahl (1/2/3): " choice case $choice in 1) echo "" echo "📝 Installiere Cronjobs..." # Temporäre Datei für neue Crontab TEMP_CRON=$(mktemp) # Hole existierende Crontab (ohne Fehler wenn leer) crontab -l > "$TEMP_CRON" 2>/dev/null || true # Prüfe ob Eurojackpot-Jobs bereits existieren if grep -q "eurojackpot" "$TEMP_CRON" 2>/dev/null || grep -q "weekly_tip_generator" "$TEMP_CRON" 2>/dev/null; then echo " ⚠️ Eurojackpot-Cronjobs scheinen bereits zu existieren!" echo " 💡 Möchtest du sie ersetzen? (j/n)" read -p " > " replace if [ "$replace" != "j" ] && [ "$replace" != "J" ]; then echo " ⏭️ Installation abgebrochen" rm "$TEMP_CRON" exit 0 fi # Entferne alte Eurojackpot-Einträge grep -v "eurojackpot\|weekly_tip_generator\|auto_update_and_learn" "$TEMP_CRON" > "${TEMP_CRON}.new" || true mv "${TEMP_CRON}.new" "$TEMP_CRON" fi # Füge neue Cronjobs hinzu cat >> "$TEMP_CRON" << EOF # ========== EUROJACKPOT AUTOMATION ========== # Generiert am: $(date '+%Y-%m-%d %H:%M:%S') # Montag & Donnerstag 09:00: Tipps generieren (vor Ziehung) 0 9 * * 1,4 cd "$PROJECT_PATH" && source venv/bin/activate && python scripts/automation/weekly_tip_generator.py >> "$LOGS_DIR/tips_generation.log" 2>&1 # Dienstag & Freitag 21:00: Update & Learning (nach Ziehung) 0 21 * * 2,5 cd "$PROJECT_PATH" && source venv/bin/activate && python scripts/automation/auto_update_and_learn.py >> "$LOGS_DIR/auto_update.log" 2>&1 # ========================================== EOF # Installiere neue Crontab crontab "$TEMP_CRON" rm "$TEMP_CRON" echo " ✅ Cronjobs erfolgreich installiert!" echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ ✅ INSTALLATION ABGESCHLOSSEN ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "📅 Zeitplan:" echo " Montag 09:00 → Tipps für Dienstag-Ziehung" echo " Dienstag 21:00 → Update & Learning" echo " Donnerstag 09:00 → Tipps für Freitag-Ziehung" echo " Freitag 21:00 → Update & Learning" echo "" echo "📊 Logs anzeigen:" echo " tail -f \"$LOGS_DIR/tips_generation.log\"" echo " tail -f \"$LOGS_DIR/auto_update.log\"" echo "" echo "🔧 Cronjobs verwalten:" echo " crontab -l # Zeige alle Cronjobs" echo " crontab -e # Bearbeite Cronjobs" echo " crontab -r # Lösche alle Cronjobs" echo "" ;; 2) echo "" echo "╔════════════════════════════════════════════════════════════════╗" echo "║ MANUELLE INSTALLATION ║" echo "╚════════════════════════════════════════════════════════════════╝" echo "" echo "1. Öffne Crontab:" echo " crontab -e" echo "" echo "2. Füge folgende Zeilen am Ende hinzu:" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" cat << EOF # EUROJACKPOT AUTOMATION # Montag & Donnerstag 09:00: Tipps generieren 0 9 * * 1,4 cd "$PROJECT_PATH" && source venv/bin/activate && python scripts/automation/weekly_tip_generator.py >> "$LOGS_DIR/tips_generation.log" 2>&1 # Dienstag & Freitag 21:00: Update & Learning 0 21 * * 2,5 cd "$PROJECT_PATH" && source venv/bin/activate && python scripts/automation/auto_update_and_learn.py >> "$LOGS_DIR/auto_update.log" 2>&1 EOF echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "3. Speichern:" echo " - In vim: ESC, dann :wq" echo " - In nano: Ctrl+X, dann Y, dann Enter" echo "" ;; *) echo "" echo "⏭️ Installation abgebrochen" exit 0 ;; esac echo "💡 Nächste Schritte:" echo "" echo " 1. Teste manuell:" echo " cd \"$PROJECT_PATH\"" echo " source venv/bin/activate" echo " python scripts/automation/weekly_tip_generator.py --force" echo "" echo " 2. Prüfe Telegram-Benachrichtigungen:" echo " python scripts/utils/notifier.py --test" echo "" echo " 3. Überwache Logs:" echo " tail -f \"$LOGS_DIR/tips_generation.log\"" echo "" echo "🎉 Viel Erfolg mit dem Eurojackpot-System!"