refactor: 平台改为代码内置 provider 架构,一次性迁移现有数据 - 新增 app/providers:BalanceProvider 基类 + DeepSeek 适配器 + 注册表 - platforms 表去除 method/url/headers/body/balance_path,新增 provider_id - 现有数据库已一次性迁移(备份 data/monitor.db.bak-v1),不保留迁移工具 - 平台 UI 改为选择内置提供方;fetcher/monitor 走 provider 构建请求与解析 - 表达式引擎(运算符/函数)随架构保留,供 provider 内部使用 - 测试更新至 provider 模式,共 92 个
This commit is contained in:
+5
-13
@@ -8,14 +8,10 @@ from pydantic import BaseModel, Field, model_validator
|
||||
# ---------- 平台 ----------
|
||||
|
||||
class PlatformBase(BaseModel):
|
||||
provider_id: str = Field(min_length=1, max_length=64)
|
||||
name: str = Field(min_length=1, max_length=64)
|
||||
currency: str = Field(default="USD", min_length=1, max_length=16)
|
||||
icon: str = Field(default="", max_length=64)
|
||||
method: str = Field(default="GET", pattern="^(GET|POST)$")
|
||||
url: str = Field(min_length=1)
|
||||
headers: dict = Field(default_factory=dict)
|
||||
body: str = Field(default="")
|
||||
balance_path: str = Field(min_length=1)
|
||||
currency: str | None = Field(default=None, min_length=1, max_length=16)
|
||||
icon: str | None = Field(default=None, max_length=64)
|
||||
interval_seconds: int | None = Field(default=None, ge=10)
|
||||
retry_count: int | None = Field(default=None, ge=0, le=10)
|
||||
timeout_seconds: int | None = Field(default=None, ge=1, le=120)
|
||||
@@ -28,14 +24,10 @@ class PlatformCreate(PlatformBase):
|
||||
|
||||
|
||||
class PlatformUpdate(BaseModel):
|
||||
provider_id: str | None = Field(default=None, min_length=1, max_length=64)
|
||||
name: str | None = Field(default=None, min_length=1, max_length=64)
|
||||
currency: str | None = Field(default=None, min_length=1, max_length=16)
|
||||
currency: str | None = Field(default=None, max_length=16)
|
||||
icon: str | None = Field(default=None, max_length=64)
|
||||
method: str | None = Field(default=None, pattern="^(GET|POST)$")
|
||||
url: str | None = Field(default=None, min_length=1)
|
||||
headers: dict | None = None
|
||||
body: str | None = None
|
||||
balance_path: str | None = Field(default=None, min_length=1)
|
||||
interval_seconds: int | None = Field(default=None, ge=10)
|
||||
retry_count: int | None = Field(default=None, ge=0, le=10)
|
||||
timeout_seconds: int | None = Field(default=None, ge=1, le=120)
|
||||
|
||||
Reference in New Issue
Block a user