fix webhooks
This commit is contained in:
@ -29,7 +29,7 @@ class EmbyModule(_ModuleBase):
|
||||
:param args: 请求参数
|
||||
:return: 字典,解析为消息时需要包含:title、text、image
|
||||
"""
|
||||
return self.emby.get_webhook_message(json.loads(body))
|
||||
return self.emby.get_webhook_message(form.get("data"))
|
||||
|
||||
def media_exists(self, mediainfo: MediaInfo) -> Optional[dict]:
|
||||
"""
|
||||
|
@ -1,3 +1,4 @@
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
from typing import List, Optional, Union, Dict
|
||||
@ -438,12 +439,12 @@ class Emby(metaclass=Singleton):
|
||||
logger.error(f"连接Items/Id出错:" + str(e))
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def get_webhook_message(message: dict) -> dict:
|
||||
def get_webhook_message(self, message_str: str) -> dict:
|
||||
"""
|
||||
解析Emby Webhook报文
|
||||
"""
|
||||
eventItem = {'event': message.get('Event', '')}
|
||||
message = json.loads(message_str)
|
||||
eventItem = {'event': message.get('Event', ''), "channel": "emby"}
|
||||
if message.get('Item'):
|
||||
if message.get('Item', {}).get('Type') == 'Episode':
|
||||
eventItem['item_type'] = "TV"
|
||||
@ -486,4 +487,10 @@ class Emby(metaclass=Singleton):
|
||||
if message.get("User"):
|
||||
eventItem['user_name'] = message.get("User").get('Name')
|
||||
|
||||
# 获取消息图片
|
||||
if eventItem.get("item_id"):
|
||||
# 根据返回的item_id去调用媒体服务器获取
|
||||
eventItem['image_url'] = self.get_remote_image_by_id(item_id=eventItem.get('item_id'),
|
||||
image_type="Backdrop")
|
||||
|
||||
return eventItem
|
||||
|
@ -1,3 +1,4 @@
|
||||
import json
|
||||
from typing import Optional, Tuple, Union, Any
|
||||
|
||||
from app.core.context import MediaInfo
|
||||
@ -27,7 +28,7 @@ class JellyfinModule(_ModuleBase):
|
||||
:param args: 请求参数
|
||||
:return: 字典,解析为消息时需要包含:title、text、image
|
||||
"""
|
||||
return self.jellyfin.get_webhook_message(form.get("data"))
|
||||
return self.jellyfin.get_webhook_message(json.loads(body))
|
||||
|
||||
def media_exists(self, mediainfo: MediaInfo) -> Optional[dict]:
|
||||
"""
|
||||
|
@ -330,13 +330,20 @@ class Jellyfin(metaclass=Singleton):
|
||||
logger.error(f"连接Users/Items出错:" + str(e))
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def get_webhook_message(message: dict) -> dict:
|
||||
def get_webhook_message(self, message: dict) -> dict:
|
||||
"""
|
||||
解析Jellyfin报文
|
||||
"""
|
||||
eventItem = {'event': message.get('NotificationType', ''),
|
||||
'item_name': message.get('Name'),
|
||||
'user_name': message.get('NotificationUsername')
|
||||
'user_name': message.get('NotificationUsername'),
|
||||
"channel": "jellyfin"
|
||||
}
|
||||
|
||||
# 获取消息图片
|
||||
if eventItem.get("item_id"):
|
||||
# 根据返回的item_id去调用媒体服务器获取
|
||||
eventItem['image_url'] = self.get_remote_image_by_id(item_id=eventItem.get('item_id'),
|
||||
image_type="Backdrop")
|
||||
|
||||
return eventItem
|
||||
|
@ -1,3 +1,4 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import List, Optional, Dict, Tuple
|
||||
from urllib.parse import quote_plus
|
||||
@ -250,8 +251,7 @@ class Plex(metaclass=Singleton):
|
||||
break
|
||||
return ids
|
||||
|
||||
@staticmethod
|
||||
def get_webhook_message(message: dict) -> dict:
|
||||
def get_webhook_message(self, message_str: str) -> dict:
|
||||
"""
|
||||
解析Plex报文
|
||||
eventItem 字段的含义
|
||||
@ -261,7 +261,8 @@ class Plex(metaclass=Singleton):
|
||||
MOV:猪猪侠大冒险(2001)
|
||||
overview 剧情描述
|
||||
"""
|
||||
eventItem = {'event': message.get('event', '')}
|
||||
message = json.loads(message_str)
|
||||
eventItem = {'event': message.get('event', ''), "channel": "plex"}
|
||||
if message.get('Metadata'):
|
||||
if message.get('Metadata', {}).get('type') == 'episode':
|
||||
eventItem['item_type'] = "TV"
|
||||
@ -295,4 +296,10 @@ class Plex(metaclass=Singleton):
|
||||
if message.get('Account'):
|
||||
eventItem['user_name'] = message.get("Account").get('title')
|
||||
|
||||
# 获取消息图片
|
||||
if eventItem.get("item_id"):
|
||||
# 根据返回的item_id去调用媒体服务器获取
|
||||
eventItem['image_url'] = self.get_remote_image_by_id(item_id=eventItem.get('item_id'),
|
||||
image_type="Backdrop")
|
||||
|
||||
return eventItem
|
||||
|
Reference in New Issue
Block a user