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>
This commit is contained in:
Executable
+214
@@ -0,0 +1,214 @@
|
||||
#!/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!"
|
||||
Reference in New Issue
Block a user