From 828e9ab8865c6777438dae44ab9105fca396c1a0 Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Thu, 10 Oct 2024 22:07:03 +0800 Subject: [PATCH] feat(webhook): add support for server_name field in WebhookEventInfo --- app/api/endpoints/webhook.py | 4 ++-- app/modules/emby/__init__.py | 5 ++++- app/modules/jellyfin/__init__.py | 5 ++++- app/modules/plex/__init__.py | 5 ++++- app/schemas/mediaserver.py | 1 + 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/api/endpoints/webhook.py b/app/api/endpoints/webhook.py index a4299416..88856732 100644 --- a/app/api/endpoints/webhook.py +++ b/app/api/endpoints/webhook.py @@ -22,7 +22,7 @@ async def webhook_message(background_tasks: BackgroundTasks, _: str = Depends(verify_apitoken) ) -> Any: """ - Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=消息配置名 + Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=媒体服务器名 """ body = await request.body() form = await request.form() @@ -35,7 +35,7 @@ async def webhook_message(background_tasks: BackgroundTasks, def webhook_message(background_tasks: BackgroundTasks, request: Request, _: str = Depends(verify_apitoken)) -> Any: """ - Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=消息配置名 + Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=媒体服务器名 """ args = request.query_params background_tasks.add_task(start_webhook_chain, None, None, args) diff --git a/app/modules/emby/__init__.py b/app/modules/emby/__init__.py index c6cedabb..b0196896 100644 --- a/app/modules/emby/__init__.py +++ b/app/modules/emby/__init__.py @@ -78,7 +78,10 @@ class EmbyModule(_ModuleBase, _MediaServerBase[Emby]): server: Emby = self.get_instance(source) if not server: return None - return server.get_webhook_message(form, args) + result = server.get_webhook_message(form, args) + if result: + result.server_name = source + return result for server in self.get_instances().values(): if server: diff --git a/app/modules/jellyfin/__init__.py b/app/modules/jellyfin/__init__.py index a0107123..8afd9d2a 100644 --- a/app/modules/jellyfin/__init__.py +++ b/app/modules/jellyfin/__init__.py @@ -78,7 +78,10 @@ class JellyfinModule(_ModuleBase, _MediaServerBase[Jellyfin]): server: Jellyfin = self.get_instance(source) if not server: return None - return server.get_webhook_message(body) + result = server.get_webhook_message(body) + if result: + result.server_name = source + return result for server in self.get_instances().values(): if server: diff --git a/app/modules/plex/__init__.py b/app/modules/plex/__init__.py index 25a8dca9..12c8fe19 100644 --- a/app/modules/plex/__init__.py +++ b/app/modules/plex/__init__.py @@ -64,7 +64,10 @@ class PlexModule(_ModuleBase, _MediaServerBase[Plex]): server: Plex = self.get_instance(source) if not server: return None - return server.get_webhook_message(form) + result = server.get_webhook_message(form) + if result: + result.server_name = source + return result for server in self.get_instances().values(): if server: diff --git a/app/schemas/mediaserver.py b/app/schemas/mediaserver.py index a97b4fbc..80488dda 100644 --- a/app/schemas/mediaserver.py +++ b/app/schemas/mediaserver.py @@ -139,6 +139,7 @@ class WebhookEventInfo(BaseModel): """ event: Optional[str] = None channel: Optional[str] = None + server_name: Optional[str] = None item_type: Optional[str] = None item_name: Optional[str] = None item_id: Optional[str] = None