This commit is contained in:
jxxghp
2024-11-24 17:11:19 +08:00
parent 6cab14366c
commit ff73b2cb5d
+29
View File
@@ -336,6 +336,20 @@ class MediaChain(ChainBase, metaclass=Singleton):
:param overwrite: 是否覆盖已有文件 :param overwrite: 是否覆盖已有文件
""" """
def is_bluray_folder(_fileitem: schemas.FileItem) -> bool:
"""
判断是否为原盘目录
"""
if not _fileitem or _fileitem.type != "dir":
return False
# 蓝光原盘目录必备的文件或文件夹
required_files = ['BDMV', 'CERTIFICATE']
# 检查目录下是否存在所需文件或文件夹
for item in self.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):
""" """
列出下级文件 列出下级文件
@@ -408,6 +422,21 @@ class MediaChain(ChainBase, metaclass=Singleton):
__save_file(_fileitem=parent, _path=nfo_path, _content=movie_nfo) __save_file(_fileitem=parent, _path=nfo_path, _content=movie_nfo)
else: else:
# 电影目录 # 电影目录
if is_bluray_folder(fileitem):
# 原盘目录
nfo_path = filepath / "movie.nfo"
if not overwrite and self.storagechain.get_file_item(storage=fileitem.storage, path=nfo_path):
logger.debug(f"已存在nfo文件:{nfo_path}")
return
# 生成原盘nfo
movie_nfo = self.metadata_nfo(meta=meta, mediainfo=mediainfo)
if not movie_nfo:
logger.warn(f"{filepath.name} nfo文件生成失败!")
return
# 保存或上传nfo文件到当前目录
__save_file(_fileitem=fileitem, _path=nfo_path, _content=movie_nfo)
else:
# 处理目录内的文件
files = __list_files(_fileitem=fileitem) files = __list_files(_fileitem=fileitem)
for file in files: for file in files:
self.scrape_metadata(fileitem=file, self.scrape_metadata(fileitem=file,