should fool the server
This commit is contained in:
parent
7c67f7d180
commit
5f931ad8b3
21
main_app.py
21
main_app.py
@ -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")
|
||||||
|
2
utils.py
2
utils.py
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user