hiddifypanel 10.86.0b3__py3-none-any.whl → 10.86.0b5__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 (34) hide show
  1. hiddifypanel/VERSION +1 -1
  2. hiddifypanel/VERSION.py +2 -2
  3. hiddifypanel/hutils/proxy/shared.py +29 -10
  4. hiddifypanel/hutils/proxy/xray.py +4 -4
  5. hiddifypanel/hutils/proxy/xrayjson.py +8 -6
  6. hiddifypanel/models/config_enum.py +3 -3
  7. hiddifypanel/panel/admin/DomainAdmin.py +3 -3
  8. hiddifypanel/panel/init_db.py +4 -0
  9. hiddifypanel/templates/flaskadmin-layout.html +5 -2
  10. hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
  11. hiddifypanel/translations/en/LC_MESSAGES/messages.po +13 -7
  12. hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
  13. hiddifypanel/translations/fa/LC_MESSAGES/messages.po +18 -6
  14. hiddifypanel/translations/my/LC_MESSAGES/messages.mo +0 -0
  15. hiddifypanel/translations/my/LC_MESSAGES/messages.po +2 -2
  16. hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
  17. hiddifypanel/translations/pt/LC_MESSAGES/messages.po +16 -7
  18. hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
  19. hiddifypanel/translations/ru/LC_MESSAGES/messages.po +16 -7
  20. hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
  21. hiddifypanel/translations/zh/LC_MESSAGES/messages.po +15 -6
  22. hiddifypanel/translations.i18n/en.json +6 -5
  23. hiddifypanel/translations.i18n/fa.json +11 -6
  24. hiddifypanel/translations.i18n/fr.json +1 -1
  25. hiddifypanel/translations.i18n/my.json +1 -1
  26. hiddifypanel/translations.i18n/pt.json +11 -6
  27. hiddifypanel/translations.i18n/ru.json +11 -6
  28. hiddifypanel/translations.i18n/zh.json +11 -6
  29. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/METADATA +1 -1
  30. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/RECORD +34 -34
  31. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/WHEEL +0 -0
  32. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/entry_points.txt +0 -0
  33. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/licenses/LICENSE.md +0 -0
  34. {hiddifypanel-10.86.0b3.dist-info → hiddifypanel-10.86.0b5.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 10.86.0b3
1
+ 10.86.0b5
hiddifypanel/VERSION.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # import importlib.metadata
2
2
  from datetime import datetime
3
3
 
4
- __version__ = '10.86.0b3'
5
- __release_time__= datetime.strptime('2025-07-06T21:02:18','%Y-%m-%dT%H:%M:%S')
4
+ __version__ = '10.86.0b5'
5
+ __release_time__= datetime.strptime('2025-07-07T10:37:30','%Y-%m-%dT%H:%M:%S')
6
6
  is_released_version=True
@@ -29,16 +29,17 @@ def is_proxy_valid(proxy: Proxy, domain_db: Domain, port: int) -> dict | None:
29
29
  if not port:
30
30
  return {'name': name, 'msg': "port not defined", 'type': 'error', 'proto': proxy.proto}
31
31
  if "reality" not in l3 and 'reality' in domain_db.mode:
32
- return {'name': name, 'msg': "reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
32
+ return {'name': name, 'msg': "1reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
33
33
 
34
34
  if "reality" in l3 and 'reality' not in domain_db.mode:
35
- return {'name': name, 'msg': "reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
35
+ return {'name': name, 'msg': "2reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
36
36
 
37
- if "reality" in l3 and domain_db.mode in [DomainType.special_reality_grpc] and ProxyTransport.grpc != proxy.transport:
38
- return {'name': name, 'msg': "reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
37
+ for p in ['tcp','grpc','xhttp']:
38
+ if "reality" in l3 and p in domain_db.mode and p not in proxy.transport:
39
+ return {'name': name, 'msg': f"reality proxy {proxy.transport} in reality {p} domain", 'type': 'debug', 'proto': proxy.proto}
40
+ if "reality" in l3 and p not in domain_db.mode and p in proxy.transport:
41
+ return {'name': name, 'msg': f"reality {p} proxy not in reality {p} domain", 'type': 'debug', 'proto': proxy.proto}
39
42
 
40
- if "reality" in l3 and (not domain_db.grpc) and ProxyTransport.grpc == proxy.transport:
41
- return {'name': name, 'msg': "reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
42
43
 
43
44
  is_cdn = ProxyCDN.CDN == proxy.cdn or ProxyCDN.Fake == proxy.cdn
44
45
  if is_cdn and domain_db.mode not in [DomainType.cdn, DomainType.auto_cdn_ip, DomainType.worker]:
@@ -106,7 +107,7 @@ def is_tls(l3) -> bool:
106
107
  return 'tls' in l3 or "reality" in l3 or l3 in [ProxyL3.h3_quic]
107
108
 
108
109
 
109
- @cache.cache(ttl=300)
110
+ # @cache.cache(ttl=300)
110
111
  def get_proxies(child_id: int = 0, only_enabled=False) -> list['Proxy']:
111
112
  proxies = Proxy.query.filter(Proxy.child_id == child_id).all()
112
113
  proxies = [c for c in proxies if 'restls' not in c.transport]
@@ -167,7 +168,8 @@ def get_proxies(child_id: int = 0, only_enabled=False) -> list['Proxy']:
167
168
 
168
169
  if not Domain.query.filter(Domain.mode.in_([DomainType.cdn, DomainType.auto_cdn_ip]), Domain.servernames != "", Domain.servernames != Domain.domain).first():
169
170
  proxies = [c for c in proxies if 'Fake' not in c.cdn]
170
- proxies = [c for c in proxies if not ('vless' == c.proto and ProxyTransport.tcp == c.transport and c.cdn == ProxyCDN.direct)]
171
+
172
+ # proxies = [c for c in proxies if not ('vless' == c.proto and ProxyTransport.tcp == c.transport and c.cdn == ProxyCDN.direct)]
171
173
 
172
174
  if only_enabled:
173
175
  proxies = [p for p in proxies if p.enable]
@@ -185,10 +187,11 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
185
187
  if domain.child_id not in configsmap:
186
188
  configsmap[domain.child_id] = get_hconfigs(domain.child_id)
187
189
  proxeismap[domain.child_id] = get_proxies(domain.child_id, only_enabled=True)
190
+ # print(proxeismap[domain.child_id])
188
191
  hconfigs = configsmap[domain.child_id]
189
192
  ips = domain.get_cdn_ips_parsed()
190
193
  if not ips:
191
- ips = hutils.network.get_domain_ips(domain.domain)
194
+ ips = hutils.network.get_domain_ips_cached(domain.domain)
192
195
  for proxy in proxeismap[domain.child_id]:
193
196
  noDomainProxies = False
194
197
  if proxy.proto in [ProxyProto.ssh, ProxyProto.wireguard]:
@@ -234,6 +237,8 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
234
237
 
235
238
  for opt in options:
236
239
  pinfo = make_proxy(hconfigs, proxy, domain, **opt)
240
+ # if key in "vlesstcp":
241
+ # print(pinfo)
237
242
  if 'msg' not in pinfo:
238
243
  allp.append(pinfo)
239
244
  return allp
@@ -312,7 +317,7 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
312
317
  port = hutils.proxy.get_port(proxy, hconfigs, domain_db, ptls, phttp, pport)
313
318
 
314
319
  if val_res := hutils.proxy.is_proxy_valid(proxy, domain_db, port):
315
- # print(val_res)
320
+ # print(f'{name}:{domain}->{val_res}')
316
321
  return val_res
317
322
 
318
323
  if 'reality' in proxy.l3:
@@ -483,6 +488,9 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
483
488
  if dl:=base.get('download'):
484
489
  dl['path']=base['path']
485
490
  dl['xhttp_mode']=dl['params'].get('mode',"auto")
491
+
492
+ if all_element_in_first_dict_is_exist_in_second(dl,base):
493
+ del base['download']
486
494
  return base
487
495
 
488
496
  if proxy.transport == "grpc":
@@ -504,6 +512,17 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
504
512
  return base
505
513
  return {'name': name, 'msg': 'not valid', 'type': 'error', 'proto': proxy.proto}
506
514
 
515
+ def all_element_in_first_dict_is_exist_in_second(fdict,sdict):
516
+ for k,v in fdict.items():
517
+ if k=="params":
518
+ continue
519
+ if isinstance(v,dict):
520
+ if not all_element_in_first_dict_is_exist_in_second(v,sdict.get(k,{})):
521
+ return False
522
+ if sdict.get(k,v)!=v:
523
+ return False
524
+
525
+ return True
507
526
 
508
527
  class ProxyJsonEncoder(json.JSONEncoder):
509
528
  def default(self, obj):
@@ -165,10 +165,10 @@ def to_link(proxy: dict) -> str | dict:
165
165
 
166
166
  elif proxy['l3'] == 'http':
167
167
  q['security']='none'
168
-
169
- for k,v in proxy.get('params',{}).items():
170
- if k not in q:
171
- q[k]=v
168
+ if proxy.get('transport') not in {ProxyTransport.xhttp}:
169
+ for k,v in proxy.get('params',{}).items():
170
+ if k not in q and k!="download":
171
+ q[k]=v
172
172
  return f"{baseurl}?{urlencode(q,quote_via=quote)}#{name_link}"
173
173
 
174
174
 
@@ -388,13 +388,15 @@ def _add_xhttp_details(ss: dict, proxy: dict):
388
388
  }
389
389
  }
390
390
  if proxy.get("download"):
391
- ss['xhttpSettings']['extra']['downloadSettings'] = {
392
- "address": proxy['download'].get("server"),
393
- "port": proxy['port'],
391
+
392
+ dlsettings = {
393
+ "address":proxy['download'].get("server"),
394
+ "port":proxy['port']
394
395
  }
395
-
396
- _add_xhttp_details(ss['xhttpSettings']['extra']['downloadSettings'], proxy['download'])
397
- _add_security(ss['xhttpSettings']['extra']['downloadSettings'], proxy, proxy['download'])
396
+ _add_xhttp_details(dlsettings, proxy['download'])
397
+ _add_security(dlsettings, proxy, proxy['download'])
398
+
399
+ ss['xhttpSettings']['extra']['downloadSettings']=dlsettings
398
400
 
399
401
 
400
402
  def add_kcp_stream(ss: dict, proxy: dict):
@@ -127,7 +127,7 @@ class ConfigEnum(metaclass=FastEnum):
127
127
  reality_short_ids = _StrConfigDscr(ConfigCategory.reality, ApplyMode.apply_config, hide_in_virtual_child=True)
128
128
  reality_private_key = _StrConfigDscr(ConfigCategory.reality, ApplyMode.apply_config, hide_in_virtual_child=True)
129
129
  reality_public_key = _StrConfigDscr(ConfigCategory.reality, ApplyMode.apply_config, hide_in_virtual_child=True)
130
- reality_port = _StrConfigDscr(ConfigCategory.reality, ApplyMode.apply_config, hide_in_virtual_child=True)
130
+ reality_port = _StrConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config, hide_in_virtual_child=True)
131
131
  special_port = _StrConfigDscr(ConfigCategory.reality, ApplyMode.apply_config, hide_in_virtual_child=True)
132
132
 
133
133
  restls1_2_domain = _StrConfigDscr(ConfigCategory.hidden)
@@ -251,8 +251,8 @@ class ConfigEnum(metaclass=FastEnum):
251
251
  reality_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
252
252
  tcp_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
253
253
  quic_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
254
- xtls_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)
255
- h2_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
254
+ xtls_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)#deprecated
255
+ h2_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)#deprecated
256
256
 
257
257
  db_version = _StrConfigDscr(ConfigCategory.hidden)
258
258
  last_priodic_usage_check = _IntConfigDscr(ConfigCategory.hidden)
@@ -86,7 +86,7 @@ class DomainAdmin(AdminLTEModelView):
86
86
  'show_domains': _('Show Domains'),
87
87
  'alias': _('Alias'),
88
88
  'grpc': _('gRPC'),
89
- "download_domain":_('Download Domain')
89
+ "download_domain":_('download_domain.label')
90
90
  }
91
91
 
92
92
  form_columns = ['mode', 'domain','download_domain', 'alias', 'servernames', 'cdn_ip', 'show_domains']
@@ -148,7 +148,7 @@ class DomainAdmin(AdminLTEModelView):
148
148
  def on_model_change(self, form, model, is_created):
149
149
  # Sanitize domain input
150
150
  model.domain = (model.domain or '').lower().strip()
151
- if model.domain==model.download_domain.domain:
151
+ if model.download_domain and model.domain==model.download_domain.domain:
152
152
  model.download_domain_id=None
153
153
  model.download_domain=None
154
154
  # Basic validation
@@ -262,7 +262,7 @@ class DomainAdmin(AdminLTEModelView):
262
262
  if model.domain == configs[c]:
263
263
  raise ValidationError(_("You have used this domain in: ") + _(f"config.{c}.label"))
264
264
 
265
- for td in Domain.query.filter(Domain.mode._in([DomainType.reality,DomainType.special_reality_xhttp,DomainType.special_reality_grpc,DomainType.special_reality_tcp]) == DomainType.reality, Domain.domain != model.domain).all():
265
+ for td in Domain.query.filter(Domain.mode.in_([DomainType.reality,DomainType.special_reality_xhttp,DomainType.special_reality_grpc,DomainType.special_reality_tcp]), Domain.domain != model.domain).all():
266
266
  # print(td)
267
267
  if td.servernames and (model.domain in td.servernames.split(",")):
268
268
  raise ValidationError(_("You have used this domain in: ") + _(f"config.reality_server_names.label") + td.domain)
@@ -16,8 +16,12 @@ from hiddifypanel.database import db, db_execute
16
16
  from loguru import logger
17
17
  MAX_DB_VERSION = 120
18
18
 
19
+ def _v105(child_id):
20
+ StrConfig.query.filter(StrConfig.key==ConfigEnum.reality_port).delete()
19
21
  def _v104(child_id):
22
+
20
23
  set_hconfig(ConfigEnum.special_port,hconfig(ConfigEnum.reality_port))
24
+ StrConfig.query.filter(StrConfig.key==ConfigEnum.reality_port).delete()
21
25
  set_hconfig(ConfigEnum.default_useragent_string,hutils.network.get_random_user_agent())
22
26
  for d in Domain.query.filter(Domain.mode==DomainType.reality,Domain.child_id == child_id).all():
23
27
  d.mode=DomainType.special_reality_tcp
@@ -107,9 +107,10 @@
107
107
  $("#servernames").parent().hide();
108
108
  $("#domain").parent().find(".control-label").html(`{{_('domain.domain')}}`)
109
109
  $("#domain").parent().find(".help-block").html(`{{_('domain.description')}}`)
110
-
110
+ $("#download_domain").parent().hide();
111
111
 
112
112
  } else {
113
+ $("#download_domain").parent().show();
113
114
  $("#cdn_ip").parent().show();
114
115
  //$("#mode").parent().show();
115
116
  $("#show_domains").parent().hide()
@@ -131,7 +132,9 @@
131
132
  // $("#grpc").parent().parent().show()
132
133
  $("#domain").parent().find(".control-label").html(`{{_('config.reality_fallback_domain.label')}}`)
133
134
  $("#domain").parent().find(".help-block").html(`{{_('config.reality_fallback_domain.description')+("<a target='_blank' href='" +hurl_for('admin.Actions:get_some_random_reality_friendly_domain',test_domain=domain)+"'>"+_('Example Domains')+"</a>")}}`)
135
+ $("#download_domain").parent().hide();
134
136
  } else {
137
+
135
138
  if ($("#mode").val() == 'cdn' || $("#mode").val() == 'auto_cdn_ip') {
136
139
  $("#servernames").parent().show();
137
140
  $("#servernames").parent().find(".control-label").html(`{{_('domain.domain_fronting.label')}}`)
@@ -140,7 +143,7 @@
140
143
  $("#servernames").parent().hide();
141
144
  }
142
145
 
143
- $("#grpc").parent().parent().hide()
146
+
144
147
  $("#domain").parent().find(".control-label").html(`{{_('domain.domain')}}`)
145
148
  $("#domain").parent().find(".help-block").html(`{{_('domain.description')}}`)
146
149
  }
