Live_Bot / app.py
Rnkpatel542's picture
Upload 3 files
2e5925d verified
Raw
History Blame Contribute Delete
1.51 kB
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 += "<tr><td>" + e["time"] + "</td><td>" + e["input"] + "</td><td>" + e["sent"] + "</td><td>" + s + "</td></tr>"
return """<html><body style='font-family:sans-serif;padding:2rem;max-width:800px'>
<h2>Status Bot - Running</h2>
<p>Messages sent: <b>""" + str(count) + """</b> | Last: """ + last_info + """</p>
<table border='1' cellpadding='6' width='100%'>
<tr><th>Time</th><th>You typed</th><th>Sent to wife</th><th>Status</th></tr>
""" + rows + """</table></body></html>"""
@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)