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.

43 lines
1.1 KiB

#!/usr/bin/python
# -*- coding:utf-8 -*-
import re
from ProxyDecoder import Shadowsocks
from ProxyDecoder import ShadowsocksR
from ProxyDecoder import VMess
from ProxyDecoder import VLESS
from ProxyDecoder import Trojan
from ProxyDecoder import TrojanGo
def decode(url: str) -> dict or None:
"""
代理分享链接解码
链接无效:
return None
链接有效:
return {
'...': '...',
'...': '...',
...
}
"""
try:
scheme = re.search(r'^([\S]+?)://([\s\S]+)$', url).group(1)
if scheme == 'ss':
return Shadowsocks.ssDecode(url, compatible = True)
elif scheme == 'ssr':
return ShadowsocksR.ssrDecode(url)
elif scheme == 'vmess':
return VMess.vmessDecode(url)
elif scheme == 'vless':
return VLESS.vlessDecode(url)
elif scheme == 'trojan':
return Trojan.trojanDecode(url)
elif scheme == 'trojan-go':
return TrojanGo.trojanGoDecode(url)
except:
pass
return None