@@ -1809,12 +1809,10 @@ msgid "config.reality_fallback_domain.label"
1809
1809
  msgstr "🌍 Reality Fallback Domain"
1810
1810
 
1811
1811
  msgid "config.reality_port.description"
1812
- msgstr ""
1813
- "You can set a customized port for your reality server to reduce the system's"
1814
- " overhead. (Allow direct connection to proxies should be yes)"
1812
+ msgstr "config.reality_port.description"
1815
1813
 
1816
1814
  msgid "config.reality_port.label"
1817
- msgstr "↔️ Direct Reality Port"
1815
+ msgstr "config.reality_port.label"
1818
1816
 
1819
1817
  msgid "config.reality_private_key.description"
1820
1818
  msgstr "Do Not Change It"
@@ -1928,10 +1926,12 @@ msgid "config.show_usage_in_sublink.label"
1928
1926
  msgstr "👁️‍🗨️ Show Usage in Sublink"
1929
1927
 
1930
1928
  msgid "config.special_port.description"
1931
- msgstr "config.special_port.description"
1929
+ msgstr ""
1930
+ "You can set a customized port for your reality server to reduce the system's"
1931
+ " overhead. (Allow direct connection to proxies should be yes)"
1932
1932
 
1933
1933
  msgid "config.special_port.label"
