from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from starlette.templating import Jinja2Templates from app.utils import get_avatar_urls, get_client_geo, get_client_host from app.logging import logger templates = Jinja2Templates(directory="templates") app = FastAPI() app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/", response_class=HTMLResponse) async def index(request: Request): logger.info(str(dict(request.headers))) return templates.TemplateResponse( "index.html", { "request": request, "client_geo": await get_client_geo( get_client_host(request) ), "avatar_urls": get_avatar_urls() } )