feat 手动整理支持自动识别批量处理,增加进度显示

This commit is contained in:
jxxghp
2023-08-28 12:50:21 +08:00
parent 921783d6bb
commit 683ba4cfad
2 changed files with 185 additions and 82 deletions

View File

@ -5,11 +5,7 @@ from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app import schemas
from app.chain.media import MediaChain
from app.chain.transfer import TransferChain
from app.core.config import settings
from app.core.context import MediaInfo
from app.core.metainfo import MetaInfo
from app.core.security import verify_token
from app.db import get_db
from app.schemas import MediaType
@ -19,11 +15,11 @@ router = APIRouter()
@router.post("/manual", summary="手动转移", response_model=schemas.Response)
def manual_transfer(path: str,
tmdbid: int,
type_name: str,
target: str = None,
tmdbid: int = None,
type_name: str = None,
season: int = None,
transfer_type: str = settings.TRANSFER_TYPE,
transfer_type: str = None,
episode_format: str = None,
episode_detail: str = None,
episode_part: str = None,
@ -52,17 +48,8 @@ def manual_transfer(path: str,
target = Path(target)
if not target.exists():
return schemas.Response(success=False, message=f"目标路径不存在")
# 识别元数据
meta = MetaInfo(in_path.stem)
mtype = MediaType(type_name)
# 整合数据
meta.type = mtype
if season:
meta.begin_season = season
# 识别媒体信息
mediainfo: MediaInfo = MediaChain(db).recognize_media(tmdbid=tmdbid, mtype=mtype)
if not mediainfo:
return schemas.Response(success=False, message=f"媒体信息识别失败tmdbid: {tmdbid}")
# 类型
mtype = MediaType(type_name) if type_name else None
# 自定义格式
epformat = None
if episode_offset or episode_part or episode_detail or episode_format:
@ -75,10 +62,11 @@ def manual_transfer(path: str,
# 开始转移
state, errormsg = TransferChain(db).manual_transfer(
in_path=in_path,
mediainfo=mediainfo,
transfer_type=transfer_type,
target=target,
meta=meta,
tmdbid=tmdbid,
mtype=mtype,
season=season,
transfer_type=transfer_type,
epformat=epformat,
min_filesize=min_filesize
)