diff --git a/app/db/models/downloadhistory.py b/app/db/models/downloadhistory.py index 56cca45d..7bfe079a 100644 --- a/app/db/models/downloadhistory.py +++ b/app/db/models/downloadhistory.py @@ -1,7 +1,7 @@ import time from typing import Optional -from sqlalchemy import Column, Integer, String, Sequence, JSON, or_ +from sqlalchemy import Column, Integer, String, Sequence, JSON from sqlalchemy.orm import Session from app.db import db_query, db_update, Base @@ -74,8 +74,7 @@ class DownloadHistory(Base): @staticmethod @db_query def list_by_page(db: Session, page: Optional[int] = 1, count: Optional[int] = 30): - result = db.query(DownloadHistory).offset((page - 1) * count).limit(count).all() - return list(result) + return db.query(DownloadHistory).offset((page - 1) * count).limit(count).all() @staticmethod @db_query @@ -91,50 +90,47 @@ class DownloadHistory(Base): 据tmdbid、season、season_episode查询下载记录 tmdbid + mtype 或 title + year """ - result = None # TMDBID + 类型 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( + return db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid, + DownloadHistory.type == mtype, + DownloadHistory.seasons == season, + DownloadHistory.episodes == episode).order_by( DownloadHistory.id.desc()).all() # 电视剧某季 elif season: - result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid, - DownloadHistory.type == mtype, - DownloadHistory.seasons == season).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid, + DownloadHistory.type == mtype, + DownloadHistory.seasons == season).order_by( DownloadHistory.id.desc()).all() else: # 电视剧所有季集/电影 - result = db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid, - DownloadHistory.type == mtype).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.tmdbid == tmdbid, + DownloadHistory.type == mtype).order_by( DownloadHistory.id.desc()).all() # 标题 + 年份 elif title and year: # 电视剧某季某集 if season and episode: - result = db.query(DownloadHistory).filter(DownloadHistory.title == title, - DownloadHistory.year == year, - DownloadHistory.seasons == season, - DownloadHistory.episodes == episode).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.title == title, + DownloadHistory.year == year, + DownloadHistory.seasons == season, + DownloadHistory.episodes == episode).order_by( DownloadHistory.id.desc()).all() # 电视剧某季 elif season: - result = db.query(DownloadHistory).filter(DownloadHistory.title == title, - DownloadHistory.year == year, - DownloadHistory.seasons == season).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.title == title, + DownloadHistory.year == year, + DownloadHistory.seasons == season).order_by( DownloadHistory.id.desc()).all() else: # 电视剧所有季集/电影 - result = db.query(DownloadHistory).filter(DownloadHistory.title == title, - DownloadHistory.year == year).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.title == title, + DownloadHistory.year == year).order_by( DownloadHistory.id.desc()).all() - if result: - return list(result) return [] @staticmethod @@ -144,13 +140,12 @@ class DownloadHistory(Base): 查询某用户某时间之后的下载历史 """ if username: - result = db.query(DownloadHistory).filter(DownloadHistory.date < date, - DownloadHistory.username == username).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.date < date, + DownloadHistory.username == username).order_by( DownloadHistory.id.desc()).all() else: - result = db.query(DownloadHistory).filter(DownloadHistory.date < date).order_by( + return db.query(DownloadHistory).filter(DownloadHistory.date < date).order_by( DownloadHistory.id.desc()).all() - return list(result) @staticmethod @db_query @@ -173,12 +168,11 @@ class DownloadHistory(Base): @staticmethod @db_query def list_by_type(db: Session, mtype: str, days: int): - result = db.query(DownloadHistory) \ + return db.query(DownloadHistory) \ .filter(DownloadHistory.type == mtype, DownloadHistory.date >= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 86400 * int(days))) ).all() - return list(result) class DownloadFiles(Base): @@ -205,12 +199,10 @@ class DownloadFiles(Base): @db_query def get_by_hash(db: Session, download_hash: str, state: Optional[int] = None): if state: - result = db.query(DownloadFiles).filter(DownloadFiles.download_hash == download_hash, - DownloadFiles.state == state).all() + return db.query(DownloadFiles).filter(DownloadFiles.download_hash == download_hash, + DownloadFiles.state == state).all() else: - result = db.query(DownloadFiles).filter(DownloadFiles.download_hash == download_hash).all() - - return list(result) + return db.query(DownloadFiles).filter(DownloadFiles.download_hash == download_hash).all() @staticmethod @db_query @@ -225,8 +217,7 @@ class DownloadFiles(Base): @staticmethod @db_query def get_by_savepath(db: Session, savepath: str): - result = db.query(DownloadFiles).filter(DownloadFiles.savepath == savepath).all() - return list(result) + return db.query(DownloadFiles).filter(DownloadFiles.savepath == savepath).all() @staticmethod @db_update diff --git a/app/db/models/message.py b/app/db/models/message.py index ae966f27..75755583 100644 --- a/app/db/models/message.py +++ b/app/db/models/message.py @@ -37,7 +37,4 @@ class Message(Base): @staticmethod @db_query def list_by_page(db: Session, page: Optional[int] = 1, count: Optional[int] = 30): - result = db.query(Message).order_by(Message.reg_time.desc()).offset((page - 1) * count).limit( - count).all() - result.sort(key=lambda x: x.reg_time, reverse=False) - return list(result) + return db.query(Message).order_by(Message.reg_time.asc()).offset((page - 1) * count).limit(count).all() diff --git a/app/db/models/plugindata.py b/app/db/models/plugindata.py index cf02156f..2290534b 100644 --- a/app/db/models/plugindata.py +++ b/app/db/models/plugindata.py @@ -16,8 +16,7 @@ class PluginData(Base): @staticmethod @db_query def get_plugin_data(db: Session, plugin_id: str): - result = db.query(PluginData).filter(PluginData.plugin_id == plugin_id).all() - return list(result) + return db.query(PluginData).filter(PluginData.plugin_id == plugin_id).all() @staticmethod @db_query @@ -37,5 +36,4 @@ class PluginData(Base): @staticmethod @db_query def get_plugin_data_by_plugin_id(db: Session, plugin_id: str): - result = db.query(PluginData).filter(PluginData.plugin_id == plugin_id).all() - return list(result) + return db.query(PluginData).filter(PluginData.plugin_id == plugin_id).all() diff --git a/app/db/models/site.py b/app/db/models/site.py index c32c563e..96da507c 100644 --- a/app/db/models/site.py +++ b/app/db/models/site.py @@ -62,20 +62,17 @@ class Site(Base): @staticmethod @db_query def get_actives(db: Session): - result = db.query(Site).filter(Site.is_active == 1).all() - return list(result) + return db.query(Site).filter(Site.is_active == 1).all() @staticmethod @db_query def list_order_by_pri(db: Session): - result = db.query(Site).order_by(Site.pri).all() - return list(result) + return db.query(Site).order_by(Site.pri).all() @staticmethod @db_query def get_domains_by_ids(db: Session, ids: list): - result = db.query(Site.domain).filter(Site.id.in_(ids)).all() - return [r[0] for r in result] + return [r[0] for r in db.query(Site.domain).filter(Site.id.in_(ids)).all()] @staticmethod @db_update diff --git a/app/db/models/subscribe.py b/app/db/models/subscribe.py index 90821a81..f4ebd809 100644 --- a/app/db/models/subscribe.py +++ b/app/db/models/subscribe.py @@ -104,12 +104,10 @@ class Subscribe(Base): def get_by_state(db: Session, state: str): # 如果 state 为空或 None,返回所有订阅 if not state: - result = db.query(Subscribe).all() + return db.query(Subscribe).all() else: # 如果传入的状态不为空,拆分成多个状态 - states = state.split(',') - result = db.query(Subscribe).filter(Subscribe.state.in_(states)).all() - return list(result) + return db.query(Subscribe).filter(Subscribe.state.in_(state.split(','))).all() @staticmethod @db_query @@ -123,11 +121,10 @@ class Subscribe(Base): @db_query def get_by_tmdbid(db: Session, tmdbid: int, season: Optional[int] = None): if season: - result = db.query(Subscribe).filter(Subscribe.tmdbid == tmdbid, - Subscribe.season == season).all() + return db.query(Subscribe).filter(Subscribe.tmdbid == tmdbid, + Subscribe.season == season).all() else: - result = db.query(Subscribe).filter(Subscribe.tmdbid == tmdbid).all() - return list(result) + return db.query(Subscribe).filter(Subscribe.tmdbid == tmdbid).all() @staticmethod @db_query @@ -170,26 +167,24 @@ class Subscribe(Base): def list_by_username(db: Session, username: str, state: Optional[str] = None, mtype: Optional[str] = None): if mtype: if state: - result = db.query(Subscribe).filter(Subscribe.state == state, - Subscribe.username == username, - Subscribe.type == mtype).all() + return db.query(Subscribe).filter(Subscribe.state == state, + Subscribe.username == username, + Subscribe.type == mtype).all() else: - result = db.query(Subscribe).filter(Subscribe.username == username, - Subscribe.type == mtype).all() + return db.query(Subscribe).filter(Subscribe.username == username, + Subscribe.type == mtype).all() else: if state: - result = db.query(Subscribe).filter(Subscribe.state == state, - Subscribe.username == username).all() + return db.query(Subscribe).filter(Subscribe.state == state, + Subscribe.username == username).all() else: - result = db.query(Subscribe).filter(Subscribe.username == username).all() - return list(result) + return db.query(Subscribe).filter(Subscribe.username == username).all() @staticmethod @db_query def list_by_type(db: Session, mtype: str, days: int): - result = db.query(Subscribe) \ + return db.query(Subscribe) \ .filter(Subscribe.type == mtype, Subscribe.date >= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 86400 * int(days))) ).all() - return list(result) diff --git a/app/db/models/subscribehistory.py b/app/db/models/subscribehistory.py index e0fba88c..5294a541 100644 --- a/app/db/models/subscribehistory.py +++ b/app/db/models/subscribehistory.py @@ -75,12 +75,11 @@ class SubscribeHistory(Base): @staticmethod @db_query def list_by_type(db: Session, mtype: str, page: Optional[int] = 1, count: Optional[int] = 30): - result = db.query(SubscribeHistory).filter( + return db.query(SubscribeHistory).filter( SubscribeHistory.type == mtype ).order_by( SubscribeHistory.date.desc() ).offset((page - 1) * count).limit(count).all() - return list(result) @staticmethod @db_query diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index 4bb13ed3..a0b7661f 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -63,35 +63,33 @@ class TransferHistory(Base): @db_query def list_by_title(db: Session, title: str, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - result = db.query(TransferHistory).filter( + return db.query(TransferHistory).filter( TransferHistory.status == status ).order_by( TransferHistory.date.desc() ).offset((page - 1) * count).limit(count).all() else: - result = db.query(TransferHistory).filter(or_( + return db.query(TransferHistory).filter(or_( TransferHistory.title.like(f'%{title}%'), TransferHistory.src.like(f'%{title}%'), TransferHistory.dest.like(f'%{title}%'), )).order_by( TransferHistory.date.desc() ).offset((page - 1) * count).limit(count).all() - return list(result) @staticmethod @db_query def list_by_page(db: Session, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - result = db.query(TransferHistory).filter( + return db.query(TransferHistory).filter( TransferHistory.status == status ).order_by( TransferHistory.date.desc() ).offset((page - 1) * count).limit(count).all() else: - result = db.query(TransferHistory).order_by( + return db.query(TransferHistory).order_by( TransferHistory.date.desc() ).offset((page - 1) * count).limit(count).all() - return list(result) @staticmethod @db_query @@ -115,8 +113,7 @@ class TransferHistory(Base): @staticmethod @db_query def list_by_hash(db: Session, download_hash: str): - result = db.query(TransferHistory).filter(TransferHistory.download_hash == download_hash).all() - return list(result) + return db.query(TransferHistory).filter(TransferHistory.download_hash == download_hash).all() @staticmethod @db_query @@ -128,8 +125,7 @@ class TransferHistory(Base): TransferHistory.id.label('id')).filter( TransferHistory.date >= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 86400 * days))).subquery() - result = db.query(sub_query.c.date, func.count(sub_query.c.id)).group_by(sub_query.c.date).all() - return list(result) + return db.query(sub_query.c.date, func.count(sub_query.c.id)).group_by(sub_query.c.date).all() @staticmethod @db_query @@ -153,70 +149,67 @@ class TransferHistory(Base): @staticmethod @db_query - def list_by(db: Session, mtype: Optional[str] = None, title: Optional[str] = None, year: Optional[str] = None, season: Optional[str] = None, + def list_by(db: Session, mtype: Optional[str] = None, title: Optional[str] = None, year: Optional[str] = None, + season: Optional[str] = None, episode: Optional[str] = None, tmdbid: Optional[int] = None, dest: Optional[str] = None): """ 据tmdbid、season、season_episode查询转移记录 tmdbid + mtype 或 title + year 必输 """ - result = None # TMDBID + 类型 if tmdbid and mtype: # 电视剧某季某集 if season and episode: - result = db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, - TransferHistory.type == mtype, - TransferHistory.seasons == season, - TransferHistory.episodes == episode, - TransferHistory.dest == dest).all() + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == mtype, + TransferHistory.seasons == season, + TransferHistory.episodes == episode, + TransferHistory.dest == dest).all() # 电视剧某季 elif season: - result = db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, - TransferHistory.type == mtype, - TransferHistory.seasons == season).all() + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == mtype, + TransferHistory.seasons == season).all() else: if dest: # 电影 - result = db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, - TransferHistory.type == mtype, - TransferHistory.dest == dest).all() + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == mtype, + TransferHistory.dest == dest).all() else: # 电视剧所有季集 - result = db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, - TransferHistory.type == mtype).all() + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == mtype).all() # 标题 + 年份 elif title and year: # 电视剧某季某集 if season and episode: - result = db.query(TransferHistory).filter(TransferHistory.title == title, - TransferHistory.year == year, - TransferHistory.seasons == season, - TransferHistory.episodes == episode, - TransferHistory.dest == dest).all() + return db.query(TransferHistory).filter(TransferHistory.title == title, + TransferHistory.year == year, + TransferHistory.seasons == season, + TransferHistory.episodes == episode, + TransferHistory.dest == dest).all() # 电视剧某季 elif season: - result = db.query(TransferHistory).filter(TransferHistory.title == title, - TransferHistory.year == year, - TransferHistory.seasons == season).all() + return db.query(TransferHistory).filter(TransferHistory.title == title, + TransferHistory.year == year, + TransferHistory.seasons == season).all() else: if dest: # 电影 - result = db.query(TransferHistory).filter(TransferHistory.title == title, - TransferHistory.year == year, - TransferHistory.dest == dest).all() + return db.query(TransferHistory).filter(TransferHistory.title == title, + TransferHistory.year == year, + TransferHistory.dest == dest).all() else: # 电视剧所有季集 - result = db.query(TransferHistory).filter(TransferHistory.title == title, - TransferHistory.year == year).all() + return db.query(TransferHistory).filter(TransferHistory.title == title, + TransferHistory.year == year).all() # 类型 + 转移路径(emby webhook season无tmdbid场景) elif mtype and season and dest: # 电视剧某季 - result = db.query(TransferHistory).filter(TransferHistory.type == mtype, - TransferHistory.seasons == season, - TransferHistory.dest.like(f"{dest}%")).all() - - if result: - return list(result) + return db.query(TransferHistory).filter(TransferHistory.type == mtype, + TransferHistory.seasons == season, + TransferHistory.dest.like(f"{dest}%")).all() return [] @staticmethod