- 电影搜索增加了纪录片类型 - 支持设置自建OCR识别服务地址 - 下载器监控、手动整理按文件登记历史记录 - 新增了下载器文件同步插件,可将非MoviePilot添加下载的任务文件导入数据库,以便删除文件时联动删除下载任务 - 整理历史记录支持批量操作 - 播放限速插件支持智能限速 - 刮削海报优先使用TMDB图片 - 修复了憨憨站点数据统计 - 修复了过滤规则无法清空的问题 - 修复了自定义订阅已处理状态计算的问题 - 修复了Slack消息过长导致发送失败的问题 - 修复了动漫独立目录时出现两级目录的问题 - 调整了暗黑主题的UI配色
99 lines
3.6 KiB
Python
99 lines
3.6 KiB
Python
from pathlib import Path
|
|
from typing import List, Any
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app import schemas
|
|
from app.chain.transfer import TransferChain
|
|
from app.core.security import verify_token
|
|
from app.db import get_db
|
|
from app.db.models.downloadhistory import DownloadHistory
|
|
from app.db.models.transferhistory import TransferHistory
|
|
from app.schemas import MediaType
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/download", summary="查询下载历史记录", response_model=List[schemas.DownloadHistory])
|
|
def download_history(page: int = 1,
|
|
count: int = 30,
|
|
db: Session = Depends(get_db),
|
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
查询下载历史记录
|
|
"""
|
|
return DownloadHistory.list_by_page(db, page, count)
|
|
|
|
|
|
@router.delete("/download", summary="删除下载历史记录", response_model=schemas.Response)
|
|
def delete_download_history(history_in: schemas.DownloadHistory,
|
|
db: Session = Depends(get_db),
|
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
删除下载历史记录
|
|
"""
|
|
DownloadHistory.delete(db, history_in.id)
|
|
return schemas.Response(success=True)
|
|
|
|
|
|
@router.get("/transfer", summary="查询转移历史记录", response_model=schemas.Response)
|
|
def transfer_history(title: str = None,
|
|
page: int = 1,
|
|
count: int = 30,
|
|
db: Session = Depends(get_db),
|
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
查询转移历史记录
|
|
"""
|
|
if title:
|
|
total = TransferHistory.count_by_title(db, title)
|
|
result = TransferHistory.list_by_title(db, title, page, count)
|
|
else:
|
|
result = TransferHistory.list_by_page(db, page, count)
|
|
total = TransferHistory.count(db)
|
|
|
|
return schemas.Response(success=True,
|
|
data={
|
|
"list": result,
|
|
"total": total,
|
|
})
|
|
|
|
|
|
@router.delete("/transfer", summary="删除转移历史记录", response_model=schemas.Response)
|
|
def delete_transfer_history(history_in: schemas.TransferHistory,
|
|
delete_file: bool = False,
|
|
db: Session = Depends(get_db),
|
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
删除转移历史记录
|
|
"""
|
|
# 触发删除事件
|
|
if delete_file:
|
|
history = TransferHistory.get(db, history_in.id)
|
|
if not history:
|
|
return schemas.Response(success=False, msg="记录不存在")
|
|
# 册除文件
|
|
if history.dest:
|
|
TransferChain(db).delete_files(Path(history.dest))
|
|
# 删除记录
|
|
TransferHistory.delete(db, history_in.id)
|
|
return schemas.Response(success=True)
|
|
|
|
|
|
@router.post("/transfer", summary="历史记录重新转移", response_model=schemas.Response)
|
|
def redo_transfer_history(history_in: schemas.TransferHistory,
|
|
mtype: str,
|
|
new_tmdbid: int,
|
|
db: Session = Depends(get_db),
|
|
_: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
|
"""
|
|
历史记录重新转移
|
|
"""
|
|
state, errmsg = TransferChain(db).re_transfer(logid=history_in.id,
|
|
mtype=MediaType(mtype), tmdbid=new_tmdbid)
|
|
if state:
|
|
return schemas.Response(success=True)
|
|
else:
|
|
return schemas.Response(success=False, message=errmsg)
|