hiddifypanel 9.0.0.dev80__py3-none-any.whl → 9.0.0.dev82__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
- 9.0.0.dev80
1
+ 9.0.0.dev82
hiddifypanel/VERSION.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__='9.0.0.dev80'
1
+ __version__='9.0.0.dev82'
2
2
  from datetime import datetime
3
3
  __release_date__= datetime.strptime('2024-03-02','%Y-%m-%d')
hiddifypanel/base.py CHANGED
@@ -99,21 +99,21 @@ def create_app(*args, cli=False, **config):
99
99
 
100
100
  # app.config['BABEL_TRANSLATION_DIRECTORIES'] = '/workspace/Hiddify-Server/hiddify-panel/src/translations.i18n'
101
101
 
102
- from flask_wtf.csrf import CSRFProtect
103
-
104
- csrf = CSRFProtect(app)
105
-
106
- @app.before_request
107
- def check_csrf():
108
- if "/admin/user/" in request.base_url:
109
- return
110
- if "/admin/domain/" in request.base_url:
111
- return
112
- if "/admin/actions/" in request.base_url:
113
- return
114
- if "/api/" in request.base_url:
115
- return
116
- csrf.protect()
102
+ # from flask_wtf.csrf import CSRFProtect
103
+
104
+ # csrf = CSRFProtect(app)
105
+
106
+ # @app.before_request
107
+ # def check_csrf():
108
+ # if "/admin/user/" in request.base_url:
109
+ # return
110
+ # if "/admin/domain/" in request.base_url:
111
+ # return
112
+ # if "/admin/actions/" in request.base_url:
113
+ # return
114
+ # if "/api/" in request.base_url:
115
+ # return
116
+ # csrf.protect()
117
117
 
118
118
  app.jinja_env.globals['get_locale'] = get_locale
119
119
 
@@ -77,11 +77,11 @@ class User(BaseAccount):
77
77
  max_ips = db.Column(db.Integer, default=1000, nullable=False)
78
78
  details = db.relationship('UserDetail', cascade="all,delete", backref='user', lazy='dynamic',)
79
79
  enable = db.Column(db.Boolean, default=True, nullable=False)
80
- ed25519_private_key = db.Column(db.String(500))
81
- ed25519_public_key = db.Column(db.String(100))
82
- wg_pk = db.Column(db.String(50))
83
- wg_pub = db.Column(db.String(50))
84
- wg_psk = db.Column(db.String(50))
80
+ ed25519_private_key = db.Column(db.String(500), default="")
81
+ ed25519_public_key = db.Column(db.String(100), default="")
82
+ wg_pk = db.Column(db.String(50), default="")
83
+ wg_pub = db.Column(db.String(50), default="")
84
+ wg_psk = db.Column(db.String(50), default="")
85
85
 
86
86
  @property
87
87
  def role(self) -> Role | None:
@@ -26,6 +26,8 @@ from flask import current_app
26
26
 
27
27
 
28
28
  class DomainAdmin(AdminLTEModelView):
29
+ edit_modal = False
30
+ create_modal = False
29
31
  column_hide_backrefs = False
30
32
 
31
33
  list_template = 'model/domain_list.html'
@@ -18,22 +18,20 @@ from hiddifypanel.drivers import user_driver
18
18
  from hiddifypanel.panel import hiddify, custom_widgets
19
19
  from hiddifypanel.auth import login_required
20
20
  from hiddifypanel import hutils
21
- from flask_admin.form import SecureForm
22
21
 
23
22
 
24
23
  class UserAdmin(AdminLTEModelView):
25
- form_base_class = SecureForm
26
24
 
27
- column_sortable_list = ["name", "current_usage", 'mode', "remaining_days", "comment", 'last_online', "uuid", 'remaining_days']
25
+ column_sortable_list = ["enable", "name", "current_usage", 'mode', "remaining_days", "comment", 'last_online', "uuid", 'remaining_days']
28
26
  column_searchable_list = [("uuid"), "name"]
29
- column_list = ["name", "UserLinks", "current_usage", "remaining_days", "comment", 'last_online', 'mode', 'admin', "uuid"]
27
+ column_list = ["enable", "name", "UserLinks", "current_usage", "remaining_days", "comment", 'last_online', 'mode', 'admin', "uuid"]
30
28
  form_extra_fields = {
31
29
  'reset_days': SwitchField(_("Reset package days")),
32
30
  'reset_usage': SwitchField(_("Reset package usage")),
33
31
  # 'disable_user': SwitchField(_("Disable User"))
34
32
  }
