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)
|
return await return_edited_response(upstream_response, data_override)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/api/v2/features", tags=[Hosts.CLIENTS.value])
|
@app.get("/api/v2/features", tags=[Hosts.CLIENTS.value, Hosts.PLEX.value])
|
||||||
async def fake_get_features(request: Request, _=host_required([Hosts.CLIENTS])):
|
async def fake_get_features(request: Request, _=host_required([Hosts.CLIENTS, Hosts.PLEX])):
|
||||||
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
||||||
|
|
||||||
data_override = FEATURES_DICT
|
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)
|
return await return_edited_response(upstream_response, data_override)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/api/v2/user", tags=[Hosts.CLIENTS.value])
|
@app.get("/api/v2/user", tags=[Hosts.CLIENTS.value, Hosts.PLEX.value])
|
||||||
async def fake_get_user(request: Request, _=host_required([Hosts.CLIENTS])):
|
async def fake_get_user(request: Request, _=host_required([Hosts.CLIENTS, Hosts.PLEX])):
|
||||||
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
upstream_response = await call_official(request, request.url.path.lstrip("/"))
|
||||||
|
|
||||||
data_override = None
|
data_override = None
|
||||||
|
28
utils.py
28
utils.py
@ -1,3 +1,5 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
from fastapi import Request, Depends, HTTPException
|
from fastapi import Request, Depends, HTTPException
|
||||||
from fastapi.responses import Response
|
from fastapi.responses import Response
|
||||||
@ -49,6 +51,7 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
|||||||
headers=req_headers,
|
headers=req_headers,
|
||||||
content=body,
|
content=body,
|
||||||
params=request.query_params,
|
params=request.query_params,
|
||||||
|
follow_redirects=True,
|
||||||
cookies=request.cookies,
|
cookies=request.cookies,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -60,23 +63,6 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
|||||||
}
|
}
|
||||||
upstream_response.headers = resp_headers
|
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
|
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):
|
if (isinstance(data, list) or ignore_official_data) and isinstance(new_content, list):
|
||||||
data = new_content # replace entire 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(
|
return JSONResponse(
|
||||||
content=data,
|
content=data,
|
||||||
status_code=response.status_code,
|
status_code=response.status_code,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user