hiddifypanel 11.0.9__py3-none-any.whl → 11.0.11__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 (29) hide show
  1. hiddifypanel/VERSION +1 -1
  2. hiddifypanel/VERSION.py +2 -2
  3. hiddifypanel/hutils/proxy/shared.py +7 -8
  4. hiddifypanel/hutils/proxy/xray.py +5 -4
  5. hiddifypanel/hutils/proxy/xrayjson.py +13 -14
  6. hiddifypanel/panel/admin/UserAdmin.py +55 -1
  7. hiddifypanel/panel/init_db.py +1 -1
  8. hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
  9. hiddifypanel/translations/en/LC_MESSAGES/messages.po +9 -0
  10. hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
  11. hiddifypanel/translations/fa/LC_MESSAGES/messages.po +9 -0
  12. hiddifypanel/translations/my/LC_MESSAGES/messages.mo +0 -0
  13. hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
  14. hiddifypanel/translations/pt/LC_MESSAGES/messages.po +9 -0
  15. hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
  16. hiddifypanel/translations/ru/LC_MESSAGES/messages.po +9 -0
  17. hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
  18. hiddifypanel/translations/zh/LC_MESSAGES/messages.po +9 -0
  19. hiddifypanel/translations.i18n/en.json +3 -0
  20. hiddifypanel/translations.i18n/fa.json +3 -0
  21. hiddifypanel/translations.i18n/pt.json +3 -0
  22. hiddifypanel/translations.i18n/ru.json +3 -0
  23. hiddifypanel/translations.i18n/zh.json +3 -0
  24. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/METADATA +1 -1
  25. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/RECORD +29 -29
  26. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/WHEEL +0 -0
  27. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/entry_points.txt +0 -0
  28. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/licenses/LICENSE.md +0 -0
  29. {hiddifypanel-11.0.9.dist-info → hiddifypanel-11.0.11.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 11.0.9
1
+ 11.0.11
hiddifypanel/VERSION.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # import importlib.metadata
2
2
  from datetime import datetime
3
3
 
4
- __version__ = '11.0.9'
5
- __release_time__= datetime.strptime('2025-07-12T01:18:14','%Y-%m-%dT%H:%M:%S')
4
+ __version__ = '11.0.11'
5
+ __release_time__= datetime.strptime('2025-07-12T21:13:54','%Y-%m-%dT%H:%M:%S')
6
6
  is_released_version=True
@@ -296,15 +296,14 @@ def sni_host_server_extractor(domain_db: Domain, hconfigs):
296
296
 
297
297
  return base
298
298
 
299
- def put_default_header(parmas:dict):
300
-
301
- if not isinstance(parmas.get('headers'),dict):
302
- parmas['headers']={}
299
+ def put_default_header(params:dict):
300
+ if not isinstance(params.get('headers'),dict):
301
+ params['headers']={}
303
302
 
304
- if not parmas['headers'].get('User-Agent'):
305
- parmas['headers']['User-Agent']=hconfig(ConfigEnum.default_useragent_string)
306
- if not parmas['headers'].get('Pragma'):
307
- parmas['headers']['Pragma']="no-cache"
303
+ if not params['headers'].get('User-Agent'):
304
+ params['headers']['User-Agent']=hconfig(ConfigEnum.default_useragent_string)
305
+ if not params['headers'].get('Pragma'):
306
+ params['headers']['Pragma']="no-cache"
308
307
 
309
308
 
310
309
 
@@ -151,11 +151,12 @@ def to_link(proxy: dict) -> str | dict:
151
151
  q['core']='xray'
152
152
  _add_xhttp_extra(q,proxy)
153
153
  if proxy['l3'] != 'quic':
154
- if proxy.get('l3') != ProxyL3.reality and (proxy.get('transport') in {ProxyTransport.tcp, ProxyTransport.httpupgrade, ProxyTransport.xhttp}) and proxy['proto'] in [ProxyProto.vless, ProxyProto.trojan]:
155
- q['headerType']='http'
156
- else:
154
+ if proxy.get('params',{}).get('headers',{}).get("type",'')=='none' or proxy['l3'] != ProxyL3.http:
157
155
  q['headerType']='none'
158
-
156
+ else:
157
+ # if proxy.get('l3') != ProxyL3.reality and (proxy.get('transport') in {ProxyTransport.tcp, ProxyTransport.httpupgrade, ProxyTransport.xhttp}) and proxy['proto'] in [ProxyProto.vless, ProxyProto.trojan]:
158
+ q['headerType']='http'
159
+
159
160
  if proxy['mode'] == 'Fake' or proxy['allow_insecure']:
160
161
  q['allowInsecure']='true'
161
162
  q['insecure']='true'
@@ -291,7 +291,12 @@ def add_stream_settings(base: dict, proxy: dict):
291
291
 
292
292
 
293
293
  def add_tcp_stream(ss: dict, proxy: dict):
294
- if proxy['l3'] == ProxyL3.http:
294
+
295
+ if proxy.get('params',{}).get('headers',{}).get("type",'')=='none' or proxy['l3'] != ProxyL3.http:
296
+ ss['tcpSettings'] = {
297
+ 'header':{'type':'none'}
298
+ }
299
+ else:
295
300
  ss['tcpSettings'] = {
296
301
  'header': {
297
302
  'type': 'http',
@@ -299,24 +304,18 @@ def add_tcp_stream(ss: dict, proxy: dict):
299
304
  'path': [proxy['path']],
300
305
  'method': 'GET',
301
306
  "headers": {
302
- "Host": proxy.get('host'),
303
- "User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.122 Mobile Safari/537.36",
304
- "Accept-Encoding": "gzip, deflate",
305
- "Connection": "keep-alive",
306
- "Pragma": "no-cache"
307
+ "Host": [proxy.get('host')],
308
+ "User-Agent": [proxy.get('params',{}).get('headers',{}).get('User-Agent')],
309
+ "Accept-Encoding": ["gzip, deflate"],
310
+ "Connection": ["keep-alive"],
311
+ "Pragma": proxy.get('params',{}).get('headers',{}).get('Pragma')
307
312
  },
308
313
 
309
314
  }
310
315
  }
311
316
  }