35
33
  list_template = 'model/user_list.html'
36
-
34
+ column_editable_list = ["comment", "usage_limit", "package_days"]
37
35
  form_columns = ["name", "comment", "usage_limit", "reset_usage", "package_days", "reset_days", "mode", "uuid", "enable",]
38
36
  # form_excluded_columns = ['current_usage', 'monthly', 'telegram_id', 'last_online', 'expiry_time', 'last_reset_time', 'current_usage_GB',
39
37
  # 'start_date', 'added_by', 'admin', 'details', 'max_ips', 'ed25519_private_key', 'ed25519_public_key', 'username', 'password']
@@ -132,12 +130,12 @@ class UserAdmin(AdminLTEModelView):
132
130
  extra = f'<button class="btn hbtn bg-h-grey btn-xs disabled"><i class="fa-solid fa-paper-plane"></i></button> '
133
131
 
134
132
  link = ''
135
- if model.is_active:
136
- link = '<i class="fa-solid fa-circle-check text-success"></i> '
137
- elif len(model.ips):
138
- link = '<i class="fa-solid fa-users-slash text-danger" title="{_("Too many Connected IPs")}"></i>'
139
- else:
140
- link = '<i class="fa-solid fa-circle-xmark text-danger"></i> '
133
+ # if model.is_active:
134
+ # link = '<i class="fa-solid fa-circle-check text-success"></i> '
135
+ # elif len(model.ips):
136
+ # link = '<i class="fa-solid fa-users-slash text-danger" title="{_("Too many Connected IPs")}"></i>'
137
+ # else:
138
+ # link = '<i class="fa-solid fa-circle-xmark text-danger"></i> '
141
139
 
142
140
  href = f'{hiddify.get_account_panel_link(model, request.host, is_https=True)}#{hutils.encode.url_encode(model.name)}'
143
141
 
@@ -251,13 +249,13 @@ class UserAdmin(AdminLTEModelView):
251
249
  hutils.flask.flash(('<div id="show-modal-donation"></div>'), ' d-none')
252
250
  if not re.match("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", model.uuid):
253
251
  raise ValidationError('Invalid UUID e.g.,' + str(uuid.uuid4()))
254
- if form.reset_usage.data:
252
+ if hasattr(form, 'reset_usage') and form.reset_usage.data:
255
253
  model.current_usage_GB = 0
256
254
  # if model.telegram_id and model.telegram_id != '0' and not re.match(r"^[1-9]\d*$", model.telegram_id):
257
255
  # raise ValidationError('Invalid Telegram ID')
258
256
  # if form.disable_user.data:
259
257
  # model.mode=UserMode.disable
260
- if form.reset_days.data:
258
+ if hasattr(form, 'reset_days') and form.reset_days.data:
261
259
  model.start_date = None
262
260
  model.package_days = min(model.package_days, 10000)
263
261
  old_user = User.by_id(model.id)
@@ -1,8 +1,13 @@
1
1
  from flask_admin.contrib.sqla import ModelView
2
2
  from hiddifypanel import auth
3
+ from flask_admin.form import SecureForm
3
4
 
4
5
 
5
6
  class AdminLTEModelView(ModelView):
7
+ form_base_class = SecureForm
8
+ edit_modal = False
9
+ create_modal = False
10
+
6
11
  list_template = 'hiddify-flask-admin/list.html'
7
12
  create_template = 'flask-admin/model/create.html'
8
13
  edit_template = 'flask-admin/model/edit.html'
@@ -15,6 +15,7 @@ from flask import current_app
15
15
 
16
16
 
17
17
  class ProxyDetailsAdmin(AdminLTEModelView):
18
+
18
19
  column_hide_backrefs = True
19
20
  can_create = False
20
21
  form_excluded_columns = ['child']
@@ -38,9 +39,9 @@ class ProxyDetailsAdmin(AdminLTEModelView):
38
39
  self.session.commit()
39
40
  flash(_('%(count)s records were successfully enabled.', count=count), 'success')
40
41
  hiddify.get_available_proxies.invalidate_all()
41
- # column_editable_list = ['name', 'enable']
42
+ column_editable_list = ['name']
42
43
  # list_template = 'model/domain_list.html'
43
- # edit_modal = True
44
+
44
45
  # form_overrides = {'work_with': Select2Field}