1934
- msgstr "config.special_port.label"
1934
+ msgstr "↔️ Direct Reality Port"
1935
1935
 
1936
1936
  msgid "config.speed_test.description"
1937
1937
  msgstr ""
@@ -2521,7 +2521,13 @@ msgid "download"
2521
2521
  msgstr "Direct Download"
2522
2522
 
2523
2523
  msgid "download_domain.description"
2524
- msgstr "download_domain.description"
2524
+ msgstr ""
2525
+ "Only for XHTTP: This allows, for example, downloads to happen from a "
2526
+ "different domain than uploads. This makes detection harder and can also "
2527
+ "improve overall quality."
2528
+
2529
+ msgid "download_domain.label"
2530
+ msgstr "Download Domain"
2525
2531
 
2526
2532
  msgid "fake"
2527
2533
  msgstr "🆎 Fake Site"
@@ -1798,11 +1798,9 @@ msgstr "🌍 دامنه بازگشتی ریالیتی"
1798
1798
 
1799
1799
  msgid "config.reality_port.description"
1800
1800
  msgstr ""
1801
- "شما می توانید یک پورت سفارشی برای سرور ریالیتی خود تنظیم کنید تا پردازش "
1802
- "سیستم را کاهش دهید. (اجازه اتصال مستقیم به پروکسی ها باید بله باشد)"
1803
1801
 
1804
1802
  msgid "config.reality_port.label"
1805
- msgstr "↔️ پورت ریالیتی"
1803
+ msgstr ""
1806
1804
 
1807
1805
  msgid "config.reality_private_key.description"
1808
1806
  msgstr "این کد را تغییر ندهید"
@@ -1918,8 +1916,16 @@ msgstr "👁️‍🗨️ نمایش حجم و تاریخ انقضا در کان
1918
1916
 
1919
1917
  msgid "config.special_port.description"
1920
1918
  msgstr ""
1919
+ "شما می توانید یک پورت سفارشی برای سرور ریالیتی خود تنظیم کنید تا پردازش "
1920
+ "سیستم را کاهش دهید. (اجازه اتصال مستقیم به پروکسی ها باید بله باشد)"
1921
1921
 
1922
1922
  msgid "config.special_port.label"
1923
+ msgstr "↔️ پورت ریالیتی"
1924
+
1925
+ msgid "config.special_port_old.description"
1926
+ msgstr ""
1927
+
1928
+ msgid "config.special_port_old.label"
1923
1929
  msgstr ""
1924
1930
 
1925
1931
  msgid "config.speed_test.description"
@@ -2508,6 +2514,12 @@ msgstr "دانلود مستقیم"
2508
2514
 
2509
2515
  msgid "download_domain.description"
2510
2516
  msgstr ""
2517
+ "فقط برای XHTTP: این امکان وجود دارد که برای مثال آپلود از دامنه ریلی انجاد "
2518
+ "شود و آپلود از دامنه ای که در این بخش استفاده میکند. در نتیجه سخت تر شناسایی"
2519
+ " میشوید و همینطور کیفیت کلی بهتری خواهید داشتو."
2520
+
2521
+ msgid "download_domain.label"
2522
+ msgstr "دامنه دانلود"
2511
2523
 
2512
2524
  msgid "fake"
2513
2525
  msgstr "🆎 گمراه کننده (Fake)"
@@ -2680,13 +2692,13 @@ msgid "singbox: ssh"
2680
2692
  msgstr "SingBox: SSH"
2681
2693
 
2682
2694
  msgid "special_reality_grpc"
2683
- msgstr ""
2695
+ msgstr "Reality gRPC"
2684
2696
 
2685
2697
  msgid "special_reality_tcp"
2686
- msgstr ""
2698
+ msgstr "Reality TCP"
2687
2699
 
2688
2700
  msgid "special_reality_xhttp"
2689
- msgstr ""
2701
+ msgstr "Reality xHTTP"
2690
2702
 
2691
2703
  msgid "ssh"
2692
2704
  msgstr "SSH"
@@ -1655,10 +1655,10 @@ msgstr "ဆာဗာအမည်များရှိ ဝဘ်ဆိုဒ်
1655
1655
  msgid "config.reality_fallback_domain.label"
1656
1656
  msgstr "🌍 Reality Fallback ဒိုမိန်း"
1657
1657
 
