From 1dabffeec9b54b6c1e02ee2461d1cd138599df1d Mon Sep 17 00:00:00 2001 From: Mathieu Broillet Date: Thu, 28 Aug 2025 11:19:54 +0200 Subject: [PATCH] fix webhooks get response --- main_app.py | 3 ++- utils.py | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/main_app.py b/main_app.py index 93c2102..b8a6e4e 100644 --- a/main_app.py +++ b/main_app.py @@ -230,9 +230,10 @@ async def fake_list_user_webhooks(request: Request, _=host_required([Hosts.CLIEN upstream_response = await call_official(request, request.url.path.lstrip("/")) + upstream_response.status_code = 200 data_override = [{"url": "https://webhooks.are.not.supported.because.plex.sends.them/not/your/server"}] - return await return_edited_response(upstream_response, data_override) + return await return_edited_response(upstream_response, data_override, ignore_official_data=True) @app.get("/favicon.ico") diff --git a/utils.py b/utils.py index b3e9b19..e20fa91 100644 --- a/utils.py +++ b/utils.py @@ -65,7 +65,8 @@ async def call_official(request: Request, path: str) -> httpx.Response: async def return_edited_response( response: httpx.Response, - new_content: dict | bytes | list | str | None = None + new_content: dict | bytes | list | str | None = None, + ignore_official_data: bool = False ) -> Response: """ Return possibly modified response. @@ -82,8 +83,9 @@ async def return_edited_response( data = response.json() if isinstance(new_content, dict): # allow overrides - data = {**data, **new_content} - if isinstance(data, list) and isinstance(new_content, list): + data = new_content if ignore_official_data else {**data, **new_content} + + if (isinstance(data, list) or ignore_official_data) and isinstance(new_content, list): data = new_content # replace entire list return JSONResponse(