45
46
 
46
47
  def after_model_change(self, form, model, is_created):
@@ -748,7 +748,7 @@ msgid "config.wireguard_enable.description"
748
748
  msgstr ""
749
749
  "WireGuard is UDP based protocol.\n"
750
750
  "\n"
751
- "⚠️ Accounting is not yet supported."
751
+ "⚠️ It is working in Hiddify Next. "
752
752
 
753
753
  msgid "config.wireguard_port.label"
754
754
  msgstr "Wireguard Port"
@@ -878,10 +878,12 @@ msgid "config.tls_padding_length.description"
878
878
  msgstr "The length of the Padding for TLS Fragmentation"
879
879
 
880
880
  msgid "config.mux_enable.label"
881
- msgstr "Ⓜ️ MUX Enable"
881
+ msgstr "Ⓜ️ MUX Enable (⚠️ Incompatible with some clients)"
882
882
 
883
883
  msgid "config.mux_enable.description"
884
- msgstr "Enable MUX (Multiplex)"
884
+ msgstr ""
885
+ "Mux needs compatible clients. Mux in Hiddify Next and singbox are not "
886
+ "compatible with Xray"
885
887
 
886
888
  msgid "config.mux_protocol.label"
887
889
  msgstr "♍️ MUX Protocol"
@@ -1025,11 +1027,9 @@ msgstr "Enable HTTPUpgrade Method"
1025
1027
 
1026
1028
  msgid "config.httpupgrade_enable.description"
1027
1029
  msgstr ""
1028
- "HTTPUpgrade complete a HTTP 1.1 Upgrade request and response before using "
1029
- "the connection directly. It is similar to WebSocket in the way it create an "
1030
- "direction channel that can be forwarded by many reverse proxies and CDNs, "
1031
- "without the need to deal with all the issue around WebSocket Protocol "
1032
- "itself."
1030
+ "HTTPUpgrade complete a HTTP 1.1 Upgrade request and response before using the connection directly. It is similar to WebSocket in the way it create an direction channel that can be forwarded by many reverse proxies and CDNs, without the need to deal with all the issue around WebSocket Protocol itself.\n"
1031
+ "\n"
1032
+ "⚠️ Not Available in Xray based Clients. Only HiddifyNext, Singbox, and V2fly clients are supported"
1033
1033
 
1034
1034
  msgid "config.path_httpupgrade.label"
1035
1035
  msgstr "HTTP Upgrade Path"
@@ -754,7 +754,7 @@ msgid "config.wireguard_enable.description"
754
754
  msgstr ""
755
755
  "WireGuard پروتکل مبتنی بر UDP است.\n"
756
756
  "\n"
757
- "⚠️ حسابداری هنوز پشتیبانی نمی شود."
757
+ "⚠️ فقط در Hiddify Next کار می کند. "
758
758
 
759
759
  msgid "config.wireguard_port.label"
760
760
  msgstr "پورت وایرگارد"
@@ -883,10 +883,12 @@ msgid "config.tls_padding_length.description"
883
883
  msgstr "طول Padding برای تکه تکه شدن TLS"
884
884
 
885
885
  msgid "config.mux_enable.label"
886
- msgstr "Ⓜ️ MUX را فعال کنید"
886
+ msgstr "Ⓜ️ فعال کردن MUX (⚠️ ناسازگار با برخی نرم افزارها)"
887
887
 
888
888
  msgid "config.mux_enable.description"
889
- msgstr "فعال کردن MUX (Multiplex)"
889
+ msgstr ""
890
+ "Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify Next و singbox با Xray "
891
+ "سازگار نیستند"
890
892
 
891
893
  msgid "config.mux_protocol.label"
892
894
  msgstr "♍️ پروتکل MUX"
@@ -1025,14 +1027,13 @@ msgstr ""
1025
1027
  "می توان از آن در CDN های پشتیبانی شده استفاده کرد."
1026
1028
 
1027
1029
  msgid "config.httpupgrade_enable.label"
1028
- msgstr "روش ارتقای HTTPU را فعال کنید"
1030
+ msgstr "فعالسازی HTTPUpgrade"
1029
1031
 
1030
1032
  msgid "config.httpupgrade_enable.description"
1031
1033
  msgstr ""
