mirror of
https://github.com/thsrite/MoviePilot-Plugins.git
synced 2026-03-27 10:05:57 +00:00
fix 兼容特殊场景刷新
This commit is contained in:
@@ -3,11 +3,12 @@
|
||||
"name": "Emby元数据刷新",
|
||||
"description": "定时刷新Emby媒体库元数据,演职人员中文。",
|
||||
"labels": "Emby",
|
||||
"version": "2.1.3",
|
||||
"version": "2.1.4",
|
||||
"icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/emby-icon.png",
|
||||
"author": "thsrite",
|
||||
"level": 1,
|
||||
"history": {
|
||||
"v2.1.4": "兼容特殊场景刷新",
|
||||
"v2.1.3": "增加自定义延迟",
|
||||
"v2.1.1": "优化刷新逻辑,过滤掉信息全的媒体",
|
||||
"v2.0.1": "获取tmdb图片时使用PROXY_HOST代理",
|
||||
|
||||
@@ -16,9 +16,9 @@ from zhconv import zhconv
|
||||
|
||||
from app import schemas
|
||||
from app.chain.tmdb import TmdbChain
|
||||
from app.core.config import settings
|
||||
from app.core.event import eventmanager, Event
|
||||
from app.db.transferhistory_oper import TransferHistoryOper
|
||||
from app.core.config import settings
|
||||
from app.helper.mediaserver import MediaServerHelper
|
||||
from app.log import logger
|
||||
from app.plugins import _PluginBase
|
||||
@@ -36,7 +36,7 @@ class EmbyMetaRefresh(_PluginBase):
|
||||
# 插件图标
|
||||
plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/emby-icon.png"
|
||||
# 插件版本
|
||||
plugin_version = "2.1.3"
|
||||
plugin_version = "2.1.4"
|
||||
# 插件作者
|
||||
plugin_author = "thsrite"
|
||||
# 作者主页
|
||||
@@ -694,44 +694,49 @@ class EmbyMetaRefresh(_PluginBase):
|
||||
"""
|
||||
刷新emby
|
||||
"""
|
||||
if transferinfo.type == "电影":
|
||||
movies = emby.get_movies(title=transferinfo.title, year=transferinfo.year)
|
||||
if not movies:
|
||||
logger.error(f"Emby中没有找到{transferinfo.title} ({transferinfo.year})")
|
||||
return
|
||||
for movie in movies:
|
||||
self.__refresh_emby_library_by_id(item_id=movie.item_id)
|
||||
logger.info(f"已通知刷新Emby电影:{movie.title} ({movie.year}) item_id:{movie.item_id}")
|
||||
try:
|
||||
if transferinfo.type == "电影":
|
||||
movies = emby.get_movies(title=transferinfo.title, year=transferinfo.year)
|
||||
if not movies:
|
||||
logger.error(f"Emby中没有找到{transferinfo.title} ({transferinfo.year})")
|
||||
return
|
||||
for movie in movies:
|
||||
self.__refresh_emby_library_by_id(item_id=movie.item_id)
|
||||
logger.info(f"已通知刷新Emby电影:{movie.title} ({movie.year}) item_id:{movie.item_id}")
|
||||
if self._actor_chi:
|
||||
self.__update_people_chi(item_id=movie.item_id, title=movie.title, type=MediaType.MOVIE)
|
||||
else:
|
||||
item_id = self.__get_emby_series_id_by_name(name=transferinfo.title, year=transferinfo.year)
|
||||
if not item_id or item_id is None:
|
||||
logger.error(f"Emby中没有找到{transferinfo.title} ({transferinfo.year})")
|
||||
return
|
||||
|
||||
# 验证tmdbid是否相同
|
||||
item_info = emby.get_iteminfo(item_id)
|
||||
if item_info:
|
||||
if transferinfo.tmdbid and item_info.tmdbid:
|
||||
if str(transferinfo.tmdbid) != str(item_info.tmdbid):
|
||||
logger.error(f"Emby中{transferinfo.title} ({transferinfo.year})的tmdbId与入库记录不一致")
|
||||
return
|
||||
|
||||
# 查询集的item_id
|
||||
season = int(transferinfo.seasons.replace("S", ""))
|
||||
episode = int(transferinfo.episodes.replace("E", "")) if "-" not in transferinfo.episodes else int(
|
||||
transferinfo.episodes.replace("E", "").split("-")[0])
|
||||
episode_item_id = self.__get_emby_episode_item_id(item_id=item_id, season=season, episode=episode)
|
||||
if not episode_item_id or episode_item_id is None:
|
||||
logger.error(
|
||||
f"Emby中没有找到{transferinfo.title} ({transferinfo.year}) {transferinfo.seasons}{transferinfo.episodes}")
|
||||
return
|
||||
|
||||
self.__refresh_emby_library_by_id(item_id=episode_item_id)
|
||||
logger.info(
|
||||
f"已通知刷新Emby电视剧:{transferinfo.title} ({transferinfo.year}) {transferinfo.seasons}{transferinfo.episodes} item_id:{episode_item_id}")
|
||||
if self._actor_chi:
|
||||
self.__update_people_chi(item_id=movie.item_id, title=movie.title, type=MediaType.MOVIE)
|
||||
else:
|
||||
item_id = self.__get_emby_series_id_by_name(name=transferinfo.title, year=transferinfo.year)
|
||||
if not item_id or item_id is None:
|
||||
logger.error(f"Emby中没有找到{transferinfo.title} ({transferinfo.year})")
|
||||
return
|
||||
|
||||
# 验证tmdbid是否相同
|
||||
item_info = emby.get_iteminfo(item_id)
|
||||
if item_info:
|
||||
if transferinfo.tmdbid and item_info.tmdbid:
|
||||
if str(transferinfo.tmdbid) != str(item_info.tmdbid):
|
||||
logger.error(f"Emby中{transferinfo.title} ({transferinfo.year})的tmdbId与入库记录不一致")
|
||||
return
|
||||
|
||||
# 查询集的item_id
|
||||
season = int(transferinfo.seasons.replace("S", ""))
|
||||
episode = int(transferinfo.episodes.replace("E", ""))
|
||||
episode_item_id = self.__get_emby_episode_item_id(item_id=item_id, season=season, episode=episode)
|
||||
if not episode_item_id or episode_item_id is None:
|
||||
logger.error(
|
||||
f"Emby中没有找到{transferinfo.title} ({transferinfo.year}) {transferinfo.seasons}{transferinfo.episodes}")
|
||||
return
|
||||
|
||||
self.__refresh_emby_library_by_id(item_id=episode_item_id)
|
||||
logger.info(
|
||||
f"已通知刷新Emby电视剧:{transferinfo.title} ({transferinfo.year}) {transferinfo.seasons}{transferinfo.episodes} item_id:{episode_item_id}")
|
||||
if self._actor_chi:
|
||||
self.__update_people_chi(item_id=item_id, title=transferinfo.title, type=MediaType.TV, season=season)
|
||||
self.__update_people_chi(item_id=item_id, title=transferinfo.title, type=MediaType.TV,
|
||||
season=season)
|
||||
except Exception as e:
|
||||
logger.error(f"刷新Emby出错:{e}")
|
||||
|
||||
def __get_emby_episode_item_id(self, item_id: str, season: int, episode: int) -> Optional[str]:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user