This commit is contained in:
thsrite
2024-08-29 15:41:51 +08:00
parent bea594ba40
commit 709f92ccdf
3 changed files with 24 additions and 27 deletions

View File

@@ -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。`

View File

@@ -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": "精细化刷新,最新入库支持刷新单集演职人员中文",

View File

@@ -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):
# 处理媒体项中的人物信息