diff --git a/app/chain/media.py b/app/chain/media.py index 153a5f39..274cfe9c 100644 --- a/app/chain/media.py +++ b/app/chain/media.py @@ -679,11 +679,19 @@ class MediaChain(ChainBase): overwrite=overwrite) # 生成目录的nfo和图片 if init_folder: + # TODO 目前的刮削是假定电视剧目录结构符合:/剧集根目录/季目录/剧集文件 + # 其中季目录应符合`Season 数字`等明确的季命名,不能用季标题 + # 例如:/Torchwood (2006)/Miracle Day/Torchwood (2006) S04E01.mkv + # 当刮削到`Miracle Day`目录时,会误判其为剧集根目录 # 识别文件夹名称 season_meta = MetaInfo(filepath.name) # 当前文件夹为Specials或者SPs时,设置为S0 if filepath.name in settings.RENAME_FORMAT_S0_NAMES: season_meta.begin_season = 0 + elif season_meta.name and season_meta.begin_season is not None: + # 当前目录含有非季目录的名称,但却有季信息(通常是被辅助识别词指定了) + # 这种情况应该是剧集根目录,不能按季目录刮削,否则会导致`season_poster`的路径错误 详见issue#5373 + season_meta.begin_season = None if season_meta.begin_season is not None: # 检查季NFO开关 if scraping_switchs.get('season_nfo', True): @@ -753,7 +761,8 @@ class MediaChain(ChainBase): else: logger.info(f"季图片刮削已关闭,跳过:{image_name}") # 判断当前目录是不是剧集根目录 - if not season_meta.season: + elif season_meta.name: + # 不含季信息(包括特别季)但含有名称的,可以认为是剧集根目录 (原PR#3219对此的判断会遗漏被识别词指定成电视剧的根目录 详见issue#5373) # 检查电视剧NFO开关 if scraping_switchs.get('tv_nfo', True): # 是否已存在