1658
- msgid "config.reality_port.description"
1658
+ msgid "config.special_port.description"
1659
1659
  msgstr "သင့် မျက်မြင်ဆာဗာအား စနစ်မှ လျှော့ချရန်အတွက် စိတ်ကြိုက် port ကို သတ်မှတ်နိုင်သည်။ (ပရောက်စီများသို့ တိုက်ရိုက် ချိတ်ဆက်မှုအား ဖွင့်ထားသင့်သည်။)"
1660
1660
 
1661
- msgid "config.reality_port.label"
1661
+ msgid "config.special_port.label"
1662
1662
  msgstr "↔️ တိုက်ရိုက် Reality Port"
1663
1663
 
1664
1664
  msgid "config.reality_private_key.description"
@@ -1772,12 +1772,9 @@ msgstr "🌍 Domínio alternativo"
1772
1772
 
1773
1773
  msgid "config.reality_port.description"
1774
1774
  msgstr ""
1775
- "Você pode definir uma porta personalizada para seu servidor de Reality para "
1776
- "reduzir a sobrecarga do sistema. (Permitir conexão direta com proxies deve "
1777
- "ser sim)"
1778
1775
 
1779
1776
  msgid "config.reality_port.label"
1780
- msgstr "↔️ Porto de Realidade Direta"
1777
+ msgstr ""
1781
1778
 
1782
1779
  msgid "config.reality_private_key.description"
1783
1780
  msgstr "Não mude isso"
@@ -1895,8 +1892,17 @@ msgstr "💬 Mostrar uso no sublink"
1895
1892
 
1896
1893
  msgid "config.special_port.description"
1897
1894
  msgstr ""
1895
+ "Você pode definir uma porta personalizada para seu servidor de Reality para "
1896
+ "reduzir a sobrecarga do sistema. (Permitir conexão direta com proxies deve "
1897
+ "ser sim)"
1898
1898
 
1899
1899
  msgid "config.special_port.label"
1900
+ msgstr "↔️ Porto de Realidade Direta"
1901
+
1902
+ msgid "config.special_port_old.description"
1903
+ msgstr ""
1904
+
1905
+ msgid "config.special_port_old.label"
1900
1906
  msgstr ""
1901
1907
 
1902
1908
  msgid "config.speed_test.description"
@@ -2487,6 +2493,9 @@ msgstr "Download direto"
2487
2493
  msgid "download_domain.description"
2488
2494
  msgstr ""
2489
2495
 
2496
+ msgid "download_domain.label"
2497
+ msgstr ""
2498
+
2490
2499
  msgid "fake"
2491
2500
  msgstr "🆎 Site falso"
2492
2501
 
@@ -2658,13 +2667,13 @@ msgid "singbox: ssh"
2658
2667
  msgstr "caixa de som: ssh"
2659
2668
 
2660
2669
  msgid "special_reality_grpc"
2661
- msgstr ""
2670
+ msgstr "Reality gRPC"
2662
2671
 
2663
2672
  msgid "special_reality_tcp"
2664
- msgstr ""
2673
+ msgstr "Reality TCP"
2665
2674
 
2666
2675
  msgid "special_reality_xhttp"
2667
- msgstr ""
2676
+ msgstr "Reality xHTTP"
2668
2677
 
2669
2678
  msgid "ssh"
2670
2679
  msgstr "SSH"
@@ -1823,12 +1823,9 @@ msgstr "🌍 Резервный домен Reality"
1823
1823
 
1824
1824
  msgid "config.reality_port.description"
1825
1825
  msgstr ""
1826
- "Вы можете установить индивидуальный порт для вашего сервера Reality, чтобы "
1827
- "снизить нагрузку на систему. (Разрешить прямое подключение к прокси должно "
1828
- "быть да)"
1829
1826
 
1830
1827
  msgid "config.reality_port.label"
1831
- msgstr "↔️ Порт Direct Reality"
1828
+ msgstr ""
1832
1829
 
1833
1830
  msgid "config.reality_private_key.description"
1834
1831
  msgstr "Не меняйте это"
@@ -1946,8 +1943,17 @@ msgstr "👁️‍🗨️ Показать использование в доп.
1946
1943
 
1947
1944
  msgid "config.special_port.description"
1948
1945
  msgstr ""
1946
+ "Вы можете установить индивидуальный порт для вашего сервера Reality, чтобы "
1947
+ "снизить нагрузку на систему. (Разрешить прямое подключение к прокси должно "
1948
+ "быть да)"
1949
1949
 
1950
1950
  msgid "config.special_port.label"
1951
+ msgstr "↔️ Порт Direct Reality"
1952
+
1953
+ msgid "config.special_port_old.description"
1954
+ msgstr ""
1955
+
1956
+ msgid "config.special_port_old.label"
1951
1957
  msgstr ""
1952
1958
 
1953
1959
  msgid "config.speed_test.description"
@@ -2542,6 +2548,9 @@ msgstr "Direct Download"
2542
2548
  msgid "download_domain.description"
2543
2549
  msgstr ""
2544
2550
 
2551
+ msgid "download_domain.label"
2552
+ msgstr ""
2553
+
2545
2554
  msgid "fake"
2546
2555
  msgstr "🆎 Поддельный сайт"
2547
2556
 
@@ -2718,13 +2727,13 @@ msgid "singbox: ssh"
2718
2727
  msgstr "SingBox: SSH"
2719
2728
 
2720
2729
  msgid "special_reality_grpc"
2721
- msgstr ""
2730
+ msgstr "Reality gRPC"
2722
2731
 
2723
2732
  msgid "special_reality_tcp"
2724
- msgstr ""
2733
+ msgstr "Reality TCP"
2725
2734
 
2726
2735
  msgid "special_reality_xhttp"
2727
- msgstr ""
2736
+ msgstr "Reality xHTTP"
2728
2737
 
2729
2738
  msgid "ssh"
2730
2739
  msgstr "SSH"
@@ -1714,10 +1714,10 @@ msgid "config.reality_fallback_domain.label"
1714
1714
  msgstr "🌍 现实后备域"
1715
1715
 
1716
1716
  msgid "config.reality_port.description"
1717
- msgstr "您可以为您的现实服务器设置自定义端口,以减少系统开销。(允许直接连接到代理应该是肯定的)"
1717
+ msgstr ""
1718
1718
 
1719
1719
  msgid "config.reality_port.label"
1720
- msgstr "↔️ 直接 Reality 端口"
1720
+ msgstr ""
1721
1721
 
1722
1722
  msgid "config.reality_private_key.description"
1723
1723
  msgstr "不要改变它"
@@ -1820,9 +1820,15 @@ msgid "config.show_usage_in_sublink.label"
1820
1820
  msgstr "👁️‍🗨️ 在子链接中显示用法"
1821
1821
 
1822
1822
  msgid "config.special_port.description"
1823
- msgstr ""
1823
+ msgstr "您可以为您的现实服务器设置自定义端口,以减少系统开销。(允许直接连接到代理应该是肯定的)"
1824
1824
 
1825
1825
  msgid "config.special_port.label"
1826
+ msgstr "↔️ 直接 Reality 端口"
1827
+
1828
+ msgid "config.special_port_old.description"
1829
+ msgstr ""
1830
+
1831
+ msgid "config.special_port_old.label"
1826
1832
  msgstr ""
1827
1833
 
1828
1834
  msgid "config.speed_test.description"
