mirror of
https://github.com/jxxghp/MoviePilot-Plugins.git
synced 2026-05-24 23:16:49 +00:00
- 数据模型重构: 全面引入 Pydantic 模型(ClashConfig, Proxy, ProxyGroup 等)替代原有字典结构,提供更严格的数据验证与类型安全。 - 数据迁移机制: 新增 v2.1.0 数据升级脚本,支持将旧版代理、策略组及规则数据自动迁移至新架构。 - 配置补丁系统: 实现基于 JSON Patch 的细粒度配置修补机制,替代旧版覆盖逻辑,提升配置修改的灵活性。 - 服务层优化: 重写 ClashRuleProviderService 以适配新对象模型,增强代码可维护性与扩展性。 - API模型同步: 更新相关 API 数据模型以保持与内部数据结构的一致性。 - 用户界面: 批量规则管理和数据项隐藏支持
27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
from typing import Optional, Literal
|
|
|
|
from pydantic import Field
|
|
|
|
from .proxybase import ProxyBase
|
|
|
|
|
|
class Hysteria2Proxy(ProxyBase):
|
|
type: Literal['hysteria2'] = 'hysteria2'
|
|
password: Optional[str] = None
|
|
obfs: Optional[Literal['salamander']] = None
|
|
obfs_password: Optional[str] = Field(None, alias='obfs-password')
|
|
up: Optional[int | str] = None
|
|
down: Optional[int | str] = None
|
|
hop_interval: Optional[int] = Field(None, alias='hop-interval')
|
|
ca: Optional[str] = None
|
|
ca_str: Optional[str] = Field(None, alias='ca-str')
|
|
cwnd: Optional[int] = None
|
|
udp_mtu: Optional[int] = Field(None, alias='udp-mtu')
|
|
ports: Optional[str] = None
|
|
|
|
# QUIC-GO 特殊配置
|
|
initial_stream_receive_window: Optional[int] = Field(None, alias='initial-stream-receive-window')
|
|
max_stream_receive_window: Optional[int] = Field(None, alias='max-stream-receive-window')
|
|
initial_connection_receive_window: Optional[int] = Field(None, alias='initial-connection-receive-window')
|
|
max_connection_receive_window: Optional[int] = Field(None, alias='max-connection-receive-window')
|