welp, couldn't fool the server
This commit is contained in:
parent
5f931ad8b3
commit
0ca1a76c4e
@ -23,8 +23,8 @@ async def fake_get_home(request: Request, _=host_required([Hosts.CLIENTS])):
|
||||
return await return_edited_response(upstream_response, data_override)
|
||||
|
||||
|
||||
@app.get("/api/v2/features", tags=[Hosts.CLIENTS.value])
|
||||
async def fake_get_features(request: Request, _=host_required([Hosts.CLIENTS])):
|
||||
@app.get("/api/v2/features", tags=[Hosts.CLIENTS.value, Hosts.PLEX.value])
|
||||
async def fake_get_features(request: Request, _=host_required([Hosts.CLIENTS, Hosts.PLEX])):
|
||||
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
||||
|
||||
data_override = FEATURES_DICT
|
||||
@ -32,8 +32,8 @@ async def fake_get_features(request: Request, _=host_required([Hosts.CLIENTS])):
|
||||
return await return_edited_response(upstream_response, data_override)
|
||||
|
||||
|
||||
@app.get("/api/v2/user", tags=[Hosts.CLIENTS.value])
|
||||
async def fake_get_user(request: Request, _=host_required([Hosts.CLIENTS])):
|
||||
@app.get("/api/v2/user", tags=[Hosts.CLIENTS.value, Hosts.PLEX.value])
|
||||
async def fake_get_user(request: Request, _=host_required([Hosts.CLIENTS, Hosts.PLEX])):
|
||||
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
||||
|
||||
data_override = None
|
||||
|
28
utils.py
28
utils.py
@ -1,3 +1,5 @@
|
||||
import json
|
||||
|
||||
import httpx
|
||||
from fastapi import Request, Depends, HTTPException
|
||||
from fastapi.responses import Response
|
||||
@ -49,6 +51,7 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
||||
headers=req_headers,
|
||||
content=body,
|
||||
params=request.query_params,
|
||||
follow_redirects=True,
|
||||
cookies=request.cookies,
|
||||
)
|
||||
|
||||
@ -60,23 +63,6 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
||||
}
|
||||
upstream_response.headers = resp_headers
|
||||
|
||||
if LOG_REQUESTS:
|
||||
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
||||
f.write(f"{request.method} {request.url}\n")
|
||||
f.write(f"Request headers: {req_headers}\n")
|
||||
if body:
|
||||
try:
|
||||
f.write(f"Request body: {body.decode('utf-8')}\n")
|
||||
except UnicodeDecodeError:
|
||||
f.write(f"Request body: {body}\n")
|
||||
f.write(f"Response status: {upstream_response.status_code}\n")
|
||||
f.write(f"Response headers: {resp_headers}\n")
|
||||
try:
|
||||
f.write(f"Response body: {upstream_response.text}\n")
|
||||
except UnicodeDecodeError:
|
||||
f.write(f"Response body: {upstream_response.content}\n")
|
||||
f.write("\n---\n\n")
|
||||
|
||||
return upstream_response
|
||||
|
||||
|
||||
@ -105,6 +91,14 @@ async def return_edited_response(
|
||||
if (isinstance(data, list) or ignore_official_data) and isinstance(new_content, list):
|
||||
data = new_content # replace entire list
|
||||
|
||||
if LOG_REQUESTS:
|
||||
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
||||
beautify_headers = json.dumps(dict(response.headers), indent=2)
|
||||
beautify_request_headers = json.dumps(dict(response.request.headers), indent=2)
|
||||
beautify_data = json.dumps(data, indent=2, ensure_ascii=False)
|
||||
f.write(f"---\n{response.status_code} {response.url}\n\nRequest Headers: {beautify_request_headers}\n\n"
|
||||
f"Response Headers: {beautify_headers}\n\nResponse Data: {beautify_data}\n\n\n\n")
|
||||
|
||||
return JSONResponse(
|
||||
content=data,
|
||||
status_code=response.status_code,
|
||||
|
Loading…
x
Reference in New Issue
Block a user