Files
Eurojackpot-Tipp-Generator/setup_cron.sh
T
cbazzaandClaude Sonnet 4.5 70e0638dee Initial commit: Eurojackpot analysis and prediction system
This repository contains a comprehensive Eurojackpot lottery analysis and prediction system including:
- Historical data analysis and processing
- ML-based prediction models
- Automated weekly tip generation
- Position and range analysis tools
- Notification system for results

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 15:53:01 +01:00

215 lines
10 KiB
Bash
Executable File

#!/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!"