Webseite überarbeitet und Telegram Bot funktion hinzugefügt #1

Merged
pi-farm merged 59 commits from dev into main 2026-03-07 23:50:03 +00:00
Showing only changes of commit 330dee175f - Show all commits

32
main.py
View File

@@ -11,6 +11,7 @@ import struct
import termios import termios
from telegram import Update from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, MessageHandler, filters from telegram.ext import ApplicationBuilder, ContextTypes, MessageHandler, filters
from telegram.error import InvalidToken
from google import genai from google import genai
from google.genai import types from google.genai import types
import json import json
@@ -228,20 +229,27 @@ async def handle_telegram_message(update: Update, context: ContextTypes.DEFAULT_
@app.on_event("startup") @app.on_event("startup")
async def startup_event(): async def startup_event():
global telegram_app global telegram_app
if TELEGRAM_TOKEN and ALLOWED_ID: # Prüfe auch, ob der Token nicht aus Versehen noch der Platzhalter ist
if TELEGRAM_TOKEN and ALLOWED_ID and "dein-telegram-bot-token" not in TELEGRAM_TOKEN:
print("🤖 Starte Telegram Bot im Hintergrund...") print("🤖 Starte Telegram Bot im Hintergrund...")
telegram_app = ApplicationBuilder().token(TELEGRAM_TOKEN).build() try:
telegram_app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
# Leitet alle Text-Nachrichten an unsere Funktion weiter
telegram_app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_telegram_message)) # Leitet alle Text-Nachrichten an unsere Funktion weiter
telegram_app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_telegram_message))
# Bot asynchron in die FastAPI Event-Loop einhängen
await telegram_app.initialize() # Bot asynchron in die FastAPI Event-Loop einhängen
await telegram_app.start() await telegram_app.initialize()
await telegram_app.updater.start_polling() await telegram_app.start()
print("✅ Telegram Bot lauscht!") await telegram_app.updater.start_polling()
print("✅ Telegram Bot lauscht!")
except InvalidToken:
print("❌ Telegram-Fehler: Der Token in der .env ist ungültig! Der Bot bleibt inaktiv, aber der Server läuft weiter.")
except Exception as e:
print(f"❌ Unerwarteter Fehler beim Telegram-Start: {e}")
else: else:
print(" Telegram Bot inaktiv (Token oder ID fehlen in der .env).") print(" Telegram Bot inaktiv (Token oder ID fehlen/sind Platzhalter in der .env).")
@app.on_event("shutdown") @app.on_event("shutdown")
async def shutdown_event(): async def shutdown_event():