@@ -2354,6 +2360,9 @@ msgstr "直接下载"
2354
2360
  msgid "download_domain.description"
2355
2361
  msgstr ""
2356
2362
 
2363
+ msgid "download_domain.label"
2364
+ msgstr ""
2365
+
2357
2366
  msgid "fake"
2358
2367
  msgstr "🆎 假网站"
2359
2368
 
@@ -2518,13 +2527,13 @@ msgid "singbox: ssh"
2518
2527
  msgstr "歌手盒:SSH"
2519
2528
 
2520
2529
  msgid "special_reality_grpc"
2521
- msgstr ""
2530
+ msgstr "Reality gRPC"
2522
2531
 
2523
2532
  msgid "special_reality_tcp"
2524
- msgstr ""
2533
+ msgstr "Reality TCP"
2525
2534
 
2526
2535
  msgid "special_reality_xhttp"
2527
- msgstr ""
2536
+ msgstr "Reality xHTTP"
2528
2537
 
2529
2538
  msgid "ssh"
2530
2539
  msgstr "SSH"
@@ -738,8 +738,8 @@
738
738
  "label": "🌍 Reality Fallback Domain"
739
739
  },
740
740
  "reality_port": {
741
- "description": "You can set a customized port for your reality server to reduce the system's overhead. (Allow direct connection to proxies should be yes)",
742
- "label": "↔️ Direct Reality Port"
741
+ "description": "config.reality_port.description",
742
+ "label": "config.reality_port.label"
743
743
  },
744
744
  "reality_private_key": {
745
745
  "description": "Do Not Change It",
@@ -806,8 +806,8 @@
806
806
  "label": "👁️‍🗨️ Show Usage in Sublink"
807
807
  },
808
808
  "special_port": {
809
- "description": "config.special_port.description",
810
- "label": "config.special_port.label"
809
+ "description": "You can set a customized port for your reality server to reduce the system's overhead. (Allow direct connection to proxies should be yes)",
810
+ "label": "↔️ Direct Reality Port"
811
811
  },
812
812
  "speed_test": {
813
813
  "description": "Allow your users to do Speed Test. It helps them to identify the link quality",
@@ -1125,7 +1125,8 @@
1125
1125
  },
1126
1126
  "download": "Direct Download",
1127
1127
  "download_domain": {
1128
- "description": "download_domain.description"
1128
+ "description": "Only for XHTTP: This allows, for example, downloads to happen from a different domain than uploads. This makes detection harder and can also improve overall quality.",
1129
+ "label": "Download Domain"
1129
1130
  },
1130
1131
  "fake": "🆎 Fake Site",
1131
1132
  "gRPC": "➿ gRPC",
@@ -734,8 +734,8 @@
734
734
  "label": "🌍 دامنه بازگشتی ریالیتی"
735
735
  },
736
736
  "reality_port": {
737
- "description": "شما می توانید یک پورت سفارشی برای سرور ریالیتی خود تنظیم کنید تا پردازش سیستم را کاهش دهید. (اجازه اتصال مستقیم به پروکسی ها باید بله باشد)",
738
- "label": "↔️ پورت ریالیتی"
737
+ "description": "",
738
+ "label": ""
739
739
  },
740
740
  "reality_private_key": {
741
741
  "description": "این کد را تغییر ندهید",
@@ -802,6 +802,10 @@
802
802
  "label": "👁️‍🗨️ نمایش حجم و تاریخ انقضا در کانفیگ ها"
803
803
  },
804
804
  "special_port": {
805
+ "description": "شما می توانید یک پورت سفارشی برای سرور ریالیتی خود تنظیم کنید تا پردازش سیستم را کاهش دهید. (اجازه اتصال مستقیم به پروکسی ها باید بله باشد)",
806
+ "label": "↔️ پورت ریالیتی"
807
+ },
808
+ "special_port_old": {
805
809
  "description": "",
806
810
  "label": ""
807
811
  },
@@ -1117,7 +1121,8 @@
1117
1121
  },
1118
1122
  "download": "دانلود مستقیم",
1119
1123
  "download_domain": {
1120
- "description": ""
1124
+ "description": "فقط برای XHTTP: این امکان وجود دارد که برای مثال آپلود از دامنه ریلی انجاد شود و آپلود از دامنه ای که در این بخش استفاده میکند. در نتیجه سخت تر شناسایی میشوید و همینطور کیفیت کلی بهتری خواهید داشتو.",
1125
+ "label": "دامنه دانلود"
1121
1126
  },
1122
1127
  "fake": "🆎 گمراه کننده (Fake)",
1123
1128
  "gRPC": "➿ gRPC",
@@ -1210,9 +1215,9 @@
1210
1215
  }
1211
1216
  },
1212
1217
  "singbox: ssh": "SingBox: SSH",
1213
- "special_reality_grpc": "",
1214
- "special_reality_tcp": "",
1215
- "special_reality_xhttp": "",
1218
+ "special_reality_grpc": "Reality gRPC",
1219
+ "special_reality_tcp": "Reality TCP",
1220
+ "special_reality_xhttp": "Reality xHTTP",
1216
1221
  "ssh": "SSH",
1217
1222
  "sub_link_only": "📳 فقط برای لینک ساب (می تواند مستقیم، رله یا CDN باشد)",
1218
1223
  "telegram": "تلگرام",
@@ -706,7 +706,7 @@
706
706
  "description": "Lorsque le GFW visitera les sites Web dans les noms de serveur, il sera redirigé vers ce domaine.",
707
707
  "label": "🌍 Domaine de repli de Reality"
708
708
  },
709
- "reality_port": {
709
+ "special_port": {
710
710
  "description": "Vous pouvez définir un port personnalisé pour votre serveur de Reality afin de réduire la surcharge du système. (Autoriser la connexion directe aux proxys devrait être oui)",
711
711
  "label": "↔️ Port de Reality directe"
712
712
  },
@@ -709,7 +709,7 @@
709
709
  "description": "GFW သည် ဆာဗာအမည်များရှိ ဝဘ်ဆိုဒ်များသို့ သွားရောက်သည့်အခါ ၎င်းသည် ဤ ဒိုမိန်းသို့ ပြန်လည်ညွှန်းပေးမည်ဖြစ်သည်။",
710
710
  "label": "🌍 Reality Fallback ဒိုမိန်း"
711
711
  },
712
- "reality_port": {
712
+ "special_port": {
713
713
  "description": "စနစ်၏ အကျုံးဝင်မှုကို လျှော့ချရန် သင်၏ reality ဆာဗာအတွက် စိတ်ကြိုက် Port တစ်ခုကို သင် သတ်မှတ်နိုင်သည်။ (ပရောက်စီများနှင့် တိုက်ရိုက်ချိတ်ဆက်မှုကို ခွင့်ပြုပါက ဟုတ်သင့်သည်)",
714
714
  "label": "↔️ တိုက်ရိုက် Reality Port"
715
715
  },
@@ -734,8 +734,8 @@
734
734
  "label": "🌍 Domínio alternativo"
735
735
  },
736
736
  "reality_port": {
737
- "description": "Você pode definir uma porta personalizada para seu servidor de Reality para reduzir a sobrecarga do sistema. (Permitir conexão direta com proxies deve ser sim)",
738
- "label": "↔️ Porto de Realidade Direta"
737
+ "description": "",
738
+ "label": ""
739
739
  },
