mirror of
https://github.com/jxxghp/MoviePilot-Plugins.git
synced 2026-05-23 07:26:47 +00:00
- 优化插件目录结构和数据结构, 解耦API层和服务层 - 添加了一些Pydantic模型, 用于校验配置 - 支持独立的订阅链接配置 - 新增覆写代理组和出站代理操作 - 支持 smart 组和代理集合 - 代理组回环检测 - 使用异步调度器 - 显示规则更改日期 - 完善了对嵌套逻辑规则和子规则的配置和验证
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
from typing import Optional, Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SmuxBrutalOpts(BaseModel):
|
|
enabled: bool = False
|
|
up: Optional[str] = None
|
|
down: Optional[str] = None
|
|
|
|
|
|
class Smux(BaseModel):
|
|
enabled: bool = False
|
|
protocol: Literal['smux', 'yamux', 'h2mux'] = 'h2mux'
|
|
max_connections: Optional[int] = Field(None, alias='max-connections')
|
|
min_streams: Optional[int] = Field(None, alias='min-streams')
|
|
max_streams: Optional[int] = Field(None, alias='max-streams')
|
|
statistic: Optional[bool] = None
|
|
only_tcp: Optional[bool] = Field(None, alias='only-tcp')
|
|
padding: Optional[bool] = None
|
|
brutal_opts: Optional[SmuxBrutalOpts] = Field(None, alias='brutal-opts')
|
|
|
|
|
|
class ProxyBase(BaseModel):
|
|
name: str
|
|
type: Literal['direct', 'dns', 'http', 'ss', 'ssr', 'mieru', 'snell', 'vmess', 'vless', 'trojan', 'anytls',
|
|
'hysteria','hysteria2', 'tuic', 'wireguard', 'ssh', 'socks5']
|
|
server: str
|
|
port: int
|
|
ip_version: Optional[Literal['dual', 'ipv4', 'ipv6', 'ipv4-prefer', 'ipv6-prefer']] = Field(None,
|
|
alias='ip-version')
|
|
udp: bool = False
|
|
interface_name: Optional[str] = Field(None, alias='interface-name')
|
|
routing_mark: Optional[int] = Field(None, alias='routing-mark')
|
|
tfo: Optional[bool] = None
|
|
mptcp: Optional[bool] = None
|
|
dialer_proxy: Optional[str] = Field(None, alias='dialer-proxy')
|
|
smux: Optional[Smux] = None
|