diff --git a/app/modules/jellyfin/jellyfin.py b/app/modules/jellyfin/jellyfin.py index 1fff7354..f4c46abb 100644 --- a/app/modules/jellyfin/jellyfin.py +++ b/app/modules/jellyfin/jellyfin.py @@ -376,6 +376,8 @@ class Jellyfin(metaclass=Singleton): item_id=message.get('ItemId'), item_name=message.get('Name'), item_type=message.get('ItemType'), + item_favorite=message.get('Favorite'), + save_reason=message.get('SaveReason'), tmdb_id=message.get('Provider_tmdb'), user_name=message.get('NotificationUsername'), channel="jellyfin" diff --git a/app/plugins/bestfilmversion/__init__.py b/app/plugins/bestfilmversion/__init__.py index 6a328514..f073faa1 100644 --- a/app/plugins/bestfilmversion/__init__.py +++ b/app/plugins/bestfilmversion/__init__.py @@ -599,7 +599,7 @@ class BestFilmVersion(_PluginBase): mediainfo: Optional[MediaInfo] = None if not data.tmdb_id: info = None - if data.channel == 'jellyfin' and data.event == 'UserDataSaved': + if data.channel == 'jellyfin' and data.save_reason == 'UpdateUserRating' and data.item_favorite: info = Jellyfin().get_iteminfo(itemid=data.item_id) if data.channel == 'emby' and data.event == 'item.rate': info = Emby().get_iteminfo(itemid=data.item_id) @@ -628,6 +628,8 @@ class BestFilmVersion(_PluginBase): logger.warn(f'未识别到媒体信息,标题:{data.item_name},tmdbID:{tmdb_id}') return else: + if settings.MEDIASERVER == 'jellyfin' and data.save_reason == 'UpdateUserRating' and not data.item_favorite: + return if data.item_type not in ['Movie', 'MOV', 'movie']: return diff --git a/app/schemas/mediaserver.py b/app/schemas/mediaserver.py index 160f5c87..e5f889e2 100644 --- a/app/schemas/mediaserver.py +++ b/app/schemas/mediaserver.py @@ -131,3 +131,5 @@ class WebhookEventInfo(BaseModel): client: Optional[str] = None user_name: Optional[str] = None image_url: Optional[str] = None + item_favorite: Optional[bool] = None + save_reason: Optional[str] = None