740
740
  "reality_private_key": {
741
741
  "description": "Não mude isso",
@@ -802,6 +802,10 @@
802
802
  "label": "💬 Mostrar uso no sublink"
803
803
  },
804
804
  "special_port": {
805
+ "description": "Você pode definir uma porta personalizada para seu servidor de Reality para reduzir a sobrecarga do sistema. (Permitir conexão direta com proxies deve ser sim)",
806
+ "label": "↔️ Porto de Realidade Direta"
807
+ },
808
+ "special_port_old": {
805
809
  "description": "",
806
810
  "label": ""
807
811
  },
@@ -1117,7 +1121,8 @@
1117
1121
  },
1118
1122
  "download": "Download direto",
1119
1123
  "download_domain": {
1120
- "description": ""
1124
+ "description": "",
1125
+ "label": ""
1121
1126
  },
1122
1127
  "fake": "🆎 Site falso",
1123
1128
  "gRPC": "➿ gRPC",
@@ -1210,9 +1215,9 @@
1210
1215
  }
1211
1216
  },
1212
1217
  "singbox: ssh": "caixa de som: ssh",
1213
- "special_reality_grpc": "",
1214
- "special_reality_tcp": "",
1215
- "special_reality_xhttp": "",
1218
+ "special_reality_grpc": "Reality gRPC",
1219
+ "special_reality_tcp": "Reality TCP",
1220
+ "special_reality_xhttp": "Reality xHTTP",
1216
1221
  "ssh": "SSH",
1217
1222
  "sub_link_only": "📳 Somente para Link de Assinatura (pode ser direto, relé ou CDN)",
1218
1223
  "telegram": "Telegram",
@@ -734,8 +734,8 @@
734
734
  "label": "🌍 Резервный домен Reality"
735
735
  },
736
736
  "reality_port": {
737
- "description": "Вы можете установить индивидуальный порт для вашего сервера Reality, чтобы снизить нагрузку на систему. (Разрешить прямое подключение к прокси должно быть да)",
738
- "label": "↔️ Порт Direct Reality"
737
+ "description": "",
738
+ "label": ""
739
739
  },
740
740
  "reality_private_key": {
741
741
  "description": "Не меняйте это",
@@ -802,6 +802,10 @@
802
802
  "label": "👁️‍🗨️ Показать использование в доп.ссылке"
803
803
  },
804
804
  "special_port": {
805
+ "description": "Вы можете установить индивидуальный порт для вашего сервера Reality, чтобы снизить нагрузку на систему. (Разрешить прямое подключение к прокси должно быть да)",
806
+ "label": "↔️ Порт Direct Reality"
807
+ },
808
+ "special_port_old": {
805
809
  "description": "",
806
810
  "label": ""
807
811
  },
@@ -1117,7 +1121,8 @@
1117
1121
  },
1118
1122
  "download": "Direct Download",
1119
1123
  "download_domain": {
1120
- "description": ""
1124
+ "description": "",
1125
+ "label": ""
1121
1126
  },
1122
1127
  "fake": "🆎 Поддельный сайт",
1123
1128
  "gRPC": "➿ gRPC",
@@ -1210,9 +1215,9 @@
1210
1215
  }
1211
1216
  },
1212
1217
  "singbox: ssh": "SingBox: SSH",
1213
- "special_reality_grpc": "",
1214
- "special_reality_tcp": "",
1215
- "special_reality_xhttp": "",
1218
+ "special_reality_grpc": "Reality gRPC",
1219
+ "special_reality_tcp": "Reality TCP",
1220
+ "special_reality_xhttp": "Reality xHTTP",
1216
1221
  "ssh": "SSH",
1217
1222
  "sub_link_only": "📳 Только для ссылки на подписку (может быть Direct, Relay или CDN)",
1218
1223
  "telegram": "Telegram",
@@ -734,8 +734,8 @@
734
734
  "label": "🌍 现实后备域"
735
735
  },
736
736
  "reality_port": {
737
- "description": "您可以为您的现实服务器设置自定义端口,以减少系统开销。(允许直接连接到代理应该是肯定的)",
738
- "label": "↔️ 直接 Reality 端口"
737
+ "description": "",
738
+ "label": ""
739
739
  },
740
740
  "reality_private_key": {
741
741
  "description": "不要改变它",
@@ -802,6 +802,10 @@
802
802
  "label": "👁️‍🗨️ 在子链接中显示用法"
803
803
  },
804
804
  "special_port": {
805
+ "description": "您可以为您的现实服务器设置自定义端口,以减少系统开销。(允许直接连接到代理应该是肯定的)",
806
+ "label": "↔️ 直接 Reality 端口"
807
+ },
808
+ "special_port_old": {
805
809
  "description": "",
806
810
  "label": ""
807
811
  },
@@ -1117,7 +1121,8 @@
1117
1121
  },
1118
1122
  "download": "直接下载",
1119
1123
  "download_domain": {
1120
- "description": ""
1124
+ "description": "",
1125
+ "label": ""
1121
1126
  },
1122
1127
  "fake": "🆎 假网站",
1123
1128
  "gRPC": "➿ gRPC",
@@ -1210,9 +1215,9 @@
1210
1215
  }
1211
1216
  },
1212
1217
  "singbox: ssh": "歌手盒:SSH",
1213
- "special_reality_grpc": "",
1214
- "special_reality_tcp": "",
1215
- "special_reality_xhttp": "",
1218
+ "special_reality_grpc": "Reality gRPC",
1219
+ "special_reality_tcp": "Reality TCP",
1220
+ "special_reality_xhttp": "Reality xHTTP",
1216
1221
  "ssh": "SSH",
1217
1222
  "sub_link_only": "📳 仅适用于订阅链接(可以是 Direct、Relay 或 CDN)",
1218
1223
  "telegram": "Telegram",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hiddifypanel
3
- Version: 10.86.0b3
3
+ Version: 10.86.0b5
4
4
  Summary: hiddifypanel multi proxy panel
5
5
  Author: hiddify
6
6
  License:
@@ -1,6 +1,6 @@
1
1
  hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
2
- hiddifypanel/VERSION,sha256=BnHe-W0cA528Z_gbrNef4t8VasNstERg-XKmZgCb0sk,10
3
- hiddifypanel/VERSION.py,sha256=TkZ2yc5KRtfE04t4cHraC38SR9HiD2y6493yyQXSXOI,189
2
+ hiddifypanel/VERSION,sha256=YVBARFeptCtqx0w2QrGh0utcaSOe-ltzkuQ_u4qYDWw,10
3
+ hiddifypanel/VERSION.py,sha256=G-NYlR9jvhiLQiordSZKhUWjD4Y7QNeOF-JGaJ0s_u8,189
4
4
  hiddifypanel/__init__.py,sha256=kigwDO8d9jXyPZLvJAWd6zo-GX3pG_xWf-q2aStz80Y,377
5
5
  hiddifypanel/__main__.py,sha256=IVchnXpK6bm8T3N--mN17HBQNLMeLAjyP7iwzULexB4,218
6
6
  hiddifypanel/auth.py,sha256=LJmH4ROqZv5ej_4m1b0xvbEw2meJTzDR1mFCDm523kE,8041
@@ -44,17 +44,17 @@ hiddifypanel/hutils/node/parent.py,sha256=UbyfvfP4fTSn6HN9oZDjYsKYIejiqW6eApKIfP
44
44
  hiddifypanel/hutils/node/shared.py,sha256=FDSj3e-i3pb3mEv5vcUeX0Km1nxYg1CeAruIq7RwFmU,2540