1032
- "HTTPUpgrade یک درخواست ارتقاء HTTP 1.1 و پاسخ را قبل از استفاده مستقیم از "
1033
- "اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال جهت ایجاد می کند "
1034
- "که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه "
1035
- "نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد."
1034
+ "HTTPUpgrade یک درخواست ارتقاء HTTP 1.1 و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال جهت ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد.\n"
1035
+ "\n"
1036
+ "⚠️ در نرم افزارهای مبتنی بر Xray موجود نیست. فقط نرم افزارهای HiddifyNext، Singbox و V2fly پشتیبانی می شوند."
1036
1037
 
1037
1038
  msgid "config.path_httpupgrade.label"
1038
1039
  msgstr "مسیر ارتقاء HTTP"
@@ -408,7 +408,7 @@
408
408
  },
409
409
  "wireguard_enable": {
410
410
  "label": "Enable WireGuard",
411
- "description": "WireGuard is UDP based protocol.\n\n⚠️ Accounting is not yet supported."
411
+ "description": "WireGuard is UDP based protocol.\n\n⚠️ It is working in Hiddify Next. "
412
412
  },
413
413
  "wireguard_port": {
414
414
  "label": "Wireguard Port",
@@ -487,8 +487,8 @@
487
487
  "description": "The length of the Padding for TLS Fragmentation"
488
488
  },
489
489
  "mux_enable": {
490
- "label": "Ⓜ️ MUX Enable",
491
- "description": "Enable MUX (Multiplex)"
490
+ "label": "Ⓜ️ MUX Enable (⚠️ Incompatible with some clients)",
491
+ "description": "Mux needs compatible clients. Mux in Hiddify Next and singbox are not compatible with Xray"
492
492
  },
493
493
  "mux_protocol": {
494
494
  "label": "♍️ MUX Protocol",
@@ -572,7 +572,7 @@
572
572
  },
573
573
  "httpupgrade_enable": {
574
574
  "label": "Enable HTTPUpgrade Method",
575
- "description": "HTTPUpgrade complete a HTTP 1.1 Upgrade request and response before using the connection directly. It is similar to WebSocket in the way it create an direction channel that can be forwarded by many reverse proxies and CDNs, without the need to deal with all the issue around WebSocket Protocol itself."
575
+ "description": "HTTPUpgrade complete a HTTP 1.1 Upgrade request and response before using the connection directly. It is similar to WebSocket in the way it create an direction channel that can be forwarded by many reverse proxies and CDNs, without the need to deal with all the issue around WebSocket Protocol itself.\n\n⚠️ Not Available in Xray based Clients. Only HiddifyNext, Singbox, and V2fly clients are supported"
576
576
  },
577
577
  "path_httpupgrade": {
578
578
  "label": "HTTP Upgrade Path",
@@ -408,7 +408,7 @@
408
408
  },
409
409
  "wireguard_enable": {
410
410
  "label": "WireGuard را فعال کنید",
411
- "description": "WireGuard پروتکل مبتنی بر UDP است.\n\n⚠️ حسابداری هنوز پشتیبانی نمی شود."
411
+ "description": "WireGuard پروتکل مبتنی بر UDP است.\n\n⚠️ فقط در Hiddify Next کار می کند. "
412
412
  },
413
413
  "wireguard_port": {
414
414
  "label": "پورت وایرگارد",
@@ -487,8 +487,8 @@
487
487
  "description": "طول Padding برای تکه تکه شدن TLS"
488
488
  },
489
489
  "mux_enable": {
490
- "label": "Ⓜ️ MUX را فعال کنید",
491
- "description": "فعال کردن MUX (Multiplex)"
490
+ "label": "Ⓜ️ فعال کردن MUX (⚠️ ناسازگار با برخی نرم افزارها)",
491
+ "description": "Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify Next و singbox با Xray سازگار نیستند"
492
492
  },
493
493
  "mux_protocol": {
494
494
  "label": "♍️ پروتکل MUX",
@@ -571,8 +571,8 @@
571
571
  "description": "gRPC یک چارچوب متن باز مدرن با کارایی بالا Remote Procedure Call (RPC) است. می توان از آن در CDN های پشتیبانی شده استفاده کرد."
572
572
  },
