dane w headerach i inne funkcje

This commit is contained in:
Mateusz Gruszczyński
2025-10-09 17:01:54 +02:00
parent 72c69c3d42
commit ca55b48d24

View File

@@ -1,5 +1,5 @@
from fastapi import FastAPI, Request, Response
from fastapi.responses import PlainTextResponse
from fastapi.responses import JSONResponse, PlainTextResponse
from starlette.middleware.base import BaseHTTPMiddleware
from .deps import get_geo
from .api import get_client_ip, router
@@ -38,14 +38,18 @@ async def favicon():
return Response(status_code=204)
@app.get("/")
@app.api_route("/", methods=["GET", "HEAD"])
async def root(request: Request):
ua = request.headers.get("user-agent", "").lower()
ip = get_client_ip(request).strip()
if any(x in ua for x in ["mozilla", "chrome", "safari", "edge", "firefox"]):
if request.method == "HEAD":
return Response(status_code=404)
return JSONResponse({"detail": "Not Found"}, status_code=404)
if request.method == "HEAD":
return Response(status_code=200)
return PlainTextResponse(ip + "\n")