mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-05-16 13:55:28 +08:00
add user requests
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from datetime import datetime
|
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 sqlalchemy.orm import Session
|
||||||
|
|
||||||
from app.db import db_query, Base
|
from app.db import db_query, Base
|
||||||
@@ -22,21 +22,21 @@ class SiteUserData(Base):
|
|||||||
# 加入时间
|
# 加入时间
|
||||||
join_at = Column(String)
|
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
|
# 做种人数, 种子大小 JSON
|
||||||
seeding_info = Column(String)
|
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