33 lines
692 B
Python
33 lines
692 B
Python
from __future__ import annotations
|
|
|
|
import secrets
|
|
import uuid
|
|
from abc import ABC, abstractmethod
|
|
from collections import defaultdict
|
|
from dataclasses import dataclass, make_dataclass
|
|
from typing import TYPE_CHECKING, TypeVar
|
|
from urllib.parse import parse_qs, quote, unquote, urlencode, urlparse
|
|
|
|
from .outbound_fields import OUTBOUND_FIELDS
|
|
|
|
|
|
class Outbound(ABC):
|
|
pass
|
|
|
|
|
|
_ShadowsocksFields = make_dataclass(
|
|
"_ShadowsocksFields", fields=OUTBOUND_FIELDS["shadowsocks"]
|
|
)
|
|
|
|
|
|
class ShadowsocksOutbound(_ShadowsocksFields, Outbound):
|
|
pass
|
|
|
|
|
|
_VlessFields = make_dataclass(
|
|
"_VlessFieldss", fields=OUTBOUND_FIELDS["vless"]
|
|
)
|
|
|
|
|
|
class VlessOutbound(_VlessFields, Outbound):
|
|
pass |