mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-20 03:57:30 +08:00
add user requests
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import Column, Integer, String, Sequence
|
||||
from sqlalchemy import Column, Integer, String, Sequence, Float
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.db import db_query, Base
|
||||
@@ -22,21 +22,21 @@ class SiteUserData(Base):
|
||||
# 加入时间
|
||||
join_at = Column(String)
|
||||
# 积分
|
||||
bonus = Column(Integer, default=0)
|
||||
bonus = Column(Float, default=0)
|
||||
# 上传量
|
||||
upload = Column(Integer, default=0)
|
||||
upload = Column(Float, default=0)
|
||||
# 下载量
|
||||
download = Column(Integer, default=0)
|
||||
download = Column(Float, default=0)
|
||||
# 分享率
|
||||
ratio = Column(Integer, default=0)
|
||||
ratio = Column(Float, default=0)
|
||||
# 做种数
|
||||
seeding = Column(Integer, default=0)
|
||||
seeding = Column(Float, default=0)
|
||||
# 下载数
|
||||
leeching = Column(Integer, default=0)
|
||||
leeching = Column(Float, default=0)
|
||||
# 做种体积
|
||||
seeding_size = Column(Integer, default=0)
|
||||
seeding_size = Column(Float, default=0)
|
||||
# 下载体积
|
||||
leeching_size = Column(Integer, default=0)
|
||||
leeching_size = Column(Float, default=0)
|
||||
# 做种人数, 种子大小 JSON
|
||||
seeding_info = Column(String)
|
||||
# 未读消息
|
||||
|
||||
69
app/db/models/userrequest.py
Normal file
69
app/db/models/userrequest.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from sqlalchemy import Column, Integer, String, Sequence, Float
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.db import db_query, Base
|
||||
|
||||
|
||||
class UserRequest(Base):
|
||||
"""
|
||||
用户请求表
|
||||
"""
|
||||
# ID
|
||||
id = Column(Integer, Sequence('id'), primary_key=True, index=True)
|
||||
# 申请用户
|
||||
req_user = Column(String, index=True, nullable=False)
|
||||
# 申请时间
|
||||
req_time = Column(String)
|
||||
# 申请备注
|
||||
req_remark = Column(String)
|
||||
# 审批用户
|
||||
app_user = Column(String, index=True, nullable=False)
|
||||
# 审批时间
|
||||
app_time = Column(String)
|
||||
# 审批状态 0-待审批 1-通过 2-拒绝
|
||||
app_status = Column(Integer, default=0)
|
||||
# 类型
|
||||
type = Column(String)
|
||||
# 标题
|
||||
title = Column(String)
|
||||
# 年份
|
||||
year = Column(String)
|
||||
# 媒体ID
|
||||
tmdbid = Column(Integer)
|
||||
imdbid = Column(String)
|
||||
tvdbid = Column(Integer)
|
||||
doubanid = Column(String)
|
||||
bangumiid = Column(Integer)
|
||||
# 季号
|
||||
season = Column(Integer)
|
||||
# 海报
|
||||
poster = Column(String)
|
||||
# 背景图
|
||||
backdrop = Column(String)
|
||||
# 评分,float
|
||||
vote = Column(Float)
|
||||
# 简介
|
||||
description = Column(String)
|
||||
|
||||
@staticmethod
|
||||
@db_query
|
||||
def get_by_req_user(db: Session, req_user: str, status: int = None):
|
||||
if status:
|
||||
return db.query(UserRequest).filter(UserRequest.req_user == req_user,
|
||||
UserRequest.app_status == status).all()
|
||||
else:
|
||||
return db.query(UserRequest).filter(UserRequest.req_user == req_user).all()
|
||||
|
||||
@staticmethod
|
||||
@db_query
|
||||
def get_by_app_user(db: Session, app_user: str, status: int = None):
|
||||
if status:
|
||||
return db.query(UserRequest).filter(UserRequest.app_user == app_user,
|
||||
UserRequest.app_status == status).all()
|
||||
else:
|
||||
return db.query(UserRequest).filter(UserRequest.app_user == app_user).all()
|
||||
|
||||
@staticmethod
|
||||
@db_query
|
||||
def get_by_status(db: Session, status: int):
|
||||
return db.query(UserRequest).filter(UserRequest.app_status == status).all()
|
||||
42
app/db/userrequest_oper.py
Normal file
42
app/db/userrequest_oper.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from typing import Optional
|
||||
|
||||
from app.db import DbOper
|
||||
from app.db.models.userrequest import UserRequest
|
||||
|
||||
|
||||
class UserRequestOper(DbOper):
|
||||
"""
|
||||
用户请求管理
|
||||
"""
|
||||
|
||||
def get_need_approve(self) -> Optional[UserRequest]:
|
||||
"""
|
||||
获取待审批申请
|
||||
"""
|
||||
return UserRequest.get_by_status(self._db, 0)
|
||||
|
||||
def get_my_requests(self, username: str) -> Optional[UserRequest]:
|
||||
"""
|
||||
获取我的申请
|
||||
"""
|
||||
return UserRequest.get_by_req_user(self._db, username)
|
||||
|
||||
def approve(self, rid: int) -> bool:
|
||||
"""
|
||||
审批申请
|
||||
"""
|
||||
user_request = UserRequest.get(self._db, rid)
|
||||
if user_request:
|
||||
user_request.update(self._db, {"status": 1})
|
||||
return True
|
||||
return False
|
||||
|
||||
def deny(self, rid: int) -> bool:
|
||||
"""
|
||||
拒绝申请
|
||||
"""
|
||||
user_request = UserRequest.get(self._db, rid)
|
||||
if user_request:
|
||||
user_request.update(self._db, {"status": 2})
|
||||
return True
|
||||
return False
|
||||
Reference in New Issue
Block a user