48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from sqlalchemy import Column, Integer, String, Sequence
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.db.models import Base
|
|
|
|
|
|
class DownloadHistory(Base):
|
|
"""
|
|
下载历史记录
|
|
"""
|
|
id = Column(Integer, Sequence('id'), primary_key=True, index=True)
|
|
# 保存路径
|
|
path = Column(String, nullable=False, index=True)
|
|
# 类型 电影/电视剧
|
|
type = Column(String, nullable=False)
|
|
# 标题
|
|
title = Column(String, nullable=False)
|
|
# 年份
|
|
year = Column(String)
|
|
tmdbid = Column(Integer, index=True)
|
|
imdbid = Column(String)
|
|
tvdbid = Column(Integer)
|
|
doubanid = Column(String)
|
|
# Sxx
|
|
seasons = Column(Integer)
|
|
# Exx
|
|
episodes = Column(String)
|
|
# 海报
|
|
image = Column(String)
|
|
# 下载任务Hash
|
|
download_hash = Column(String, index=True)
|
|
# 种子名称
|
|
torrent_name = Column(String)
|
|
# 种子描述
|
|
torrent_description = Column(String)
|
|
# 种子站点
|
|
torrent_site = Column(String)
|
|
# 附加信息
|
|
note = Column(String)
|
|
|
|
@staticmethod
|
|
def get_by_hash(db: Session, download_hash: str):
|
|
return db.query(DownloadHistory).filter(DownloadHistory.download_hash == download_hash).first()
|
|
|
|
@staticmethod
|
|
def list_by_page(db: Session, page: int = 1, count: int = 30):
|
|
return db.query(DownloadHistory).offset((page - 1) * count).limit(count).all()
|