from __future__ import annotations import re from typing import Any from typing import Literal from PySide6.QtCore import Qt _NEXT_CHECK_RE = re.compile(r"(?i)next check in \d+s") LoginPage = Literal["main", "login"] LOCATION_TARGET_ROLE = Qt.UserRole + 1 SINGBOX_STATUS_ROLE = Qt.UserRole + 2 SINGBOX_EDITOR_PROTOCOL_OPTIONS = [ ("VLESS", "vless"), ("Trojan", "trojan"), ("Shadowsocks", "shadowsocks"), ("Hysteria2", "hysteria2"), ("TUIC", "tuic"), ("WireGuard", "wireguard"), ] SINGBOX_EDITOR_PROTOCOL_IDS = tuple([pid for _label, pid in SINGBOX_EDITOR_PROTOCOL_OPTIONS]) SINGBOX_PROTOCOL_SEED_SPEC: dict[str, dict[str, Any]] = { "vless": { "port": 443, "security": "none", "proxy_defaults": { "uuid": "", }, }, "trojan": { "port": 443, "security": "tls", "proxy_defaults": { "password": "", }, }, "shadowsocks": { "port": 443, "security": "none", "proxy_defaults": { "method": "aes-128-gcm", "password": "", }, }, "hysteria2": { "port": 443, "security": "tls", "proxy_defaults": { "password": "", }, "tls_security": "tls", }, "tuic": { "port": 443, "security": "tls", "proxy_defaults": { "uuid": "", "password": "", }, "tls_security": "tls", }, "wireguard": { "port": 51820, "security": "none", "proxy_defaults": { "private_key": "", "peer_public_key": "", "local_address": [], }, }, } __all__ = [ "LOCATION_TARGET_ROLE", "LoginPage", "SINGBOX_EDITOR_PROTOCOL_IDS", "SINGBOX_EDITOR_PROTOCOL_OPTIONS", "SINGBOX_PROTOCOL_SEED_SPEC", "SINGBOX_STATUS_ROLE", "_NEXT_CHECK_RE", ]