feat:手动刮削时强制覆盖

This commit is contained in:
jxxghp
2025-01-05 15:38:13 +08:00
parent 89e96ee27a
commit 5d2a911849
5 changed files with 18 additions and 9 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ router = APIRouter()
@router.get("/", summary="正在下载", response_model=List[schemas.DownloadingTorrent]) @router.get("/", summary="正在下载", response_model=List[schemas.DownloadingTorrent])
def list( def current(
name: str = None, name: str = None,
_: schemas.TokenPayload = Depends(verify_token)) -> Any: _: schemas.TokenPayload = Depends(verify_token)) -> Any:
""" """
+1 -1
View File
@@ -117,7 +117,7 @@ def scrape(fileitem: schemas.FileItem,
if not scrape_path.exists(): if not scrape_path.exists():
return schemas.Response(success=False, message="刮削路径不存在") return schemas.Response(success=False, message="刮削路径不存在")
# 手动刮削 # 手动刮削
chain.scrape_metadata(fileitem=fileitem, meta=meta, mediainfo=mediainfo) chain.scrape_metadata(fileitem=fileitem, meta=meta, mediainfo=mediainfo, overwrite=True)
return schemas.Response(success=True, message=f"{fileitem.path} 刮削完成") return schemas.Response(success=True, message=f"{fileitem.path} 刮削完成")
+2 -1
View File
@@ -307,6 +307,7 @@ class MediaChain(ChainBase, metaclass=Singleton):
fileitem: FileItem = event_data.get("fileitem") fileitem: FileItem = event_data.get("fileitem")
meta: MetaBase = event_data.get("meta") meta: MetaBase = event_data.get("meta")
mediainfo: MediaInfo = event_data.get("mediainfo") mediainfo: MediaInfo = event_data.get("mediainfo")
overwrite = event_data.get("overwrite", False)
if not fileitem: if not fileitem:
return return
# 刮削锁 # 刮削锁
@@ -316,7 +317,7 @@ class MediaChain(ChainBase, metaclass=Singleton):
scraping_files.append(fileitem.path) scraping_files.append(fileitem.path)
try: try:
# 执行刮削 # 执行刮削
self.scrape_metadata(fileitem=fileitem, meta=meta, mediainfo=mediainfo) self.scrape_metadata(fileitem=fileitem, meta=meta, mediainfo=mediainfo, overwrite=overwrite)
finally: finally:
# 释放锁 # 释放锁
with scraping_lock: with scraping_lock:
+13 -6
View File
@@ -487,7 +487,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
self.eventmanager.send_event(EventType.MetadataScrape, { self.eventmanager.send_event(EventType.MetadataScrape, {
'meta': task.meta, 'meta': task.meta,
'mediainfo': task.mediainfo, 'mediainfo': task.mediainfo,
'fileitem': transferinfo.target_diritem 'fileitem': transferinfo.target_diritem,
'overwrite': True if task.manual else False
}) })
# 移除已完成的任务 # 移除已完成的任务
@@ -894,7 +895,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
library_type_folder: bool = None, library_category_folder: bool = None, library_type_folder: bool = None, library_category_folder: bool = None,
season: int = None, epformat: EpisodeFormat = None, min_filesize: int = 0, season: int = None, epformat: EpisodeFormat = None, min_filesize: int = 0,
downloader: str = None, download_hash: str = None, downloader: str = None, download_hash: str = None,
force: bool = False, background: bool = True) -> Tuple[bool, str]: force: bool = False, background: bool = True,
manual: bool = False) -> Tuple[bool, str]:
""" """
执行一个复杂目录的整理操作 执行一个复杂目录的整理操作
:param fileitem: 文件项 :param fileitem: 文件项
@@ -914,6 +916,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
:param download_hash: 下载记录hash :param download_hash: 下载记录hash
:param force: 是否强制整理 :param force: 是否强制整理
:param background: 是否后台运行 :param background: 是否后台运行
:param manual: 是否手动整理
返回:成功标识,错误信息 返回:成功标识,错误信息
""" """
@@ -1091,7 +1094,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
library_category_folder=library_category_folder, library_category_folder=library_category_folder,
downloader=downloader, downloader=downloader,
download_hash=download_hash, download_hash=download_hash,
download_history=download_history download_history=download_history,
manual=manual
) )
if background: if background:
self.put_to_queue( self.put_to_queue(
@@ -1207,7 +1211,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
mediainfo=mediainfo, mediainfo=mediainfo,
download_hash=history.download_hash, download_hash=history.download_hash,
force=True, force=True,
background=False) background=False,
manual=True)
if not state: if not state:
return False, errmsg return False, errmsg
@@ -1276,7 +1281,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
library_type_folder=library_type_folder, library_type_folder=library_type_folder,
library_category_folder=library_category_folder, library_category_folder=library_category_folder,
force=force, force=force,
background=background background=background,
manual=True
) )
if not state: if not state:
return False, errmsg return False, errmsg
@@ -1297,7 +1303,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
library_type_folder=library_type_folder, library_type_folder=library_type_folder,
library_category_folder=library_category_folder, library_category_folder=library_category_folder,
force=force, force=force,
background=background) background=background,
manual=True)
return state, errmsg return state, errmsg
def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo, def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo,
+1
View File
@@ -62,6 +62,7 @@ class TransferTask(BaseModel):
downloader: Optional[str] = None downloader: Optional[str] = None
download_hash: Optional[str] = None download_hash: Optional[str] = None
download_history: Optional[DownloadHistory] = None download_history: Optional[DownloadHistory] = None
manual: Optional[bool] = False
def to_dict(self): def to_dict(self):
""" """