312
- # ss['tcpSettings']['header']['request']['headers']
313
- else:
314
- ss['tcpSettings'] = {
315
- 'header': {
316
- 'type': 'none'
317
- }
318
- # 'acceptProxyProtocol': False
319
- }
317
+ # ss['tcpSettings']['header']['request']['headers']
318
+
320
319
 
321
320
 
322
321
  def add_http_stream(ss: dict, proxy: dict):
@@ -11,7 +11,7 @@ from flask_babel import lazy_gettext as _
11
11
  from flask import g, request # type: ignore
12
12
  from markupsafe import Markup
13
13
  from sqlalchemy import desc, func
14
-
14
+ from flask_admin.contrib.sqla import form, filters as sqla_filters, tools
15
15
  from hiddifypanel.hutils.flask import hurl_for
16
16
  from wtforms.validators import Regexp, ValidationError
17
17
  from flask import current_app
@@ -432,3 +432,57 @@ class UserAdmin(AdminLTEModelView):
432
432
  # abort(403)
433
433
 
434
434
  return query
435
+
436
+
437
+ @action('disable', 'Disable', 'Are you sure you want to disable selected users?')
438
+ def action_disable(self, ids):
439
+ query = tools.get_query_for_ids(self.get_query(), self.model, ids)
440
+ count = query.update({'enable': False})
441
+
442
+ self.session.commit()
443
+ hutils.flask.flash(_('%(count)s records were successfully disabled.', count=count), 'success')
444
+ self.apply(query.all())
445
+
446
+ @action('enable', 'Enable', 'Are you sure you want to enable selected users?')
447
+ def action_enable(self, ids):
448
+ query = tools.get_query_for_ids(self.get_query(), self.model, ids)
449
+ count = query.update({'enable': True})
450
+
451
+ self.session.commit()
452
+ hutils.flask.flash(_('%(count)s records were successfully enabled.', count=count), 'success')
453
+ self.apply(query.all())
454
+
455
+ @action('delete', 'Delete', 'Are you sure you want to delete selected users?')
456
+ def action_delete(self, ids):
457
+ query = tools.get_query_for_ids(self.get_query(), self.model, ids)
458
+ count = query.update({'enable': False})
459
+ self.session.commit()
460
+ self.apply(query.all())
461
+ count =query.delete()
462
+ self.session.commit()
463
+ hutils.flask.flash(_('%(count)s records were successfully deleted.', count=count), 'success')
464
+
465
+ @action('reset usage', 'Reset Usage', 'Are you sure you want to reset usage of selected users?')
466
+ def action_reset_usage(self, ids):
467
+ query = tools.get_query_for_ids(self.get_query(), self.model, ids)
468
+ count = query.update({'current_usage': 0})
469
+ self.session.commit()
470
+ hutils.flask.flash(_('%(count)s records were successfully reset usage.', count=count), 'success')
471
+ self.apply(query.all())
472
+
473
+ @action('reset day', 'Reset Day', 'Are you sure you want to reset day of selected users?')
474
+ def action_reset_days(self, ids):
475
+ query = tools.get_query_for_ids(self.get_query(), self.model, ids)
476
+ count = query.update({'start_date': None})
477
+ self.session.commit()
478
+ hutils.flask.flash(_('%(count)s records were successfully reset days.', count=count), 'success')
479
+ self.apply(query.all())
480
+
481
+ def apply(self,users):
482
+ for user in users:
483
+
484
+ if user.is_active:
485
+ user_driver.add_client(user)
486
+ else:
487
+ user_driver.remove_client(user)
488
+ hiddify.quick_apply_users()
@@ -652,7 +652,7 @@ def make_proxy_rows(cfgs):
652
652
  # if not is_exist:
