Skip to content

Carbnwo/TGVMaxBot

Repository files navigation

🚄 TGVMaxBot

Bot Telegram personnel pour la détection automatique des billets TGVmax disponibles, avec alertes personnalisées toutes les 15 minutes.

✨ Fonctionnalités

  • 📲 Interface Telegram guidée pour enregistrer des trajets
  • 📅 Prise en charge des trajets ponctuels
  • ⏰ Heure de départ préférée pour chaque trajet
  • 🧠 Détection du train gratuit le plus proche
  • 🚨 Notification automatique Telegram en cas de meilleur train
  • 🗂️ Stockage local des meilleurs trains (best_trains.json)
  • 🔁 Mise à jour automatique des données toutes les 15 minutes

🧱 Stack technique

  • python-telegram-bot (interaction avec Telegram)
  • requests (download du dataset SNCF)
  • schedule (boucle de scan périodique)
  • dotenv (gestion des clés API)
  • json, datetime, threading, subprocess, etc.

🖼️ Aperçu

Illustration du bot

🚀 Lancement local

  1. Cloner le repo :

    git clone https://github.com/Carbnwo/TGVMaxBot.git
    cd TGVMaxBot
  2. Créer un environnement virtuel :

    python3 -m venv .venv
    source .venv/bin/activate
  3. Installer les dépendances :

    pip install -r requirements.txt
  4. Configurer .env :

    TELEGRAM_BOT_TOKEN=...
    AUTHORIZED_USER_ID=...
    
  5. Lancer le système :

    python main.py

☁️ Déploiement

Le système tourne 24/7 sur un VPS Hetzner (Ubuntu 22.04), en utilisant un main.py qui orchestre toutes les tâches :

  • Lancement du bot Telegram
  • Téléchargement du fichier tgvmax.json
  • Conversion des trajets récurrents
  • Scan et envoi des alertes

📦 Structure des fichiers

├── main.py                 # Script principal de gestion des tâches
├── bot.py                  # Gestion du bot Telegram
├── scan_engine.py          # Détection du meilleur train
├── update_data.py          # Téléchargement du dataset TGVmax
├── convert_recurrent.py    # Conversion des trajets récurrents (facultatif)
├── telegram_utils.py       # Fonction d'envoi de messages Telegram
├── trajets_converted.json  # Liste des trajets à scanner
├── best_trains.json        # Historique des meilleurs trains trouvés
├── requirements.txt        # Dépendances Python
└── .env                    # Clés API (non versionné)

⚙️ Bot développé par Carbnwo pour un usage personnel.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages