hiddifypanel 10.15.0.dev1__py3-none-any.whl → 10.15.0.dev5__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.
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 10.15.0.dev1
1
+ 10.15.0.dev5
hiddifypanel/VERSION.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__='10.15.0.dev1'
1
+ __version__='10.15.0.dev5'
2
2
  from datetime import datetime
3
- __release_date__= datetime.strptime('2024-04-06','%Y-%m-%d')
3
+ __release_date__= datetime.strptime('2024-04-07','%Y-%m-%d')
@@ -2,7 +2,7 @@ from typing import List, Tuple
2
2
  from flask import current_app, flash as flask_flash, g, request
3
3
  from wtforms.validators import ValidationError
4
4
  from apiflask import abort as apiflask_abort
5
- from flask_babel import lazy_gettext as _
5
+ from flask_babel import gettext as _
6
6
  from flask import url_for # type: ignore
7
7
  from urllib.parse import urlparse
8
8
  from markupsafe import Markup
@@ -17,7 +17,8 @@ from hiddifypanel import hutils
17
17
 
18
18
 
19
19
  def flash(message: str, category: str = "message"):
20
- return flask_flash(Markup(message), category)
20
+ # if isinstance(message, LazyString)
21
+ return flask_flash(message, category)
21
22
 
22
23
 
23
24
  def flash_config_success(restart_mode: ApplyMode = ApplyMode.nothing, domain_changed=True):
@@ -156,7 +156,10 @@ class DomainAdmin(AdminLTEModelView):
156
156
  for td in Domain.query.filter(Domain.mode == DomainType.reality, Domain.domain != model.domain).all():
157
157
  # print(td)
158
158
  if td.servernames and (model.domain in td.servernames.split(",")):
159
- raise ValidationError(_("You have used this domain in: ") + _(f"config.reality_server_names.label") + " in " + td.domain)
159
+ raise ValidationError(_("You have used this domain in: ") + _(f"config.reality_server_names.label") + td.domain)
160
+
161
+ if is_created and Domain.query.filter(Domain.domain == model.domain, Domain.child_id == model.child_id).count() > 1:
162
+ raise ValidationError(_("You have used this domain in: "))
160
163
 
161
164
  ipv4_list = hutils.network.get_ips(4)
162
165
  ipv6_list = hutils.network.get_ips(6)
@@ -62,7 +62,7 @@ class InfoAPI(MethodView):
62
62
 
63
63
  dto.doh = f"https://{request.host}/{g.proxy_path}/dns/dns-query"
64
64
  dto.lang = (c['user'].lang) or Lang(hconfig(ConfigEnum.lang))
65
- dto.brand_icon_url = "" if hconfig(ConfigEnum.branding_title) else hutils.flask.static_url_for(filename="images/hiddify.png")
65
+ dto.brand_icon_url = "" if hconfig(ConfigEnum.branding_title) else hutils.flask.static_url_for(filename="images/favicon.ico")
66
66
  # with force_locale("fa"):
67
67
  dto.admin_message_html = hconfig(ConfigEnum.branding_freetext) or _("Join our Hiddify Telegram channel to get the latest updates on Hiddify.")
68
68
  if not hconfig(ConfigEnum.branding_freetext) and auth.admin_session_is_exist():
@@ -163,8 +163,7 @@ def init_app(app: APIFlask):
163
163
 
164
164
  # setup dark mode
165
165
  if request.args.get('darkmode') is not None:
166
- session['darkmode'] = request.args.get(
167
- 'darkmode', '').lower() == 'true'
166
+ session['darkmode'] = request.args.get('darkmode', '').lower() == 'true'
168
167
  g.darkmode = session.get('darkmode', False)
169
168
 
170
169
  # setup pwa
@@ -10,8 +10,6 @@ from hiddifypanel import Events, hutils
10
10
  from hiddifypanel.models import *
11
11
  from hiddifypanel.panel import hiddify
