mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
fix transfer apis
This commit is contained in:
@@ -91,9 +91,7 @@ def delete_transfer_history(history_in: schemas.TransferHistory,
|
|||||||
# 册除媒体库文件
|
# 册除媒体库文件
|
||||||
if deletedest and history.dest_fileitem:
|
if deletedest and history.dest_fileitem:
|
||||||
dest_fileitem = schemas.FileItem(**history.dest_fileitem)
|
dest_fileitem = schemas.FileItem(**history.dest_fileitem)
|
||||||
state = StorageChain().delete_media_file(fileitem=dest_fileitem, mtype=MediaType(history.type))
|
StorageChain().delete_media_file(fileitem=dest_fileitem, mtype=MediaType(history.type))
|
||||||
if not state:
|
|
||||||
return schemas.Response(success=False, message=f"{dest_fileitem.path} 删除失败")
|
|
||||||
|
|
||||||
# 删除源文件
|
# 删除源文件
|
||||||
if deletesrc and history.src_fileitem:
|
if deletesrc and history.src_fileitem:
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class JobManager:
|
|||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"fileitem": schema.FileItem,
|
"fileitem": schema.FileItem,
|
||||||
"meta": schema.MetaBase,
|
"meta": schema.MetaInfo,
|
||||||
"state": "running" | "waiting" | "failed" | "completed",
|
"state": "running" | "waiting" | "failed" | "completed",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -175,7 +175,8 @@ class JobManager:
|
|||||||
移除整理任务
|
移除整理任务
|
||||||
"""
|
"""
|
||||||
with job_lock:
|
with job_lock:
|
||||||
for mediaid, job in self._job_view.items():
|
for mediaid in list(self._job_view):
|
||||||
|
job = self._job_view[mediaid]
|
||||||
for task in job["tasks"]:
|
for task in job["tasks"]:
|
||||||
if task["fileitem"].path == fileitem.path and task["fileitem"].storage == fileitem.storage:
|
if task["fileitem"].path == fileitem.path and task["fileitem"].storage == fileitem.storage:
|
||||||
job["tasks"].remove(task)
|
job["tasks"].remove(task)
|
||||||
@@ -214,7 +215,7 @@ class JobManager:
|
|||||||
if __mediaid__ not in self._job_view:
|
if __mediaid__ not in self._job_view:
|
||||||
return False
|
return False
|
||||||
with job_lock:
|
with job_lock:
|
||||||
return all([job["state"] == "completed" for job in self._job_view[__mediaid__]["tasks"]])
|
return all([job["state"] in ["completed", "failed"] for job in self._job_view[__mediaid__]["tasks"]])
|
||||||
|
|
||||||
def count(self, media: MediaInfo, season: int = None) -> int:
|
def count(self, media: MediaInfo, season: int = None) -> int:
|
||||||
"""
|
"""
|
||||||
@@ -266,7 +267,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
_transfer_thread = None
|
_transfer_thread = None
|
||||||
|
|
||||||
# 文件整理检查间隔(秒)
|
# 文件整理检查间隔(秒)
|
||||||
_transfer_interval = 600 if settings.DEV else 10
|
_transfer_interval = 0
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -420,7 +421,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
# 失败数量
|
# 失败数量
|
||||||
fail_num = 0
|
fail_num = 0
|
||||||
|
|
||||||
while not global_vars.is_system_stopped:
|
while not global_vars.is_system_stopped and self._transfer_interval:
|
||||||
try:
|
try:
|
||||||
item: TransferQueue = self._queue.get(timeout=self._transfer_interval)
|
item: TransferQueue = self._queue.get(timeout=self._transfer_interval)
|
||||||
if item:
|
if item:
|
||||||
|
|||||||
@@ -589,9 +589,10 @@ class MetaBase(object):
|
|||||||
"""
|
"""
|
||||||
转为字典
|
转为字典
|
||||||
"""
|
"""
|
||||||
dicts = asdict(self)
|
dicts = vars(self).copy()
|
||||||
dicts["type"] = self.type.value if self.type else None
|
dicts["type"] = self.type.value if self.type else None
|
||||||
dicts["season_episode"] = self.season_episode
|
dicts["season_episode"] = self.season_episode
|
||||||
dicts["edition"] = self.edition
|
dicts["edition"] = self.edition
|
||||||
dicts["name"] = self.name
|
dicts["name"] = self.name
|
||||||
|
dicts["episode_list"] = self.episode_list
|
||||||
return dicts
|
return dicts
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ class MetaInfo(BaseModel):
|
|||||||
end_episode: Optional[int] = None
|
end_episode: Optional[int] = None
|
||||||
# SxxExx
|
# SxxExx
|
||||||
season_episode: Optional[str] = None
|
season_episode: Optional[str] = None
|
||||||
|
# 集列表
|
||||||
|
episode_list: Optional[List[int]] = Field(default_factory=list)
|
||||||
# Partx Cd Dvd Disk Disc
|
# Partx Cd Dvd Disk Disc
|
||||||
part: Optional[str] = None
|
part: Optional[str] = None
|
||||||
# 识别的资源类型
|
# 识别的资源类型
|
||||||
|
|||||||
Reference in New Issue
Block a user