diff --git a/README.md b/README.md index 25f7f6c..2cbaaf5 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ MoviePilot三方插件市场:https://github.com/thsrite/MoviePilot-Plugins/ 38. 插件彻底卸载 v1.0 `删除数据库中已安装插件记录、清理插件文件。` 39. 实时软连接 v2.0.1 `监控目录文件变化,媒体文件软连接,其他文件可选复制。` 40. 订阅规则自动填充 v2.7 `电视剧下载后自动添加官组等信息到订阅;添加订阅后根据二级分类名称自定义订阅规则。` -41. Emby元数据刷新 v1.7.2 `定时刷新Emby媒体库元数据,演职人员中文。` +41. Emby元数据刷新 v1.7.3 `定时刷新Emby媒体库元数据,演职人员中文。` 42. Emby媒体标签 v1.2 `自动给媒体库媒体添加标签。` 43. 热门媒体订阅 v1.7 `自定添加热门媒体到订阅。` 44. [HomePage v1.2](docs%2FHomePage.md) `HomePage自定义API。` diff --git a/package.json b/package.json index 7996a4d..451d824 100644 --- a/package.json +++ b/package.json @@ -447,11 +447,12 @@ "name": "Emby元数据刷新", "description": "定时刷新Emby媒体库元数据,演职人员中文。", "labels": "Emby", - "version": "1.7.2", + "version": "1.7.3", "icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/emby-icon.png", "author": "thsrite", "level": 1, "history": { + "v1.7.3": "优化剧集演员刮削", "v1.7.2": "优化剧集演员刮削", "v1.7.1": "修复演员刮削", "v1.7": "精细化刷新,最新入库支持刷新单集演职人员中文", diff --git a/plugins/embymetarefresh/__init__.py b/plugins/embymetarefresh/__init__.py index 3532759..bbda116 100644 --- a/plugins/embymetarefresh/__init__.py +++ b/plugins/embymetarefresh/__init__.py @@ -36,7 +36,7 @@ class EmbyMetaRefresh(_PluginBase): # 插件图标 plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/emby-icon.png" # 插件版本 - plugin_version = "1.7.2" + plugin_version = "1.7.3" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -172,7 +172,7 @@ class EmbyMetaRefresh(_PluginBase): logger.info(f"开始刷新媒体库元数据,{self._num} 天内最新媒体:{len(latest)} 个") # 已处理的媒体 - handle_itmes = {} + handle_items = {} # 刷新媒体库 for item in latest: @@ -183,31 +183,27 @@ class EmbyMetaRefresh(_PluginBase): # 刮演员中文 if self._actor_chi: key = f"{item.get('Type')}-{item.get('SeriesName') if str(item.get('Type')) == 'Episode' else item.get('Name')}" - if key in handle_itmes.keys(): - continue - peoples = self.__update_people_chi( - item_id=item.get("SeriesId") if str(item.get('Type')) == 'Episode' else item.get("Id"), - title=item.get('SeriesName') if str(item.get('Type')) == 'Episode' else item.get('Name'), - type=MediaType('电视剧' if str(item.get('Type')) == 'Episode' else '电影'), - season=item.get("ParentIndexNumber") if str(item.get('Type')) == 'Episode' else None - ) + peoples = None + if key not in handle_items.keys(): + peoples = self.__update_people_chi( + item_id=item.get("SeriesId") if str(item.get('Type')) == 'Episode' else item.get("Id"), + title=item.get('SeriesName') if str(item.get('Type')) == 'Episode' else item.get('Name'), + type=MediaType('电视剧' if str(item.get('Type')) == 'Episode' else '电影'), + season=item.get("ParentIndexNumber") if str(item.get('Type')) == 'Episode' else None + ) # 是否有演员信息 - if not peoples: - handle_itmes[key] = {} - else: - if str(item.get('Type')) == 'Episode': - item_dicts = handle_itmes.get(key, {}) - item_ids = item_dicts.get('itemIds', []) - item_ids.append(item.get("Id")) - handle_itmes[key] = { - 'itemIds': item_ids, - 'actors': peoples - } - else: - handle_itmes[key] = {} + if str(item.get('Type')) == 'Episode': + item_dicts = handle_items.get(key, {}) + item_ids = item_dicts.get('itemIds', []) + item_actors = item_dicts.get('actors', []) + item_ids.append(item.get("Id")) + handle_items[key] = { + 'itemIds': item_ids, + 'actors': peoples or item_actors + } # 处理剧集 - for key, value in handle_itmes.items(): + for key, value in handle_items.items(): if value: item_ids = value.get('itemIds', []) item_actors = value.get('actors', []) @@ -281,7 +277,7 @@ class EmbyMetaRefresh(_PluginBase): return peoples else: logger.info(f"媒体 {title} ({item_info.get('ProductionYear')}) 演员信息无需更新") - return None + return item_info.get("People") def __update_peoples(self, itemid: str, iteminfo: dict, douban_actors): # 处理媒体项中的人物信息