22 lines
No EOL
687 B
Python
22 lines
No EOL
687 B
Python
from core.models.BaseConnection import BaseConnection
|
|
from dataclasses import dataclass
|
|
|
|
@dataclass
|
|
class SessionConnection(BaseConnection):
|
|
masked: bool = False
|
|
|
|
def __post_init__(self):
|
|
if self.code not in ('system', 'tor', 'wireguard', 'vless', 'hysteria2'):
|
|
raise ValueError('Invalid connection code.')
|
|
|
|
def is_unprotected(self):
|
|
return self.code == 'system' and self.masked is False
|
|
|
|
def needs_proxy_configuration(self):
|
|
return self.masked is True
|
|
|
|
def needs_operator_proxy(self):
|
|
return self.code in ('vless', 'hysteria2')
|
|
|
|
def get_protocol(self):
|
|
return self.code if self.needs_operator_proxy() else None |