from fastapi import FastAPI, Request, Form from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from scrape import get_filtered_user_media app = FastAPI() templates = Jinja2Templates(directory="templates") @app.get("/", response_class=HTMLResponse) def form(request: Request): return templates.TemplateResponse("user.html", {"request": request}) @app.post("/scrape", response_class=HTMLResponse) async def scrape_user(request: Request, username: str = Form(...)): try: user_data = get_filtered_user_media(username) return templates.TemplateResponse("user.html", { "request": request, "user_data": user_data }) except Exception as e: return templates.TemplateResponse("user.html", { "request": request, "error": str(e) })