573
573
  "httpupgrade_enable": {
574
- "label": "روش ارتقای HTTPU را فعال کنید",
575
- "description": "HTTPUpgrade یک درخواست ارتقاء HTTP 1.1 و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال جهت ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد."
574
+ "label": "فعالسازی HTTPUpgrade",
575
+ "description": "HTTPUpgrade یک درخواست ارتقاء HTTP 1.1 و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال جهت ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد.\n\n⚠️ در نرم افزارهای مبتنی بر Xray موجود نیست. فقط نرم افزارهای HiddifyNext، Singbox و V2fly پشتیبانی می شوند."
576
576
  },
577
577
  "path_httpupgrade": {
578
578
  "label": "مسیر ارتقاء HTTP",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiddifypanel
3
- Version: 9.0.0.dev80
3
+ Version: 9.0.0.dev82
4
4
  Summary: hiddifypanel multi proxy panel
5
5
  Home-page: https://github.com/hiddify/hiddify-manager/
6
6
  Author: hiddify
@@ -1,10 +1,10 @@
1
1
  hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
2
- hiddifypanel/VERSION,sha256=Gq5q5vEiUFAm5DE1GdWDSOzYA1McLGgYXSZWJq4XnRA,12
3
- hiddifypanel/VERSION.py,sha256=OAKrhLryV3axNIzarHVNEl1KUipPPuc-FBUrj6dtNKU,117
2
+ hiddifypanel/VERSION,sha256=OcdWkgnYiuVmMHguYb78o5rPxWVwsdOcfJh3SPVk_CQ,12
3
+ hiddifypanel/VERSION.py,sha256=DJQRWjuC6qRiQq0btVqORFlw3-Z6NqGBsrUk9Rceu1E,117
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=ouAFprxAfsbeuC-YFGkMyA1Z4dtWzixv8DqB7nQXrtA,6640
7
- hiddifypanel/base.py,sha256=ORsITg_lh3GQfU-4Gq8YAFUgKOWlKBAnMtX_6a0a1UU,4681
7
+ hiddifypanel/base.py,sha256=GB6YpYSd-gCWkhB0DGmaFQ3PtQHS-c1__t6aMv10SlU,4671
8
8
  hiddifypanel/cache.py,sha256=PrdYVvRRhamSMI1jFe6c7xcJEFsVsWbgXWkhDaMKaZM,1484
9
9
  hiddifypanel/database.py,sha256=Nao3PTjzRPZNJp60rZ3dufddtbdXPj6MQy_QDZcOpGc,262
10
10
  hiddifypanel/drivers/abstract_driver.py,sha256=cK4AN1nj1zRnj4bNzcpNZOg7oHWj1I_hz_drvKN6TUE,175
@@ -39,7 +39,7 @@ hiddifypanel/models/proxy.py,sha256=pTIvNq5XGu8aKD5LiycYXNAm-oE1H8QpYbBBJBYZVYU,
39
39
  hiddifypanel/models/report.py,sha256=LLRw5hSu_LLjPyHsQ-_tCeXfCxSWq2f7rhv-NkMIg4U,1001
40
40
  hiddifypanel/models/role.py,sha256=V93_AhOcgbIiAaRYUaNIWKsKZ704ANl0hq-uAJFQCUo,269
41
41
  hiddifypanel/models/usage.py,sha256=_5qC0s6lqKPI3tm7T15Fhyyn-X51DLD_FesPY9O-keA,4361
42
- hiddifypanel/models/user.py,sha256=8yTTraNvqnj-8EtGnGaFh2PDS-jtsCcgcYzTxar_fqE,12888
42
+ hiddifypanel/models/user.py,sha256=FOsLXVYLTRhyMNxYcX9t-oMhErU-PesQQAd9i3Mhgd0,12948
43
43
  hiddifypanel/models/utils.py,sha256=YY6j0d3wiHql2Wo8LJckIEC6n0xl9ASlDbJDglWOtn4,867
44
44
  hiddifypanel/panel/__init__.py,sha256=YDC8OatzZ2PoGrOARauce7OimcFsbTEvIq8AcNl1_-s,180
45
45
  hiddifypanel/panel/admin_2.py,sha256=23fKDbYlME0hNUALU76JZZbL9L4lWrHtFZ1IO6h_Zjo,989
@@ -59,15 +59,15 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=UhTnScTaWC_25QhymvZzqeqr1t1
59
59
  hiddifypanel/panel/admin/Backup.py,sha256=dp74st7OBw_j3hH-4K4tf9EyP4qGuALaJ5pTcC-SWt8,3670
60
60
  hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
61
61
  hiddifypanel/panel/admin/Dashboard.py,sha256=i-k6bK9mTViN1iApMGR4AqwPr3pO14QXf4Lu6fe_Q9Q,4468
62
- hiddifypanel/panel/admin/DomainAdmin.py,sha256=HInqgLYJdEFE3OiGwsHP9oKjBHCTHLwQ9mOyNK4OnYw,14574
62
+ hiddifypanel/panel/admin/DomainAdmin.py,sha256=RlKHAjWFEJIhFp3fxp6w-99-1xpPBXEu5VjWFokqHv4,14622
63
63
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=utJsYrZiK3hA1q3R0GMsEX03u-mxywsMr9z89_1bXjE,2995
64
64
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=7aCQ-MGpUn6-aK-KGXpUj-Vjmr5ABeckbMLvlCTZves,5051
65
65
  hiddifypanel/panel/admin/QuickSetup.py,sha256=fkBNdSQhwUMZcslnymCGkwIbCYu2xJAvAQWPTM9XYW0,7733
66
66
  hiddifypanel/panel/admin/SettingAdmin.py,sha256=v7YQSgiuBvKv3-CYlTpZff25W3UOgytLZrzItcV50sk,16283
67
67
  hiddifypanel/panel/admin/Terminal.py,sha256=fjLVLspXYHOwZGyMU_KbytWe1zf-m6KbmvBPEDps45w,1737
68
- hiddifypanel/panel/admin/UserAdmin.py,sha256=xvbgQ1of3OIOLjIUCQ-V1F9a16oneYjrDDBS6UbNFcY,16763
68
+ hiddifypanel/panel/admin/UserAdmin.py,sha256=Apu0PyvNuXuaIHTAnyw4kbfkNI0UidblR3HihjPfIJ8,16856
69
69
  hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
70
- hiddifypanel/panel/admin/adminlte.py,sha256=bT8-1ksRBFOXfTBFeXArsfF8TAomW_M8eVIurkBQBHI,672
70
+ hiddifypanel/panel/admin/adminlte.py,sha256=ciWu8ouZYoQhRrJHuF7Kr1FDP-sxHKa0sKcJ5HqxABk,794
71
71
  hiddifypanel/panel/admin/commercial_info.py,sha256=_fBJcR6zTlMs5Wx4NQJYxq5LvMHY8qfoh73-eCNJyb8,278
72
72
  hiddifypanel/panel/admin/fix_flaskadmin_babel.py,sha256=B823REEdbPxevLV0h1B1u4FwmWWIMmfZBV3T9Linrb8,936
73
73
  hiddifypanel/panel/admin/websocket.py,sha256=QZCYo1xJ-aahrRBWX5OM8rJP7I7LtgbB2tD9LDkI_iA,117
@@ -115,7 +115,7 @@ hiddifypanel/panel/admin/templates/model/admin_list.html,sha256=lpjiAl7kR5xb0fLp
115
115
  hiddifypanel/panel/admin/templates/model/domain_list.html,sha256=rrPYKISPXcwYreMp2MrJb-sEL9-6dCZF_dk6ejObrm8,414
116
116
  hiddifypanel/panel/admin/templates/model/user_list.html,sha256=n46ymDd1FwYclN0MKmsjGEw9BBOI-jd0PMQjTy3aNSo,4898
117
117
  hiddifypanel/panel/commercial/ParentDomainAdmin.py,sha256=n3X7_PuQBr2zlP6K5A0EHmtRdI9Vy49YORim_9L2QFA,4886
118
- hiddifypanel/panel/commercial/ProxyDetailsAdmin.py,sha256=Zn7l2iq6sTwct8z17VNYkHJTknQr-c0QXQECbBElvCo,2456
118
+ hiddifypanel/panel/commercial/ProxyDetailsAdmin.py,sha256=udED-XV2j4vdJJTR4Avit_Bf1FKycxucZ75copn3R38,2422
119
119
  hiddifypanel/panel/commercial/__init__.py,sha256=YF5r5nSOCMof9NTPRtWbkHbRXfSBroOdwvyjdMCqXbo,2245
120
120
  hiddifypanel/panel/commercial/restapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  hiddifypanel/panel/commercial/restapi/v1/__init__.py,sha256=YYdI5ayZ9wnCh2eOTs03xsJf8lCNmde0GRfHmkYz40w,1207
@@ -793,24 +793,24 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
793
793
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
794
794
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
795
795
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
796
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=HtWULpWMSmp5yffi1F4jhy_hgEwseWJre075NRJcYAQ,70945
797
- hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=MROY5ISYC4-TCa7JPejGZBF-l9SF4-DSrSqHc6ISaNE,73998
798
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=YNMzdqtx0vQqWPos-H-n-p7UdUzcWLxrM1Lc1cHVHfw,93360
799
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=OR1YKuQ22d-aKw0rIPT5Bp8ASMQc5FvWoRgEpifcSnE,97299
800
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=34EF76l7Kavl0CrlS-enwjwSHn_fgfICgG1qKigrl3Q,65570
796
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=cwcxsaP1njYDZhbfQCvCFJvXyJz4fpS3mjkAj-OG_ps,71156
797
+ hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=O80EYdJM-6wn2OMDkOfN4GLe6Af1a-pnuvRF6xRdHIk,74211
798
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=eQ1AxvkTwn6gjGEdnN7I85Q5tGN2sjRwia4BB2E_e0A,93652
799
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=WTVL-OX_ZqSk9dCs7QDa7vIO0ftx2z7O8sb2lxI1YlA,97596
800
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=HnulOHJK-MJy_5GGxKqbta-6B70bPhhp1uSrdf9SzDs,65570
801
801
  hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=aj_gh4Nb15xvgdbag3ulTJhvWwPMwPGu6JBWPVpz9V4,71126
802
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=N4RfAMrymKGRxDbUOm_hmIzEu4h6AoyMTWzIv9xD8Bc,89161
802
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=o9X0AwEYbRu-7aAFQDXE4IhJa4eXgkkpZzsGSadp9Ig,89161
803
803
  hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=qnNzXr3DkvRuzZeNWNaoYp0FfjYU7hYSMRBTJd86rdc,95384
804
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=8IDS4I_xAqL3YMMIHeGnwyzZxpwO5lkldfXA02PI-60,62340
804
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=qx5dmKNCCCWdddMzIK1gy9zuN-8DzgNJk3P1I1Viunc,62340
805
805
  hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=QkvXSYMmKdx45HJ7NpYhZ3hKzfqS21C_4ZTHoozdyJA,66689
806
- hiddifypanel/translations.i18n/en.json,sha256=9zqbnkeE4ld0vI4DaxNMZWOBi785DvqYnzblEhtAqeU,64403
807
- hiddifypanel/translations.i18n/fa.json,sha256=PGmNy0J7EX2lfXuPDUFLk45xq0VPrpXbyo4cgoI0I48,87722
806
+ hiddifypanel/translations.i18n/en.json,sha256=0wCVZfrWODOLcKhgrY0_8jrrayAG8pNUaAPBpKUTwo4,64616
807
+ hiddifypanel/translations.i18n/fa.json,sha256=KtFpVOTlAYBMEtspY186sIcWkjcBX873E5nvJEEoozg,88016
808
808
  hiddifypanel/translations.i18n/pt.json,sha256=vSi598IyORfcRcd4Lv7xukDBBLRy82DFEkqeDSiG9yk,61732
809
809
  hiddifypanel/translations.i18n/ru.json,sha256=L1jV5J3jbeFW8vBYTJCrvod7gW5mTEZ4ca2c8w2nUOY,85921
810
810
  hiddifypanel/translations.i18n/zh.json,sha256=B4p3_Iq25sv7hHW1fL1A5qVdULPuKA1kg_RjXym5UV8,57739
811
- hiddifypanel-9.0.0.dev80.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
812
- hiddifypanel-9.0.0.dev80.dist-info/METADATA,sha256=zn1g7fE5cHgt9uabgY0PchXn8pIN_CUT1X34Par2OCA,3983
813
- hiddifypanel-9.0.0.dev80.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
814
- hiddifypanel-9.0.0.dev80.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
815
- hiddifypanel-9.0.0.dev80.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
816
- hiddifypanel-9.0.0.dev80.dist-info/RECORD,,
811
+ hiddifypanel-9.0.0.dev82.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
812
+ hiddifypanel-9.0.0.dev82.dist-info/METADATA,sha256=JJSqDU2sa81egdNp9KxtnWbRb0yJh8uI2dy0H6UTmBU,3983
813
+ hiddifypanel-9.0.0.dev82.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
814
+ hiddifypanel-9.0.0.dev82.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
815
+ hiddifypanel-9.0.0.dev82.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
816
+ hiddifypanel-9.0.0.dev82.dist-info/RECORD,,