This commit is contained in:
thsrite 2023-11-01 12:06:05 +08:00
parent 382035768e
commit b4d07cf6ab
4 changed files with 16 additions and 4 deletions

View File

@ -803,6 +803,7 @@ class Emby(metaclass=Singleton):
logger.debug(f"接收到emby webhook{message}") logger.debug(f"接收到emby webhook{message}")
eventItem = schemas.WebhookEventInfo(event=eventType, channel="emby") eventItem = schemas.WebhookEventInfo(event=eventType, channel="emby")
if message.get('Item'): if message.get('Item'):
eventItem.media_type = message.get('Item', {}).get('Type')
if message.get('Item', {}).get('Type') == 'Episode' \ if message.get('Item', {}).get('Type') == 'Episode' \
or message.get('Item', {}).get('Type') == 'Series' \ or message.get('Item', {}).get('Type') == 'Series' \
or message.get('Item', {}).get('Type') == 'Season': or message.get('Item', {}).get('Type') == 'Season':

View File

@ -466,6 +466,7 @@ class Jellyfin(metaclass=Singleton):
eventItem.device_name = message.get('DeviceName') eventItem.device_name = message.get('DeviceName')
eventItem.user_name = message.get('NotificationUsername') eventItem.user_name = message.get('NotificationUsername')
eventItem.client = message.get('ClientName') eventItem.client = message.get('ClientName')
eventItem.media_type = message.get('ItemType')
if message.get("ItemType") == "Episode" \ if message.get("ItemType") == "Episode" \
or message.get("ItemType") == "Series" \ or message.get("ItemType") == "Series" \
or message.get("ItemType") == "Season": or message.get("ItemType") == "Season":

View File

@ -4,7 +4,7 @@ import os
import re import re
import time import time
from pathlib import Path from pathlib import Path
from typing import List, Tuple, Dict, Any, Optional, Union from typing import List, Tuple, Dict, Any, Optional
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger from apscheduler.triggers.cron import CronTrigger
@ -506,7 +506,7 @@ class MediaSyncDel(_PluginBase):
return return
# 媒体类型 # 媒体类型
media_type = event_data.item_type media_type = event_data.media_type
# 媒体名称 # 媒体名称
media_name = event_data.item_name media_name = event_data.item_name
# 媒体路径 # 媒体路径
@ -518,6 +518,11 @@ class MediaSyncDel(_PluginBase):
# 集数 # 集数
episode_num = event_data.episode_id episode_num = event_data.episode_id
# 兼容emby webhook season删除没有发送tmdbid
if not tmdb_id and str(media_type) != 'Season':
logger.error(f"{media_name} 同步删除失败未获取到TMDB ID请检查媒体库媒体是否刮削")
return
self.__sync_del(media_type=media_type, self.__sync_del(media_type=media_type,
media_name=media_name, media_name=media_name,
media_path=media_path, media_path=media_path,
@ -573,6 +578,10 @@ class MediaSyncDel(_PluginBase):
# 集数 # 集数
episode_num = event_data.episode_id episode_num = event_data.episode_id
if not tmdb_id or not str(tmdb_id).isdigit():
logger.error(f"{media_name} 同步删除失败未获取到TMDB ID请检查媒体库媒体是否刮削")
return
self.__sync_del(media_type=media_type, self.__sync_del(media_type=media_type,
media_name=media_name, media_name=media_name,
media_path=media_path, media_path=media_path,
@ -581,7 +590,7 @@ class MediaSyncDel(_PluginBase):
episode_num=episode_num) episode_num=episode_num)
def __sync_del(self, media_type: str, media_name: str, media_path: str, def __sync_del(self, media_type: str, media_name: str, media_path: str,
tmdb_id: Union[int, str], season_num: str, episode_num: str): tmdb_id: int, season_num: str, episode_num: str):
""" """
执行删除逻辑 执行删除逻辑
""" """
@ -721,7 +730,7 @@ class MediaSyncDel(_PluginBase):
self.save_data("history", history) self.save_data("history", history)
def __get_transfer_his(self, media_type: str, media_name: str, media_path: str, def __get_transfer_his(self, media_type: str, media_name: str, media_path: str,
tmdb_id: Union[int, str], season_num: str, episode_num: str): tmdb_id: int, season_num: str, episode_num: str):
""" """
查询转移记录 查询转移记录
""" """

View File

@ -138,3 +138,4 @@ class WebhookEventInfo(BaseModel):
item_favorite: Optional[bool] = None item_favorite: Optional[bool] = None
save_reason: Optional[str] = None save_reason: Optional[str] = None
item_isvirtual: Optional[bool] = None item_isvirtual: Optional[bool] = None
media_type: Optional[str] = None