This commit is contained in:
riglen
2026-03-31 16:39:23 +08:00
parent 0d49398e2d
commit 09a9faa1be
7 changed files with 1274 additions and 37 deletions

View File

@@ -19,12 +19,13 @@ class SourceConfig(BaseModel):
class RuleConfig(BaseModel):
file: str
file: str | None = None
behavior: Literal["domain", "ipcidr", "classical"] = "domain"
format: Literal["yaml", "text", "mrs"] = "yaml"
interval: int = 86400
policy: str
no_resolve: bool = False
payload: list[str] = Field(default_factory=list)
class RegionConfig(BaseModel):
@@ -33,13 +34,23 @@ class RegionConfig(BaseModel):
tolerance: int = 50
class ProxyGroupConfig(BaseModel):
name: str
type: Literal["select", "url-test"] = "select"
proxies: list[str] = Field(default_factory=list)
filter: str | None = None
tolerance: int | None = None
url: HttpUrl | None = None
interval: int | None = None
class ClientConfig(BaseModel):
title: str
provider_interval: int = 21600
rule_interval: int = 86400
test_url: HttpUrl = "https://www.gstatic.com/generate_204"
test_interval: int = 300
main_policy: str = "节点选择"
main_policy: str = "🚀 节点选择"
source_policy: str = "☁️ 机场选择"
mixed_auto_policy: str = "♻️ 自动选择"
manual_policy: str = "🚀 手动切换"
@@ -58,6 +69,8 @@ class AppConfig(BaseModel):
rules: dict[str, RuleConfig] = Field(default_factory=dict)
clients: dict[str, ClientConfig] = Field(default_factory=dict)
regions: dict[str, RegionConfig] = Field(default_factory=dict)
selector_groups: list[ProxyGroupConfig] = Field(default_factory=list)
policy_groups: list[ProxyGroupConfig] = Field(default_factory=list)
class FetchResult(BaseModel):