https://dev.kronoz.win/r/marzneshin.git
1# import hashlib
2import xxhash
3import uuid
4from app.models.proxy import ProxyTypes
5
6
7def gen_uuid(key: str) -> str:
8 return str(uuid.UUID(bytes=xxhash.xxh128(key.encode()).digest()))
9
10
11def gen_password(key: str) -> str:
12 return xxhash.xxh128(key.encode()).hexdigest()
13
14
15def generate_settings(key: str, protocol: ProxyTypes) -> dict:
16 if protocol in (ProxyTypes.Trojan, ProxyTypes.Shadowsocks):
17 return (
18 ProxyTypes(protocol)
19 .settings_model(password=gen_password(key))
20 .dict(no_obj=True)
21 )
22 elif protocol in (ProxyTypes.VMess, ProxyTypes.VLESS):
23 return ProxyTypes(protocol).settings_model(id=gen_uuid(key)).dict(no_obj=True)