12
12
  from hiddifypanel.database import db, db_execute
13
- from hiddifypanel import hutils
14
- from sqlalchemy import text
15
13
  from flask import g
16
14
 
17
15
  MAX_DB_VERSION = 90
@@ -540,7 +538,7 @@ def add_config_if_not_exist(key: ConfigEnum, val: str | int, child_id: int | Non
540
538
  child_id = Child.current().id
541
539
 
542
540
  old_val = hconfig(key, child_id)
543
- print(key, val, child_id, old_val)
541
+ hutils.utils.error(f'{key}, {val}, {child_id}, {old_val}')
544
542
  if old_val is None:
545
543
  set_hconfig(key, val)
546
544
 
@@ -559,7 +557,7 @@ def execute(query: str):
559
557
 
560
558
  db_execute(query)
561
559
  except BaseException as e:
562
- print(e)
560
+ hutils.utils.error(e)
563
561
  pass
564
562
 
565
563
 
@@ -599,7 +597,7 @@ def add_new_enum_values():
599
597
  # Add the new value to the enum column in the database
600
598
  enumstr = ','.join([f"'{a}'" for a in [*existing_values, *old_values]])
601
599
 
602
- db_execute(text(f"ALTER TABLE {table_name} MODIFY COLUMN `{column_name}` ENUM({enumstr});"))
600
+ db_execute(f"ALTER TABLE {table_name} MODIFY COLUMN `{column_name}` ENUM({enumstr});")
603
601
 
604
602
  db.session.commit()
605
603
 
@@ -620,14 +618,14 @@ def upgrade_database():
620
618
  if not os.path.isdir(backup_root) or len(os.listdir(backup_root)) == 0:
621
619
  if os.path.isfile(sqlite_db):
622
620
  os.rename(sqlite_db, sqlite_db + ".old")
623
- print("no backup found...")
621
+ hutils.utils.error("no backup found...")
624
622
  return
625
623
  if os.path.isfile(sqlite_db):
626
- hiddify.error("Finding Old Version Database... importing configs from latest backup")
624
+ hutils.utils.error("Finding Old Version Database... importing configs from latest backup")
627
625
  newest_file = max([(f, os.path.getmtime(os.path.join(backup_root, f)))
628
626
  for f in os.listdir(backup_root) if os.path.isfile(os.path.join(backup_root, f))], key=lambda x: x[1])[0]
629
627
  with open(f'{backup_root}{newest_file}', 'r') as f:
630
- hiddify.error(f"importing configs from {newest_file}")
628
+ hutils.utils.error(f"importing configs from {newest_file}")
631
629
  json_data = json.load(f)
632
630
  hiddify.set_db_from_json(json_data,
633
631
  set_users=True,
@@ -644,7 +642,8 @@ def upgrade_database():
644
642
  db_version = int([d['value'] for d in json_data['hconfigs'] if d['key'] == "db_version"][0])
645
643
  os.rename(sqlite_db, sqlite_db + ".old")
646
644
  set_hconfig(ConfigEnum.db_version, db_version, commit=True)
647
- hiddify.error("Upgrading to the new dataset succuess.")
645
+
646
+ hutils.utils.error("Upgrading to the new dataset succuess.")
648
647
 
649
648
 
650
649
  def init_db():
@@ -677,7 +676,7 @@ def init_db():
677
676
  if not db_action or (start_version == 0 and ver == 10):
678
677
  continue
679
678
 
680
- hiddify.error(f"Updating db from version {db_version} for node {child.id}")
679
+ hutils.utils.error(f"Updating db from version {db_version} for node {child.id}")
681
680
 
682
681
  if ver < 70:
683
682
  if child.id != 0:
@@ -687,7 +686,7 @@ def init_db():
687
686
  db_action(child.id)
688
687
 
689
688
  Events.db_init_event.notify(db_version=db_version)
690
- hiddify.error(f"Updated successfuly db from version {db_version} to {ver}")
689
+ hutils.utils.error(f"Updated successfuly db from version {db_version} to {ver}")
691
690
 
692
691
  db_version = ver
693
692
  db.session.commit()
Binary file
@@ -20,25 +20,35 @@
20
20
  {% else %}
21
21
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
22
22
  {% endif %}
23
- <link href="{{static_url_for(filename='images/splash/iphone5_splash.png')}}" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
23
+ <link href="{{static_url_for(filename='images/splash/iphone5_splash.png')}}"
24
+ media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
24
25
  rel="apple-touch-startup-image" />
25
- <link href="{{static_url_for(filename='images/splash/iphone6_splash.png')}}" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
26
+ <link href="{{static_url_for(filename='images/splash/iphone6_splash.png')}}"
27
+ media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
26
28
  rel="apple-touch-startup-image" />
27
- <link href="{{static_url_for(filename='images/splash/iphoneplus_splash.png')}}" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
29
+ <link href="{{static_url_for(filename='images/splash/iphoneplus_splash.png')}}"
30
+ media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
28
31
  rel="apple-touch-startup-image" />
29
- <link href="{{static_url_for(filename='images/splash/iphonex_splash.png')}}" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
32
+ <link href="{{static_url_for(filename='images/splash/iphonex_splash.png')}}"
33
+ media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
30
34
  rel="apple-touch-startup-image" />
31
- <link href="{{static_url_for(filename='images/splash/iphonexr_splash.png')}}" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
35
+ <link href="{{static_url_for(filename='images/splash/iphonexr_splash.png')}}"
36
+ media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
32
37
  rel="apple-touch-startup-image" />
33
- <link href="{{static_url_for(filename='images/splash/iphonexsmax_splash.png')}}" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
38
+ <link href="{{static_url_for(filename='images/splash/iphonexsmax_splash.png')}}"
39
+ media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
34
40
  rel="apple-touch-startup-image" />
35
- <link href="{{static_url_for(filename='images/splash/ipad_splash.png')}}" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
41
+ <link href="{{static_url_for(filename='images/splash/ipad_splash.png')}}"
42
+ media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
36
43
  rel="apple-touch-startup-image" />
37
- <link href="{{static_url_for(filename='images/splash/ipadpro1_splash.png')}}" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
44
+ <link href="{{static_url_for(filename='images/splash/ipadpro1_splash.png')}}"
45
+ media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
38
46
  rel="apple-touch-startup-image" />
39
- <link href="{{static_url_for(filename='images/splash/ipadpro3_splash.png')}}" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
47
+ <link href="{{static_url_for(filename='images/splash/ipadpro3_splash.png')}}"
48
+ media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
40
49
  rel="apple-touch-startup-image" />
41
- <link href="{{static_url_for(filename='images/splash/ipadpro2_splash.png')}}" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
50
+ <link href="{{static_url_for(filename='images/splash/ipadpro2_splash.png')}}"
51
+ media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
42
52
  rel="apple-touch-startup-image" />
43
53
  <link rel="icon" type="image/x-icon" href="{{ static_url_for( filename='images/favicon.ico')}}">
44
54
  <link rel="manifest" href="{{ hurl_for('common_bp.LoginView:create_pwa_manifest',secret_uuid=g.account.uuid or '')}}">
@@ -60,7 +70,8 @@
60
70
  <link rel="stylesheet" href="{{static_url_for(filename='plugins/datatables/extensions/Responsive/css/responsive.bootstrap4.min.css')}}"> -->
61
71
 
62
72
  <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.13.2/css/dataTables.bootstrap4.min.css">
63
- <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.4.0/css/responsive.bootstrap4.min.css">
73
+ <link rel="stylesheet" type="text/css"
74
+ href="https://cdn.datatables.net/responsive/2.4.0/css/responsive.bootstrap4.min.css">
64
75
 
65
76
  <link rel="stylesheet" href="{{ static_url_for( filename='css/custom.css',version=5.23 ) }}">
66
77
  {% if get_locale()=='fa' %}
@@ -77,7 +88,8 @@
77
88
 
78
89
  </head>
79
90
 
80
- <body class="hold-transition layout-fixed {{" dark-mode" if g.darkmode else "" }} {% block bodyclass %}sidebar-collapse{%endblock%}">
91
+ <body class="hold-transition layout-fixed {{" dark-mode" if g.darkmode else "" }} {% block bodyclass
92
+ %}sidebar-collapse{%endblock%}">
81
93
  <div id="splash_screen">
82
94
  <center>
83
95
 
@@ -148,12 +160,14 @@
148
160
  </div>
149
161
 
150
162
  <ul class="nav col-md-4 justify-content-end list-unstyled d-flex">
151
- <li class="ms-3"><a class="text-secondary" href="https://github.com/hiddify/hiddify-manager/wiki"><i class="fa-brands fa-github"></i></a></li>
163
+ <li class="ms-3"><a class="text-secondary" href="https://github.com/hiddify/hiddify-manager/wiki"><i
164
+ class="fa-brands fa-github"></i></a></li>
152
165
  <li class="ms-3"><a class="text-danger" href="https://youtube.com/@hiddify/videos">
153
166
  &nbsp; <i class="fa-brands fa-square-youtube fa-margin"></i> </a></li>
154
167
  <li class="ms-3"><a class="text-primary" href="https://twitter.com/intent/follow?screen_name=hiddify_com">
155
168
  &nbsp; <i class="fa-brands fa-square-twitter fa-margin"></i> </a></li>
156
- <li class="ms-3"><a class="text-primary" href="https://t.me/hiddify">&nbsp; <i class="fa-brands fa-telegram fa-margin"></i> </a></li>
169
+ <li class="ms-3"><a class="text-primary" href="https://t.me/hiddify">&nbsp; <i
170
+ class="fa-brands fa-telegram fa-margin"></i> </a></li>
157
171
  </ul>
158
172
 
159
173
  </footer>
@@ -163,7 +177,8 @@
163
177
  </div>
164
178
  <!-- ./wrapper -->
165
179
 
166
- {#modal("guide-modal","","<video id='guide-video' controls style='max-height: 100%; max-width: 100%;width: auto; height: auto;'>
180
+ {#modal("guide-modal","","<video id='guide-video' controls
181
+ style='max-height: 100%; max-width: 100%;width: auto; height: auto;'>
167
182
  <source id='guide-video-mp4' type='video/mp4'>
168
183
  </video>")#}
169
184
 
@@ -182,8 +197,10 @@
182
197
  <div class="btn-group">
183
198
  <a id='qrcode-link' class="btn btn-primary copy-link" href=""><i class="fa-regular fa-copy"></i>
184
199
  {{_("copy")}} </a>
185
- <a id="share-link-redirect" class="btn btn-success copy-link" href=""><i class="fa-solid fa-share-from-square"></i> {{_('clickable copy')}}</a>
186
- <a target="_blank" id="share-link-open" class="btn btn-secondary" href=""><i class="fa-solid fa-arrow-up-right-from-square"></i> {{_('open')}}</a>
200
+ <a id="share-link-redirect" class="btn btn-success copy-link" href=""><i
201
+ class="fa-solid fa-share-from-square"></i> {{_('clickable copy')}}</a>
202
+ <a target="_blank" id="share-link-open" class="btn btn-secondary" href=""><i
203
+ class="fa-solid fa-arrow-up-right-from-square"></i> {{_('open')}}</a>
187
204
  </div>
188
205
  <br />
189
206
  <div id="qrcode" style="margin:10px;padding:10px;"></div>
@@ -234,8 +251,10 @@
234
251
 
235
252
  <script src="{{ static_url_for( filename='plugins/datatables/jquery.dataTables.min.js' ) }}"></script>
236
253
  <script src="{{ static_url_for( filename='plugins/datatables/dataTables.bootstrap4.js' ) }}"></script>
237
- <script src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js' ) }}"></script>
238
- <script src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/responsive.bootstrap4.min.js' ) }}"></script>
254
+ <script
255
+ src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js' ) }}"></script>
256
+ <script
257
+ src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/responsive.bootstrap4.min.js' ) }}"></script>
239
258
 
240
259
  <!-- <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.13.2/js/jquery.dataTables.min.js"></script>
241
260
  <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.13.2/js/dataTables.bootstrap4.min.js"></script>
@@ -307,7 +326,7 @@
307
326
  position: "{{'topLeft' if get_locale()=='fa' else 'topRight'}}",
308
327
 
309
328
 
310
- body: `{{msg}}`
329
+ body: `{{msg|safe}}`
311
330
  })
312
331
  {% endfor %}
313
332
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiddifypanel
3
- Version: 10.15.0.dev1
3
+ Version: 10.15.0.dev5
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=d6FSbdY9xXG61ASYSN6u18wCpJiEVxRz-Sx4HcKBl0g,13
3
- hiddifypanel/VERSION.py,sha256=7vuX8jDjp9ltKbbhFl3OC8uy2xR2GlB23EYESPJsCoY,118
2
+ hiddifypanel/VERSION,sha256=mlFI8JzU61wms1NFXkSsMd6OXAJMo8DzqOVvH_s49AM,13
3
+ hiddifypanel/VERSION.py,sha256=FwTN8JyocNuFCR5vOak6pmSdcwC8IVSL3LoFbEL2jKw,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=5GUwwKCRY90RS0WTKPfqzuOYuLuwGLpNLpnKmubf7DE,7405
@@ -18,7 +18,7 @@ hiddifypanel/hutils/auth.py,sha256=CoT25nrneWaAnRtx7qDE0v4WkdCeV3ra78VqEN48jeE,3
18
18
  hiddifypanel/hutils/convert.py,sha256=bxkbphOC9GifVMKwgmo4lpAOyJ5rdSVRnG1eEjh8tIc,2061
19
19
  hiddifypanel/hutils/crypto.py,sha256=2MDnzjM_ZJdY1zJ3eCoa2v24FYzzdKKO4viOFnvmBlI,1858
20
20
  hiddifypanel/hutils/encode.py,sha256=XUq7NSrV11WeVIZFyfik8sqI82R0lKRm5mqKrxNoLrQ,834
21
- hiddifypanel/hutils/flask.py,sha256=KhZJC7MXZdn0zaPcZkO8ng_nvJ3_VkgcDA48CYfuwOA,10556
21
+ hiddifypanel/hutils/flask.py,sha256=o9DHfhqZPN1j7s5sVnFAFrJp0zjalVKFPQeL_w6dd9o,10584
22
22
  hiddifypanel/hutils/github_issue.py,sha256=oDJU-8BgefDdls9sUzhVpohH9utrD4WZLWrb3oUwV4c,6500
23
23
  hiddifypanel/hutils/model.py,sha256=ajlJ-Tx0Mq68S9y5qEj0lwlDbF2xj0niZBQyw7UU670,1320
24
24
  hiddifypanel/hutils/random.py,sha256=KrsarmRNL05PYzwMxDaDyv-_QcKS0YsZR2z7BnllAqI,1789
@@ -60,10 +60,10 @@ hiddifypanel/panel/auth_back.py,sha256=ft2YlK1Ke87fvKTpGLIHnLVpnBRn1Stlc_-6aEzud
60
60
  hiddifypanel/panel/auth_back2.py,sha256=8-MkPi4WAxO7gAeChQ7ceCx0QhuEQlrYazZ9qDnm_Mc,8983
61
61
  hiddifypanel/panel/cf_api.py,sha256=TByR9gRiF18TGPjGmWHEwgPdB-icfczBfrf2E-8H488,1127
62
62
  hiddifypanel/panel/cli.py,sha256=a2rTpUlUsjv3aEkqAK0aa8_PW3e1IzpXWaJPb4EVIyg,9368
63
- hiddifypanel/panel/common.py,sha256=8qLShJ1pPrZiChZOzi0PGFWAigRfj_DEGgLr4_5K8-E,8012
63
+ hiddifypanel/panel/common.py,sha256=fns77UWOc5zreyqZHEOHcHc3WuEX8mZZEwRY8J0aWAo,7995
64
64
  hiddifypanel/panel/custom_widgets.py,sha256=9qI_fNX8NKqB1r8ljgcaisGZaDM89_PM_rOBZbGaTYs,2506
65
65
  hiddifypanel/panel/hiddify.py,sha256=K8obO2Chc8A0Dh0FwMWT2NyvPbI8eGSHY3wLpCB2XoU,14436
66
- hiddifypanel/panel/init_db.py,sha256=UJyjhv9ghq5lbQbXyv6KhPxsbrzVza-gVGlntzC84gI,32657
66
+ hiddifypanel/panel/init_db.py,sha256=5N-y7br2PBQ9hydT8kAHjB0ujlmEmBcjqF1e5n0FkFM,32667
67
67
  hiddifypanel/panel/run_commander.py,sha256=D9y-My0xSe2adHWXKV5UPYGl-9WwKURzniq55MRu6tE,3259
68
68
  hiddifypanel/panel/usage.py,sha256=zYXhd0OTGWWV7K_UErb4mCoEla2qE2f_Rzl4-C13ia4,4828
69
69
  hiddifypanel/panel/admin/Actions.py,sha256=Ea2eFbHzPcXQcuGh1oihaMjlszuHcmSuE70azysaZ7M,8794
@@ -71,7 +71,7 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=Y0h_mHRblguJjK0VqZoyCPcn02k
71
71
  hiddifypanel/panel/admin/Backup.py,sha256=dp74st7OBw_j3hH-4K4tf9EyP4qGuALaJ5pTcC-SWt8,3670
72
72
  hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
73
73
  hiddifypanel/panel/admin/Dashboard.py,sha256=cF1pUmSqvDad_4q7G-2xfFeFht-Vq9YrneRl0V8Caeg,4179
74
- hiddifypanel/panel/admin/DomainAdmin.py,sha256=5H0q5Dvgdx4KUg1FTabXTjrbvcy1br7XwCXw2okgCoI,14404
74
+ hiddifypanel/panel/admin/DomainAdmin.py,sha256=n6vNX58Bc7LxYwkXcAIOKf8GZuES3-AgWQzbNmth4Vo,14592
75
75
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
76
76
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=e-tCTfsEjqjbRezhVJvFyQZHh-uluvHFZXXwc4aFRDE,5319
77
77
  hiddifypanel/panel/admin/QuickSetup.py,sha256=X8d492PLQu8vNtabh-X2R2IDZVs_5pmWeyn-Qz5_qXk,7560
@@ -162,7 +162,7 @@ hiddifypanel/panel/commercial/restapi/v2/parent/usage_api.py,sha256=FOvb6nFuWcuc
162
162
  hiddifypanel/panel/commercial/restapi/v2/user/__init__.py,sha256=SxWty7krk6kt_JORT1AyQcUfgRdY_55vRb3FAxT4LB8,1230
163
163
  hiddifypanel/panel/commercial/restapi/v2/user/apps_api.py,sha256=WVq8Ufjr_HpkdHG3juTD6Tfg12kE-00VRV8PrbSiqY8,20833
164
164
  hiddifypanel/panel/commercial/restapi/v2/user/configs_api.py,sha256=tc2fP-neC2mbc7sRQADpLYwlIFLr5UtUjyTsOT3rVp4,4602
165
- hiddifypanel/panel/commercial/restapi/v2/user/info_api.py,sha256=BzoWLykmxkQmlUQ8b1-0NGaGRtPeVncwzVDA-7XBO68,3918
165
+ hiddifypanel/panel/commercial/restapi/v2/user/info_api.py,sha256=Ou-3TjwLqYYECIttjSU9rpjmfjDFbgHj2_gGnwmHj5E,3918
166
166
  hiddifypanel/panel/commercial/restapi/v2/user/mtproxies.py,sha256=wK6zMOw2OTVxeMkzZGVah34GYDMJa8Keq5z7jGKfFys,1676
167
167
  hiddifypanel/panel/commercial/restapi/v2/user/short_api.py,sha256=rhsmDJSCiZOhX9jpJGcRS_zBVRqvjpjH3CaNaJ9gMiI,1137
168
168
  hiddifypanel/panel/commercial/telegrambot/DefaultResponse.py,sha256=WgT8LuY_AsAK6QYIXWuBOmnRIDlg4rUPPokHWOrWzHQ,378
@@ -257,7 +257,7 @@ hiddifypanel/static/fonts/Vazir.ttf,sha256=Xpc1n9qGYzHwscPPkG4D5zR8asPnqtQsAP13v
257
257
  hiddifypanel/static/fonts/Vazir.woff,sha256=zeOSomAuJf5MSPtfWMQlRm-bfvW6fe3TR6bKKm3wB1A,47972
258
258
  hiddifypanel/static/fonts/Vazir.woff2,sha256=hiSb0YdZo_FDhmchu-X3E5e74hrd5t5TD9E9dc8SnnA,38004
259
259
  hiddifypanel/static/images/WhiteLogo.png,sha256=ZvfzfBxOkmJDyaxgI8v49Hu49lFlyJe0CuHCpokiHgs,7570
260
- hiddifypanel/static/images/favicon.ico,sha256=fuGQJqroZJi14OiVMVM4RsDfteo1dLKftiTz7QRtS7Q,15422
260
+ hiddifypanel/static/images/favicon.ico,sha256=rqIPdpwfnqaLFqeSbP_EIiTGQwG96Wl02ghQq9JByF4,13438
261
261
  hiddifypanel/static/images/hiddify-dark.png,sha256=YGz0d6SUh5NmWr45GRPqlGJSE-MiCxr6ZVhAU2JPaX4,111125
262
262
  hiddifypanel/static/images/hiddify-old.png,sha256=Lq-XqNRd5QQANwv4y7orXB3v5KERJpF8auNWB2do2CA,37408
263
263
  hiddifypanel/static/images/hiddify.png,sha256=oagOQAV1sbhSirE62kzzinkGOlWh9wy6w5JLOebEamU,31712
@@ -815,29 +815,29 @@ hiddifypanel/templates/flaskadmin-layout.html,sha256=PkF74ld3HZ-j5_nVzVxmispnmmo
815
815
  hiddifypanel/templates/github_issue_body.j2,sha256=6Z4QF-cOAaUxDtRQXT8H4O9SrZ3TGoxgpjnfIpGbsxo,474
816
816
  hiddifypanel/templates/lte-master.html,sha256=jYhcNj8SuMOPT35OEG4e1sLWm03Vq53n4ynf3SdOWj4,1585
817
817
  hiddifypanel/templates/macros.html,sha256=HlnXbIMN8i37fVusBdfw0QfVkImnFpZw9zbmtpAT4p8,4139
818
- hiddifypanel/templates/master.html,sha256=QZt6_N7txQICDW2lQn8ToWsbEqgOlqsu39criIBidhM,21738
818
+ hiddifypanel/templates/master.html,sha256=MduWpnW-_ksXxPb1fSOYJC0SKEYnAJ8i4XwX7AUZj38,21865
819
819
  hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjIqmnpZi0,412
820
820
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
821
821
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
822
822
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
823
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=0a8ls9Xp9609LmqwJ7mIFlSc04DTdr0b-T7wj10rqsI,74266
823
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=XXvSV1DAuLDJnfz2ZcvY2fWIaj8voP7tkSr2cHUArlw,74266
824
824
  hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=htfXb1yD7U4vfsyeF9ECctKBrfJOwnaAfPp8cUiZvTE,77415
825
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=LFV5a9jkEUBOJXLCtq2q6LUzurbKxc_514MV7ux7UKk,94799
825
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=f_1m-jxIAH5ZWhwOENl4uY32w4MgE5h46x-hv4pcpCQ,94799
826
826
  hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=kfaTzdmS1eJCb0NjrHLfltd_y-FGXI2LCQxDEannE4E,99980
827
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=xUEvIgZGUpzv4s8r-FcJ0aNg9sCVDmeO7tf40EPS8IU,60612
827
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=xhkh2E_5aSh2VgTnunc7EMlEaubMSTr8gnraFybRp00,60612
828
828
  hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=tUp3Ed-ZBDZeD99yb7o6I76wWUU_QQT2i_cQfNV_7Zk,69869
829
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=tfwcy7INWXeWucGgJiBLrp85GWF-iDjikChFoPeaj8g,95543
829
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=c6s4TDY5Xc2RZZRtRKwZCjDbVunfwMIO7BTGF524dsE,95543
830
830
  hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=ojNL5z1gvjgiO-5hjccCLhK0Z-CeZKrwE3yiEE4ekeg,102007
831
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=0xZ_0gWyz428zdniTrfFiJdw3nwfeAx02TVRqHkGrtA,60878
831
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=mu4Na-njeTRjjgA-SwzefngIPFzPMxoUy_NEGTnQMvY,60878
832
832
  hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=f0fv1MW5_Okc5GixUoPv5BkV0XwM6wKrjK7khLeiv18,69040
833
833
  hiddifypanel/translations.i18n/en.json,sha256=07z5rKyF0AADkYOPjJVAN9aFrbtj4V8ZAQM5wK4f4bc,67420
834
834
  hiddifypanel/translations.i18n/fa.json,sha256=M5-D3rdRCbrWQqT3N4hw0OEmjfsBAIWOLeLmqSshyCw,89976
835
835
  hiddifypanel/translations.i18n/pt.json,sha256=Wh72C6ToJUVXgAfB_2JqJKQjw0_Rvv7gsYIp8-Nbd8Q,60171
836
836
  hiddifypanel/translations.i18n/ru.json,sha256=WNSflb5-l-CWOQ71SWhDSkgQLkJVHeZ_dehn3lRyv0s,91988
837
837
  hiddifypanel/translations.i18n/zh.json,sha256=17fERyiPhWV2899MMynfIeuZL6X7u-_pWd0h5n6FJUo,59588
838
- hiddifypanel-10.15.0.dev1.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
839
- hiddifypanel-10.15.0.dev1.dist-info/METADATA,sha256=mKLgYXPVmlOrLhVbtRaua2c-fQ_pAVZhx8219w8oeUc,4013
840
- hiddifypanel-10.15.0.dev1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
841
- hiddifypanel-10.15.0.dev1.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
842
- hiddifypanel-10.15.0.dev1.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
843
- hiddifypanel-10.15.0.dev1.dist-info/RECORD,,
838
+ hiddifypanel-10.15.0.dev5.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
839
+ hiddifypanel-10.15.0.dev5.dist-info/METADATA,sha256=hM82DUn9eAqmoSiovDN_xM_lZj_PB7M9C8V9zWMgxU8,4013
840
+ hiddifypanel-10.15.0.dev5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
841
+ hiddifypanel-10.15.0.dev5.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
842
+ hiddifypanel-10.15.0.dev5.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
843
+ hiddifypanel-10.15.0.dev5.dist-info/RECORD,,