mirror of
https://github.com/jxxghp/MoviePilot-Plugins.git
synced 2026-06-05 07:26:45 +00:00
- 优化插件目录结构和数据结构, 解耦API层和服务层 - 添加了一些Pydantic模型, 用于校验配置 - 支持独立的订阅链接配置 - 新增覆写代理组和出站代理操作 - 支持 smart 组和代理集合 - 代理组回环检测 - 使用异步调度器 - 显示规则更改日期 - 完善了对嵌套逻辑规则和子规则的配置和验证
27 lines
994 B
Python
27 lines
994 B
Python
from typing import Optional, Literal
|
|
|
|
from pydantic import Field, validator
|
|
|
|
from .proxybase import ProxyBase
|
|
|
|
|
|
class MieruProxy(ProxyBase):
|
|
type: Literal['mieru'] = 'mieru'
|
|
username: str
|
|
password: str
|
|
port_range: Optional[str] = Field(None, alias='port-range')
|
|
transport: Literal['TCP'] = 'TCP'
|
|
multiplexing: Optional[Literal[
|
|
'MULTIPLEXING_OFF', 'MULTIPLEXING_LOW', 'MULTIPLEXING_MIDDLE', 'MULTIPLEXING_HIGH']] = 'MULTIPLEXING_LOW'
|
|
handshake_mode: Optional[Literal['HANDSHAKE_STANDARD', 'HANDSHAKE_NO_WAIT']] = 'HANDSHAKE_STANDARD'
|
|
|
|
@validator('port', 'port_range', allow_reuse=True)
|
|
def validate_port_config(cls, v, values):
|
|
port = values.get('port')
|
|
port_range = values.get('port_range')
|
|
if not port and not port_range:
|
|
raise ValueError("either port or port-range must be set")
|
|
if port and port_range:
|
|
raise ValueError("port and port-range cannot be set at the same time")
|
|
return v
|