should fool the server

This commit is contained in:
Mathieu Broillet 2025-08-28 16:10:51 +02:00
parent 7c67f7d180
commit 5f931ad8b3
Signed by: mathieub
GPG Key ID: 4428608CDA3A98D3
2 changed files with 21 additions and 2 deletions

View File

@ -1,4 +1,3 @@
import os
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from urllib.parse import parse_qs from urllib.parse import parse_qs
@ -247,6 +246,26 @@ async def block_telemetry():
return fake_response({"status": "disabled by proxy :)"}, status_code=200) return fake_response({"status": "disabled by proxy :)"}, status_code=200)
@app.post("/collect/server", tags=[Hosts.ANALYTICS.value])
async def fake_server_details(request: Request, _=host_required([Hosts.ANALYTICS])):
upstream_response = await call_official(request, request.url.path.lstrip("/"))
data_override = None
content_type = upstream_response.headers.get("content-type", "")
if content_type.startswith("application/xml"):
data = ET.fromstring(upstream_response.content)
data.attrib['plexPass'] = '1' # Set plexPass to 1
# Pretty print XML
ET.indent(data)
data_override = ET.tostring(data, encoding="utf-8", method="xml")
return await return_edited_response(upstream_response, data_override)
@app.get("/favicon.ico") @app.get("/favicon.ico")
async def favicon(): async def favicon():
return FileResponse("favicon.ico") return FileResponse("favicon.ico")

View File

@ -45,7 +45,7 @@ async def call_official(request: Request, path: str) -> httpx.Response:
# Forward request upstream # Forward request upstream
upstream_response = await official_client.request( upstream_response = await official_client.request(
method=request.method, method=request.method,
url=f"{str(request.base_url).rstrip('/').replace("http://", "https://")}/{path}", url=f"{str(request.base_url).rstrip('/')}/{path}", # .replace("http://", "https://")
headers=req_headers, headers=req_headers,
content=body, content=body,
params=request.query_params, params=request.query_params,