import os import logging from fastapi import FastAPI, Request, Response from fastapi.responses import HTMLResponse from bot import message_log, BOT_TOKEN, handle_update logging.basicConfig(format="%(asctime)s | %(levelname)s | %(message)s", level=logging.INFO) logger = logging.getLogger(__name__) app = FastAPI() @app.get("/", response_class=HTMLResponse) async def dashboard(): count = len(message_log) last = message_log[-1] if message_log else None last_info = (last["time"] + " - " + last["sent"][:60]) if last else "None yet" rows = "" for e in reversed(message_log[-10:]): s = "OK" if e["success"] else "FAIL" rows += "" + e["time"] + "" + e["input"] + "" + e["sent"] + "" + s + "" return """

Status Bot - Running

Messages sent: """ + str(count) + """ | Last: """ + last_info + """

""" + rows + """
TimeYou typedSent to wifeStatus
""" @app.get("/health") async def health(): return {"status": "running", "messages_sent": len(message_log)} @app.post("/webhook/{token}") async def telegram_webhook(token: str, request: Request): if token != BOT_TOKEN: return Response(status_code=403) data = await request.json() await handle_update(data) return Response(status_code=200)