# This software is licensed by the MIT License, see LICENSE file # Copyright © 2024 Gregory Lirent from fastapi import FastAPI, Request, Response, HTTPException from .models import PACContent pac: PACContent | None = None app = FastAPI() def init(filename: str | None = None): global pac if not filename: pac = None else: pac = PACContent(filename) @app.get("/") async def root(request: Request, view: bool = False): if not pac: raise HTTPException(status_code=500, detail="Config is not set") print(request.headers.get('X-Real-IP', None) or request.client.host) return Response(status_code=200, media_type="application/javascript", content=pac.render_for(request.headers.get('X-Real-IP', None) or request.client.host), headers=None if view else {"Content-Disposition": "attachment; filename=wpad.dat"})