653
653
  params_list=[('',{})]
654
654
 
655
- if transport=="xhttp" and l3 != "reality":
655
+ if transport=="xhttp" and l3 not in [ProxyL3.reality,ProxyL3.http]:
656
656
  params_list=[]
657
657
  # for up in ['http/1.1"','h2','h3']:
658
658
  if l3=="http":
@@ -9,12 +9,21 @@ msgstr ""
9
9
  " Search\n"
10
10
  " Settings"
11
11
 
12
+ msgid "%(count)s records were successfully deleted."
13
+ msgstr "%(count)s records were successfully deleted."
14
+
12
15
  msgid "%(count)s records were successfully disabled."
13
16
  msgstr "%(count)s Records were successfully disabled."
14
17
 
15
18
  msgid "%(count)s records were successfully enabled."
16
19
  msgstr "%(count)s Records were successfully enabled."
17
20
 
21
+ msgid "%(count)s records were successfully reset days."
22
+ msgstr "%(count)s records were successfully reset days."
23
+
24
+ msgid "%(count)s records were successfully reset usage."
25
+ msgstr "%(count)s records were successfully reset usage."
26
+
18
27
  msgid "%(expire_days)s days"
19
28
  msgstr "%(expire_days)s Days"
20
29
 
@@ -9,12 +9,21 @@ msgstr ""
9
9
  " جستجو کردن\n"
10
10
  "تنظیمات"
11
11
 
12
+ msgid "%(count)s records were successfully deleted."
13
+ msgstr ""
14
+
12
15
  msgid "%(count)s records were successfully disabled."
13
16
  msgstr "%(count)s رکورد با موفقیت غیرفعال شد."
14
17
 
15
18
  msgid "%(count)s records were successfully enabled."
16
19
  msgstr "%(count)s رکوردها با موفقیت فعال شد."
17
20
 
