mirror of
https://github.com/jxxghp/MoviePilot-Plugins.git
synced 2026-06-04 23:16:48 +00:00
- 优化插件目录结构和数据结构, 解耦API层和服务层 - 添加了一些Pydantic模型, 用于校验配置 - 支持独立的订阅链接配置 - 新增覆写代理组和出站代理操作 - 支持 smart 组和代理集合 - 代理组回环检测 - 使用异步调度器 - 显示规则更改日期 - 完善了对嵌套逻辑规则和子规则的配置和验证
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
from typing import List, Optional, Union, Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from .rule import RoutingRuleType, Action, AdditionalParam
|
|
from .ruleproviders import RuleProvider
|
|
|
|
class RuleData(BaseModel):
|
|
priority: int
|
|
type: RoutingRuleType
|
|
payload: Optional[str] = None
|
|
action: Union[Action, str]
|
|
additional_params: Optional[AdditionalParam] = None
|
|
conditions: Optional[List[str]] = None
|
|
condition: Optional[str] = None
|
|
|
|
class Config:
|
|
use_enum_values = True
|
|
|
|
class ClashApi(BaseModel):
|
|
url: str
|
|
secret: str
|
|
|
|
class Connectivity(BaseModel):
|
|
clash_apis: List[ClashApi] = Field(default_factory=list)
|
|
sub_links: List[str] = Field(default_factory=list)
|
|
|
|
class Subscription(BaseModel):
|
|
url: str
|
|
|
|
class RuleProviderData(BaseModel):
|
|
name: str
|
|
rule_provider: RuleProvider
|
|
|
|
class SubscriptionInfo(BaseModel):
|
|
url: str
|
|
field: Literal['name', 'enabled']
|
|
value: Union[bool, str]
|
|
|
|
class Host(BaseModel):
|
|
domain: str
|
|
value: List[str]
|
|
using_cloudflare: bool
|
|
|
|
class HostData(BaseModel):
|
|
domain: str
|
|
value: Optional[Host] = None
|