From c07e12cc5a628329da15fc9490f49847229a023e Mon Sep 17 00:00:00 2001 From: thsrite Date: Tue, 31 Oct 2023 15:37:39 +0800 Subject: [PATCH 1/6] fix webhook --- app/modules/emby/emby.py | 6 ++++-- app/modules/jellyfin/jellyfin.py | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/modules/emby/emby.py b/app/modules/emby/emby.py index 32990a86..344ba877 100644 --- a/app/modules/emby/emby.py +++ b/app/modules/emby/emby.py @@ -244,7 +244,7 @@ class Emby(metaclass=Singleton): "&Limit=10" "&IncludeSearchTypes=false" "&api_key=%s") % ( - self._host, name, self._apikey) + self._host, name, self._apikey) try: res = RequestUtils().get_res(req_url) if res: @@ -803,7 +803,9 @@ class Emby(metaclass=Singleton): logger.debug(f"接收到emby webhook:{message}") eventItem = schemas.WebhookEventInfo(event=eventType, channel="emby") if message.get('Item'): - 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') == 'Season': eventItem.item_type = "TV" if message.get('Item', {}).get('SeriesName') \ and message.get('Item', {}).get('ParentIndexNumber') \ diff --git a/app/modules/jellyfin/jellyfin.py b/app/modules/jellyfin/jellyfin.py index 3bd87ac9..aade1704 100644 --- a/app/modules/jellyfin/jellyfin.py +++ b/app/modules/jellyfin/jellyfin.py @@ -212,7 +212,7 @@ class Jellyfin(metaclass=Singleton): return None req_url = ("%sUsers/%s/Items?" "api_key=%s&searchTerm=%s&IncludeItemTypes=Series&Limit=10&Recursive=true") % ( - self._host, self.user, self._apikey, name) + self._host, self.user, self._apikey, name) try: res = RequestUtils().get_res(req_url) if res: @@ -227,8 +227,8 @@ class Jellyfin(metaclass=Singleton): return None return "" - def get_movies(self, - title: str, + def get_movies(self, + title: str, year: str = None, tmdb_id: int = None) -> Optional[List[schemas.MediaServerItem]]: """ @@ -242,7 +242,7 @@ class Jellyfin(metaclass=Singleton): return None req_url = ("%sUsers/%s/Items?" "api_key=%s&searchTerm=%s&IncludeItemTypes=Movie&Limit=10&Recursive=true") % ( - self._host, self.user, self._apikey, title) + self._host, self.user, self._apikey, title) try: res = RequestUtils().get_res(req_url) if res: @@ -466,7 +466,9 @@ class Jellyfin(metaclass=Singleton): eventItem.device_name = message.get('DeviceName') eventItem.user_name = message.get('NotificationUsername') eventItem.client = message.get('ClientName') - if message.get("ItemType") == "Episode": + if message.get("ItemType") == "Episode" \ + or message.get("ItemType") == "Series" \ + or message.get("ItemType") == "Season": # 剧集 eventItem.item_type = "TV" eventItem.season_id = message.get('SeasonNumber') From 099dcda1855b7636299b80aa14423e0f11d0d28b Mon Sep 17 00:00:00 2001 From: thsrite Date: Tue, 31 Oct 2023 16:33:48 +0800 Subject: [PATCH 2/6] fix webhook --- app/modules/emby/emby.py | 4 +++- app/plugins/mediasyncdel/__init__.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/modules/emby/emby.py b/app/modules/emby/emby.py index 344ba877..7a2285f1 100644 --- a/app/modules/emby/emby.py +++ b/app/modules/emby/emby.py @@ -816,7 +816,9 @@ class Emby(metaclass=Singleton): "E" + str(message.get('Item', {}).get('IndexNumber')), message.get('Item', {}).get('Name')) else: - eventItem.item_name = message.get('Item', {}).get('Name') + eventItem.item_name = "%s %s" % ( + message.get('Item', {}).get('SeriesName'), + message.get('Item', {}).get('Name')) eventItem.item_id = message.get('Item', {}).get('SeriesId') eventItem.season_id = message.get('Item', {}).get('ParentIndexNumber') eventItem.episode_id = message.get('Item', {}).get('IndexNumber') diff --git a/app/plugins/mediasyncdel/__init__.py b/app/plugins/mediasyncdel/__init__.py index fda8481d..48ca2ca0 100644 --- a/app/plugins/mediasyncdel/__init__.py +++ b/app/plugins/mediasyncdel/__init__.py @@ -729,12 +729,12 @@ class MediaSyncDel(_PluginBase): 查询转移记录 """ # 季数 - if season_num and season_num.isdigit(): + if season_num and str(season_num).isdigit(): season_num = str(season_num).rjust(2, '0') else: season_num = None # 集数 - if episode_num and episode_num.isdigit(): + if episode_num and str(episode_num).isdigit(): episode_num = str(episode_num).rjust(2, '0') else: episode_num = None From 45fb8e86bfdc1cb1c260c25388c42a03e96f3040 Mon Sep 17 00:00:00 2001 From: thsrite Date: Tue, 31 Oct 2023 16:39:20 +0800 Subject: [PATCH 3/6] fix webhook --- app/modules/emby/emby.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/modules/emby/emby.py b/app/modules/emby/emby.py index 7a2285f1..4435f6c1 100644 --- a/app/modules/emby/emby.py +++ b/app/modules/emby/emby.py @@ -815,10 +815,12 @@ class Emby(metaclass=Singleton): "S" + str(message.get('Item', {}).get('ParentIndexNumber')), "E" + str(message.get('Item', {}).get('IndexNumber')), message.get('Item', {}).get('Name')) - else: + elif message.get('Item', {}).get('SeriesName'): eventItem.item_name = "%s %s" % ( message.get('Item', {}).get('SeriesName'), message.get('Item', {}).get('Name')) + else: + eventItem.item_name = message.get('Item', {}).get('Name') eventItem.item_id = message.get('Item', {}).get('SeriesId') eventItem.season_id = message.get('Item', {}).get('ParentIndexNumber') eventItem.episode_id = message.get('Item', {}).get('IndexNumber') From a2d503b2f5e3ed85e3710d90d36079024102718b Mon Sep 17 00:00:00 2001 From: Ma Date: Wed, 1 Nov 2023 07:29:53 +0800 Subject: [PATCH 4/6] fix #1029 --- app/chain/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index c06cd912..131df54b 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -121,7 +121,10 @@ class ChainBase(metaclass=ABCMeta): :return: 识别的媒体信息,包括剧集信息 """ if not tmdbid and hasattr(meta, "tmdbid"): + # 识别用名中含指定信息情形 tmdbid = meta.tmdbid + if meta.mtype: + mtype = meta.mtype return self.run_module("recognize_media", meta=meta, mtype=mtype, tmdbid=tmdbid) def match_doubaninfo(self, name: str, imdbid: str = None, From eea5c056f3aafa575c41acc2d4fab13d43448530 Mon Sep 17 00:00:00 2001 From: Ma Date: Wed, 1 Nov 2023 07:34:48 +0800 Subject: [PATCH 5/6] fix --- app/chain/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 131df54b..74a5d2f6 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -123,8 +123,8 @@ class ChainBase(metaclass=ABCMeta): if not tmdbid and hasattr(meta, "tmdbid"): # 识别用名中含指定信息情形 tmdbid = meta.tmdbid - if meta.mtype: - mtype = meta.mtype + if meta.type in [MediaType.TV, MediaType.MOVIE]: + mtype = meta.type return self.run_module("recognize_media", meta=meta, mtype=mtype, tmdbid=tmdbid) def match_doubaninfo(self, name: str, imdbid: str = None, From dd6df471dcb0faa1be59b17ccd6c6c93e3f17356 Mon Sep 17 00:00:00 2001 From: Ma Date: Wed, 1 Nov 2023 07:43:49 +0800 Subject: [PATCH 6/6] fix --- app/chain/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 74a5d2f6..a6fdec53 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -123,7 +123,7 @@ class ChainBase(metaclass=ABCMeta): if not tmdbid and hasattr(meta, "tmdbid"): # 识别用名中含指定信息情形 tmdbid = meta.tmdbid - if meta.type in [MediaType.TV, MediaType.MOVIE]: + if not mtype and meta.type in [MediaType.TV, MediaType.MOVIE]: mtype = meta.type return self.run_module("recognize_media", meta=meta, mtype=mtype, tmdbid=tmdbid)