21
+ msgid "%(count)s records were successfully reset days."
22
+ msgstr ""
23
+
24
+ msgid "%(count)s records were successfully reset usage."
25
+ msgstr ""
26
+
18
27
  msgid "%(expire_days)s days"
19
28
  msgstr "%(expire_days)s روز"
20
29
 
@@ -9,12 +9,21 @@ msgstr ""
9
9
  " Procurar\n"
10
10
  "Configurações"
11
11
 
12
+ msgid "%(count)s records were successfully deleted."
13
+ msgstr ""
14
+
12
15
  msgid "%(count)s records were successfully disabled."
13
16
  msgstr "%(count)s registros foram desativados com sucesso."
14
17
 
15
18
  msgid "%(count)s records were successfully enabled."
16
19
  msgstr "%(count)s registros foram ativados com sucesso."
17
20
 
21
+ msgid "%(count)s records were successfully reset days."
22
+ msgstr ""
23
+
24
+ msgid "%(count)s records were successfully reset usage."
25
+ msgstr ""
26
+
18
27
  msgid "%(expire_days)s days"
19
28
  msgstr "%(expire_days)s dias"
20
29
 
@@ -9,12 +9,21 @@ msgstr ""
9
9
  " Поиск\n"
10
10
  "Настройки"
11
11
 
12
+ msgid "%(count)s records were successfully deleted."
13
+ msgstr ""
14
+
12
15
  msgid "%(count)s records were successfully disabled."
13
16
  msgstr "%(count)s записей были успешно отключены."
14
17
 
15
18
  msgid "%(count)s records were successfully enabled."
16
19
  msgstr "%(count)s записей были успешно включены."
17
20
 
21
+ msgid "%(count)s records were successfully reset days."
22
+ msgstr ""
23
+
24
+ msgid "%(count)s records were successfully reset usage."
25
+ msgstr ""
26
+
18
27
  msgid "%(expire_days)s days"
19
28
  msgstr "%(expire_days)s дней"
20
29
 
@@ -7,12 +7,21 @@ msgid ""
7
7
  " Settings"
8
8
  msgstr " 搜索<inlang-LineFeed>设置"
9
9
 
10
+ msgid "%(count)s records were successfully deleted."
11
+ msgstr ""
12
+
10
13
  msgid "%(count)s records were successfully disabled."
11
14
  msgstr "%(count)s 条记录已成功禁用。"
12
15
 
13
16
  msgid "%(count)s records were successfully enabled."
14
17
  msgstr "%(count)s 条记录已成功启用。"
15
18
 
19
+ msgid "%(count)s records were successfully reset days."
20
+ msgstr ""
21
+
22
+ msgid "%(count)s records were successfully reset usage."
23
+ msgstr ""
24
+
16
25
  msgid "%(expire_days)s days"
17
26
  msgstr "%(expire_days)s 天"
18
27
 