45
45
  hiddifypanel/hutils/proxy/__init__.py,sha256=V2dGkYT3tji__5YOSmKOMChFYXtlENe1fX6eHqK70Pc,129
46
46
  hiddifypanel/hutils/proxy/clash.py,sha256=JiT3wj48b9ezCGxZoEp5FrhvwfmNKslcF5GMoH9-8OU,7061
47
- hiddifypanel/hutils/proxy/shared.py,sha256=pfZUSSEhaewgj_p1uIGornMUjwHemSpoOp6e7kEM_NQ,23589
47
+ hiddifypanel/hutils/proxy/shared.py,sha256=hQu_6GACKa7BDmnpOhQTBVggUasHqZ11GCROMzrrEls,24241
48
48
  hiddifypanel/hutils/proxy/singbox.py,sha256=Fmmzoake-gpnRB5yfTyQvd1dB-10WKwhJt4vhiKzJZQ,11722
49
49
  hiddifypanel/hutils/proxy/wireguard.py,sha256=gij01BYXII-RxAh3Yky0o3yce20HJKeHtu1KNwb0Uzk,934
50
- hiddifypanel/hutils/proxy/xray.py,sha256=dX3a4E4qQHDL5EcmxTmc0oHViibEZfATyzVm0SyijAk,11220
51
- hiddifypanel/hutils/proxy/xrayjson.py,sha256=2VmZBrS0yS-uUOc5YkIXs9HhWczESegx2Uuo1k4HjYU,16644
50
+ hiddifypanel/hutils/proxy/xray.py,sha256=ze9EiXLaTlMHp9q7fkOmJ7_NwogRnewcWj1Ui9Ofi4c,11306
51
+ hiddifypanel/hutils/proxy/xrayjson.py,sha256=wcZs4laKO-aASWsHd36vozHXaGRcTiQZQVN9BvzBIBs,16612
52
52
  hiddifypanel/models/__init__.py,sha256=PngFjQL9WvQP4EioNHRz1tTeyIgLoNvZ7WpmAhwKHnU,677
53
53
  hiddifypanel/models/admin.py,sha256=bbvpbquyPTmRjqwVT4zVC3bIF39zZYv8snlOR5XIF90,7517
54
54
  hiddifypanel/models/base_account.py,sha256=jVO4haLwTsiE7u4fWoDhhRZ_NjbO7hVJhry8k-Vnrzk,3507
55
55
  hiddifypanel/models/child.py,sha256=IhmCszhUgi1QXbWgji4UDjHV7_OyzLSLsW86BQWFys4,3009
56
56
  hiddifypanel/models/config.py,sha256=Ny3MXiPC-CrF8-xAEmRth6d_lfpDiWZHbCctyJNyWgg,6382
57
- hiddifypanel/models/config_enum.py,sha256=wDgObbma2zRiYXlONO8g2tyFl0Um2_bXMBggsQOkzl0,17079
57
+ hiddifypanel/models/config_enum.py,sha256=7Q8MZUwiKGGe1Tz7qmIsFhiKZcx8ZW0sGTxviYT98F8,17100
58
58
  hiddifypanel/models/domain.py,sha256=ftfHbdLeiUmzBCQisrAZ2geHX8KovEFXCTwq8OtOs8k,9523
59
59
  hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
60
60
  hiddifypanel/models/proxy.py,sha256=Bjagdx7IPMlOLBDZ5KPJvwiWQo-oYtjuJEUs_DhhQU0,3487
@@ -72,7 +72,7 @@ hiddifypanel/panel/common.py,sha256=pMxdgt37ubIZroFBuvHfN5qXNp8kytVTIzVxzZA_X_I,
72
72
  hiddifypanel/panel/custom_widgets.py,sha256=ojnLz-kAa1juZVW1JoCy8FAjvWNORKNpFIb8OnY0lLw,3767
73
73
  hiddifypanel/panel/hiddify.py,sha256=nwLTMYa_LyNuS26BPOO8jfyrslHX2MbQxN0o4lxCTd4,15687
74
74
  hiddifypanel/panel/hlogger.py,sha256=1AQQCs1lg0Y1AYIASRjxWAdFE92HENeg3z1rFycOoY0,1215
75
- hiddifypanel/panel/init_db.py,sha256=Ckb6WANTbu5nILJ_DMtR-w7emto5HOg0vqKb9SiFWlo,39154
75
+ hiddifypanel/panel/init_db.py,sha256=CQKL7h_gGduaVZGPImnPLpPZD--x3MBkDG0Rt-DW2Fg,39332
76
76
  hiddifypanel/panel/run_commander.py,sha256=cXCFVvZ6iTzab3EOZ-Eq3aOeIqfgzgt2ppNaxm_3OJI,3205
77
77
  hiddifypanel/panel/usage.py,sha256=kQAz9nfHt3Mcfa8kLHdrpD408DZEFDT7T1xFV6MlDQE,11991
78
78
  hiddifypanel/panel/admin/Actions.py,sha256=o_ENbphriVrbRJkx9nvrkpaliuMIfp34sscMkZJ3P5s,8578
@@ -80,7 +80,7 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=X8MI3DtW62vJqFRp97M_CxSdB-N
80
80
  hiddifypanel/panel/admin/Backup.py,sha256=BKSoAZgw1j16P1Jh9vMqGj7ZfB2m-WafDK0C5vil5FY,3634
81
81
  hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
82
82
  hiddifypanel/panel/admin/Dashboard.py,sha256=JOqZLHxPOYKQYQVJ7AtHAkilH-anJZQyK1rQrgCJUeA,3798
83
- hiddifypanel/panel/admin/DomainAdmin.py,sha256=-3fmlQoyVuMN0I1EZJPPTsdzUqhwZNEvLthjE_P3Pd0,16522
83
+ hiddifypanel/panel/admin/DomainAdmin.py,sha256=NJFmgbBMWmS8dGIhjK9BZG9nPH0jOhb54c9McrfRAB0,16532
84
84
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
85
85
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=HtuYHkZ8LCrYtjF2xO2i7lyw_KtOTBYCPu0bNWR4fOs,5364
86
86
  hiddifypanel/panel/admin/QuickSetup.py,sha256=7ysSAlS7yJerstTDWhuhEwGyoTqpkry2-SfEbuP1VuY,12689
@@ -833,7 +833,7 @@ hiddifypanel/templates/admin.ht.old,sha256=e9FBo9YPi7zFVidg8jS6JhOOsYdBbNPxfpTWG
833
833
  hiddifypanel/templates/donation.html,sha256=Oft3WENpSnwpbDgMw3MnhQIlQhuN_TDKm54qd4_FwIk,741
834
834
  hiddifypanel/templates/error.html,sha256=Tnu3mMZ6zvFcATU6_OY1stljVPd9Djnxm3LV7Zx4zck,476
835
835
  hiddifypanel/templates/fake.html,sha256=AfAN68M52vzE5OgR432HbtXF6XXWLZ2n5sgy2YKpHgQ,14129
