Update app.py
Browse files
app.py
CHANGED
@@ -7,22 +7,23 @@ from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
7 |
from urllib.parse import urlparse, parse_qs
|
8 |
|
9 |
def extract_and_transform_proxies(input_text):
|
10 |
-
proxies_match = re.search(r'proxies:\s*\n((?:[-\s]*{.*\n?)*)', input_text, re.MULTILINE)
|
11 |
-
if not proxies_match:
|
12 |
-
return "未找到proxies部分"
|
13 |
-
|
14 |
-
proxies_text = proxies_match.group(1)
|
15 |
-
|
16 |
try:
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
except yaml.YAMLError:
|
19 |
-
|
20 |
-
for proxy_str in re.findall(r'{(.*?)}', proxies_text, re.DOTALL):
|
21 |
-
proxy_dict = {}
|
22 |
-
for item in proxy_str.split(','):
|
23 |
-
key, value = item.split(':', 1)
|
24 |
-
proxy_dict[key.strip()] = value.strip()
|
25 |
-
proxies_list.append(proxy_dict)
|
26 |
|
27 |
if not proxies_list:
|
28 |
return "未找到有效的代理配置"
|
@@ -60,6 +61,8 @@ def extract_and_transform_proxies(input_text):
|
|
60 |
trojan_parts.append(f"sni={proxy['sni'].strip()}")
|
61 |
if 'skip-cert-verify' in proxy:
|
62 |
trojan_parts.append(f"skip-cert-verify={str(proxy['skip-cert-verify']).lower()}")
|
|
|
|
|
63 |
|
64 |
transformed = ", ".join(trojan_parts)
|
65 |
transformed_proxies.append(transformed)
|
|
|
7 |
from urllib.parse import urlparse, parse_qs
|
8 |
|
9 |
def extract_and_transform_proxies(input_text):
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
try:
|
11 |
+
# 尝试解析整个输入作为YAML
|
12 |
+
data = yaml.safe_load(input_text)
|
13 |
+
if isinstance(data, dict) and 'proxies' in data:
|
14 |
+
proxies_list = data['proxies']
|
15 |
+
elif isinstance(data, list):
|
16 |
+
proxies_list = data
|
17 |
+
else:
|
18 |
+
# 如果不是预期的格式,尝试提取proxies部分
|
19 |
+
proxies_match = re.search(r'proxies:\s*\n((?:[-\s]*{.*\n?)*)', input_text, re.MULTILINE)
|
20 |
+
if proxies_match:
|
21 |
+
proxies_text = proxies_match.group(1)
|
22 |
+
proxies_list = yaml.safe_load(proxies_text)
|
23 |
+
else:
|
24 |
+
return "未找到有效的代理配置"
|
25 |
except yaml.YAMLError:
|
26 |
+
return "YAML解析错误"
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
if not proxies_list:
|
29 |
return "未找到有效的代理配置"
|
|
|
61 |
trojan_parts.append(f"sni={proxy['sni'].strip()}")
|
62 |
if 'skip-cert-verify' in proxy:
|
63 |
trojan_parts.append(f"skip-cert-verify={str(proxy['skip-cert-verify']).lower()}")
|
64 |
+
if 'udp' in proxy:
|
65 |
+
trojan_parts.append(f"udp={'true' if proxy['udp'] in [True, 'true', 'True'] else 'false'}")
|
66 |
|
67 |
transformed = ", ".join(trojan_parts)
|
68 |
transformed_proxies.append(transformed)
|