@@ -1,7 +1,10 @@
1
1
  {
2
2
  " Search\n Settings": " Search\n Settings",
3
+ "%(count)s records were successfully deleted.": "%(count)s records were successfully deleted.",
3
4
  "%(count)s records were successfully disabled.": "%(count)s Records were successfully disabled.",
4
5
  "%(count)s records were successfully enabled.": "%(count)s Records were successfully enabled.",
6
+ "%(count)s records were successfully reset days.": "%(count)s records were successfully reset days.",
7
+ "%(count)s records were successfully reset usage.": "%(count)s records were successfully reset usage.",
5
8
  "%(expire_days)s days": "%(expire_days)s Days",
6
9
  "%(placeholder)s": "%(placeholder)s",
7
10
  "0 - Last day": "Last Day",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  " Search\n Settings": " جستجو کردن\nتنظیمات",
3
+ "%(count)s records were successfully deleted.": "",
3
4
  "%(count)s records were successfully disabled.": "%(count)s رکورد با موفقیت غیرفعال شد.",
4
5
  "%(count)s records were successfully enabled.": "%(count)s رکوردها با موفقیت فعال شد.",
6
+ "%(count)s records were successfully reset days.": "",
7
+ "%(count)s records were successfully reset usage.": "",
5
8
  "%(expire_days)s days": "%(expire_days)s روز",
6
9
  "%(placeholder)s": "%(placeholder)s",
7
10
  "0 - Last day": "آخرین روز",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  " Search\n Settings": " Procurar\nConfigurações",
3
+ "%(count)s records were successfully deleted.": "",
3
4
  "%(count)s records were successfully disabled.": "%(count)s registros foram desativados com sucesso.",
4
5
  "%(count)s records were successfully enabled.": "%(count)s registros foram ativados com sucesso.",
6
+ "%(count)s records were successfully reset days.": "",
7
+ "%(count)s records were successfully reset usage.": "",
5
8
  "%(expire_days)s days": "%(expire_days)s dias",
6
9
  "%(placeholder)s": "%(placeholder)s",
7
10
  "0 - Last day": "Último dia",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  " Search\n Settings": " Поиск\nНастройки",
3
+ "%(count)s records were successfully deleted.": "",
3
4
  "%(count)s records were successfully disabled.": "%(count)s записей были успешно отключены.",
4
5
  "%(count)s records were successfully enabled.": "%(count)s записей были успешно включены.",
6
+ "%(count)s records were successfully reset days.": "",
7
+ "%(count)s records were successfully reset usage.": "",
5
8
  "%(expire_days)s days": "%(expire_days)s дней",
6
9
  "%(placeholder)s": "%(placeholder)s",
7
10
  "0 - Last day": "Последний день",
@@ -1,7 +1,10 @@
1
1
  {
2
2
  " Search\n Settings": " 搜索<inlang-LineFeed>设置",
3
+ "%(count)s records were successfully deleted.": "",
3
4
  "%(count)s records were successfully disabled.": "%(count)s 条记录已成功禁用。",
4
5
  "%(count)s records were successfully enabled.": "%(count)s 条记录已成功启用。",
6
+ "%(count)s records were successfully reset days.": "",
7
+ "%(count)s records were successfully reset usage.": "",
5
8
  "%(expire_days)s days": "%(expire_days)s 天",
6
9
  "%(placeholder)s": "%(placeholder)s",
7
10
  "0 - Last day": "最后一天",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hiddifypanel
3
- Version: 11.0.9
3
+ Version: 11.0.11
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=CQoKI-hE-eT4tLW5kVRyky4NsQwU4o4lFmwSza7CPxI,7
3
- hiddifypanel/VERSION.py,sha256=5ir-noXKSf6Xs4TX1nGpkWZ6Q30luKV1iyuhc_DDrRE,186
2
+ hiddifypanel/VERSION,sha256=Zvld67Z7jUvyvLRTH3vKfVzHZ3Yy7x9YBcyjaRcLbZA,8
3
+ hiddifypanel/VERSION.py,sha256=TamzsGw_L6qmp_cZei7lxWDXlxrIg3mwASZOx5PQr-Q,187
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,11 +44,11 @@ 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=Cb_LfcO34XWIoREPXdQoaJUR0JpXfSTle7npe7amW-g,24253
47
+ hiddifypanel/hutils/proxy/shared.py,sha256=JRUNhBbxcASAFZrQCwc83hBF5ZATCCrYtX1zlGUx9v8,24248
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=7v7UTDjTN6OVZrrWSa2RiY6734MxuyGKu0ExJOK6dBs,11672
51
- hiddifypanel/hutils/proxy/xrayjson.py,sha256=wcZs4laKO-aASWsHd36vozHXaGRcTiQZQVN9BvzBIBs,16612
50
+ hiddifypanel/hutils/proxy/xray.py,sha256=IypJKIGxZnjrJ1SsXa-412uWdJtmCcEavZMCyIPHH7U,11793
51
+ hiddifypanel/hutils/proxy/xrayjson.py,sha256=0N2NCeKUpcejHNn_fx0uXtmHGPQuPETDBny_8Le4Ob0,16602
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
@@ -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=wB15x9D5gOKautVQV0rw02_w7RfYi1HDmGDirM4EMT8,39495
75
+ hiddifypanel/panel/init_db.py,sha256=nhb5hGryptfbbGD9vs9NhIk32GFGE73IbgSNDa78Q3E,39520
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
@@ -86,7 +86,7 @@ hiddifypanel/panel/admin/ProxyAdmin.py,sha256=HtuYHkZ8LCrYtjF2xO2i7lyw_KtOTBYCPu
86
86
  hiddifypanel/panel/admin/QuickSetup.py,sha256=7ysSAlS7yJerstTDWhuhEwGyoTqpkry2-SfEbuP1VuY,12689
87
87
  hiddifypanel/panel/admin/SettingAdmin.py,sha256=PLu9SEffkMu_GfgRJ5VGjIdaU_8AvkGs5KlskqjRxxI,20434
88
88
  hiddifypanel/panel/admin/Terminal.py,sha256=rzZWRjMhjVnAvC65rfE3HJT3boUDznI6fl-htzKp7sI,1712
89
- hiddifypanel/panel/admin/UserAdmin.py,sha256=i1-B0iBtFA-D18V920hFlYJIzPdiuYUKtLP860D0sbY,18601
89
+ hiddifypanel/panel/admin/UserAdmin.py,sha256=SasWk0Lt2II70QrFE90dc83b41icONATxqvw-isu5XE,21068
90
90
  hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
91
91
  hiddifypanel/panel/admin/adminlte.py,sha256=TrUUu6WYUM-rpgvW2C2KBq3bXkvKe3Pa3cEPjpWCJuk,758
92
92
  hiddifypanel/panel/admin/commercial_info.py,sha256=_fBJcR6zTlMs5Wx4NQJYxq5LvMHY8qfoh73-eCNJyb8,278
@@ -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=whXjbTO28ySKUozgSnU9ik70hgCUG7AboDee3EjariQ,81344
846
- hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=PTRd-S86e6n6FcFfEk9wNY9oXzfxpTKumZF34ADRD8s,84707
847
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=waN13xj3AjZZ3Xeu6y1vkjiqTsNDAmkeXzE9dGFOgNg,104622
848
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=F_rviX213BfquPFuYlDJOq0pv2zrPx__Fr0Nfa4YlXo,109395
849
- hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=O0tsKGQf528iemGNP_au7NiI_W4QzgLEmtwm5UZ9Po8,139090
845
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=Q4f8pDlINJyhlyHflxfeHXiYwnAV7sQVn9hUz_918vU,81676
846
+ hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=tH2xN-ZD2QMyAkGBrqdPc5xMbotaDvfNhoQgGieHmAA,85045
847
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=rzywk0j4KEfZalyMnxK9FHCQUa-K_zGnqObfPsZct04,104622
848
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=UFCQQk8Xp5UVh18jqTn9h8ofc5rCBGRRorVCxLNAXfU,109594
849
+ hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=w-eurbAH_9t7t4B15ihJsGK1g3adCvGJ58s4woqynsI,139090
850
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=1U3xDSNsghOFlnOGZPNyIdsjH-6ausDyGo3G-tuHYlg,80947
852
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=6fKR4KFY9pIDBCZG74JTLN9bLyWQgji8P0euB0LTF6c,85983
853
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=1Xt19rGmWRu6nVcBusVQD6TKxB3cMXIkD0Mez40-L0Y,108744
854
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=kV4lVivA29LNlceyZ3M3X0Cmlnb2T0uMkPK5IpkXoQc,113986
855
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=TtGP9BUTXtXDPj42_peH_YDMy5PdmtR1ucCDjC0y44g,75446
856
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=z8X5CHRb85J8K6bskg0ATQZ1c-lCa1bLDDjXAXwP9HU,80093
857
- hiddifypanel/translations.i18n/en.json,sha256=40MeWDGnf6hhoLkWK4FzOGIgRk2jg99TJL6OnAkIfk8,73568
858
- hiddifypanel/translations.i18n/fa.json,sha256=Dh9euswESYGJ2h-SsQDQXNERTYfGxU_RJ4UYka4of2w,98266
851
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=KpqVNpjlluw2wrl3aPxgxiSZb2RtYIciG79zzwFPMPU,80947
852
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=pv73X2o2Iu6uPB4p0KQZf3bZDXit8BkF6vpld6WnfGU,86182
853
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=yLpgxIqXNS_0f4n6jJOLGq-XMSRlf-B6cT7TJFmoHdA,108744
854
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=0icV7NCGDwDWIDvKtxnRCK77TXKxopHAFAHjSoOirbE,114185
855
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=S0_Mc4Yvmq6zu152rMcn9Z6bCRSnYnFgFszAsj3Tgdw,75446
856
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=z_dw_uNhx9bGyBwS_0-r-mNYERcx4zY9GgGU_K-GnNs,80292
857
+ hiddifypanel/translations.i18n/en.json,sha256=S8ZMPi2KAoylyfAHTFd6ZeI-pcx87GLmEI0SbbI-jpk,73876
858
+ hiddifypanel/translations.i18n/fa.json,sha256=LFB3fkM7BSRXFH9T0K70xNXJsNuIr8HOtqxDxjd38mQ,98435
859
859
  hiddifypanel/translations.i18n/fr.json,sha256=mAZvPzYQhQ1zleLr21cxeB99mb8gvoJBlw7_8AsJgQc,80895
860
860
  hiddifypanel/translations.i18n/my.json,sha256=FWUSUOcHAmVBaq7KL2aX5W8ywsElsy_Dj_ZHuT2EMpE,137466
861
- hiddifypanel/translations.i18n/pt.json,sha256=0YL9JCTM9aXpuMLCckVA5GPHWBaBDVQNqZu8aaJ0P3I,75040
862
- hiddifypanel/translations.i18n/ru.json,sha256=vef8TTxa6nXkwxEuSfOZUm3sdusf4GkBQQcR0MxJCv0,102827
863
- hiddifypanel/translations.i18n/zh.json,sha256=WsbaIOrLIyI6BKPkT8LYWCOaA6PIEMV6qD01wIZuKSk,69573
864
- hiddifypanel-11.0.9.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
865
- hiddifypanel-11.0.9.dist-info/METADATA,sha256=Cp8yBA0UJq6OeDGQfXwQLDZAqw71v6s5O3YAP9QxRuo,25624
866
- hiddifypanel-11.0.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
867
- hiddifypanel-11.0.9.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
868
- hiddifypanel-11.0.9.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
869
- hiddifypanel-11.0.9.dist-info/RECORD,,
861
+ hiddifypanel/translations.i18n/pt.json,sha256=0GA2ZmV-xd1ljoKzRikMynV3ViZqE-t05MoG3jTi9QA,75209
862
+ hiddifypanel/translations.i18n/ru.json,sha256=YQtSRYSo-CLs8Cetwf-dFGikQzGZqNJrYoM24pymkK8,102996
863
+ hiddifypanel/translations.i18n/zh.json,sha256=toVy3NEw0n7MS4ZbRZd-5Fh_n1wGlZsviUZf8XPZ6CE,69742
864
+ hiddifypanel-11.0.11.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
865
+ hiddifypanel-11.0.11.dist-info/METADATA,sha256=8HSIL4UNrmQodi4HVLWFf4tYFl5Roh0yg4nVmYvG3DM,25625
866
+ hiddifypanel-11.0.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
867
+ hiddifypanel-11.0.11.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
868
+ hiddifypanel-11.0.11.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
869
+ hiddifypanel-11.0.11.dist-info/RECORD,,