fix transfer chain

This commit is contained in:
jxxghp
2024-07-01 18:30:15 +08:00
parent 778b562cab
commit f16eb271da
9 changed files with 249 additions and 532 deletions
+10 -2
View File
@@ -11,10 +11,18 @@ class TransferHistory(Base):
转移历史记录
"""
id = Column(Integer, Sequence('id'), primary_key=True, index=True)
# 源目录
# 源路径
src = Column(String, index=True)
# 目标目录
# 源存储
src_storage = Column(String)
# 源文件项
src_fileitem = Column(String)
# 目标路径
dest = Column(String)
# 目标存储
dest_storage = Column(String)
# 目标文件项
dest_fileitem = Column(String)
# 转移模式 move/copy/link...
mode = Column(String)
# 类型 电影/电视剧
+18 -9
View File
@@ -1,13 +1,12 @@
import json
import time
from pathlib import Path
from typing import Any, List
from app.core.context import MediaInfo
from app.core.meta import MetaBase
from app.db import DbOper
from app.db.models.transferhistory import TransferHistory
from app.schemas import TransferInfo
from app.schemas import TransferInfo, FileItem
class TransferHistoryOper(DbOper):
@@ -119,15 +118,19 @@ class TransferHistoryOper(DbOper):
"""
TransferHistory.update_download_hash(self._db, historyid, download_hash)
def add_success(self, src_path: Path, mode: str, meta: MetaBase,
def add_success(self, fileitem: FileItem, mode: str, meta: MetaBase,
mediainfo: MediaInfo, transferinfo: TransferInfo,
download_hash: str = None):
"""
新增转移成功历史记录
"""
self.add_force(
src=str(src_path),
dest=str(transferinfo.target_path or ''),
src=fileitem.path,
src_storage=fileitem.storage,
src_fileitem=json.dumps(fileitem.dict()),
dest=transferinfo.target_item.path,
dest_storage=transferinfo.target_item.storage,
dest_fileitem=json.dumps(transferinfo.target_item.dict()),
mode=mode,
type=mediainfo.type.value,
category=mediainfo.category,
@@ -145,15 +148,19 @@ class TransferHistoryOper(DbOper):
files=json.dumps(transferinfo.file_list)
)
def add_fail(self, src_path: Path, mode: str, meta: MetaBase, mediainfo: MediaInfo = None,
def add_fail(self, fileitem: FileItem, mode: str, meta: MetaBase, mediainfo: MediaInfo = None,
transferinfo: TransferInfo = None, download_hash: str = None):
"""
新增转移失败历史记录
"""
if mediainfo and transferinfo:
his = self.add_force(
src=str(src_path),
dest=str(transferinfo.target_path or ''),
src=fileitem.path,
src_storage=fileitem.storage,
src_fileitem=json.dumps(fileitem.dict()),
dest=transferinfo.target_item.path,
dest_storage=transferinfo.target_item.storage,
dest_fileitem=json.dumps(transferinfo.target_item.dict()),
mode=mode,
type=mediainfo.type.value,
category=mediainfo.category,
@@ -175,7 +182,9 @@ class TransferHistoryOper(DbOper):
his = self.add_force(
title=meta.name,
year=meta.year,
src=str(src_path),
src=fileitem.path,
src_storage=fileitem.storage,
src_fileitem=json.dumps(fileitem.dict()),
mode=mode,
seasons=meta.season,
episodes=meta.episode,