mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
refactor(db): optimize download history query logic
- 使用`TransferHistory.list_by`相同逻辑
This commit is contained in:
@@ -113,6 +113,7 @@ class DownloadHistoryOper(DbOper):
|
|||||||
season: Optional[str] = None, episode: Optional[str] = None, tmdbid=None) -> List[DownloadHistory]:
|
season: Optional[str] = None, episode: Optional[str] = None, tmdbid=None) -> List[DownloadHistory]:
|
||||||
"""
|
"""
|
||||||
按类型、标题、年份、季集查询下载记录
|
按类型、标题、年份、季集查询下载记录
|
||||||
|
tmdbid + mtype 或 title + year
|
||||||
"""
|
"""
|
||||||
return DownloadHistory.get_last_by(db=self._db,
|
return DownloadHistory.get_last_by(db=self._db,
|
||||||
mtype=mtype,
|
mtype=mtype,
|
||||||
|
|||||||
@@ -85,45 +85,54 @@ class DownloadHistory(Base):
|
|||||||
year: Optional[str] = None, season: Optional[str] = None,
|
year: Optional[str] = None, season: Optional[str] = None,
|
||||||
episode: Optional[str] = None, tmdbid: Optional[int] = None):
|
episode: Optional[str] = None, tmdbid: Optional[int] = None):
|
||||||
"""
|
"""
|
||||||
据tmdbid、season、season_episode查询转移记录
|
据tmdbid、season、season_episode查询下载记录
|
||||||
|
tmdbid + mtype 或 title + year
|
||||||
"""
|
"""
|
||||||
result = None
|
result = None
|
||||||
if tmdbid and not season and not episode:
|
# TMDBID + 类型
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid).order_by(
|
if tmdbid and mtype:
|
||||||
|
# 电视剧某季某集
|
||||||
|
if season and episode:
|
||||||
|
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid,
|
||||||
|
DownloadHistory.type == mtype,
|
||||||
|
DownloadHistory.seasons == season,
|
||||||
|
DownloadHistory.episodes == episode).order_by(
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
if tmdbid and season and not episode:
|
# 电视剧某季
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid,
|
elif season:
|
||||||
DownloadHistory.seasons == season).order_by(
|
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid,
|
||||||
|
DownloadHistory.type == mtype,
|
||||||
|
DownloadHistory.seasons == season).order_by(
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
if tmdbid and season and episode:
|
else:
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid,
|
# 电视剧所有季集/电影
|
||||||
DownloadHistory.seasons == season,
|
result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid,
|
||||||
DownloadHistory.episodes == episode).order_by(
|
DownloadHistory.type == mtype).order_by(
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
# 电视剧所有季集|电影
|
# 标题 + 年份
|
||||||
if not season and not episode:
|
elif title and year:
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.type == mtype,
|
# 电视剧某季某集
|
||||||
DownloadHistory.title == title,
|
if season and episode:
|
||||||
DownloadHistory.year == year).order_by(
|
result = db.query(DownloadHistory).filter(DownloadHistory.title == title,
|
||||||
|
DownloadHistory.year == year,
|
||||||
|
DownloadHistory.seasons == season,
|
||||||
|
DownloadHistory.episodes == episode).order_by(
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
# 电视剧某季
|
# 电视剧某季
|
||||||
if season and not episode:
|
elif season:
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.type == mtype,
|
result = db.query(DownloadHistory).filter(DownloadHistory.title == title,
|
||||||
DownloadHistory.title == title,
|
DownloadHistory.year == year,
|
||||||
DownloadHistory.year == year,
|
DownloadHistory.seasons == season).order_by(
|
||||||
DownloadHistory.seasons == season).order_by(
|
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
# 电视剧某季某集
|
else:
|
||||||
if season and episode:
|
# 电视剧所有季集/电影
|
||||||
result = db.query(DownloadHistory).filter(DownloadHistory.type == mtype,
|
result = db.query(DownloadHistory).filter(DownloadHistory.title == title,
|
||||||
DownloadHistory.title == title,
|
DownloadHistory.year == year).order_by(
|
||||||
DownloadHistory.year == year,
|
|
||||||
DownloadHistory.seasons == season,
|
|
||||||
DownloadHistory.episodes == episode).order_by(
|
|
||||||
DownloadHistory.id.desc()).all()
|
DownloadHistory.id.desc()).all()
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
return list(result)
|
return list(result)
|
||||||
|
return []
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@db_query
|
@db_query
|
||||||
|
|||||||
Reference in New Issue
Block a user