hiddifypanel 10.60.0.dev0__py3-none-any.whl → 10.70.0.dev1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. hiddifypanel/VERSION +1 -1
  2. hiddifypanel/VERSION.py +2 -2
  3. hiddifypanel/hutils/proxy/clash.py +9 -8
  4. hiddifypanel/hutils/proxy/shared.py +9 -1
  5. hiddifypanel/hutils/proxy/singbox.py +3 -1
  6. hiddifypanel/hutils/proxy/xrayjson.py +16 -12
  7. hiddifypanel/models/config_enum.py +1 -1
  8. hiddifypanel/panel/admin/SettingAdmin.py +4 -4
  9. hiddifypanel/panel/init_db.py +9 -2
  10. hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
  11. hiddifypanel/translations/en/LC_MESSAGES/messages.po +4 -4
  12. hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
  13. hiddifypanel/translations/fa/LC_MESSAGES/messages.po +4 -4
  14. hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
  15. hiddifypanel/translations/pt/LC_MESSAGES/messages.po +4 -4
  16. hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
  17. hiddifypanel/translations/ru/LC_MESSAGES/messages.po +4 -4
  18. hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
  19. hiddifypanel/translations/zh/LC_MESSAGES/messages.po +4 -4
  20. hiddifypanel/translations.i18n/en.json +4 -4
  21. hiddifypanel/translations.i18n/fa.json +4 -4
  22. hiddifypanel/translations.i18n/pt.json +4 -4
  23. hiddifypanel/translations.i18n/ru.json +4 -4
  24. hiddifypanel/translations.i18n/zh.json +4 -4
  25. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/METADATA +1 -1
  26. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/RECORD +30 -30
  27. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/LICENSE.md +0 -0
  28. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/WHEEL +0 -0
  29. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/entry_points.txt +0 -0
  30. {hiddifypanel-10.60.0.dev0.dist-info → hiddifypanel-10.70.0.dev1.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 10.60.0.dev0
1
+ 10.70.0.dev1
hiddifypanel/VERSION.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__='10.60.0.dev0'
1
+ __version__='10.70.0.dev1'
2
2
  from datetime import datetime
3
- __release_date__= datetime.strptime('2024-07-25','%Y-%m-%d')
3
+ __release_date__= datetime.strptime('2024-07-26','%Y-%m-%d')
@@ -29,17 +29,18 @@ def get_all_clash_configs(meta_or_normal, domains: list[Domain]):
29
29
  def to_clash(proxy, meta_or_normal):
30
30
 
31
31
  name = proxy['name']
32
- if proxy['l3'] == "kcp":
33
- return {'name': name, 'msg': "clash does not support kcp", 'type': 'debug'}
34
- if proxy['proto'] == "ssh":
35
- return {'name': name, 'msg': "clash does not support ssh", 'type': 'debug'}
32
+
33
+ if proxy['l3'] in ["kcp", ProxyL3.h3_quic]:
34
+ return {'name': name, 'msg': f"clash does not support {proxy['l3']}", 'type': 'debug'}
35
+ if proxy['proto'] in ["ssh", "wireguard", "tuic", "hysteria"]:
36
+ return {'name': name, 'msg': f"clash does not support {proxy['proto']}", 'type': 'debug'}
37
+ if proxy.get('flow'):
38
+ return {'name': name, 'msg': "xtls not supported in clash", 'type': 'debug'}
36
39
  if meta_or_normal == "normal":
37
40
  if proxy['proto'] in ["vless", 'tuic', 'hysteria2']:
38
41
  return {'name': name, 'msg': f"{proxy['proto']} not supported in clash", 'type': 'debug'}
39
- if proxy.get('flow'):
40
- return {'name': name, 'msg': "xtls not supported in clash", 'type': 'debug'}
41
- if proxy['transport'] == "shadowtls":
42
- return {'name': name, 'msg': "shadowtls not supported in clash", 'type': 'debug'}
42
+ if proxy['transport'] in ["shadowtls", "splithttp"]:
43
+ return {'name': name, 'msg': f"{proxy['transport']} not supported in clash", 'type': 'debug'}
43
44
  if proxy['l3'] == ProxyL3.tls_h2 and proxy['proto'] in [ProxyProto.vmess, ProxyProto.vless] and proxy['dbe'].cdn == ProxyCDN.direct:
44
45
  return {'name': name, 'msg': "bug tls_h2 vmess and vless in clash meta", 'type': 'warning'}
45
46
  base = {}
@@ -102,7 +102,8 @@ def get_port(proxy: Proxy, hconfigs: dict, domain_db: Domain, ptls: int, phttp:
102
102
 
103
103
 
104
104
  def is_tls(l3) -> bool:
105
- return 'tls' in l3 or "reality" in l3
105
+
106
+ return 'tls' in l3 or "reality" in l3 or l3 in [ProxyL3.h3_quic]
106
107
 
107
108
 
108
109
  @cache.cache(ttl=300)
@@ -254,6 +255,9 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
254
255
  alpn = "h2" if proxy.transport in ['h2', "grpc"] else 'http/1.1'
255
256
  else:
256
257
  alpn = "h2" if proxy.l3 in ['tls_h2'] or proxy.transport in ["grpc", 'h2'] else 'h2,http/1.1' if proxy.l3 == 'tls_h2_h1' else "http/1.1"
258
+ if proxy.l3 in [ProxyL3.h3_quic]:
259
+ alpn = "h3"
260
+
257
261
  cdn_forced_host = domain_db.cdn_ip or (domain_db.domain if domain_db.mode != DomainType.reality else hutils.network.get_direct_host_or_ip(4))
258
262
  is_cdn = ProxyCDN.CDN == proxy.cdn or ProxyCDN.Fake == proxy.cdn
259
263
  base = {
@@ -416,6 +420,10 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
416
420
  if proxy.transport in [ProxyTransport.splithttp]:
417
421
  base['transport'] = 'splithttp'
418
422
  base['path'] = f'/{path[base["proto"]]}{hconfigs[ConfigEnum.path_splithttp]}'
423
+ # if 0 and 'h2' in base['alpn'] or 'h3' in base['alpn']:
424
+ # base['path'] += "2"
425
+ # else:
426
+ # base['path'] += "1"
419
427
  base["host"] = domain
420
428
  return base
421
429
 
@@ -64,7 +64,9 @@ def to_singbox(proxy: dict) -> list[dict] | dict:
64
64
  if is_xray_proxy(proxy):
65
65
  if hutils.flask.is_client_version(hutils.flask.ClientVersion.hiddify_next, 1, 9, 0):
66
66
  base['type'] = "xray"
67
- base['xray_outbound_raw'] = to_xray(proxy)
67
+ xp = to_xray(proxy)
68
+ xp['streamSettings']['sockopt'] = {}
69
+ base['xray_outbound_raw'] = xp
68
70
  return all_base
69
71
  return {'name': name, 'msg': "xray proxy does not support in this client version", 'type': 'debug'}
70
72
  base["type"] = str(proxy["proto"])
@@ -94,10 +94,10 @@ def to_xray(proxy: dict) -> dict:
94
94
  'protocol': str(proxy['proto']),
95
95
  'settings': {},
96
96
  'streamSettings': {},
97
- 'mux': { # default value
98
- 'enabled': False,
99
- 'concurrency': -1
100
- }
97
+ # 'mux': { # default value
98
+ # # 'enabled': False,
99
+ # # 'concurrency': -1
100
+ # }
101
101
  }
102
102
  outbound['protocol'] = 'shadowsocks' if outbound['protocol'] == 'ss' else outbound['protocol']
103
103
  # add multiplex to outbound
@@ -216,7 +216,7 @@ def add_stream_settings(base: dict, proxy: dict):
216
216
  # security
217
217
  if proxy['l3'] == ProxyL3.reality:
218
218
  ss['security'] = 'reality'
219
- elif proxy['l3'] in [ProxyL3.tls, ProxyL3.tls_h2, ProxyL3.tls_h2_h1]:
219
+ elif proxy['l3'] in [ProxyL3.tls, ProxyL3.tls_h2, ProxyL3.tls_h2_h1, ProxyL3.h3_quic]:
220
220
  ss['security'] = 'tls'
221
221
 
222
222
  # network and transport settings
@@ -226,7 +226,8 @@ def add_stream_settings(base: dict, proxy: dict):
226
226
  if ss['security'] == 'reality':
227
227
  ss['network'] = proxy['transport']
228
228
  add_reality_stream(ss, proxy)
229
- elif ss['security'] == 'tls' or 'xtls' and proxy['proto'] != ProxyProto.ss:
229
+ elif ss['security'] in ['tls', "xtls"] and proxy['proto'] != ProxyProto.ss:
230
+
230
231
  ss['tlsSettings'] = {
231
232
  'serverName': proxy['sni'],
232
233
  'allowInsecure': proxy['allow_insecure'],
@@ -341,7 +342,9 @@ def add_splithttp_stream(ss: dict, proxy: dict):
341
342
  ss['splithttpSettings'] = {
342
343
  'path': proxy['path'],
343
344
  'host': proxy['host'],
344
- # 'acceptProxyProtocol': '', for inbounds only
345
+ "headers": {
346
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
347
+ }
345
348
  }
346
349
 
347
350
 
@@ -366,8 +369,8 @@ def add_kcp_stream(ss: dict, proxy: dict):
366
369
 
367
370
  def add_quic_stream(ss: dict, proxy: dict):
368
371
  # TODO: fix server side configs first
369
- ss['quicSettings'] = {}
370
372
  return
373
+
371
374
  ss['quicSettings'] = {
372
375
  'security': 'chacha20-poly1305',
373
376
  'key': proxy['path'],
@@ -411,10 +414,11 @@ def add_multiplex(base: dict, proxy: dict):
411
414
 
412
415
  concurrency = proxy['mux_max_connections']
413
416
  if concurrency and concurrency > 0:
414
- base['mux']['enabled'] = True
415
- base['mux']['concurrency'] = concurrency
416
- base['mux']['xudpConcurrency'] = concurrency
417
- base['mux']['xudpProxyUDP443'] = 'reject'
417
+ base['mux'] = {'enabled': True,
418
+ 'concurrency': concurrency,
419
+ 'xudpConcurrency': concurrency,
420
+ 'xudpProxyUDP443': 'reject',
421
+ }
418
422
 
419
423
 
420
424
  def null_config(tag: str) -> dict:
@@ -245,7 +245,7 @@ class ConfigEnum(metaclass=FastEnum):
245
245
  trojan_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
246
246
  reality_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
247
247
  tcp_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
248
- quic_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)
248
+ quic_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
249
249
  xtls_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)
250
250
  h2_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
251
251
 
@@ -16,7 +16,8 @@ from flask_bootstrap import SwitchField
16
16
  # from gettext import gettext as _
17
17
  from flask_classful import FlaskView
18
18
  from flask_wtf import FlaskForm
19
- from bleach import clean as bleach_clean
19
+ from bleach import clean as bleach_clean, ALLOWED_TAGS as BLEACH_ALLOWED_TAGS
20
+ ALLOWED_TAGS = set([*BLEACH_ALLOWED_TAGS, "h1", "h2", "h3", "h4", "p"])
20
21
 
21
22
 
22
23
  from hiddifypanel.models import BoolConfig, StrConfig, ConfigEnum, hconfig, ConfigCategory
@@ -94,9 +95,8 @@ class SettingAdmin(FlaskView):
94
95
 
95
96
  for k, v in changed_configs.items():
96
97
  # html inputs santitizing
97
- san_items = {ConfigEnum.branding_title, ConfigEnum.branding_site, ConfigEnum.branding_freetext}
98
- if k in san_items:
99
- v = bleach_clean(v)
98
+ if k in {ConfigEnum.branding_title, ConfigEnum.branding_site, ConfigEnum.branding_freetext}:
99
+ v = bleach_clean(v, tags=ALLOWED_TAGS)
100
100
  set_hconfig(k, v, commit=False)
101
101
 
102
102
  db.session.commit()
@@ -17,7 +17,12 @@ from loguru import logger
17
17
  MAX_DB_VERSION = 100
18
18
 
19
19
 
20
- def _v91(child_id):
20
+ def _v93(child_id):
21
+ set_hconfig(ConfigEnum.quic_enable, True)
22
+ set_hconfig(ConfigEnum.splithttp_enable, True)
23
+
24
+
25
+ def _v92(child_id):
21
26
  db.session.bulk_save_objects(get_proxy_rows_v1())
22
27
 
23
28
 
@@ -591,9 +596,11 @@ def get_proxy_rows_v1():
591
596
 
592
597
  def make_proxy_rows(cfgs):
593
598
  # "h3_quic",
594
- for l3 in ["tls_h2", "tls", "http", "reality"]:
599
+ for l3 in [ProxyL3.h3_quic, "tls_h2", "tls", "http", "reality"]:
595
600
  for c in cfgs:
596
601
  transport, cdn, proto = c.split(" ")
602
+ if transport != ProxyTransport.splithttp and l3 == ProxyL3.h3_quic:
603
+ continue
597
604
  if l3 in ["kcp", 'reality'] and cdn != "direct":
598
605
  continue
599
606
  if l3 == "reality" and ((transport not in ['tcp', 'grpc', 'XTLS']) or proto != 'vless'):
@@ -1646,10 +1646,10 @@ msgid "config.path_httpupgrade.label"
1646
1646
  msgstr "ℹ️ HTTP Upgrade Path"
1647
1647
 
1648
1648
  msgid "config.path_splithttp.description"
1649
- msgstr "config.path_splithttp.description"
1649
+ msgstr "This option defines the Path for Split HTTP"
1650
1650
 
1651
1651
  msgid "config.path_splithttp.label"
1652
- msgstr "config.path_splithttp.label"
1652
+ msgstr "Path for SplitHTTP"
1653
1653
 
1654
1654
  msgid "config.path_ss.description"
1655
1655
  msgstr "Shadowsocks Path in the Links"
@@ -1872,10 +1872,10 @@ msgid "config.speed_test.label"
1872
1872
  msgstr "🚀 Speed Test"
1873
1873
 
1874
1874
  msgid "config.splithttp_enable.description"
1875
- msgstr "config.splithttp_enable.description"
1875
+ msgstr "This option activates Split HTTP"
1876
1876
 
1877
1877
  msgid "config.splithttp_enable.label"
1878
- msgstr "config.splithttp_enable.label"
1878
+ msgstr "Enabling Split HTTP"
1879
1879
 
1880
1880
  msgid "config.ssfaketls.description"
1881
1881
  msgstr ""
@@ -1641,10 +1641,10 @@ msgid "config.path_httpupgrade.label"
1641
1641
  msgstr "ℹ️ مسیر ارتقاء HTTP"
1642
1642
 
1643
1643
  msgid "config.path_splithttp.description"
1644
- msgstr ""
1644
+ msgstr "این گزینه مسیر را برای Split HTTP تعریف می کند"
1645
1645
 
1646
1646
  msgid "config.path_splithttp.label"
1647
- msgstr ""
1647
+ msgstr "مسیر برای Split HTTP"
1648
1648
 
1649
1649
  msgid "config.path_ss.description"
1650
1650
  msgstr "مسیر شدوساکس در لینکها"
@@ -1871,10 +1871,10 @@ msgid "config.speed_test.label"
1871
1871
  msgstr "🚀 تست سرعت"
1872
1872
 
1873
1873
  msgid "config.splithttp_enable.description"
1874
- msgstr ""
1874
+ msgstr "این گزینه Split HTTP را فعال می کند"
1875
1875
 
1876
1876
  msgid "config.splithttp_enable.label"
1877
- msgstr ""
1877
+ msgstr "فعال کردن Split HTTP"
1878
1878
 
1879
1879
  msgid "config.ssfaketls.description"
1880
1880
  msgstr ""
@@ -1574,10 +1574,10 @@ msgid "config.path_httpupgrade.label"
1574
1574
  msgstr ""
1575
1575
 
1576
1576
  msgid "config.path_splithttp.description"
1577
- msgstr ""
1577
+ msgstr "Esta opção define o caminho para Split HTTP"
1578
1578
 
1579
1579
  msgid "config.path_splithttp.label"
1580
- msgstr ""
1580
+ msgstr "Caminho para Split HTTP"
1581
1581
 
1582
1582
  msgid "config.path_ss.description"
1583
1583
  msgstr "Caminho Shadowsocks nos Links"
@@ -1797,10 +1797,10 @@ msgid "config.speed_test.label"
1797
1797
  msgstr "🚀 Teste de velocidade"
1798
1798
 
1799
1799
  msgid "config.splithttp_enable.description"
1800
- msgstr ""
1800
+ msgstr "Esta opção ativa Split HTTP"
1801
1801
 
1802
1802
  msgid "config.splithttp_enable.label"
1803
- msgstr ""
1803
+ msgstr "Habilitando Split HTTP"
1804
1804
 
1805
1805
  msgid "config.ssfaketls.description"
1806
1806
  msgstr ""
@@ -1656,10 +1656,10 @@ msgid "config.path_httpupgrade.label"
1656
1656
  msgstr ""
1657
1657
 
1658
1658
  msgid "config.path_splithttp.description"
1659
- msgstr ""
1659
+ msgstr "Эта опция определяет путь для Split HTTP."
1660
1660
 
1661
1661
  msgid "config.path_splithttp.label"
1662
- msgstr ""
1662
+ msgstr "Путь для Split HTTP"
1663
1663
 
1664
1664
  msgid "config.path_ss.description"
1665
1665
  msgstr "Путь Shadowsocks в ссылках"
@@ -1883,10 +1883,10 @@ msgid "config.speed_test.label"
1883
1883
  msgstr "🚀 Тест скорости"
1884
1884
 
1885
1885
  msgid "config.splithttp_enable.description"
1886
- msgstr ""
1886
+ msgstr "Эта опция активирует Split HTTP."
1887
1887
 
1888
1888
  msgid "config.splithttp_enable.label"
1889
- msgstr ""
1889
+ msgstr "Включение Split HTTP"
1890
1890
 
1891
1891
  msgid "config.ssfaketls.description"
1892
1892
  msgstr ""
@@ -1560,10 +1560,10 @@ msgid "config.path_httpupgrade.label"
1560
1560
  msgstr ""
1561
1561
 
1562
1562
  msgid "config.path_splithttp.description"
1563
- msgstr ""
1563
+ msgstr "此选项定义 Split HTTP 的路径"
1564
1564
 
1565
1565
  msgid "config.path_splithttp.label"
1566
- msgstr ""
1566
+ msgstr "Split HTTP 的路径"
1567
1567
 
1568
1568
  msgid "config.path_ss.description"
1569
1569
  msgstr "链接中的 Shadowsocks 路径"
@@ -1767,10 +1767,10 @@ msgid "config.speed_test.label"
1767
1767
  msgstr "🚀 速度测试"
1768
1768
 
1769
1769
  msgid "config.splithttp_enable.description"
1770
- msgstr ""
1770
+ msgstr "此选项激活 Split HTTP"
1771
1771
 
1772
1772
  msgid "config.splithttp_enable.label"
1773
- msgstr ""
1773
+ msgstr "启用 Split HTTP"
1774
1774
 
1775
1775
  msgid "config.ssfaketls.description"
1776
1776
  msgstr "Shadowsocks FakeTLS 是一个简单的混淆工具,将日期封装在 tls 数据包中"
@@ -641,8 +641,8 @@
641
641
  "label": "ℹ️ HTTP Upgrade Path"
642
642
  },
643
643
  "path_splithttp": {
644
- "description": "config.path_splithttp.description",
645
- "label": "config.path_splithttp.label"
644
+ "description": "This option defines the Path for Split HTTP",
645
+ "label": "Path for SplitHTTP"
646
646
  },
647
647
  "path_ss": {
648
648
  "description": "Shadowsocks Path in the Links",
@@ -777,8 +777,8 @@
777
777
  "label": "🚀 Speed Test"
778
778
  },
779
779
  "splithttp_enable": {
780
- "description": "config.splithttp_enable.description",
781
- "label": "config.splithttp_enable.label"
780
+ "description": "This option activates Split HTTP",
781
+ "label": "Enabling Split HTTP"
782
782
  },
783
783
  "ssfaketls": {
784
784
  "description": "Shadowsocks FakeTLS is a simple obfusacting tool that encapsulate the date In tls packet",
@@ -641,8 +641,8 @@
641
641
  "label": "ℹ️ مسیر ارتقاء HTTP"
642
642
  },
643
643
  "path_splithttp": {
644
- "description": "",
645
- "label": ""
644
+ "description": "این گزینه مسیر را برای Split HTTP تعریف می کند",
645
+ "label": "مسیر برای Split HTTP"
646
646
  },
647
647
  "path_ss": {
648
648
  "description": "مسیر شدوساکس در لینکها",
@@ -777,8 +777,8 @@
777
777
  "label": "🚀 تست سرعت"
778
778
  },
779
779
  "splithttp_enable": {
780
- "description": "",
781
- "label": ""
780
+ "description": "این گزینه Split HTTP را فعال می کند",
781
+ "label": "فعال کردن Split HTTP"
782
782
  },
783
783
  "ssfaketls": {
784
784
  "description": "شادوساکس FakeTLS یک روش مبهم سازی ساده هست که دیتا را در بسته TLS کپسوله میکند تا فیلترچی فریب بخورد.",
@@ -641,8 +641,8 @@
641
641
  "label": ""
642
642
  },
643
643
  "path_splithttp": {
644
- "description": "",
645
- "label": ""
644
+ "description": "Esta opção define o caminho para Split HTTP",
645
+ "label": "Caminho para Split HTTP"
646
646
  },
647
647
  "path_ss": {
648
648
  "description": "Caminho Shadowsocks nos Links",
@@ -777,8 +777,8 @@
777
777
  "label": "🚀 Teste de velocidade"
778
778
  },
779
779
  "splithttp_enable": {
780
- "description": "",
781
- "label": ""
780
+ "description": "Esta opção ativa Split HTTP",
781
+ "label": "Habilitando Split HTTP"
782
782
  },
783
783
  "ssfaketls": {
784
784
  "description": "Shadowsocks FakeTLS é uma ferramenta de ofuscação simples que encapsula a data In tls package",
@@ -641,8 +641,8 @@
641
641
  "label": ""
642
642
  },
643
643
  "path_splithttp": {
644
- "description": "",
645
- "label": ""
644
+ "description": "Эта опция определяет путь для Split HTTP.",
645
+ "label": "Путь для Split HTTP"
646
646
  },
647
647
  "path_ss": {
648
648
  "description": "Путь Shadowsocks в ссылках",
@@ -777,8 +777,8 @@
777
777
  "label": "🚀 Тест скорости"
778
778
  },
779
779
  "splithttp_enable": {
780
- "description": "",
781
- "label": ""
780
+ "description": "Эта опция активирует Split HTTP.",
781
+ "label": "Включение Split HTTP"
782
782
  },
783
783
  "ssfaketls": {
784
784
  "description": "Shadowsocks FakeTLS — это простой инструмент для запутывания, который инкапсулирует данные в пакете tls.",
@@ -641,8 +641,8 @@
641
641
  "label": ""
642
642
  },
643
643
  "path_splithttp": {
644
- "description": "",
645
- "label": ""
644
+ "description": "此选项定义 Split HTTP 的路径",
645
+ "label": "Split HTTP 的路径"
646
646
  },
647
647
  "path_ss": {
648
648
  "description": "链接中的 Shadowsocks 路径",
@@ -777,8 +777,8 @@
777
777
  "label": "🚀 速度测试"
778
778
  },
779
779
  "splithttp_enable": {
780
- "description": "",
781
- "label": ""
780
+ "description": "此选项激活 Split HTTP",
781
+ "label": "启用 Split HTTP"
782
782
  },
783
783
  "ssfaketls": {
784
784
  "description": "Shadowsocks FakeTLS 是一个简单的混淆工具,将日期封装在 tls 数据包中",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiddifypanel
3
- Version: 10.60.0.dev0
3
+ Version: 10.70.0.dev1
4
4
  Summary: hiddifypanel multi proxy panel
5
5
  Home-page: https://github.com/hiddify/hiddify-manager/
6
6
  Author: hiddify
@@ -1,6 +1,6 @@
1
1
  hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
2
- hiddifypanel/VERSION,sha256=VCrHC0wil_AmxhacgnHPQ-opC9U_UgW1gYef9nhSbSU,13
3
- hiddifypanel/VERSION.py,sha256=XFis0VtVAPuxkI3PFLDQCgCU5qtjcMsUiv5X-ytKXRM,118
2
+ hiddifypanel/VERSION,sha256=WfWR2g-x5Zvej74D05DLVTZaopDYSQDE-OnCOOgQy7c,13
3
+ hiddifypanel/VERSION.py,sha256=5jv0Meu-wjXsUZryCHSf4ecM_h2kvWvOFc5o_5MTgqo,118
4
4
  hiddifypanel/__init__.py,sha256=aLukp3ORszdcH4G9J-MlxhjHN6yFlOuOE6mm-L3aG_g,266
5
5
  hiddifypanel/__main__.py,sha256=IVchnXpK6bm8T3N--mN17HBQNLMeLAjyP7iwzULexB4,218
6
6
  hiddifypanel/auth.py,sha256=Xq0UwiFTRFmQpxnOehQGwPDlJqoelwGhPQbYZ0Xn5c0,7850
@@ -36,17 +36,17 @@ hiddifypanel/hutils/node/child.py,sha256=oAyKlEHHn9FHcpZ9jBi3nYH-GHs8H7Gi2hzkmtO
36
36
  hiddifypanel/hutils/node/parent.py,sha256=UbyfvfP4fTSn6HN9oZDjYsKYIejiqW6eApKIfP0Mz5U,3749
37
37
  hiddifypanel/hutils/node/shared.py,sha256=FDSj3e-i3pb3mEv5vcUeX0Km1nxYg1CeAruIq7RwFmU,2540
38
38
  hiddifypanel/hutils/proxy/__init__.py,sha256=xXBa83kjYT_b-BNseEykfQYyJBQHTq1ZosfR8ZrQHkI,106
39
- hiddifypanel/hutils/proxy/clash.py,sha256=t57ywMo2TPpnAIuOn9v5gMD2os7zqS9b4NQtFX-Do5s,5813
40
- hiddifypanel/hutils/proxy/shared.py,sha256=cQ49Vi23MKtvY9hpjb_1HTo2zc0C-TlSabY6uMfFPtc,22175
41
- hiddifypanel/hutils/proxy/singbox.py,sha256=vBVSJ0r4TRri1ErtVo7qm-yS3xXTSYoTdUGF2rczkm8,11314
39
+ hiddifypanel/hutils/proxy/clash.py,sha256=n5trDzBXg26aeqLTGGCDVIGGpAM1VC7YX1cTwLNG18k,5912
40
+ hiddifypanel/hutils/proxy/shared.py,sha256=AwkpjkjpeCFiYBj9BIsqRFUWfKTAQ2L8HwGXsRY-_Dc,22419
41
+ hiddifypanel/hutils/proxy/singbox.py,sha256=dpJlEkn4x_WO0gaJ4U5C07xb-_uBt2qZc69N2SPBtDY,11383
42
42
  hiddifypanel/hutils/proxy/xray.py,sha256=sw_g1xhIBAyCQ4cymorrHJSw2u4LOAJ41slmvxwsz5c,10788
43
- hiddifypanel/hutils/proxy/xrayjson.py,sha256=TsnOHM5IUAn5AVEsboVVTLzDLS93EU67SqasHm1y6BA,14796
43
+ hiddifypanel/hutils/proxy/xrayjson.py,sha256=TSD05g8dwwL2pLj8by_jSy4eIP0fDDxy1l4fI-2M1Zw,14948
44
44
  hiddifypanel/models/__init__.py,sha256=PngFjQL9WvQP4EioNHRz1tTeyIgLoNvZ7WpmAhwKHnU,677
45
45
  hiddifypanel/models/admin.py,sha256=qZ-BRJ_Gn6hJNWz35SQQSds1CoeDslU9B0MDBRhjPSM,7596
46
46
  hiddifypanel/models/base_account.py,sha256=TUGDGHt3q3GWqWBdWwqaZl75KXTt7bw6pxnzOWAbkjI,3454
47
47
  hiddifypanel/models/child.py,sha256=ZFJaH-GWTKAGD0BGMH0iKEMipi37_cAk59OeJKt2IKA,3039
48
48
  hiddifypanel/models/config.py,sha256=-KKYqMkSEn2DabRxqBogSyA6xOU4ons6sa5CxxHAlAk,6373
49
- hiddifypanel/models/config_enum.py,sha256=_lVn3Gv5JiZsguwcCU07dlngs5C5ADhKCV6gaXFEOz0,16185
49
+ hiddifypanel/models/config_enum.py,sha256=ouGCvSDvVy9qSJvm1-VjEpe4l5rgN9NSJD2IBruDhvI,16186
50
50
  hiddifypanel/models/domain.py,sha256=0tAPHR6XukN35CoyOxR3zXDNjXR-w_Ezd89jxk2H-xc,8308
51
51
  hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
52
52
  hiddifypanel/models/proxy.py,sha256=czKeDz_MVUSHuX2Lf9H2Ys_kgkggtzEiUx3HZPjJCXQ,3327
@@ -63,7 +63,7 @@ hiddifypanel/panel/cli.py,sha256=GNK-lqoedepG6hfpLHTPLxBaMsdjbQHZAw-qKjdRxnQ,859
63
63
  hiddifypanel/panel/common.py,sha256=pYI_z8dfeeaeSZWN2hUOnj10LtgvGRQBzhPaoGdYR0M,7654
64
64
  hiddifypanel/panel/custom_widgets.py,sha256=_zA0WZRZOCyh6Z1gW62aRQLMAOM_m85B2oZoIOU59Ys,2637
65
65
  hiddifypanel/panel/hiddify.py,sha256=-GBmkEXnGsIhZtjRomYJsqmnEToZwSXzd8ltS6Slgrc,15615
66
- hiddifypanel/panel/init_db.py,sha256=yBuro9Zg6_0cNCcwIMCXnAeHj8qy55FdC5pwFF1kX-c,35028
66
+ hiddifypanel/panel/init_db.py,sha256=NMwbMdQfTttQIrX74R932kOhIVEQBYIk6UDFRVS7Ts0,35269
67
67
  hiddifypanel/panel/run_commander.py,sha256=D9y-My0xSe2adHWXKV5UPYGl-9WwKURzniq55MRu6tE,3259
68
68
  hiddifypanel/panel/usage.py,sha256=sG4qhH8p7PS04W7CjbfbNS4GE88IPtRAeOdqQiHPntw,6860
69
69
  hiddifypanel/panel/admin/Actions.py,sha256=o_ENbphriVrbRJkx9nvrkpaliuMIfp34sscMkZJ3P5s,8578
@@ -75,7 +75,7 @@ hiddifypanel/panel/admin/DomainAdmin.py,sha256=0g9AEk_YVCEZZMscgVDLsqQAAk0QBMW1h
75
75
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
76
76
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=6t6QDJpdRJJ-TNQbK90pf5TI6y9fSlZQEDuPzaOFjrc,5250
77
77
  hiddifypanel/panel/admin/QuickSetup.py,sha256=EDa_ombxF3vWDsj7JEmDnw8Kf0bKwdXU-IdISDi2hj0,11448
78
- hiddifypanel/panel/admin/SettingAdmin.py,sha256=0lzKol5pwuM1axYFyANNPJiIWme2xjZ64QX3PlTv16U,19574
78
+ hiddifypanel/panel/admin/SettingAdmin.py,sha256=fpl4zeKAhqll5JDJ7wzA2E2MBGzYac83RXHHLtnWYec,19664
79
79
  hiddifypanel/panel/admin/Terminal.py,sha256=rzZWRjMhjVnAvC65rfE3HJT3boUDznI6fl-htzKp7sI,1712
80
80
  hiddifypanel/panel/admin/UserAdmin.py,sha256=UPPg92NGxclBKE-inYas58Lz2bc06oFibSMdygQaC2M,18020
81
81
  hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
@@ -822,24 +822,24 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
822
822
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
823
823
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
824
824
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
825
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=jN9uYK-lVyJbrf6jROTVsSNOf-hpEbPC-9FRZyuXVQ0,76130
826
- hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=Y8Y9o8Zn_GvhCt9Zdzb2blxmAQ-Y9h_y5uQsJipHWJc,79318
827
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=HHOUGfvLrMD0T2Eg_dJbEkne9Ti695umdItH8f6PHxg,96032
828
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=Y96y6EONrEJ_BoBuItNlfZzQeF2i8klKGpqTmYIPM5k,101692
829
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=vLDlPZEYaTR0sFZUnrIl6OBOsVQ1oJYPuHmoBtuXmY0,58587
830
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=00MqGOmJzYUArU68jKqQWwkxdR0-jno43nJw141tXyM,69622
831
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=nXXdXsX_jTHtECFeebkyvcKIziPMjrkLXnHYt0OcK7k,97554
832
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=M7sHePHrlQQb7UHEomO0qk4c_XLL_X0Fn9ikUQRW3PQ,104841
833
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=6IK55CKd8uPTti6wc1h7-CtsDWzHW89cwMbhdmCIj6w,58920
834
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=8J-vgc8C1ORaL2kyHPPynEZHpHy2cFAcYyiGAL2ZIcU,68866
835
- hiddifypanel/translations.i18n/en.json,sha256=dozE6mTry3rC-Byvp4dH85lctEB_Yjz2WBZSDzfgIf8,68885
836
- hiddifypanel/translations.i18n/fa.json,sha256=TD8Tsyq6ieJv4RGw6jWtRHstQHGNB-zJfTfug-9i_KA,91256
837
- hiddifypanel/translations.i18n/pt.json,sha256=UiG2f9A8q320T7Ku_3HlASOVVk9pCaUZlgYwUDlFKXA,59558
838
- hiddifypanel/translations.i18n/ru.json,sha256=QRoRoF_RiIvpMD31T14Y9QgFtNuFqj_Hl5-hjOBQIpI,94378
839
- hiddifypanel/translations.i18n/zh.json,sha256=q2kenW7YBiqaZLFb5o_23yrAhbAMSSpgqfDuV8qwUCA,59042
840
- hiddifypanel-10.60.0.dev0.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
841
- hiddifypanel-10.60.0.dev0.dist-info/METADATA,sha256=WOx1hSl6xojX8Q3X1LKEVCP1rWNpEVbbt6mE8zGsDPM,4044
842
- hiddifypanel-10.60.0.dev0.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
843
- hiddifypanel-10.60.0.dev0.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
844
- hiddifypanel-10.60.0.dev0.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
845
- hiddifypanel-10.60.0.dev0.dist-info/RECORD,,
825
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=CnTrlgNIvjLcIzNVIMMgdKwj7ztFLMqeaK0B3JxyFzw,76118
826
+ hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=MfbE6e8Z_cy2mWEwtUo2ccz6WiBInIepBuf3ElPvkFI,79306
827
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=7_Dc7J4fQvc6oRbTaqAaTTABaJgleOu5IY2zc7Ikwo4,96412
828
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=207Mz9wePgMiHtvZKRVFHjtarPynYt-rcycwaUx5wZ0,101876
829
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=tKpu0fNwjsOt1Q3SwIg-FXoBy0xDDSWnnhK6FabkmVE,58902
830
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=7Fx88L6WDURWI7U3P0B7wu-fPODuWudu8NnFp1jY3fM,69741
831
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=C6mlWR0u_cZz7hyP8x0vSb8cVdYS8ehku6_0B66NXzY,97921
832
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=OzosPmC1u41UDt3TDcXMa5KH6pbdNECPTnPU0ix2zYQ,105012
833
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=DJ_h4PNHqtGii8zpClK_zZ_s37N0JZigdvDm4NdeVHk,59215
834
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=Mai5YHjA-UiLusxkN5Q_e2VaiXCqiPKDVZ0G39Emlgo,68965
835
+ hiddifypanel/translations.i18n/en.json,sha256=Wyyd-JGQEt1QpoXJIFXncOtWQNHfiQBqE2PCc_7NLXY,68873
836
+ hiddifypanel/translations.i18n/fa.json,sha256=hWUhH7iM3xy6JPLI47iAt8zBORQyvgx5V6yTWPolYeE,91440
837
+ hiddifypanel/translations.i18n/pt.json,sha256=nX-ylFwJatERGIioxFzjNvN12ICFQdvdEU8SK7H1ClU,59677
838
+ hiddifypanel/translations.i18n/ru.json,sha256=skOpF3rbA2VUgj1LUn9zx8kauEM8FWAjKjCDDscGW04,94549
839
+ hiddifypanel/translations.i18n/zh.json,sha256=ab8kx7EkAmAGQTj1K5PGrS7v659lHhAENkfFlyUSB8o,59141
840
+ hiddifypanel-10.70.0.dev1.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
841
+ hiddifypanel-10.70.0.dev1.dist-info/METADATA,sha256=VaRBbBhk-j9WdnpYWoqyCAcZWXRWOY6uXTUPjb1r2JM,4044
842
+ hiddifypanel-10.70.0.dev1.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
843
+ hiddifypanel-10.70.0.dev1.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
844
+ hiddifypanel-10.70.0.dev1.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
845
+ hiddifypanel-10.70.0.dev1.dist-info/RECORD,,