hiddifypanel 10.16.0.dev0__py3-none-any.whl → 10.16.0.dev3__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 +1 -1
- hiddifypanel/VERSION.py +2 -2
- hiddifypanel/cache.py +2 -2
- hiddifypanel/database.py +13 -6
- hiddifypanel/hutils/importer/xui.py +2 -3
- hiddifypanel/hutils/proxy/xrayjson.py +2 -3
- hiddifypanel/models/admin.py +3 -2
- hiddifypanel/models/base_account.py +2 -1
- hiddifypanel/models/child.py +4 -3
- hiddifypanel/models/config.py +3 -2
- hiddifypanel/models/config_enum.py +1 -1
- hiddifypanel/models/domain.py +2 -1
- hiddifypanel/models/proxy.py +2 -1
- hiddifypanel/models/report.py +3 -2
- hiddifypanel/models/usage.py +2 -1
- hiddifypanel/models/user.py +3 -2
- hiddifypanel/panel/admin/SettingAdmin.py +9 -5
- hiddifypanel/panel/commercial/restapi/v2/user/configs_api.py +14 -7
- hiddifypanel/panel/init_db.py +14 -7
- hiddifypanel/panel/user/user.py +0 -1
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +29 -21
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +31 -26
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations.i18n/en.json +18 -18
- hiddifypanel/translations.i18n/fa.json +18 -18
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/METADATA +2 -2
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/RECORD +35 -35
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/LICENSE.md +0 -0
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/WHEEL +0 -0
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
10.16.0.
|
1
|
+
10.16.0.dev3
|
hiddifypanel/VERSION.py
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
__version__='10.16.0.
|
1
|
+
__version__='10.16.0.dev3'
|
2
2
|
from datetime import datetime
|
3
|
-
__release_date__= datetime.strptime('2024-04-
|
3
|
+
__release_date__= datetime.strptime('2024-04-11','%Y-%m-%d')
|
hiddifypanel/cache.py
CHANGED
@@ -11,11 +11,11 @@ class CustomRedisCache(RedisCache):
|
|
11
11
|
|
12
12
|
def invalidate_all_cached_functions(self):
|
13
13
|
try:
|
14
|
-
logger.
|
14
|
+
logger.trace("Invalidating all cached functions")
|
15
15
|
chunks_gen = chunks(f'{self.prefix}*', 500)
|
16
16
|
for keys in chunks_gen:
|
17
17
|
self.client.delete(*keys)
|
18
|
-
logger.
|
18
|
+
logger.trace("Successfully invalidated all cached functions")
|
19
19
|
return True
|
20
20
|
except Exception as err:
|
21
21
|
with logger.contextualize(error=err):
|
hiddifypanel/database.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
from typing import Optional
|
1
2
|
from flask_sqlalchemy import SQLAlchemy
|
2
3
|
from sqlalchemy_utils import UUIDType
|
3
4
|
import re
|
4
5
|
import os
|
5
|
-
from sqlalchemy import text
|
6
|
+
from sqlalchemy import Row, text, Sequence
|
6
7
|
|
7
8
|
|
8
9
|
db: SQLAlchemy = SQLAlchemy()
|
@@ -14,8 +15,14 @@ def init_app(app):
|
|
14
15
|
db.init_app(app)
|
15
16
|
|
16
17
|
|
17
|
-
def db_execute(query: str, **params: dict):
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
def db_execute(query: str, return_val: bool = False, commit: bool = False, **params: dict):
|
19
|
+
q = db.session.execute(text(query), params)
|
20
|
+
if commit:
|
21
|
+
db.session.commit()
|
22
|
+
if return_val:
|
23
|
+
return q.fetchall()
|
24
|
+
|
25
|
+
# with db.engine.connect() as connection:
|
26
|
+
# res = connection.execute(text(query), params)
|
27
|
+
# connection.commit()s
|
28
|
+
# return res
|
@@ -11,13 +11,12 @@ import os
|
|
11
11
|
from sqlalchemy import text
|
12
12
|
|
13
13
|
|
14
|
-
def __query_fetch_json(db, query: str,
|
14
|
+
def __query_fetch_json(db, query: str, **kwargs) -> List[Dict[str, Any]]:
|
15
15
|
try:
|
16
16
|
|
17
|
-
db_execute(query,
|
17
|
+
db_execute(query, commit=True, return_val=False, **kwargs)
|
18
18
|
r = [dict((db.description[i][0], value)
|
19
19
|
for i, value in enumerate(row)) for row in db.fetchall()]
|
20
|
-
connection.close()
|
21
20
|
return r
|
22
21
|
except Exception as err:
|
23
22
|
raise err
|
@@ -1,9 +1,8 @@
|
|
1
|
-
import datetime
|
2
1
|
import json
|
3
2
|
import copy
|
4
|
-
from flask import render_template,
|
3
|
+
from flask import render_template, g
|
5
4
|
from hiddifypanel import hutils
|
6
|
-
from hiddifypanel.models import
|
5
|
+
from hiddifypanel.models import ProxyTransport, ProxyL3, ProxyProto, Domain
|
7
6
|
from flask_babel import gettext as _
|
8
7
|
from .xray import is_muxable_agent
|
9
8
|
OUTBOUND_LEVEL = 8
|
hiddifypanel/models/admin.py
CHANGED
@@ -10,6 +10,7 @@ from flask_babel import lazy_gettext as _
|
|
10
10
|
from hiddifypanel.database import db, db_execute
|
11
11
|
from hiddifypanel.models.role import Role
|
12
12
|
from hiddifypanel.models.base_account import BaseAccount
|
13
|
+
from sqlalchemy_serializer import SerializerMixin
|
13
14
|
|
14
15
|
|
15
16
|
class AdminMode(StrEnum):
|
@@ -24,7 +25,7 @@ class AdminMode(StrEnum):
|
|
24
25
|
agent = auto()
|
25
26
|
|
26
27
|
|
27
|
-
class AdminUser(BaseAccount):
|
28
|
+
class AdminUser(BaseAccount, SerializerMixin):
|
28
29
|
"""
|
29
30
|
This is a model class for a user in a database that includes columns for their ID, UUID, name, online status,
|
30
31
|
account expiration date, usage limit, package days, mode, start date, current usage, last reset time, and comment.
|
@@ -156,7 +157,7 @@ class AdminUser(BaseAccount):
|
|
156
157
|
db.session.add(AdminUser(id=1, uuid=str(uuid.uuid4()), name="Owner", mode=AdminMode.super_admin, comment=""))
|
157
158
|
db.session.commit()
|
158
159
|
|
159
|
-
db_execute("update admin_user set id=1 where name='Owner'")
|
160
|
+
db_execute("update admin_user set id=1 where name='Owner'", commit=True)
|
160
161
|
admin = AdminUser.by_id(1)
|
161
162
|
|
162
163
|
return admin
|
@@ -6,9 +6,10 @@ from sqlalchemy import Column, String, BigInteger, Enum
|
|
6
6
|
from flask_login import UserMixin as FlaskLoginUserMixin
|
7
7
|
from hiddifypanel.models import Lang
|
8
8
|
from hiddifypanel.database import db
|
9
|
+
from sqlalchemy_serializer import SerializerMixin
|
9
10
|
|
10
11
|
|
11
|
-
class BaseAccount(db.Model, FlaskLoginUserMixin): # type: ignore
|
12
|
+
class BaseAccount(db.Model, SerializerMixin, FlaskLoginUserMixin): # type: ignore
|
12
13
|
__abstract__ = True
|
13
14
|
uuid = Column(String(36), default=lambda: str(uuid.uuid4()), nullable=False, unique=True, index=True)
|
14
15
|
name = Column(String(512), nullable=False, default='')
|
hiddifypanel/models/child.py
CHANGED
@@ -8,6 +8,7 @@ from flask import g, has_app_context
|
|
8
8
|
|
9
9
|
|
10
10
|
from hiddifypanel.database import db, db_execute
|
11
|
+
from sqlalchemy_serializer import SerializerMixin
|
11
12
|
|
12
13
|
|
13
14
|
class ChildMode(StrEnum):
|
@@ -18,7 +19,7 @@ class ChildMode(StrEnum):
|
|
18
19
|
# the child model is node
|
19
20
|
|
20
21
|
|
21
|
-
class Child(db.Model): # type: ignore
|
22
|
+
class Child(db.Model, SerializerMixin): # type: ignore
|
22
23
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
23
24
|
name = Column(String(200), nullable=False, unique=False)
|
24
25
|
mode = Column(Enum(ChildMode), nullable=False, default=ChildMode.virtual)
|
@@ -75,9 +76,9 @@ class Child(db.Model): # type: ignore
|
|
75
76
|
tmp_uuid = str(uuid.uuid4())
|
76
77
|
db.session.add(Child(id=0, unique_id=tmp_uuid, name="Root"))
|
77
78
|
db.session.commit()
|
78
|
-
db_execute(f"update child set id=0 where unique_id='{tmp_uuid}'")
|
79
|
+
db_execute(f"update child set id=0 where unique_id='{tmp_uuid}'", commit=True)
|
79
80
|
child = Child.by_id(0)
|
80
|
-
|
81
|
+
|
81
82
|
return child
|
82
83
|
|
83
84
|
@classmethod
|
hiddifypanel/models/config.py
CHANGED
@@ -8,6 +8,7 @@ from hiddifypanel.cache import cache
|
|
8
8
|
from hiddifypanel.models.child import Child, ChildMode
|
9
9
|
from sqlalchemy import Column, String, Boolean, Enum, ForeignKey, Integer
|
10
10
|
from strenum import StrEnum
|
11
|
+
from sqlalchemy_serializer import SerializerMixin
|
11
12
|
|
12
13
|
|
13
14
|
def error(st):
|
@@ -15,7 +16,7 @@ def error(st):
|
|
15
16
|
err(st)
|
16
17
|
|
17
18
|
|
18
|
-
class BoolConfig(db.Model):
|
19
|
+
class BoolConfig(db.Model, SerializerMixin):
|
19
20
|
child_id = Column(Integer, ForeignKey('child.id'), primary_key=True, default=0)
|
20
21
|
# category = db.Column(db.String(128), primary_key=True)
|
21
22
|
key = Column(Enum(ConfigEnum), primary_key=True)
|
@@ -38,7 +39,7 @@ class BoolConfig(db.Model):
|
|
38
39
|
return HConfigSchema().load(conf_dict)
|
39
40
|
|
40
41
|
|
41
|
-
class StrConfig(db.Model):
|
42
|
+
class StrConfig(db.Model, SerializerMixin):
|
42
43
|
child_id = Column(Integer, ForeignKey('child.id'), primary_key=True, default=0)
|
43
44
|
# category = db.Column(db.String(128), primary_key=True)
|
44
45
|
key = Column(Enum(ConfigEnum), primary_key=True, default=ConfigEnum.admin_secret)
|
@@ -220,7 +220,7 @@ class ConfigEnum(metaclass=FastEnum):
|
|
220
220
|
hysteria_down_mbps = _StrConfigDscr(ConfigCategory.hysteria, ApplyMode.apply)
|
221
221
|
|
222
222
|
shadowsocks2022_enable = _BoolConfigDscr(ConfigCategory.shadowsocks, ApplyMode.apply)
|
223
|
-
shadowsocks2022_method = _StrConfigDscr(ConfigCategory.
|
223
|
+
shadowsocks2022_method = _StrConfigDscr(ConfigCategory.hidden, ApplyMode.apply)
|
224
224
|
shadowsocks2022_port = _StrConfigDscr(ConfigCategory.shadowsocks, ApplyMode.apply)
|
225
225
|
ssfaketls_enable = _BoolConfigDscr(ConfigCategory.shadowsocks, ApplyMode.apply)
|
226
226
|
ssfaketls_fakedomain = _StrConfigDscr(ConfigCategory.shadowsocks, ApplyMode.apply, hide_in_virtual_child=True)
|
hiddifypanel/models/domain.py
CHANGED
@@ -16,6 +16,7 @@ from hiddifypanel.models.config import hconfig
|
|
16
16
|
from .child import Child
|
17
17
|
from hiddifypanel.models.config_enum import ConfigEnum
|
18
18
|
from sqlalchemy.orm import backref
|
19
|
+
from sqlalchemy_serializer import SerializerMixin
|
19
20
|
|
20
21
|
|
21
22
|
class DomainType(StrEnum):
|
@@ -40,7 +41,7 @@ ShowDomain = db.Table('show_domain',
|
|
40
41
|
)
|
41
42
|
|
42
43
|
|
43
|
-
class Domain(db.Model):
|
44
|
+
class Domain(db.Model, SerializerMixin):
|
44
45
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
45
46
|
child_id = db.Column(db.Integer, db.ForeignKey('child.id'), default=0)
|
46
47
|
domain = db.Column(db.String(200), nullable=False, unique=False)
|
hiddifypanel/models/proxy.py
CHANGED
@@ -4,6 +4,7 @@ from enum import auto
|
|
4
4
|
from sqlalchemy import Column, String, Integer, Boolean, Enum, ForeignKey
|
5
5
|
|
6
6
|
from hiddifypanel.database import db
|
7
|
+
from sqlalchemy_serializer import SerializerMixin
|
7
8
|
|
8
9
|
|
9
10
|
class ProxyTransport(StrEnum):
|
@@ -57,7 +58,7 @@ class ProxyL3(StrEnum):
|
|
57
58
|
custom = auto()
|
58
59
|
|
59
60
|
|
60
|
-
class Proxy(db.Model): # type: ignore
|
61
|
+
class Proxy(db.Model, SerializerMixin): # type: ignore
|
61
62
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
62
63
|
child_id = Column(Integer, ForeignKey('child.id'), default=0)
|
63
64
|
name = Column(String(200), nullable=False, unique=False)
|
hiddifypanel/models/report.py
CHANGED
@@ -2,9 +2,10 @@ import datetime
|
|
2
2
|
|
3
3
|
|
4
4
|
from hiddifypanel.database import db
|
5
|
+
from sqlalchemy_serializer import SerializerMixin
|
5
6
|
|
6
7
|
|
7
|
-
class Report(db.Model):
|
8
|
+
class Report(db.Model, SerializerMixin):
|
8
9
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
9
10
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), default=0, nullable=False)
|
10
11
|
asn_id = db.Column(db.String(200), nullable=False, unique=False)
|
@@ -18,7 +19,7 @@ class Report(db.Model):
|
|
18
19
|
details = db.relationship('ReportDetail', cascade="all,delete", backref='report', lazy='dynamic',)
|
19
20
|
|
20
21
|
|
21
|
-
class ReportDetail(db.Model):
|
22
|
+
class ReportDetail(db.Model, SerializerMixin):
|
22
23
|
report_id = db.Column(db.Integer, db.ForeignKey('report.id'), primary_key=True, )
|
23
24
|
proxy_id = db.Column(db.Integer, db.ForeignKey('proxy.id'), primary_key=True, )
|
24
25
|
ping = db.Column(db.Integer, default=-1)
|
hiddifypanel/models/usage.py
CHANGED
@@ -6,9 +6,10 @@ from sqlalchemy import func
|
|
6
6
|
|
7
7
|
|
8
8
|
from hiddifypanel.database import db
|
9
|
+
from sqlalchemy_serializer import SerializerMixin
|
9
10
|
|
10
11
|
|
11
|
-
class DailyUsage(db.Model):
|
12
|
+
class DailyUsage(db.Model, SerializerMixin):
|
12
13
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
13
14
|
date = db.Column(db.Date, default=datetime.date.today(), index=True)
|
14
15
|
usage = db.Column(db.BigInteger, default=0, nullable=False)
|
hiddifypanel/models/user.py
CHANGED
@@ -10,6 +10,7 @@ from hiddifypanel.database import db
|
|
10
10
|
from hiddifypanel.models import Lang
|
11
11
|
from hiddifypanel.models.base_account import BaseAccount
|
12
12
|
from hiddifypanel.models.admin import AdminUser
|
13
|
+
from sqlalchemy_serializer import SerializerMixin
|
13
14
|
|
14
15
|
ONE_GIG = 1024 * 1024 * 1024
|
15
16
|
|
@@ -35,7 +36,7 @@ package_mode_dic = {
|
|
35
36
|
}
|
36
37
|
|
37
38
|
|
38
|
-
class UserDetail(db.Model):
|
39
|
+
class UserDetail(db.Model, SerializerMixin):
|
39
40
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
40
41
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), default=0, nullable=False)
|
41
42
|
child_id = db.Column(db.Integer, db.ForeignKey('child.id'), default=0, nullable=False)
|
@@ -56,7 +57,7 @@ class UserDetail(db.Model):
|
|
56
57
|
return [] if not self.connected_devices else self.connected_devices.split(",")
|
57
58
|
|
58
59
|
|
59
|
-
class User(BaseAccount):
|
60
|
+
class User(BaseAccount, SerializerMixin):
|
60
61
|
"""
|
61
62
|
This is a model class for a user in a database that includes columns for their ID, UUID, name, online status,
|
62
63
|
account expiration date, usage limit, package days, mode, start date, current usage, last reset time, and comment.
|
@@ -213,11 +213,15 @@ def get_config_form():
|
|
213
213
|
package_modes.append(("develop", _("Develop")))
|
214
214
|
field = wtf.SelectField(_(f"config.{c.key}.label"), choices=package_modes, description=_(f"config.{c.key}.description"), default=hconfig(c.key))
|
215
215
|
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
216
|
+
# the shadowsocks2022_method is hidden now, because it only has one option to choose
|
217
|
+
# elif c.key == ConfigEnum.shadowsocks2022_method:
|
218
|
+
# field = wtf.SelectField(
|
219
|
+
# _(f"config.{c.key}.label"),
|
220
|
+
# choices=[
|
221
|
+
# ("2022-blake3-aes-256-gcm", "2022-blake3-aes-256-gcm"),
|
222
|
+
# # ("2022-blake3-chacha20-poly1305", "2022-blake3-chacha20-poly1305"),
|
223
|
+
# ],
|
224
|
+
# description=_(f"config.{c.key}.description"), default=hconfig(c.key))
|
221
225
|
|
222
226
|
elif c.key == ConfigEnum.utls:
|
223
227
|
field = wtf.SelectField(
|
@@ -44,7 +44,7 @@ class AllConfigsAPI(MethodView):
|
|
44
44
|
# Add Auto
|
45
45
|
items.append(
|
46
46
|
create_item(
|
47
|
-
"Auto", "ALL", "
|
47
|
+
"Auto", "ALL", "", "", "", "",
|
48
48
|
# f"{base_url}sub/?asn={c['asn']}"
|
49
49
|
f"{base_url}auto/?asn={c['asn']}#{config_name}"
|
50
50
|
)
|
@@ -53,16 +53,24 @@ class AllConfigsAPI(MethodView):
|
|
53
53
|
# Add Full Singbox
|
54
54
|
items.append(
|
55
55
|
create_item(
|
56
|
-
"Full Singbox", "ALL", "
|
56
|
+
"Full Singbox", "ALL", "", "", "", "",
|
57
57
|
# f"{base_url}full-singbox.json?asn={c['asn']}"
|
58
58
|
f"{base_url}singbox/?asn={c['asn']}#{config_name}"
|
59
59
|
)
|
60
60
|
)
|
61
61
|
|
62
|
+
# Add Full Xray
|
63
|
+
items.append(
|
64
|
+
create_item(
|
65
|
+
"Full Xray", "ALL", "", "", "", "",
|
66
|
+
f"{base_url}xray/#{config_name}"
|
67
|
+
)
|
68
|
+
)
|
69
|
+
|
62
70
|
# Add Subscription link
|
63
71
|
items.append(
|
64
72
|
create_item(
|
65
|
-
"Subscription link", "ALL", "
|
73
|
+
"Subscription link", "ALL", "", "", "", "",
|
66
74
|
# f"{base_url}all.txt?name={c['db_domain'].alias or c['db_domain'].domain}-{c['asn']}&asn={c['asn']}&mode={c['mode']}"
|
67
75
|
f"{base_url}sub/?asn={c['asn']}#{config_name}"
|
68
76
|
)
|
@@ -71,16 +79,15 @@ class AllConfigsAPI(MethodView):
|
|
71
79
|
# Add Subscription link base64
|
72
80
|
items.append(
|
73
81
|
create_item(
|
74
|
-
"Subscription link b64", "ALL", "
|
82
|
+
"Subscription link b64", "ALL", "", "", "", "",
|
75
83
|
# f"{base_url}all.txt?name=new_link_{c['db_domain'].alias or c['db_domain'].domain}-{c['asn']}-{c['mode']}&asn={c['asn']}&mode={c['mode']}&base64=True"
|
76
84
|
f"{base_url}sub64/?asn={c['asn']}#{config_name}"
|
77
85
|
)
|
78
86
|
)
|
79
|
-
|
80
87
|
# Add Clash Meta
|
81
88
|
items.append(
|
82
89
|
create_item(
|
83
|
-
"Clash Meta", "ALL", "
|
90
|
+
"Clash Meta", "ALL", "", "", "", "",
|
84
91
|
# f"clashmeta://install-config?url={base_url}clash/meta/all.yml&name=mnormal_{c['db_domain'].alias or c['db_domain'].domain}-{c['asn']}-{c['mode']}&asn={c['asn']}&mode={c['mode']}"
|
85
92
|
f"clash://install-config?url={base_url}clashmeta/?asn={c['asn']}#{config_name}"
|
86
93
|
)
|
@@ -99,7 +106,7 @@ class AllConfigsAPI(MethodView):
|
|
99
106
|
if hconfig(ConfigEnum.ssh_server_enable):
|
100
107
|
items.append(
|
101
108
|
create_item(
|
102
|
-
"Singbox: SSH", "SSH", "
|
109
|
+
"Singbox: SSH", "SSH", "", "", "", "",
|
103
110
|
# f"{base_url}singbox.json?name={c['db_domain'].alias or c['db_domain'].domain}-{c['asn']}&asn={c['asn']}&mode={c['mode']}"
|
104
111
|
f"{base_url}singbox-ssh/?asn={c['asn']}#{config_name}"
|
105
112
|
)
|
hiddifypanel/panel/init_db.py
CHANGED
@@ -7,14 +7,22 @@ import uuid
|
|
7
7
|
|
8
8
|
|
9
9
|
from hiddifypanel import Events, hutils
|
10
|
+
from hiddifypanel.cache import cache
|
10
11
|
from hiddifypanel.models import *
|
11
12
|
from hiddifypanel.panel import hiddify
|
12
13
|
from hiddifypanel.database import db, db_execute
|
13
14
|
from flask import g
|
15
|
+
from sqlalchemy import text
|
14
16
|
|
15
17
|
MAX_DB_VERSION = 90
|
16
18
|
|
17
19
|
|
20
|
+
def _v84(child_id):
|
21
|
+
# the 2022-blake3-chacha20-poly1305 encryption method doesn't support multiuser config
|
22
|
+
if hconfig(ConfigEnum.shadowsocks2022_method) == '2022-blake3-chacha20-poly1305':
|
23
|
+
set_hconfig(ConfigEnum.shadowsocks2022_method, '2022-blake3-aes-256-gcm')
|
24
|
+
|
25
|
+
|
18
26
|
def _v83(child_id):
|
19
27
|
set_hconfig(ConfigEnum.log_level, LogLevel.CRITICAL)
|
20
28
|
|
@@ -547,7 +555,7 @@ def add_column(column):
|
|
547
555
|
try:
|
548
556
|
column_type = column.type.compile(db.engine.dialect)
|
549
557
|
|
550
|
-
db_execute(f'ALTER TABLE {column.table.name} ADD COLUMN {column.name} {column_type}')
|
558
|
+
db_execute(f'ALTER TABLE {column.table.name} ADD COLUMN {column.name} {column_type}', commit=True)
|
551
559
|
except BaseException:
|
552
560
|
pass
|
553
561
|
|
@@ -578,7 +586,7 @@ def add_new_enum_values():
|
|
578
586
|
# result = db.engine.execute(f"SELECT DISTINCT `{column_name}` FROM {table_name}")
|
579
587
|
# db_values = {row[0] for row in result}
|
580
588
|
|
581
|
-
result =
|
589
|
+
result = db.session.execute(text(f"SHOW COLUMNS FROM {table_name} LIKE '{column_name}';")).fetchall()
|
582
590
|
db_values = []
|
583
591
|
|
584
592
|
for row in result:
|
@@ -597,9 +605,7 @@ def add_new_enum_values():
|
|
597
605
|
# Add the new value to the enum column in the database
|
598
606
|
enumstr = ','.join([f"'{a}'" for a in [*existing_values, *old_values]])
|
599
607
|
|
600
|
-
db_execute(f"ALTER TABLE {table_name} MODIFY COLUMN `{column_name}` ENUM({enumstr});")
|
601
|
-
|
602
|
-
db.session.commit()
|
608
|
+
db_execute(f"ALTER TABLE {table_name} MODIFY COLUMN `{column_name}` ENUM({enumstr});", commit=True)
|
603
609
|
|
604
610
|
|
605
611
|
def latest_db_version():
|
@@ -648,8 +654,8 @@ def upgrade_database():
|
|
648
654
|
|
649
655
|
def init_db():
|
650
656
|
db.create_all()
|
651
|
-
|
652
|
-
|
657
|
+
cache.invalidate_all_cached_functions()
|
658
|
+
|
653
659
|
# set_hconfig(ConfigEnum.db_version, 71)
|
654
660
|
# temporary fix
|
655
661
|
add_column(Child.mode)
|
@@ -800,3 +806,4 @@ def migrate(db_version):
|
|
800
806
|
AdminUser.get_super_admin() # to create super admin if not exist
|
801
807
|
|
802
808
|
upgrade_database()
|
809
|
+
db.session.commit()
|
hiddifypanel/panel/user/user.py
CHANGED
Binary file
|
@@ -1394,10 +1394,10 @@ msgid "config.grpc_enable.label"
|
|
1394
1394
|
msgstr "➿ Enable gRPC"
|
1395
1395
|
|
1396
1396
|
msgid "config.h2_enable.description"
|
1397
|
-
msgstr "
|
1397
|
+
msgstr "Enable HTTP/2 Protocol"
|
1398
1398
|
|
1399
1399
|
msgid "config.h2_enable.label"
|
1400
|
-
msgstr "
|
1400
|
+
msgstr "Enable h2"
|
1401
1401
|
|
1402
1402
|
msgid "config.hidden.description"
|
1403
1403
|
msgstr "config.hidden.description"
|
@@ -1429,9 +1429,8 @@ msgstr "☑️ Allow HTTP Connection"
|
|
1429
1429
|
|
1430
1430
|
msgid "config.httpupgrade_enable.description"
|
1431
1431
|
msgstr ""
|
1432
|
-
"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
|
1433
|
-
"\
|
1434
|
-
"⚠️ Not Available in Xray based Clients. Only HiddifyNext, Singbox, and V2fly clients are supported. <p><a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgrade\" target=\"_blank\"><strong>(Read More)</strong></a></p>"
|
1432
|
+
"<p>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.<br />\n"
|
1433
|
+
"⚠️ <strong>Not Available in Xray based Clients. Only HiddifyNext, Singbox, and V2fly clients are supported.</strong> <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgrade\" target=\"_blank\"><strong>(Read More)</strong></a></p>"
|
1435
1434
|
|
1436
1435
|
msgid "config.httpupgrade_enable.label"
|
1437
1436
|
msgstr "🆙 Enable HTTPUpgrade Method"
|
@@ -1553,8 +1552,10 @@ msgstr "⬆️ MUX Brutal Upload (mbps)"
|
|
1553
1552
|
|
1554
1553
|
msgid "config.mux_enable.description"
|
1555
1554
|
msgstr ""
|
1556
|
-
"Mux needs compatible clients. Mux in Hiddify Next and Singbox are not "
|
1557
|
-
"compatible with XRay"
|
1555
|
+
"<p>Mux needs compatible clients. Mux in Hiddify Next and Singbox are not "
|
1556
|
+
"compatible with XRay. <a href=\"https://hiddify.com/manager/basic-"
|
1557
|
+
"concepts-and-troubleshooting/How-MUX-works-and-its-usage/\" "
|
1558
|
+
"target=\"_blank\">(Read More)</a></p>"
|
1558
1559
|
|
1559
1560
|
msgid "config.mux_enable.label"
|
1560
1561
|
msgstr "Ⓜ️ MUX Enable (⚠️ Incompatible With Some Clients)"
|
@@ -1729,10 +1730,10 @@ msgid "config.proxy_path_client.label"
|
|
1729
1730
|
msgstr "🔏 Proxy Path for Clients"
|
1730
1731
|
|
1731
1732
|
msgid "config.quic_enable.description"
|
1732
|
-
msgstr "
|
1733
|
+
msgstr "Enable QUIC Protocol"
|
1733
1734
|
|
1734
1735
|
msgid "config.quic_enable.label"
|
1735
|
-
msgstr "
|
1736
|
+
msgstr "Enable QUIC"
|
1736
1737
|
|
1737
1738
|
msgid "config.reality.description"
|
1738
1739
|
msgstr "REALITY eliminate the Server-Side TLS Fingerprint Feature"
|
@@ -1741,10 +1742,10 @@ msgid "config.reality.label"
|
|
1741
1742
|
msgstr "Reality"
|
1742
1743
|
|
1743
1744
|
msgid "config.reality_enable.description"
|
1744
|
-
msgstr "
|
1745
|
+
msgstr "Enable Reality Protocol"
|
1745
1746
|
|
1746
1747
|
msgid "config.reality_enable.label"
|
1747
|
-
msgstr "
|
1748
|
+
msgstr "Enable Reality"
|
1748
1749
|
|
1749
1750
|
msgid "config.reality_fallback_domain.description"
|
1750
1751
|
msgstr ""
|
@@ -1959,10 +1960,10 @@ msgid "config.ssr_fakedomain.label"
|
|
1959
1960
|
msgstr "SSR FakeDomain"
|
1960
1961
|
|
1961
1962
|
msgid "config.tcp_enable.description"
|
1962
|
-
msgstr "
|
1963
|
+
msgstr "Enable TCP Protocol"
|
1963
1964
|
|
1964
1965
|
msgid "config.tcp_enable.label"
|
1965
|
-
msgstr "
|
1966
|
+
msgstr "Enable TCP"
|
1966
1967
|
|
1967
1968
|
msgid "config.telegram.description"
|
1968
1969
|
msgstr "A proxy designed for Telegram to bypass Telegram filtering"
|
@@ -2021,7 +2022,10 @@ msgid "config.tls.label"
|
|
2021
2022
|
msgstr "TLS Configuration"
|
2022
2023
|
|
2023
2024
|
msgid "config.tls_fragment_enable.description"
|
2024
|
-
msgstr "
|
2025
|
+
msgstr ""
|
2026
|
+
"<p>Under some circumstances, it can bypass the SNI blacklist system. <a "
|
2027
|
+
"href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-"
|
2028
|
+
"the-TLS-Trick-works-and-its-usage/\" target=\"_blank\">(Read More)</a></p>"
|
2025
2029
|
|
2026
2030
|
msgid "config.tls_fragment_enable.label"
|
2027
2031
|
msgstr "⏯ Enable TLS Fragment"
|
@@ -2045,7 +2049,11 @@ msgid "config.tls_mixed_case.label"
|
|
2045
2049
|
msgstr "🔠 Enable TLS Mixed SNI Case"
|
2046
2050
|
|
2047
2051
|
msgid "config.tls_padding_enable.description"
|
2048
|
-
msgstr "
|
2052
|
+
msgstr ""
|
2053
|
+
"<p>Enables Padding for TLS Fragmentation. <a "
|
2054
|
+
"href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-"
|
2055
|
+
"the-TLS-Trick-works-and-its-usage/#tls-padding\" target=\"_blank\">(Read "
|
2056
|
+
"More)</a></p>"
|
2049
2057
|
|
2050
2058
|
msgid "config.tls_padding_enable.label"
|
2051
2059
|
msgstr "♒️ Enable TLS Padding"
|
@@ -2085,10 +2093,10 @@ msgid "config.torrent_block.label"
|
|
2085
2093
|
msgstr "Torrent Block Configuration"
|
2086
2094
|
|
2087
2095
|
msgid "config.trojan_enable.description"
|
2088
|
-
msgstr "
|
2096
|
+
msgstr "Enable Trojan Protocol"
|
2089
2097
|
|
2090
2098
|
msgid "config.trojan_enable.label"
|
2091
|
-
msgstr "
|
2099
|
+
msgstr "Enable Trojan"
|
2092
2100
|
|
2093
2101
|
msgid "config.tuic.description"
|
2094
2102
|
msgstr ""
|
@@ -2143,10 +2151,10 @@ msgid "config.validation-success-no-reset"
|
|
2143
2151
|
msgstr " ✅ Configs have been changed successfully"
|
2144
2152
|
|
2145
2153
|
msgid "config.vless_enable.description"
|
2146
|
-
msgstr "
|
2154
|
+
msgstr "Enable VLess Protocol"
|
2147
2155
|
|
2148
2156
|
msgid "config.vless_enable.label"
|
2149
|
-
msgstr "
|
2157
|
+
msgstr "Enable VLess"
|
2150
2158
|
|
2151
2159
|
msgid "config.vmess_enable.description"
|
2152
2160
|
msgstr "Active VMess Protocol"
|
@@ -2261,10 +2269,10 @@ msgid "config.ws_enable.label"
|
|
2261
2269
|
msgstr "🔰 Enable Websocket"
|
2262
2270
|
|
2263
2271
|
msgid "config.xtls_enable.description"
|
2264
|
-
msgstr "
|
2272
|
+
msgstr "Enable XTLS Protocol"
|
2265
2273
|
|
2266
2274
|
msgid "config.xtls_enable.label"
|
2267
|
-
msgstr "
|
2275
|
+
msgstr "Enable XTLS"
|
2268
2276
|
|
2269
2277
|
msgid "config.invalid uuid"
|
2270
2278
|
msgstr ""
|
Binary file
|
@@ -1379,10 +1379,10 @@ msgid "config.grpc_enable.label"
|
|
1379
1379
|
msgstr "➿ gRPC را فعال کنید"
|
1380
1380
|
|
1381
1381
|
msgid "config.h2_enable.description"
|
1382
|
-
msgstr ""
|
1382
|
+
msgstr "فعال کردن پروتکل HTTP/2"
|
1383
1383
|
|
1384
1384
|
msgid "config.h2_enable.label"
|
1385
|
-
msgstr ""
|
1385
|
+
msgstr "فعال سازی h2"
|
1386
1386
|
|
1387
1387
|
msgid "config.hidden.description"
|
1388
1388
|
msgstr "-"
|
@@ -1414,14 +1414,8 @@ msgstr "☑️ اجازه اتصال HTTP"
|
|
1414
1414
|
|
1415
1415
|
msgid "config.httpupgrade_enable.description"
|
1416
1416
|
msgstr ""
|
1417
|
-
"HTTPUpgrade یک درخواست ارتقاء HTTP ۱.۱ است و پاسخ را قبل از استفاده مستقیم "
|
1418
|
-
"
|
1419
|
-
" می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه "
|
1420
|
-
"نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد. ⚠️ در نرم "
|
1421
|
-
"افزارهای مبتنی بر XRay موجود نیست. فقط نرم افزارهای HiddifyNext، Singbox و "
|
1422
|
-
"V۲fly پشتیبانی می شوند. <p><a href=\"https://hiddify.com/fa/manager/basic-"
|
1423
|
-
"concepts-and-troubleshooting/Basic-Concepts/#http-upgarde\" "
|
1424
|
-
"target=\"_blank\"><strong>(بیشتر بدانید)</strong></a></p>"
|
1417
|
+
"<p style=\"direction:rtl\">HTTPUpgrade یک درخواست ارتقاء HTTP ۱.۱ است و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد.<br />\n"
|
1418
|
+
"⚠️ <strong>در نرم افزارهای مبتنی بر XRay موجود نیست. فقط نرم افزارهای HiddifyNext، Singbox و V۲fly پشتیبانی می شوند. </strong><a href=\"https://hiddify.com/fa/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgarde\" target=\"_blank\"><strong>(بیشتر بدانید)</strong></a></p>"
|
1425
1419
|
|
1426
1420
|
msgid "config.httpupgrade_enable.label"
|
1427
1421
|
msgstr "🆙 فعالسازی HTTPUpgrade"
|
@@ -1544,8 +1538,11 @@ msgstr "⬆️ آپلود (mbps) MUX Brutal"
|
|
1544
1538
|
|
1545
1539
|
msgid "config.mux_enable.description"
|
1546
1540
|
msgstr ""
|
1547
|
-
"Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify
|
1548
|
-
"سازگار
|
1541
|
+
"<p style=\"direction:rtl\">Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify"
|
1542
|
+
" Next و Singbox و XRay سازگار نیستند. <a "
|
1543
|
+
"href=\"https://hiddify.com/fa/manager/basic-concepts-and-"
|
1544
|
+
"troubleshooting/How-MUX-works-and-its-usage/\" target=\"_blank\">(بیشتر "
|
1545
|
+
"بدانید)</a></p>"
|
1549
1546
|
|
1550
1547
|
msgid "config.mux_enable.label"
|
1551
1548
|
msgstr "Ⓜ️ فعال کردن MUX (⚠️ ناسازگار با برخی نرم افزارها)"
|
@@ -1725,10 +1722,10 @@ msgid "config.proxy_path_client.label"
|
|
1725
1722
|
msgstr "مسیر پروکسی برای مشتریان"
|
1726
1723
|
|
1727
1724
|
msgid "config.quic_enable.description"
|
1728
|
-
msgstr ""
|
1725
|
+
msgstr "فعال کردن پروتکل QUIC"
|
1729
1726
|
|
1730
1727
|
msgid "config.quic_enable.label"
|
1731
|
-
msgstr ""
|
1728
|
+
msgstr "Enable QUIC Protocol"
|
1732
1729
|
|
1733
1730
|
msgid "config.reality.description"
|
1734
1731
|
msgstr "REALITY قابلیت اثر انگشت TLS سمت سرور را حذف می کند"
|
@@ -1737,10 +1734,10 @@ msgid "config.reality.label"
|
|
1737
1734
|
msgstr "ریالیتی"
|
1738
1735
|
|
1739
1736
|
msgid "config.reality_enable.description"
|
1740
|
-
msgstr ""
|
1737
|
+
msgstr "فعال کردن پروتکل Reality"
|
1741
1738
|
|
1742
1739
|
msgid "config.reality_enable.label"
|
1743
|
-
msgstr ""
|
1740
|
+
msgstr "فعال سازی Reality"
|
1744
1741
|
|
1745
1742
|
msgid "config.reality_fallback_domain.description"
|
1746
1743
|
msgstr ""
|
@@ -1958,10 +1955,10 @@ msgid "config.ssr_fakedomain.label"
|
|
1958
1955
|
msgstr "دامنه جعلی برای SSR"
|
1959
1956
|
|
1960
1957
|
msgid "config.tcp_enable.description"
|
1961
|
-
msgstr ""
|
1958
|
+
msgstr "فعال کردن پروتکل TCP"
|
1962
1959
|
|
1963
1960
|
msgid "config.tcp_enable.label"
|
1964
|
-
msgstr ""
|
1961
|
+
msgstr "فعال سازی TCP"
|
1965
1962
|
|
1966
1963
|
msgid "config.telegram.description"
|
1967
1964
|
msgstr ""
|
@@ -2021,7 +2018,11 @@ msgid "config.tls.label"
|
|
2021
2018
|
msgstr "تنظیمات TLS"
|
2022
2019
|
|
2023
2020
|
msgid "config.tls_fragment_enable.description"
|
2024
|
-
msgstr "
|
2021
|
+
msgstr ""
|
2022
|
+
"<p style=\"direction:rtl\">تحت برخی شرایط، می تواند سیستم لیست سیاه SNI را "
|
2023
|
+
"دور بزند. <a href=\"https://hiddify.com/fa/manager/basic-concepts-and-"
|
2024
|
+
"troubleshooting/How-the-TLS-Trick-works-and-its-usage/\" "
|
2025
|
+
"target=\"_blank\">(بیشتر بدانید)</a></p>"
|
2025
2026
|
|
2026
2027
|
msgid "config.tls_fragment_enable.label"
|
2027
2028
|
msgstr "⏯ TLS Fragment را فعال کنید"
|
@@ -2045,7 +2046,11 @@ msgid "config.tls_mixed_case.label"
|
|
2045
2046
|
msgstr "🔠 TLS Mixed SNI Case را فعال کنید"
|
2046
2047
|
|
2047
2048
|
msgid "config.tls_padding_enable.description"
|
2048
|
-
msgstr "
|
2049
|
+
msgstr ""
|
2050
|
+
"<p style=\"direction:rtl\">Padding تکه تکه شدن TLS را فعال می کند. <a "
|
2051
|
+
"href=\"https://hiddify.com/fa/manager/basic-concepts-and-"
|
2052
|
+
"troubleshooting/How-the-TLS-Trick-works-and-its-usage/#tls-padding\" "
|
2053
|
+
"target=\"_blank\">(بیشتر بدانید)</a></p>"
|
2049
2054
|
|
2050
2055
|
msgid "config.tls_padding_enable.label"
|
2051
2056
|
msgstr "♒️ TLS Padding را فعال کنید"
|
@@ -2084,10 +2089,10 @@ msgid "config.torrent_block.label"
|
|
2084
2089
|
msgstr "تنظیمات Torrent Block"
|
2085
2090
|
|
2086
2091
|
msgid "config.trojan_enable.description"
|
2087
|
-
msgstr ""
|
2092
|
+
msgstr "فعال کردن پروتکل Trojan"
|
2088
2093
|
|
2089
2094
|
msgid "config.trojan_enable.label"
|
2090
|
-
msgstr ""
|
2095
|
+
msgstr "فعال سازی Trojan"
|
2091
2096
|
|
2092
2097
|
msgid "config.tuic.description"
|
2093
2098
|
msgstr ""
|
@@ -2141,10 +2146,10 @@ msgid "config.validation-success-no-reset"
|
|
2141
2146
|
msgstr " ✅ تنظیمات با موفقیت تغییر کرد"
|
2142
2147
|
|
2143
2148
|
msgid "config.vless_enable.description"
|
2144
|
-
msgstr ""
|
2149
|
+
msgstr "فعال کردن پروتکل VLess"
|
2145
2150
|
|
2146
2151
|
msgid "config.vless_enable.label"
|
2147
|
-
msgstr ""
|
2152
|
+
msgstr "فعال سازی VLess"
|
2148
2153
|
|
2149
2154
|
msgid "config.vmess_enable.description"
|
2150
2155
|
msgstr "فعال کردن پروتکل VMess"
|
@@ -2260,10 +2265,10 @@ msgid "config.ws_enable.label"
|
|
2260
2265
|
msgstr "🔰 Websocket را فعال کنید"
|
2261
2266
|
|
2262
2267
|
msgid "config.xtls_enable.description"
|
2263
|
-
msgstr ""
|
2268
|
+
msgstr "فعال کردن پروتکل XTLS"
|
2264
2269
|
|
2265
2270
|
msgid "config.xtls_enable.label"
|
2266
|
-
msgstr ""
|
2271
|
+
msgstr "فعال سازی XTLS"
|
2267
2272
|
|
2268
2273
|
msgid "config.invalid uuid"
|
2269
2274
|
msgstr ""
|
Binary file
|
Binary file
|
Binary file
|
@@ -463,8 +463,8 @@
|
|
463
463
|
"label": "➿ Enable gRPC"
|
464
464
|
},
|
465
465
|
"h2_enable": {
|
466
|
-
"description": "
|
467
|
-
"label": "
|
466
|
+
"description": "Enable HTTP/2 Protocol",
|
467
|
+
"label": "Enable h2"
|
468
468
|
},
|
469
469
|
"hidden": {
|
470
470
|
"description": "config.hidden.description",
|
@@ -483,7 +483,7 @@
|
|
483
483
|
"label": "☑️ Allow HTTP Connection"
|
484
484
|
},
|
485
485
|
"httpupgrade_enable": {
|
486
|
-
"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
|
486
|
+
"description": "<p>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.<br />\n⚠️ <strong>Not Available in Xray based Clients. Only HiddifyNext, Singbox, and V2fly clients are supported.</strong> <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgrade\" target=\"_blank\"><strong>(Read More)</strong></a></p>",
|
487
487
|
"label": "🆙 Enable HTTPUpgrade Method"
|
488
488
|
},
|
489
489
|
"hysteria": {
|
@@ -560,7 +560,7 @@
|
|
560
560
|
"label": "⬆️ MUX Brutal Upload (mbps)"
|
561
561
|
},
|
562
562
|
"mux_enable": {
|
563
|
-
"description": "Mux needs compatible clients. Mux in Hiddify Next and Singbox are not compatible with XRay",
|
563
|
+
"description": "<p>Mux needs compatible clients. Mux in Hiddify Next and Singbox are not compatible with XRay. <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-MUX-works-and-its-usage/\" target=\"_blank\">(Read More)</a></p>",
|
564
564
|
"label": "Ⓜ️ MUX Enable (⚠️ Incompatible With Some Clients)"
|
565
565
|
},
|
566
566
|
"mux_max_connections": {
|
@@ -668,16 +668,16 @@
|
|
668
668
|
"label": "🔏 Proxy Path for Clients"
|
669
669
|
},
|
670
670
|
"quic_enable": {
|
671
|
-
"description": "
|
672
|
-
"label": "
|
671
|
+
"description": "Enable QUIC Protocol",
|
672
|
+
"label": "Enable QUIC"
|
673
673
|
},
|
674
674
|
"reality": {
|
675
675
|
"description": "REALITY eliminate the Server-Side TLS Fingerprint Feature",
|
676
676
|
"label": "Reality"
|
677
677
|
},
|
678
678
|
"reality_enable": {
|
679
|
-
"description": "
|
680
|
-
"label": "
|
679
|
+
"description": "Enable Reality Protocol",
|
680
|
+
"label": "Enable Reality"
|
681
681
|
},
|
682
682
|
"reality_fallback_domain": {
|
683
683
|
"description": "When the GFW visit the Websites in Server names, it will be redirect to this Domain.",
|
@@ -796,8 +796,8 @@
|
|
796
796
|
"label": "SSR FakeDomain"
|
797
797
|
},
|
798
798
|
"tcp_enable": {
|
799
|
-
"description": "
|
800
|
-
"label": "
|
799
|
+
"description": "Enable TCP Protocol",
|
800
|
+
"label": "Enable TCP"
|
801
801
|
},
|
802
802
|
"telegram": {
|
803
803
|
"description": "A proxy designed for Telegram to bypass Telegram filtering",
|
@@ -828,7 +828,7 @@
|
|
828
828
|
"label": "TLS Configuration"
|
829
829
|
},
|
830
830
|
"tls_fragment_enable": {
|
831
|
-
"description": "Under some circumstances, it can bypass the SNI blacklist system",
|
831
|
+
"description": "<p>Under some circumstances, it can bypass the SNI blacklist system. <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-the-TLS-Trick-works-and-its-usage/\" target=\"_blank\">(Read More)</a></p>",
|
832
832
|
"label": "⏯ Enable TLS Fragment"
|
833
833
|
},
|
834
834
|
"tls_fragment_size": {
|
@@ -844,7 +844,7 @@
|
|
844
844
|
"label": "🔠 Enable TLS Mixed SNI Case"
|
845
845
|
},
|
846
846
|
"tls_padding_enable": {
|
847
|
-
"description": "Enables Padding for TLS Fragmentation",
|
847
|
+
"description": "<p>Enables Padding for TLS Fragmentation. <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-the-TLS-Trick-works-and-its-usage/#tls-padding\" target=\"_blank\">(Read More)</a></p>",
|
848
848
|
"label": "♒️ Enable TLS Padding"
|
849
849
|
},
|
850
850
|
"tls_padding_length": {
|
@@ -868,8 +868,8 @@
|
|
868
868
|
"label": "Torrent Block Configuration"
|
869
869
|
},
|
870
870
|
"trojan_enable": {
|
871
|
-
"description": "
|
872
|
-
"label": "
|
871
|
+
"description": "Enable Trojan Protocol",
|
872
|
+
"label": "Enable Trojan"
|
873
873
|
},
|
874
874
|
"tuic": {
|
875
875
|
"description": "Delicately-TUICed High-Performance proxy is on top of the QUIC protocol. \n\nTUIC's goal is to minimize the handshake latency as much as possible",
|
@@ -899,8 +899,8 @@
|
|
899
899
|
"validation-success": "Configs have been changed successfully. Click %(link)s to apply the configs. It may take 2 minutes to apply",
|
900
900
|
"validation-success-no-reset": " ✅ Configs have been changed successfully",
|
901
901
|
"vless_enable": {
|
902
|
-
"description": "
|
903
|
-
"label": "
|
902
|
+
"description": "Enable VLess Protocol",
|
903
|
+
"label": "Enable VLess"
|
904
904
|
},
|
905
905
|
"vmess_enable": {
|
906
906
|
"description": "Active VMess Protocol",
|
@@ -963,8 +963,8 @@
|
|
963
963
|
"label": "🔰 Enable Websocket"
|
964
964
|
},
|
965
965
|
"xtls_enable": {
|
966
|
-
"description": "
|
967
|
-
"label": "
|
966
|
+
"description": "Enable XTLS Protocol",
|
967
|
+
"label": "Enable XTLS"
|
968
968
|
}
|
969
969
|
},
|
970
970
|
"config.invalid uuid": "Invalid UUID secret. example: 6098ea35-8cb2-4a08-ba15-2be25bc49cb6\n\n",
|
@@ -463,8 +463,8 @@
|
|
463
463
|
"label": "➿ gRPC را فعال کنید"
|
464
464
|
},
|
465
465
|
"h2_enable": {
|
466
|
-
"description": "",
|
467
|
-
"label": ""
|
466
|
+
"description": "فعال کردن پروتکل HTTP/2",
|
467
|
+
"label": "فعال سازی h2"
|
468
468
|
},
|
469
469
|
"hidden": {
|
470
470
|
"description": "-",
|
@@ -483,7 +483,7 @@
|
|
483
483
|
"label": "☑️ اجازه اتصال HTTP"
|
484
484
|
},
|
485
485
|
"httpupgrade_enable": {
|
486
|
-
"description": "HTTPUpgrade یک درخواست ارتقاء HTTP ۱.۱ است و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket
|
486
|
+
"description": "<p style=\"direction:rtl\">HTTPUpgrade یک درخواست ارتقاء HTTP ۱.۱ است و پاسخ را قبل از استفاده مستقیم از اتصال تکمیل می کند. این شبیه به WebSocket است که یک کانال ایجاد می کند که می تواند توسط بسیاری از پروکسی های معکوس و CDN ها ارسال شود، بدون اینکه نیازی به رسیدگی به تمام مسائل پیرامون خود پروتکل WebSocket باشد.<br />\n⚠️ <strong>در نرم افزارهای مبتنی بر XRay موجود نیست. فقط نرم افزارهای HiddifyNext، Singbox و V۲fly پشتیبانی می شوند. </strong><a href=\"https://hiddify.com/fa/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgarde\" target=\"_blank\"><strong>(بیشتر بدانید)</strong></a></p>",
|
487
487
|
"label": "🆙 فعالسازی HTTPUpgrade"
|
488
488
|
},
|
489
489
|
"hysteria": {
|
@@ -560,7 +560,7 @@
|
|
560
560
|
"label": "⬆️ آپلود (mbps) MUX Brutal"
|
561
561
|
},
|
562
562
|
"mux_enable": {
|
563
|
-
"description": "Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify Next و Singbox و XRay سازگار
|
563
|
+
"description": "<p style=\"direction:rtl\">Mux به نرم افزار سازگار نیاز دارد. Mux در Hiddify Next و Singbox و XRay سازگار نیستند. <a href=\"https://hiddify.com/fa/manager/basic-concepts-and-troubleshooting/How-MUX-works-and-its-usage/\" target=\"_blank\">(بیشتر بدانید)</a></p>",
|
564
564
|
"label": "Ⓜ️ فعال کردن MUX (⚠️ ناسازگار با برخی نرم افزارها)"
|
565
565
|
},
|
566
566
|
"mux_max_connections": {
|
@@ -668,16 +668,16 @@
|
|
668
668
|
"label": "مسیر پروکسی برای مشتریان"
|
669
669
|
},
|
670
670
|
"quic_enable": {
|
671
|
-
"description": "",
|
672
|
-
"label": ""
|
671
|
+
"description": "فعال کردن پروتکل QUIC",
|
672
|
+
"label": "Enable QUIC Protocol"
|
673
673
|
},
|
674
674
|
"reality": {
|
675
675
|
"description": "REALITY قابلیت اثر انگشت TLS سمت سرور را حذف می کند",
|
676
676
|
"label": "ریالیتی"
|
677
677
|
},
|
678
678
|
"reality_enable": {
|
679
|
-
"description": "",
|
680
|
-
"label": ""
|
679
|
+
"description": "فعال کردن پروتکل Reality",
|
680
|
+
"label": "فعال سازی Reality"
|
681
681
|
},
|
682
682
|
"reality_fallback_domain": {
|
683
683
|
"description": "هنگامی که GTW از وب سایتها در نام سرور بازدید میکند، به این دامنه هدایت میشود.",
|
@@ -796,8 +796,8 @@
|
|
796
796
|
"label": "دامنه جعلی برای SSR"
|
797
797
|
},
|
798
798
|
"tcp_enable": {
|
799
|
-
"description": "",
|
800
|
-
"label": ""
|
799
|
+
"description": "فعال کردن پروتکل TCP",
|
800
|
+
"label": "فعال سازی TCP"
|
801
801
|
},
|
802
802
|
"telegram": {
|
803
803
|
"description": "پروکسی تلگرام برای استفاده درون اپ تلگرام طراحی شده تا فیلترینگ تلگرام را دور بزند",
|
@@ -828,7 +828,7 @@
|
|
828
828
|
"label": "تنظیمات TLS"
|
829
829
|
},
|
830
830
|
"tls_fragment_enable": {
|
831
|
-
"description": "
|
831
|
+
"description": "<p style=\"direction:rtl\">تحت برخی شرایط، می تواند سیستم لیست سیاه SNI را دور بزند. <a href=\"https://hiddify.com/fa/manager/basic-concepts-and-troubleshooting/How-the-TLS-Trick-works-and-its-usage/\" target=\"_blank\">(بیشتر بدانید)</a></p>",
|
832
832
|
"label": "⏯ TLS Fragment را فعال کنید"
|
833
833
|
},
|
834
834
|
"tls_fragment_size": {
|
@@ -844,7 +844,7 @@
|
|
844
844
|
"label": "🔠 TLS Mixed SNI Case را فعال کنید"
|
845
845
|
},
|
846
846
|
"tls_padding_enable": {
|
847
|
-
"description": "Padding تکه تکه شدن TLS را فعال می
|
847
|
+
"description": "<p style=\"direction:rtl\">Padding تکه تکه شدن TLS را فعال می کند. <a href=\"https://hiddify.com/fa/manager/basic-concepts-and-troubleshooting/How-the-TLS-Trick-works-and-its-usage/#tls-padding\" target=\"_blank\">(بیشتر بدانید)</a></p>",
|
848
848
|
"label": "♒️ TLS Padding را فعال کنید"
|
849
849
|
},
|
850
850
|
"tls_padding_length": {
|
@@ -868,8 +868,8 @@
|
|
868
868
|
"label": "تنظیمات Torrent Block"
|
869
869
|
},
|
870
870
|
"trojan_enable": {
|
871
|
-
"description": "",
|
872
|
-
"label": ""
|
871
|
+
"description": "فعال کردن پروتکل Trojan",
|
872
|
+
"label": "فعال سازی Trojan"
|
873
873
|
},
|
874
874
|
"tuic": {
|
875
875
|
"description": "پروکسی Delicately-TUICed با کارایی بالا روی پروتکل QUIC است. \nهدف TUIC این است که تأخیر handshake را تا حد امکان به حداقل برساند.",
|
@@ -899,8 +899,8 @@
|
|
899
899
|
"validation-success": "تنظیمات با موفقیت ذخیره شدند. لطفا بر روی این لینک: %(link)s کلیک کنید تا بر روی سیستم اعمال شوند. این کار ممکن است 2 دقیقه طول بکشد",
|
900
900
|
"validation-success-no-reset": " ✅ تنظیمات با موفقیت تغییر کرد",
|
901
901
|
"vless_enable": {
|
902
|
-
"description": "",
|
903
|
-
"label": ""
|
902
|
+
"description": "فعال کردن پروتکل VLess",
|
903
|
+
"label": "فعال سازی VLess"
|
904
904
|
},
|
905
905
|
"vmess_enable": {
|
906
906
|
"description": "فعال کردن پروتکل VMess",
|
@@ -963,8 +963,8 @@
|
|
963
963
|
"label": "🔰 Websocket را فعال کنید"
|
964
964
|
},
|
965
965
|
"xtls_enable": {
|
966
|
-
"description": "",
|
967
|
-
"label": ""
|
966
|
+
"description": "فعال کردن پروتکل XTLS",
|
967
|
+
"label": "فعال سازی XTLS"
|
968
968
|
}
|
969
969
|
},
|
970
970
|
"config.invalid uuid": "رمز UUID نامعتبر است. به عنوان مثال: 6098ea35-8cb2-4a08-ba15-2be25bc49cb6",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: hiddifypanel
|
3
|
-
Version: 10.16.0.
|
3
|
+
Version: 10.16.0.dev3
|
4
4
|
Summary: hiddifypanel multi proxy panel
|
5
5
|
Home-page: https://github.com/hiddify/hiddify-manager/
|
6
6
|
Author: hiddify
|
@@ -24,7 +24,7 @@ Requires-Dist: MarkupSafe ==2.1.5
|
|
24
24
|
Requires-Dist: PyMySQL ==1.1.0
|
25
25
|
Requires-Dist: PyYAML ==6.0.1
|
26
26
|
Requires-Dist: SQLAlchemy-Utils ==0.41.2
|
27
|
-
Requires-Dist: SQLAlchemy-serializer ==1.4.
|
27
|
+
Requires-Dist: SQLAlchemy-serializer ==1.4.12
|
28
28
|
Requires-Dist: SQLAlchemy ==2.0.29
|
29
29
|
Requires-Dist: StrEnum ==0.4.15
|
30
30
|
Requires-Dist: WTForms ==3.1.2
|
@@ -1,12 +1,12 @@
|
|
1
1
|
hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
|
2
|
-
hiddifypanel/VERSION,sha256=
|
3
|
-
hiddifypanel/VERSION.py,sha256=
|
2
|
+
hiddifypanel/VERSION,sha256=0-XDvqX6n1Up7He9CQa_5ZtPwjbawrjx4lVhG7poZls,13
|
3
|
+
hiddifypanel/VERSION.py,sha256=_RKSdSDIVo3dCpHkpvS2rmqK0lJhJEtiVOrBYobuKbk,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
|
7
7
|
hiddifypanel/base.py,sha256=cFmEQklruNn7TvCxb4nbsR83_dVfEmzeZNsaHMGZCOU,5484
|
8
|
-
hiddifypanel/cache.py,sha256=
|
9
|
-
hiddifypanel/database.py,sha256=
|
8
|
+
hiddifypanel/cache.py,sha256=8Y_Gj5XzKv63qhTY98BLS8Vy_dk1u0qT1KJ6t7q3OGY,2197
|
9
|
+
hiddifypanel/database.py,sha256=14sfbGEG-NCqkfUtyLvcO2JbkQ3-Fzs-MezPNkNbvgk,717
|
10
10
|
hiddifypanel/drivers/abstract_driver.py,sha256=HpWkgbWVWF8n3WhDe0BlxsIF1WTWO57AQEAEb2ZVCPM,223
|
11
11
|
hiddifypanel/drivers/singbox_api.py,sha256=vApQU4vwMZdd71-FEnTGm8btRLoC1l0sSzAcH_7lTcQ,2207
|
12
12
|
hiddifypanel/drivers/ssh_liberty_bridge_api.py,sha256=FXoS65hydwisizC20HTJvMQR_SNx1MvZ4Fu8jSwesWw,1768
|
@@ -25,7 +25,7 @@ hiddifypanel/hutils/random.py,sha256=KrsarmRNL05PYzwMxDaDyv-_QcKS0YsZR2z7BnllAqI
|
|
25
25
|
hiddifypanel/hutils/system.py,sha256=nX7ZvmXKfHu6_cFVOGZRG-7ch2glqgzQL2iWraQc4S0,4350
|
26
26
|
hiddifypanel/hutils/utils.py,sha256=ogLBVb4x8l5tRMYXKDUdTnb9dyEnrQsRjsMcuLeonlE,1065
|
27
27
|
hiddifypanel/hutils/importer/__init__.py,sha256=kjl4ePaQodEXhliZmunCMQ-j7MsQbVYL_Zyd_35009A,18
|
28
|
-
hiddifypanel/hutils/importer/xui.py,sha256=
|
28
|
+
hiddifypanel/hutils/importer/xui.py,sha256=DdftEeZUa8SPR2F0mCiTnWYT79DiSsoGmBegDTnHFpk,5491
|
29
29
|
hiddifypanel/hutils/network/__init__.py,sha256=jEyLLnMUak2lXXWNvkQ5_fRtuo2wpOvba6q8gMJT7D8,328
|
30
30
|
hiddifypanel/hutils/network/auto_ip_selector.py,sha256=uSQjxnqI7NdJ6N_jCNtHAGLwjRjHagBG4GeR0lhD-HM,5667
|
31
31
|
hiddifypanel/hutils/network/net.py,sha256=jgtKq_w8z9BbjoT2JQ4POdqNGblRj3v50Ti40iZdZ-g,12065
|
@@ -39,20 +39,20 @@ hiddifypanel/hutils/proxy/clash.py,sha256=ERyiuUZibOUYvkyC1HPLCRPNB1lrZpuuafey2S
|
|
39
39
|
hiddifypanel/hutils/proxy/shared.py,sha256=T2YuC3coTG1iM6p7SQQVCzRjnp3dB25X9rIgA8h2OUc,21547
|
40
40
|
hiddifypanel/hutils/proxy/singbox.py,sha256=ssaO5lCK6CmZ3BIHgAdlD7GcMZljJSF8DaMissgw_Jw,10800
|
41
41
|
hiddifypanel/hutils/proxy/xray.py,sha256=HDK4PsyY8qnnmQ51hNiP4UKJVXE-nMjIRuFjF1ZcHOY,10769
|
42
|
-
hiddifypanel/hutils/proxy/xrayjson.py,sha256=
|
42
|
+
hiddifypanel/hutils/proxy/xrayjson.py,sha256=QaP3byxwQquHKp8t_SPkqjz9qENFGRtqiP0MofcwA80,12950
|
43
43
|
hiddifypanel/models/__init__.py,sha256=W7lWG_7jNNPn-cdXV5wMmuPv1unHUFVlMd9OmwDn2gM,860
|
44
|
-
hiddifypanel/models/admin.py,sha256=
|
45
|
-
hiddifypanel/models/base_account.py,sha256=
|
46
|
-
hiddifypanel/models/child.py,sha256=
|
47
|
-
hiddifypanel/models/config.py,sha256=
|
48
|
-
hiddifypanel/models/config_enum.py,sha256=
|
49
|
-
hiddifypanel/models/domain.py,sha256=
|
44
|
+
hiddifypanel/models/admin.py,sha256=W1C0R9fhLtwjnIzgPgiVcaNXc6YzzIolAsyy4QaqQKw,6936
|
45
|
+
hiddifypanel/models/base_account.py,sha256=T2vllZo1QTGzYos3njgdYtAlnYB77LYrfzpEoO8yRk8,3060
|
46
|
+
hiddifypanel/models/child.py,sha256=ZFJaH-GWTKAGD0BGMH0iKEMipi37_cAk59OeJKt2IKA,3039
|
47
|
+
hiddifypanel/models/config.py,sha256=AoY3gDjHscIaXNSDXPIFWASo7WS9-UjNyLd-3K2ntIE,6755
|
48
|
+
hiddifypanel/models/config_enum.py,sha256=bosh0mWYSUknPZTTaONH8JrVcfOBr2SJ04BNP0miuJU,14633
|
49
|
+
hiddifypanel/models/domain.py,sha256=9HR7Ch3BniuzDM5TJfQNpTuoOPbkthEDhjF-exUXCuM,8499
|
50
50
|
hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
|
51
|
-
hiddifypanel/models/proxy.py,sha256=
|
52
|
-
hiddifypanel/models/report.py,sha256=
|
51
|
+
hiddifypanel/models/proxy.py,sha256=9cm5Q0ZUEPeRDWdm1lQGom0SM_Q32NCDFTNFh36OzaQ,3304
|
52
|
+
hiddifypanel/models/report.py,sha256=33h9k12SAEWkwZsc3-jUdIIpFL66cEOTHQqVXd07NWY,1001
|
53
53
|
hiddifypanel/models/role.py,sha256=V93_AhOcgbIiAaRYUaNIWKsKZ704ANl0hq-uAJFQCUo,269
|
54
|
-
hiddifypanel/models/usage.py,sha256=
|
55
|
-
hiddifypanel/models/user.py,sha256=
|
54
|
+
hiddifypanel/models/usage.py,sha256=BCZtYhmgru-bF8O2dGwJgcN7qtZ29a3arQEK9EVPdtE,4362
|
55
|
+
hiddifypanel/models/user.py,sha256=bMiw0ZveN47qmwQ0BFTB-F9QnONvawsrFg_ttemcnvY,13325
|
56
56
|
hiddifypanel/panel/__init__.py,sha256=YDC8OatzZ2PoGrOARauce7OimcFsbTEvIq8AcNl1_-s,180
|
57
57
|
hiddifypanel/panel/admin_2.py,sha256=23fKDbYlME0hNUALU76JZZbL9L4lWrHtFZ1IO6h_Zjo,989
|
58
58
|
hiddifypanel/panel/asset.py,sha256=sp3NJVsTYycVgM2NbXX_KnOENGDmRB72CRKZwhd7f-4,500
|
@@ -63,7 +63,7 @@ hiddifypanel/panel/cli.py,sha256=a2rTpUlUsjv3aEkqAK0aa8_PW3e1IzpXWaJPb4EVIyg,936
|
|
63
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=
|
66
|
+
hiddifypanel/panel/init_db.py,sha256=QqJYlIoc9HBy4JPmfsIVPxHn1oUom6iMFCs5neWnX90,33041
|
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
|
@@ -75,7 +75,7 @@ hiddifypanel/panel/admin/DomainAdmin.py,sha256=n6vNX58Bc7LxYwkXcAIOKf8GZuES3-AgW
|
|
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
|
78
|
-
hiddifypanel/panel/admin/SettingAdmin.py,sha256=
|
78
|
+
hiddifypanel/panel/admin/SettingAdmin.py,sha256=Xo3cFhwOtcsgwWgq5TE4kHCYe4kD1isDDrG9bPwndlc,18848
|
79
79
|
hiddifypanel/panel/admin/Terminal.py,sha256=fjLVLspXYHOwZGyMU_KbytWe1zf-m6KbmvBPEDps45w,1737
|
80
80
|
hiddifypanel/panel/admin/UserAdmin.py,sha256=pAiZRoDxQRjcZOUhGu5nRqglTuippeXgiGxTOf-Thv4,17145
|
81
81
|
hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
|
@@ -161,7 +161,7 @@ hiddifypanel/panel/commercial/restapi/v2/parent/sync_api.py,sha256=Pew5PJU-LAj6Y
|
|
161
161
|
hiddifypanel/panel/commercial/restapi/v2/parent/usage_api.py,sha256=FOvb6nFuWcucTEtZPwhINpbZQDdprgk4orpwwi02jK4,2373
|
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
|
-
hiddifypanel/panel/commercial/restapi/v2/user/configs_api.py,sha256=
|
164
|
+
hiddifypanel/panel/commercial/restapi/v2/user/configs_api.py,sha256=OoA57YDR3Sh9rbBW6KhfRqaDhiYsq59N00IaFenES-A,4780
|
165
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
|
@@ -177,7 +177,7 @@ hiddifypanel/panel/common_bp/login.py,sha256=eDynKaUI6Q015E8cByMNT9twBw7xIiFL6TD
|
|
177
177
|
hiddifypanel/panel/common_bp/templates/login.html,sha256=jDl9-Nh2qMuCsLQmXm7e5jvSaRAlBxReVVCbNSTTHJw,1312
|
178
178
|
hiddifypanel/panel/user/__init__.py,sha256=E9RxA2YGc0eXLGjfJbyryeLG3bXEWJ3DoVOyIpVaDIo,1859
|
179
179
|
hiddifypanel/panel/user/link_maker.html,sha256=g420NAm_fUI8asYjyfCiXyUOIwEQfDPonZA9xh3p0-8,177
|
180
|
-
hiddifypanel/panel/user/user.py,sha256=
|
180
|
+
hiddifypanel/panel/user/user.py,sha256=PC1vCFY2bLOT2ZsdzNJEiLqA6r9HnLFXWZ7Iq4FSYzs,13793
|
181
181
|
hiddifypanel/panel/user/templates/all_configs copy.txt,sha256=u5jhAgjhH07_0csdIisuXy2HNCC9SWlP0whBAGFXA78,564
|
182
182
|
hiddifypanel/panel/user/templates/all_configs.txt,sha256=i8I6g9ujOr3RIuRoGRqY2Q75I89mbHko_JVPvQt4E_g,1260
|
183
183
|
hiddifypanel/panel/user/templates/base_singbox_config.json.j2,sha256=xhvQpm0fp2w3VA8N7zXbYs8RWlRgdyApiedFH_sRTfM,7107
|
@@ -820,24 +820,24 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
|
|
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=
|
824
|
-
hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=
|
825
|
-
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=
|
826
|
-
hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=
|
827
|
-
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=
|
823
|
+
hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=7SONp6cawE1coIigHquY66YZdKItHadyCoPEw3-KGMo,74599
|
824
|
+
hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=JYdJWkz8ZjeqzNdbz1kOOAw11YHMpFU447R1SYaD1Sg,77783
|
825
|
+
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=xBLIZCxMGMhw_koknRxOKvKw9N27H-_i7fu5WJ07dh4,96482
|
826
|
+
hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=c4_SjizFofBr6uNRAlD8j9HRbVv4f4SCGVlFGWxMWA8,101063
|
827
|
+
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=S5U1hkPKKS6nLxUQJeSJKIOOINf1jDS08eONwDgh9I0,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=
|
829
|
+
hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=JS2kFQptLzkeg-bDrjGS5z0XIkAoRkFC19MGYuF75rA,95543
|
830
830
|
hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=ojNL5z1gvjgiO-5hjccCLhK0Z-CeZKrwE3yiEE4ekeg,102007
|
831
|
-
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=
|
831
|
+
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=aCGEYnPvvD0Aya64HNxjdhp0ATDi3c-6ht7z-_CMyvE,60878
|
832
832
|
hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=f0fv1MW5_Okc5GixUoPv5BkV0XwM6wKrjK7khLeiv18,69040
|
833
|
-
hiddifypanel/translations.i18n/en.json,sha256=
|
834
|
-
hiddifypanel/translations.i18n/fa.json,sha256=
|
833
|
+
hiddifypanel/translations.i18n/en.json,sha256=SEBuSZt0rP6l-IK3dkZteEEvzLs3JVMwfaWCiak_jBk,67764
|
834
|
+
hiddifypanel/translations.i18n/fa.json,sha256=Xn6sJ8o74HE8qjzOjgjW-LzHJRrHk7Aze-6EYts2Gt0,91044
|
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.16.0.
|
839
|
-
hiddifypanel-10.16.0.
|
840
|
-
hiddifypanel-10.16.0.
|
841
|
-
hiddifypanel-10.16.0.
|
842
|
-
hiddifypanel-10.16.0.
|
843
|
-
hiddifypanel-10.16.0.
|
838
|
+
hiddifypanel-10.16.0.dev3.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
|
839
|
+
hiddifypanel-10.16.0.dev3.dist-info/METADATA,sha256=MDm6ytfVYj8Ex1Ujn_5zATVOUPV0cnZYJL7jgP8am_w,4014
|
840
|
+
hiddifypanel-10.16.0.dev3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
841
|
+
hiddifypanel-10.16.0.dev3.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
|
842
|
+
hiddifypanel-10.16.0.dev3.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
|
843
|
+
hiddifypanel-10.16.0.dev3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{hiddifypanel-10.16.0.dev0.dist-info → hiddifypanel-10.16.0.dev3.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|