diff --git a/app.py b/app.py index 31463cf..6e4ecb6 100644 --- a/app.py +++ b/app.py @@ -16,7 +16,8 @@ import csv from io import StringIO from typing import Dict, List from starlette.middleware.base import BaseHTTPMiddleware -from starlette.types import ASGIApp +from starlette.types import ASGIApp, Message +from typing import Optional, Dict, Any # Initialize GeoIP2 reader try: @@ -99,6 +100,21 @@ class LanguageMiddleware(BaseHTTPMiddleware): return response +class HeadRequestMiddleware(BaseHTTPMiddleware): + async def dispatch(self, request: Request, call_next): + if request.method == 'HEAD': + # Create a new request with GET method + request.scope['method'] = 'GET' + # Process the request as GET + response = await call_next(request) + # Create a new response with empty body + return Response( + status_code=response.status_code, + headers=response.headers, + media_type=response.media_type + ) + return await call_next(request) + class UserIdentityMiddleware(BaseHTTPMiddleware): def __init__(self, app: ASGIApp): super().__init__(app) @@ -141,6 +157,7 @@ class UserIdentityMiddleware(BaseHTTPMiddleware): app = FastAPI() app.add_middleware(LanguageMiddleware) +app.add_middleware(HeadRequestMiddleware) app.add_middleware(UserIdentityMiddleware) app.mount("/static", StaticFiles(directory="static"), name="static") templates = {} diff --git a/requirements.txt b/requirements.txt index b268ebc..710eb3a 100644 Binary files a/requirements.txt and b/requirements.txt differ