Der Telegram Escape Bot ist ein interaktives Escape-Spiel, das direkt in Telegram gespielt werden kann. Spieler lösen Rätsel, um im Spiel voranzukommen, und erhalten Hinweise bei Bedarf. Der Bot ist vollständig anpassbar und einfach zu installieren.
Öffne ein Terminal oder die Eingabeaufforderung und führe folgende Befehle aus:
git clone https://github.com/rezgua1977/Telegram-Escape-Bot.git
cd telegram-escape-bot
Erstelle und aktiviere eine virtuelle Umgebung, um Abhängigkeiten zu isolieren:
-
Linux/macOS:
python3 -m venv venv source venv/bin/activate
-
Windows:
python -m venv venv venv\Scripts\activate
Installiere die Abhängigkeiten:
pip install -r requirements.txt
Erstelle eine .env
-Datei, um sensible Daten wie den Bot-Token sicher zu speichern:
nano .env
Füge folgende Einträge hinzu:
TOKEN=dein_telegram_bot_token
EMAIL_USER=deine_email_adresse
EMAIL_PASS=dein_email_passwort
RECIPIENT_EMAIL=empfaenger_email
Speichere und verlasse die Datei.
Starte den Bot manuell:
python main_bot.py
Sende eine Nachricht an den Bot, um sicherzustellen, dass er reagiert.
Damit der Bot automatisch gestartet wird, wenn der Server hochfährt, richte ihn als Systemdienst ein.
-
Erstelle die Dienstdatei:
sudo nano /etc/systemd/system/telegram-escape-bot.service
-
Füge folgenden Inhalt hinzu:
[Unit] Description=Telegram Escape Bot After=network.target [Service] User=root WorkingDirectory=/root/telegram-escape-bot Environment="TZ=Europe/Berlin" ExecStart=/root/telegram-escape-bot/venv/bin/python /root/telegram-escape-bot/main_bot.py Restart=always [Install] WantedBy=multi-user.target
Hinweis: Passe die Pfade zu deinem Projekt an.
-
Lade die Systemdienste neu:
sudo systemctl daemon-reload
-
Aktiviere und starte den Dienst:
sudo systemctl enable telegram-escape-bot sudo systemctl start telegram-escape-bot
-
Prüfe den Status:
sudo systemctl status telegram-escape-bot
Die Datei riddle_handler.py
ist der zentrale Ort, an dem die Rätsel und Lösungen definiert sind. Hier kannst du die Logik für jedes Rätsel individuell anpassen.
Die Lösungen für die Rätsel werden in einem Dictionary gespeichert:
solutions = {
1: ["lösung1"],
2: ["lösung2"],
3: ["lösung3"],
4: ["lösung4"],
5: ["lösung5"],
6: ["lösung6"],
7: ["lösung7"],
8: ["lösung8"]
}
- Der Schlüssel (
1
,2
, etc.) entspricht der Rätselnummer. - Der Wert ist die richtige Antwort. Es kann sich um einen String oder eine Liste handeln, wenn mehrere Antworten erlaubt sind.
Die Funktion get_hint_text
liefert die Hinweise für jedes Rätsel:
def get_hint_text(riddle_number):
hints = {
1: "Hinweis für Rätsel 1.",
2: "Hinweis für Rätsel 2.",
3: "Hinweis für Rätsel 3.",
4: "Hinweis für Rätsel 4.",
5: "Hinweis für Rätsel 5.",
6: "Hinweis für Rätsel 6.",
7: "Hinweis für Rätsel 7.",
8: "Hinweis für Rätsel 8."
}
return hints.get(riddle_number, "Kein Hinweis verfügbar.")
- Füge neue Hinweise für deine Rätsel hinzu, indem du das
hints
-Dictionary erweiterst. - Achte darauf, dass die Schlüssel mit den Rätselnummern übereinstimmen.
Jedes Rätsel kann eine eigene Beschreibung haben, die den Spielern angezeigt wird:
def get_riddle_description(riddle_number):
descriptions = {
1: "Beschreibung für Rätsel 1.",
2: "Beschreibung für Rätsel 2.",
3: "Beschreibung für Rätsel 3.",
4: "Beschreibung für Rätsel 4.",
5: "Beschreibung für Rätsel 5.",
6: "Beschreibung für Rätsel 6.",
7: "Beschreibung für Rätsel 7.",
8: "Beschreibung für Rätsel 8."
}
return descriptions.get(riddle_number, "Beschreibung fehlt.")
Wenn du neue Rätsel hinzufügen möchtest:
- Füge die Lösung im
solutions
-Dictionary hinzu. - Ergänze die Beschreibung in
get_riddle_description
. - Definiere optional Hinweise in
get_hint_text
.
solutions[9] = "neue_lösung"
def get_hint_text(riddle_number):
hints = {
# vorherige Hinweise ...
9: "Hinweis für Rätsel 9."
}
return hints.get(riddle_number, "Kein Hinweis verfügbar.")
def get_riddle_description(riddle_number):
descriptions = {
# vorherige Beschreibungen ...
9: "Beschreibung für Rätsel 9."
}
return descriptions.get(riddle_number, "Beschreibung fehlt.")
-
Bot starten:
sudo systemctl start telegram-escape-bot
-
Bot stoppen:
sudo systemctl stop telegram-escape-bot
-
Bot neu starten:
sudo systemctl restart telegram-escape-bot
-
Logs anzeigen:
sudo journalctl -u telegram-escape-bot
-
Bot reagiert nicht: Stelle sicher, dass der Dienst läuft:
sudo systemctl status telegram-escape-bot
Prüfe die Logs:
sudo journalctl -u telegram-escape-bot
-
Fehlende Abhängigkeiten: Installiere die Pakete erneut:
pip install -r requirements.txt
-
Probleme mit Zeitzonen: Stelle sicher, dass die Zeitzone korrekt eingestellt ist:
timedatectl set-timezone Europe/Berlin
-
Lerne Git: Speichere Änderungen mit Git und GitHub:
git add . git commit -m "Erste Version des Bots" git push origin main
-
Nutze virtuelle Umgebungen: Verhindere Konflikte zwischen Python-Paketen.
-
Frage um Hilfe: Nutze Plattformen wie Stack Overflow oder GitHub Discussions.
Dieses Projekt steht unter der MIT-Lizenz. Du kannst es frei verwenden, anpassen und teilen.
Viel Erfolg mit deinem Telegram Escape Bot! 🎉