836
- hiddifypanel/templates/flaskadmin-layout.html,sha256=RlOC_FjLYihZEuh3xD4OLRjFZ87CkWe1G8KDC6Jwlr8,7894
836
+ hiddifypanel/templates/flaskadmin-layout.html,sha256=cmLZLegeqlM5BVSTni_tHjCn-X38BmH1MYy9YfhSao0,8048
837
837
  hiddifypanel/templates/github_issue_body.j2,sha256=6Z4QF-cOAaUxDtRQXT8H4O9SrZ3TGoxgpjnfIpGbsxo,474
838
838
  hiddifypanel/templates/lte-master.html,sha256=jYhcNj8SuMOPT35OEG4e1sLWm03Vq53n4ynf3SdOWj4,1585
839
839
  hiddifypanel/templates/macros.html,sha256=HlnXbIMN8i37fVusBdfw0QfVkImnFpZw9zbmtpAT4p8,4139
@@ -842,28 +842,28 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
842
842
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
843
843
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
844
844
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
845
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=mV6YHJxYVRqLmxGxpGF7bA9Cwbhb7HwpEdkx9viUMG8,81026
846
- hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=UxA9aXjg0-WR90ZiJMSj7OHfeTIUVkAEHUygbq_o-U4,84364
847
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=heWgT5h13Vl39VtsX9S2ZnwNKEoJKnIpWXU4O4-qZqQ,102665
848
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=DjQJmANUjupn3w2Xki4XIxcHWkMVq49-3NvA-qc8ecA,107942
849
- hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=x2HEyfMpsqcXBu7ZToGJ5iIPgsvHXgmFHJNxA-OQCHc,139090
850
- hiddifypanel/translations/my/LC_MESSAGES/messages.po,sha256=GcrOHDJC2wjo1L8lLmwLOs_dwoqcf0f6rXXjDv8JnsE,141985
851
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=20ThFJj64BmYWJ5fzSFoPuLPEstrvTAdyZZ-7tT13T4,80797
852
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=H_FQwe6NRXiurFvJ9qsAvQQNSLJ9KfInBniMBFvKxRg,85886
853
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=zTiUfFwF6-MTTko_9mbMvOkrt7127TtlHNSQmKtEf_Q,108594
854
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=bl1uq_qFnYZ-ApdFonRGw6JvHSpn3ouf20tKLbwdcBU,113889
855
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=p-UJuzLI07z49pYz7eOKj3JvFjj2YwaCKimnIofnYsQ,75296
856
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=11gUSESaphlG394m4vgjFPVSIWbxsBrR-EWnTCxEPMc,79996
857
- hiddifypanel/translations.i18n/en.json,sha256=LEOapzNQ8dzqLSwspOqs3KcZIOigoGKUB9ZzanuBMxU,73280
858
- hiddifypanel/translations.i18n/fa.json,sha256=Cma8HU7oGmgwAJC06LSGc0SzekziWzK1gJlEg-2pHlY,96912
859
- hiddifypanel/translations.i18n/fr.json,sha256=2rg9kdnDBRYufBTelJ-m5QJQvW5OqvKibz30ViCriV0,80837
860
- hiddifypanel/translations.i18n/my.json,sha256=QAXg__5TCqfx3Ck0cw5YQsSXX_3kqUhMOdTZbR-TAx8,137466
861
- hiddifypanel/translations.i18n/pt.json,sha256=Cn_wYMe341ezmuCwuTEooOR1vJ9s4PQG3yG4D7-PRTo,74967
862
- hiddifypanel/translations.i18n/ru.json,sha256=skewpobyJj8o3EkTl8GHFlnJCRqGaMrCDl8LhKttEsc,102754
863
- hiddifypanel/translations.i18n/zh.json,sha256=TkVNd9bsPJj6umiv9GLkPUjL8D6D_AdpcjFbpbnZLYo,69500
864
- hiddifypanel-10.86.0b3.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
865
- hiddifypanel-10.86.0b3.dist-info/METADATA,sha256=VfsObVcUtpk8_kc3387nY0bmjZNzw4okJ8HdpoU4IRc,25627
866
- hiddifypanel-10.86.0b3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
867
- hiddifypanel-10.86.0b3.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
868
- hiddifypanel-10.86.0b3.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
869
- hiddifypanel-10.86.0b3.dist-info/RECORD,,
845
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=GnvU1DQFjbmaXjFTRqH24y3OUtC97HvmPCSXyoN9Kl4,81218
846
+ hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=HxKCOjnn66CP4Q7iJpQ2nkV7heHiCo3hR364urYKpRY,84567
847
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=dh85ZRXxa599uufOuR8wAows_TG-cIFL2SAPIzNtQ_I,103271
848
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=2h4MNaTUOxHl8B3C17983aPh72YG5gm9d3SLKrgKcms,108504
849
+ hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=GSnSfJg4p1MK79DaUwBPj9j8ofuChp0mA8xgvP2iMGo,139090
850
+ hiddifypanel/translations/my/LC_MESSAGES/messages.po,sha256=PvYBwQWXaUpAoqy90oow-sH-ZyPE7Fm_l-3FrXT_vEA,141985
851
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=XfWXR6u6aZFRe9rzMJ0Nq2WheKO-4Tccu_fWprOCpLU,80947
852
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=L_On4NoKVP6hXcWBwnLNjOXPGgevYvO-ttcMdHfzqK0,86067
853
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=vYDpXz0fy3G0f6VCP-VyZrXaaNSDK-pn_b2wNuBFGEs,108744
854
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=yRc8bKXu_SQBKpCKWGTiV4H_0IgserCY3_1cvLED5-s,114070
855
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=d6_9GD5v7gfyRJ_Ni2wowLDX8lWvTmFu8lYX_dCuOIA,75446
856
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=ySV8tjRzhEjbJx6JQbLMhWnoMb6CTJqEVIKuYwJI0dA,80177
857
+ hiddifypanel/translations.i18n/en.json,sha256=70eyfU2b7NFuig6Yrql39dFs0JPuthe4dVbb5gTWDtw,73450
858
+ hiddifypanel/translations.i18n/fa.json,sha256=tClb4Oo8bLejitKUPz_s2Dlu43dRp6PCqa2cvPOtGd4,97413
859
+ hiddifypanel/translations.i18n/fr.json,sha256=r3n2WgvqX67wnAAcaxW_KkJKFebC-l2NlcSVOKe_TJA,80837
860
+ hiddifypanel/translations.i18n/my.json,sha256=1jSy8S2bP681KV9MT5Mq4lFzrh6a982bTjOjpcgbe_Y,137466
861
+ hiddifypanel/translations.i18n/pt.json,sha256=r_8xflnQBbooU9jNMaZ8QjLqvKegIyGUKMSFGj4F6HE,75096
862
+ hiddifypanel/translations.i18n/ru.json,sha256=wNMbGlKMMFfxShxYPO7wknmuEKjXHCfNqGH2HiA0zRU,102883
863
+ hiddifypanel/translations.i18n/zh.json,sha256=d8Jtgm1GMGFAiEXzcRmHLmbDo7YtJynUvpHGpzt3CMw,69629
864
+ hiddifypanel-10.86.0b5.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
865
+ hiddifypanel-10.86.0b5.dist-info/METADATA,sha256=QRldFyMNzptOh3lKy0vlj9OkBcHj6HeIGjBqeEeRMNo,25627
866
+ hiddifypanel-10.86.0b5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
867
+ hiddifypanel-10.86.0b5.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
868
+ hiddifypanel-10.86.0b5.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
869
+ hiddifypanel-10.86.0b5.dist-info/RECORD,,