模块化
This commit is contained in:
@@ -82,6 +82,26 @@ class ProviderDocument(BaseModel):
|
||||
proxies: list[dict[str, Any]]
|
||||
|
||||
|
||||
class ProxyNode(BaseModel):
|
||||
name: str
|
||||
type: str
|
||||
server: str | None = None
|
||||
port: int | None = None
|
||||
udp: bool = True
|
||||
tags: list[str] = Field(default_factory=list)
|
||||
attrs: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
def to_proxy_dict(self) -> dict[str, Any]:
|
||||
data = {"name": self.name, "type": self.type}
|
||||
if self.server is not None:
|
||||
data["server"] = self.server
|
||||
if self.port is not None:
|
||||
data["port"] = self.port
|
||||
data["udp"] = self.udp
|
||||
data.update(self.attrs)
|
||||
return data
|
||||
|
||||
|
||||
class SubscriptionUserInfo(BaseModel):
|
||||
upload: int | None = None
|
||||
download: int | None = None
|
||||
@@ -110,3 +130,13 @@ class SourceSnapshot(BaseModel):
|
||||
document: ProviderDocument
|
||||
headers: dict[str, str] = Field(default_factory=dict)
|
||||
quota: SubscriptionUserInfo | None = None
|
||||
|
||||
|
||||
class ResolvedProfile(BaseModel):
|
||||
client_type: str
|
||||
client: ClientConfig
|
||||
selected_sources: dict[str, SourceConfig] = Field(default_factory=dict)
|
||||
rules: dict[str, RuleConfig] = 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)
|
||||
|
||||
Reference in New Issue
Block a user