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