fix transfer

This commit is contained in:
jxxghp
2024-07-01 21:24:02 +08:00
parent f16eb271da
commit cf409eb28f
5 changed files with 260 additions and 172 deletions

View File

@@ -331,7 +331,22 @@ class MediaChain(ChainBase, metaclass=Singleton):
)
return None
def scrape_metadata(self, storage: str, fileitem: schemas.FileItem,
@eventmanager.register(EventType.MetadataScrape)
def scrape_metadata_event(self, event: Event):
"""
监控手动刮削事件
"""
if not event:
return
event_data = event.event_data or {}
fileitem = event_data.get("fileitem")
meta = event_data.get("meta")
mediainfo = event_data.get("mediainfo")
if not fileitem:
return
self.scrape_metadata(fileitem=fileitem, meta=meta, mediainfo=mediainfo)
def scrape_metadata(self, fileitem: schemas.FileItem,
meta: MetaBase = None, mediainfo: MediaInfo = None, init_folder: bool = True):
"""
手动刮削媒体信息
@@ -395,7 +410,7 @@ class MediaChain(ChainBase, metaclass=Singleton):
# 电影目录
files = __list_files(_fileitem=fileitem)
for file in files:
self.scrape_metadata(storage=storage, fileitem=file,
self.scrape_metadata(fileitem=file,
meta=meta, mediainfo=mediainfo,
init_folder=False)
# 生成目录内图片文件
@@ -437,7 +452,7 @@ class MediaChain(ChainBase, metaclass=Singleton):
# 当前为目录,处理目录内的文件
files = __list_files(_fileitem=fileitem)
for file in files:
self.scrape_metadata(storage=storage, fileitem=file,
self.scrape_metadata(fileitem=file,
meta=meta, mediainfo=mediainfo,
init_folder=True if file.type == "dir" else False)
# 生成目录的nfo和图片

View File

@@ -406,12 +406,15 @@ class TransferChain(ChainBase):
mediainfo=file_mediainfo,
transferinfo=transferinfo
)
# 刮削单个文件
if transferinfo.need_scrape:
self.mediachain.scrape_metadata(storage=target_storage,
fileitem=transferinfo.target_item,
meta=file_meta,
mediainfo=file_mediainfo)
# 刮削元数据事件
if scrape:
self.eventmanager.send_event(EventType.MetadataScrape, {
'meta': file_meta,
'mediainfo': file_mediainfo,
'fileitem': transferinfo.target_item
})
# 更新进度
processed_num += 1
self.progress.update(value=processed_num / total_num * 100,
@@ -434,7 +437,7 @@ class TransferChain(ChainBase):
mediainfo=media,
transferinfo=transfer_info,
season_episode=se_str)
# 广播事件
# 整理完成事件
self.eventmanager.send_event(EventType.TransferComplete, {
'meta': transfer_meta,
'mediainfo': media,