refactor: React 前端重构,新旧平台合并为莞易学
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
"""HTTP 请求模型(Pydantic)。"""
|
||||
from pydantic import BaseModel
|
||||
|
||||
# ------------------------------------------------------------------------ models
|
||||
|
||||
class LoginIn(BaseModel):
|
||||
username: str = ""
|
||||
password: str = ""
|
||||
account_id: str = "" # 只给账号 id 时,用户名/密码从 SQLite 里取,密码不出库
|
||||
|
||||
|
||||
class AccountsIn(BaseModel):
|
||||
accounts: list = []
|
||||
|
||||
|
||||
class AccountIn(BaseModel):
|
||||
id: str = ""
|
||||
username: str = ""
|
||||
password: str | None = None # 不传 = 保留库里已有的密码
|
||||
note: str = ""
|
||||
user: str = ""
|
||||
cookies: list = []
|
||||
courses: list = []
|
||||
selected: list = []
|
||||
status: str = "idle"
|
||||
lastError: str = ""
|
||||
lastErrorAt: float = 0
|
||||
optQuiz: bool = False
|
||||
optFeedback: bool = True
|
||||
loginAt: float = 0
|
||||
created: float = 0
|
||||
|
||||
|
||||
class CookiesIn(BaseModel):
|
||||
cookies: list
|
||||
|
||||
|
||||
class DiscoverIn(BaseModel):
|
||||
cookies: list
|
||||
plan_id: str
|
||||
project_id: str
|
||||
name: str = ""
|
||||
|
||||
|
||||
class StudyIn(BaseModel):
|
||||
key: str
|
||||
username: str = ""
|
||||
password: str = "" # 仅用于会话失效时自动重登,不落盘
|
||||
cookies: list = []
|
||||
courses: list = [] # [{name, plan_id, project_id}]
|
||||
plan_id: str = ""
|
||||
project_id: str = ""
|
||||
workers: int = 40
|
||||
cap_minutes: int = 90
|
||||
quiz_key: dict | None = None
|
||||
enable_quiz: bool = False # 默认关闭:答题正确率无法保证
|
||||
enable_feedback: bool = True # 反馈表无对错,默认开启
|
||||
|
||||
|
||||
class StopIn(BaseModel):
|
||||
key: str
|
||||
|
||||
|
||||
class CaptureIn(BaseModel):
|
||||
key: str
|
||||
cookies: list = []
|
||||
minutes: int = 10 # 抓包最长分钟数(1~30)
|
||||
|
||||
|
||||
class QuizIn(BaseModel):
|
||||
cookies: list = []
|
||||
plan_id: str = ""
|
||||
project_id: str = ""
|
||||
name: str = ""
|
||||
# retake=True:交卷后点「再考一次」,让平台生成新答卷(消耗一次机会)
|
||||
retake: bool = False
|
||||
period_id: str = "" # 指定要重考/查看的课时(不传就按原逻辑挑第一个)
|
||||
|
||||
|
||||
class QuizSubmitIn(BaseModel):
|
||||
cookies: list = []
|
||||
plan_id: str = ""
|
||||
object_id: str = ""
|
||||
generation: str = "legacy" # legacy / spa,决定走旧版还是新版交卷接口
|
||||
result_id: str = ""
|
||||
answers: dict = {} # {"1": "A", "2": "A#C"}
|
||||
|
||||
|
||||
class QuizAnswerIn(BaseModel):
|
||||
questions: list = [] # [{no,type,title,options:[{key,text}]}]
|
||||
prompt: str = ""
|
||||
account_id: str = "" # 有账号就把日志写进它的「课程日志」,没有就写 key=ai
|
||||
|
||||
|
||||
class LlmCfgIn(BaseModel):
|
||||
base_url: str = ""
|
||||
api_key: str = ""
|
||||
model: str = ""
|
||||
temperature: float = 0.2
|
||||
timeout: int = 120
|
||||
prompt: str = ""
|
||||
study_mode: str = "" # "" = 不改;fast / normal
|
||||
study_parallel: int = 0 # 0 = 不改;1~5
|
||||
|
||||
|
||||
class LlmTestIn(BaseModel):
|
||||
base_url: str = ""
|
||||
api_key: str = ""
|
||||
model: str = ""
|
||||
timeout: int = 60
|
||||
Reference in New Issue
Block a user