mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-09 01:16:50 +08:00
fix:#4876
This commit is contained in:
+25
-15
@@ -310,6 +310,21 @@ class MediaChain(ChainBase):
|
|||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def is_bluray_folder(fileitem: schemas.FileItem) -> bool:
|
||||||
|
"""
|
||||||
|
判断是否为原盘目录
|
||||||
|
"""
|
||||||
|
if not fileitem or fileitem.type != "dir":
|
||||||
|
return False
|
||||||
|
# 蓝光原盘目录必备的文件或文件夹
|
||||||
|
required_files = ['BDMV', 'CERTIFICATE']
|
||||||
|
# 检查目录下是否存在所需文件或文件夹
|
||||||
|
for item in StorageChain().list_files(fileitem):
|
||||||
|
if item.name in required_files:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
@eventmanager.register(EventType.MetadataScrape)
|
@eventmanager.register(EventType.MetadataScrape)
|
||||||
def scrape_metadata_event(self, event: Event):
|
def scrape_metadata_event(self, event: Event):
|
||||||
"""
|
"""
|
||||||
@@ -349,6 +364,15 @@ class MediaChain(ChainBase):
|
|||||||
overwrite=overwrite)
|
overwrite=overwrite)
|
||||||
else:
|
else:
|
||||||
if file_list:
|
if file_list:
|
||||||
|
# 如果是BDMV原盘目录,只对根目录进行刮削,不处理子目录
|
||||||
|
if self.is_bluray_folder(fileitem):
|
||||||
|
logger.info(f"检测到BDMV原盘目录,只对根目录进行刮削:{fileitem.path}")
|
||||||
|
self.scrape_metadata(fileitem=fileitem,
|
||||||
|
mediainfo=mediainfo,
|
||||||
|
init_folder=True,
|
||||||
|
recursive=False,
|
||||||
|
overwrite=overwrite)
|
||||||
|
else:
|
||||||
# 1. 收集fileitem和file_list中每个文件之间所有子目录
|
# 1. 收集fileitem和file_list中每个文件之间所有子目录
|
||||||
all_dirs = set()
|
all_dirs = set()
|
||||||
root_path = Path(fileitem.path)
|
root_path = Path(fileitem.path)
|
||||||
@@ -417,20 +441,6 @@ class MediaChain(ChainBase):
|
|||||||
|
|
||||||
storagechain = StorageChain()
|
storagechain = StorageChain()
|
||||||
|
|
||||||
def is_bluray_folder(_fileitem: schemas.FileItem) -> bool:
|
|
||||||
"""
|
|
||||||
判断是否为原盘目录
|
|
||||||
"""
|
|
||||||
if not _fileitem or _fileitem.type != "dir":
|
|
||||||
return False
|
|
||||||
# 蓝光原盘目录必备的文件或文件夹
|
|
||||||
required_files = ['BDMV', 'CERTIFICATE']
|
|
||||||
# 检查目录下是否存在所需文件或文件夹
|
|
||||||
for item in storagechain.list_files(_fileitem):
|
|
||||||
if item.name in required_files:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def __list_files(_fileitem: schemas.FileItem):
|
def __list_files(_fileitem: schemas.FileItem):
|
||||||
"""
|
"""
|
||||||
列出下级文件
|
列出下级文件
|
||||||
@@ -521,7 +531,7 @@ class MediaChain(ChainBase):
|
|||||||
# 电影目录
|
# 电影目录
|
||||||
if recursive:
|
if recursive:
|
||||||
# 处理文件
|
# 处理文件
|
||||||
if is_bluray_folder(fileitem):
|
if self.is_bluray_folder(fileitem):
|
||||||
# 原盘目录
|
# 原盘目录
|
||||||
if scraping_switchs.get('movie_nfo', True):
|
if scraping_switchs.get('movie_nfo', True):
|
||||||
nfo_path = filepath / (filepath.name + ".nfo")
|
nfo_path = filepath / (filepath.name + ".nfo")
|
||||||
|
|||||||
Reference in New Issue
Block a user