mirror of https://github.com/dnomd343/ProxyC
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
2 years ago
|
#!/usr/bin/env python3
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
from Utils.Common import b64Encode
|
||
|
from Utils.Common import urlEncode
|
||
|
|
||
|
|
||
|
def v2rayN(info: dict, name: str) -> str:
|
||
|
"""
|
||
|
https://github.com/2dust/v2rayN/wiki/%E5%88%86%E4%BA%AB%E9%93%BE%E6%8E%A5%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E(ver-2)
|
||
|
|
||
|
FORMAT: vmess://BASE64-ENCODED-JSON-STRING
|
||
|
fields => v(=2) / ps / add / port / id / aid / scy / net / type / host / path / tls / sni / alpn
|
||
|
"""
|
||
|
# TODO: base64 with `+` and `/`
|
||
|
# TODO: => not urlSafe and with padding
|
||
|
config = {
|
||
|
'v': '2',
|
||
|
'ps': urlEncode(name),
|
||
|
'add': info['server'],
|
||
|
'port': str(info['port']),
|
||
|
'id': info['id'],
|
||
|
'aid': str(info['aid']),
|
||
|
'scy': info['method'],
|
||
|
}
|
||
|
|
||
|
stream = info['stream']
|
||
|
if stream['type'] == 'tcp':
|
||
|
|
||
|
...
|
||
|
elif stream['type'] == 'kcp':
|
||
|
...
|
||
|
elif stream['type'] == 'ws':
|
||
|
...
|
||
|
elif stream['type'] == 'h2':
|
||
|
...
|
||
|
elif stream['type'] == 'quic':
|
||
|
...
|
||
|
elif stream['type'] == 'grpc':
|
||
|
...
|
||
|
|
||
|
print(config)
|
||
|
print(info)
|