hiddifypanel 7.1.9__py3-none-any.whl → 8.0.0.dev0__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/base.py +18 -15
- hiddifypanel/cache.py +11 -0
- hiddifypanel/drivers/abstract_driver.py +5 -0
- hiddifypanel/drivers/singbox_api.py +52 -0
- hiddifypanel/drivers/ssh_liberty_bridge_api.py +53 -0
- hiddifypanel/drivers/user_driver.py +30 -0
- hiddifypanel/drivers/xray_api.py +113 -0
- hiddifypanel/models/config.py +3 -1
- hiddifypanel/models/config_enum.py +7 -1
- hiddifypanel/models/proxy.py +3 -0
- hiddifypanel/models/user.py +3 -0
- hiddifypanel/panel/admin/UserAdmin.py +6 -6
- hiddifypanel/panel/commercial/restapi/resources.py +2 -2
- hiddifypanel/panel/custom_widgets.py +10 -10
- hiddifypanel/panel/hiddify.py +23 -1
- hiddifypanel/panel/init_db.py +27 -1
- hiddifypanel/panel/usage.py +6 -17
- hiddifypanel/panel/user/link_maker.py +1 -1
- hiddifypanel/panel/user/templates/home/all-configs.html +104 -91
- hiddifypanel/panel/user/templates/singbox_config.json +110 -0
- hiddifypanel/panel/user/user.py +32 -26
- hiddifypanel/templates/fake.html +4 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +72 -18
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +62 -18
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po +62 -18
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po +62 -18
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/METADATA +3 -1
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/RECORD +38 -33
- hiddifypanel/singbox_api.py +0 -55
- hiddifypanel/xray_api.py +0 -115
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/LICENSE.md +0 -0
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/WHEEL +0 -0
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-7.1.9.dist-info → hiddifypanel-8.0.0.dev0.dist-info}/top_level.txt +0 -0
@@ -1,97 +1,110 @@
|
|
1
1
|
{{_("user.home.tool.all-configs")}}
|
2
2
|
|
3
3
|
<div class="col">
|
4
|
-
<table id="all-links" class="table table-bordered table-striped dt-responsive nowrap" style="width:100%">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
4
|
+
<table id="all-links" class="table table-bordered table-striped dt-responsive nowrap" style="width:100%">
|
5
|
+
<thead>
|
6
|
+
<tr>
|
7
|
+
<th>{{_('user.home.allconfig.name')}}</th>
|
8
|
+
<th>{{_('user.home.allconfig.type')}}</th>
|
9
|
+
<th>{{_('Domain')}}</th>
|
10
|
+
<th>{{_('user.home.allconfig.protocol')}}</th>
|
11
|
+
<th>{{_('user.home.allconfig.transport')}}</th>
|
12
|
+
<th>{{_('user.home.allconfig.security')}}</th>
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
<tr>
|
57
|
-
<td>
|
58
|
-
<div class="btn-group">
|
59
|
-
<a href="https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/all.txt?name=new_link_{{db_domain.alias or db_domain.domain}}-{{asn}}-{{mode}}&asn={{asn}}&mode={{mode}}&base64=True"
|
60
|
-
class="btn btn-light orig-link"> {{_('user.home.allconfig.link-configs')}} b64</a>
|
61
|
-
</div>
|
62
|
-
</td>
|
63
|
-
<td><span class="badge badge-danger">{{_('all')}}</span></td>
|
64
|
-
<td><span class="badge ">{{_('all')}}</span></td>
|
65
|
-
<td><span class="badge badge-info">{{_('all')}}</span></td>
|
66
|
-
<td><span class="badge badge-warning">{{_('all')}}</span></td>
|
67
|
-
<td><span class="badge badge-success">{{_('all')}}</span></td>
|
68
|
-
</tr>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<tr>
|
18
|
+
<td>
|
19
|
+
<div class="btn-group">
|
20
|
+
<a href="clashmeta://install-config?url=https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/clash/meta/all.yml&name=mnormal_{{db_domain.alias or db_domain.domain}}-{{asn}}-{{mode}}&asn={{asn}}&mode={{mode}}"
|
21
|
+
class="btn btn-light orig-link"> {{_('user.home.allconfig.hiddify-configs')}}</a>
|
22
|
+
</div>
|
23
|
+
</td>
|
24
|
+
<td><span class="badge badge-danger">{{_('all')}}</span></td>
|
25
|
+
<td><span class="badge ">{{_('all')}}</span></td>
|
26
|
+
<td><span class="badge badge-info">{{_('all')}}</span></td>
|
27
|
+
<td><span class="badge badge-warning">{{_('all')}}</span></td>
|
28
|
+
<td><span class="badge badge-success">{{_('all')}}</span></td>
|
29
|
+
</tr>
|
30
|
+
<tr>
|
31
|
+
<td>
|
32
|
+
<div class="btn-group">
|
33
|
+
<a href="clash://install-config?url=https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/clash/all.yml&name=new_normal_{{db_domain.alias or db_domain.domain}}-{{asn}}-{{mode}}&asn={{asn}}&mode={{mode}}"
|
34
|
+
class="btn btn-light orig-link"> {{_('user.home.allconfig.clash-configs')}}</a>
|
35
|
+
</div>
|
36
|
+
</td>
|
37
|
+
<td><span class="badge badge-danger">{{_('all')}}</span></td>
|
38
|
+
<td><span class="badge ">{{_('all')}}</span></td>
|
39
|
+
<td><span class="badge badge-info">{{_('user.home.allconfigs.expect_vless')}}</span></td>
|
40
|
+
<td><span class="badge badge-warning">{{_('all')}}</span></td>
|
41
|
+
<td><span class="badge badge-success">{{_('all')}}</span></td>
|
42
|
+
</tr>
|
43
|
+
<tr>
|
44
|
+
<td>
|
45
|
+
<div class="btn-group">
|
46
|
+
<a href="https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/all.txt?name={{db_domain.alias or db_domain.domain}}-{{asn}}&asn={{asn}}&mode={{mode}}"
|
47
|
+
class="btn btn-light orig-link"> {{_('user.home.allconfig.link-configs')}}</a>
|
48
|
+
</div>
|
49
|
+
</td>
|
50
|
+
<td><span class="badge badge-danger">{{_('all')}}</span></td>
|
51
|
+
<td><span class="badge ">{{_('all')}}</span></td>
|
52
|
+
<td><span class="badge badge-info">{{_('all')}}</span></td>
|
53
|
+
<td><span class="badge badge-warning">{{_('all')}}</span></td>
|
54
|
+
<td><span class="badge badge-success">{{_('all')}}</span></td>
|
55
|
+
</tr>
|
69
56
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
<
|
81
|
-
|
82
|
-
</
|
83
|
-
<
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
57
|
+
<tr>
|
58
|
+
<td>
|
59
|
+
<div class="btn-group">
|
60
|
+
<a href="https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/singbox.json?name={{db_domain.alias or db_domain.domain}}-{{asn}}&asn={{asn}}&mode={{mode}}"
|
61
|
+
class="btn btn-light orig-link"> {{_('singbox: ssh')}}</a>
|
62
|
+
</div>
|
63
|
+
</td>
|
64
|
+
<td><span class="badge badge-danger">{{_('ssh')}}</span></td>
|
65
|
+
<td><span class="badge ">{{_('ssh')}}</span></td>
|
66
|
+
<td><span class="badge badge-info">{{_('ssh')}}</span></td>
|
67
|
+
<td><span class="badge badge-warning">{{_('ssh')}}</span></td>
|
68
|
+
<td><span class="badge badge-success">{{_('ssh')}}</span></td>
|
69
|
+
</tr>
|
70
|
+
<tr>
|
71
|
+
<td>
|
72
|
+
<div class="btn-group">
|
73
|
+
<a href="https://{{domain}}/{{hconfigs[ConfigEnum.proxy_path]}}/{{user.uuid}}/all.txt?name=new_link_{{db_domain.alias or db_domain.domain}}-{{asn}}-{{mode}}&asn={{asn}}&mode={{mode}}&base64=True"
|
74
|
+
class="btn btn-light orig-link"> {{_('user.home.allconfig.link-configs')}} b64</a>
|
75
|
+
</div>
|
76
|
+
</td>
|
77
|
+
<td><span class="badge badge-danger">{{_('all')}}</span></td>
|
78
|
+
<td><span class="badge ">{{_('all')}}</span></td>
|
79
|
+
<td><span class="badge badge-info">{{_('all')}}</span></td>
|
80
|
+
<td><span class="badge badge-warning">{{_('all')}}</span></td>
|
81
|
+
<td><span class="badge badge-success">{{_('all')}}</span></td>
|
82
|
+
</tr>
|
83
|
+
|
84
|
+
%for d in domains
|
85
|
+
%for t in (['http','tls'] if hconfig(ConfigEnum.http_proxy_enable,d.child_id) else ['tls'])
|
86
|
+
%for port in hconfig(ConfigEnum.http_ports if t=='http' else ConfigEnum.tls_ports,d.child_id).split(',')
|
87
|
+
%set phttp=port if t=='http' else None
|
88
|
+
%set ptls=port if t=='tls' else None
|
89
|
+
% for type in link_maker.all_proxies(d.child_id)
|
90
|
+
% set pinfo=link_maker.make_proxy(type,d,phttp=phttp,ptls=ptls)
|
91
|
+
% if 'msg' not in pinfo
|
92
|
+
<tr>
|
93
|
+
<td>
|
94
|
+
<div class="btn-group"><a href='{{link_maker.to_link(pinfo)}}' class="btn btn-light orig-link">{{pinfo["name"].replace("_", " ")}}</a></div>
|
95
|
+
</td>
|
96
|
+
<td><span class="badge badge-danger"> {% if d.has_auto_ip %}Auto {%endif%}{{pinfo["mode"]}}</span></td>
|
97
|
+
<td><span class="badge ltr">{{d.domain}}</span></td>
|
98
|
+
<td><span class="badge badge-info">{{pinfo["proto"]}}</span></td>
|
99
|
+
<td><span class="badge badge-warning">{{pinfo['transport']}}</span></td>
|
100
|
+
<td><span class="badge badge-success">{{pinfo['l3']}}</span></td>
|
101
|
+
</tr>
|
102
|
+
|
103
|
+
%endif
|
104
|
+
% endfor
|
105
|
+
% endfor
|
106
|
+
% endfor
|
107
|
+
% endfor
|
108
|
+
</tbody>
|
109
|
+
</table>
|
97
110
|
</div>
|
@@ -0,0 +1,110 @@
|
|
1
|
+
{
|
2
|
+
"log": {
|
3
|
+
"disabled": false,
|
4
|
+
"level": "warn",
|
5
|
+
"timestamp": false
|
6
|
+
},
|
7
|
+
"dns": {
|
8
|
+
"servers": [
|
9
|
+
{
|
10
|
+
"tag": "global",
|
11
|
+
"address": "8.8.8.8",
|
12
|
+
"strategy": "prefer_ipv4",
|
13
|
+
"detour": "ssh-out"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"tag": "global",
|
17
|
+
"address": "https://1.1.1.1/dns-query",
|
18
|
+
"address_resolver": "local",
|
19
|
+
"strategy": "prefer_ipv4",
|
20
|
+
"detour": "ssh-out"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"tag": "local",
|
24
|
+
"address": "8.8.8.8",
|
25
|
+
"strategy": "prefer_ipv4",
|
26
|
+
"detour": "direct-out"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"tag": "block",
|
30
|
+
"address": "rcode://success"
|
31
|
+
}
|
32
|
+
],
|
33
|
+
"rules": [
|
34
|
+
{
|
35
|
+
"domain_suffix": [
|
36
|
+
".ir",
|
37
|
+
".edu",
|
38
|
+
".cn",
|
39
|
+
"microsoft.com",
|
40
|
+
"bale.ai",
|
41
|
+
"eitaa.com",
|
42
|
+
"google.com"
|
43
|
+
],
|
44
|
+
"server": "local"
|
45
|
+
}
|
46
|
+
],
|
47
|
+
"final": "global"
|
48
|
+
},
|
49
|
+
"inbounds": [
|
50
|
+
{
|
51
|
+
"type": "tun",
|
52
|
+
"tag": "tun-in",
|
53
|
+
"inet4_address": "172.43.0.1/30",
|
54
|
+
"inet6_address": "fdfe:dcba:9876::1/126",
|
55
|
+
"mtu": 9000,
|
56
|
+
"endpoint_independent_nat": true,
|
57
|
+
"auto_route": true,
|
58
|
+
"strict_route": true,
|
59
|
+
"stack": "system",
|
60
|
+
"sniff": true,
|
61
|
+
"domain_strategy": "prefer_ipv6",
|
62
|
+
"sniff_override_destination": true
|
63
|
+
}
|
64
|
+
],
|
65
|
+
"outbounds": [
|
66
|
+
{
|
67
|
+
"type": "ssh",
|
68
|
+
"tag": "ssh-out",
|
69
|
+
"server": "$server_addr",
|
70
|
+
"server_port": {{hconfigs[ConfigEnum.ssh_server_port]}},
|
71
|
+
"user": "{{user.uuid}}",
|
72
|
+
"private_key": "{{user.ed25519_private_key}}",
|
73
|
+
"host_key": {{host_keys}},
|
74
|
+
"client_version": "{{ssh_client_version}}"
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"type": "direct",
|
78
|
+
"tag": "direct-out"
|
79
|
+
},
|
80
|
+
{
|
81
|
+
"type": "dns",
|
82
|
+
"tag": "dns-out"
|
83
|
+
}
|
84
|
+
],
|
85
|
+
"route": {
|
86
|
+
"rules": [
|
87
|
+
{
|
88
|
+
"domain_suffix": [
|
89
|
+
".ir",
|
90
|
+
".edu",
|
91
|
+
".cn",
|
92
|
+
"microsoft.com",
|
93
|
+
"bale.ai",
|
94
|
+
"eitaa.com",
|
95
|
+
"google.com"
|
96
|
+
],
|
97
|
+
"outbound": "direct-out"
|
98
|
+
},
|
99
|
+
{
|
100
|
+
"protocol": "dns",
|
101
|
+
"outbound": "dns-out"
|
102
|
+
},
|
103
|
+
{
|
104
|
+
"inbound": ["tun-in"],
|
105
|
+
"outbound": "ssh-out"
|
106
|
+
}
|
107
|
+
],
|
108
|
+
"auto_detect_interface": true
|
109
|
+
}
|
110
|
+
}
|
hiddifypanel/panel/user/user.py
CHANGED
@@ -71,18 +71,19 @@ class UserView(FlaskView):
|
|
71
71
|
resp = Response("")
|
72
72
|
else:
|
73
73
|
resp = Response(render_template('clash_config.yml', typ=typ, meta_or_normal=meta_or_normal, **c, hash=hash_rnd))
|
74
|
-
|
75
|
-
resp
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
if
|
83
|
-
|
84
|
-
|
85
|
-
|
74
|
+
|
75
|
+
return add_headers(resp, c)
|
76
|
+
|
77
|
+
@route('/singbox.json', methods=["GET", "HEAD"])
|
78
|
+
def singbox(self):
|
79
|
+
mode = "new" # request.args.get("mode")
|
80
|
+
c = get_common_data(g.user_uuid, mode)
|
81
|
+
# response.content_type = 'text/plain';
|
82
|
+
if request.method == 'HEAD':
|
83
|
+
resp = ""
|
84
|
+
else:
|
85
|
+
resp = render_template('singbox_config.json', **c, host_keys=hiddify.get_hostkeys(True), ssh_client_version=hiddify.get_ssh_client_version(user), base64=False)
|
86
|
+
return add_headers(resp, c)
|
86
87
|
|
87
88
|
@route('/all.txt', methods=["GET", "HEAD"])
|
88
89
|
def all_configs(self):
|
@@ -102,20 +103,7 @@ class UserView(FlaskView):
|
|
102
103
|
res += line+"\n"
|
103
104
|
if base64:
|
104
105
|
res = do_base_64(res)
|
105
|
-
|
106
|
-
resp.mimetype = "text/plain"
|
107
|
-
resp.headers['Subscription-Userinfo'] = f"upload=0;download={c['usage_current_b']};total={c['usage_limit_b']};expire={c['expire_s']}"
|
108
|
-
resp.headers['profile-web-page-url'] = request.base_url.split("all.txt")[0].replace("http://", "https://")
|
109
|
-
if hconfig(ConfigEnum.branding_site):
|
110
|
-
resp.headers['support-url'] = hconfig(ConfigEnum.branding_site)
|
111
|
-
resp.headers['profile-update-interval'] = 1
|
112
|
-
# resp.headers['content-disposition']=f'attachment; filename="{c["db_domain"].alias or c["db_domain"].domain} {c["user"].name}"'
|
113
|
-
profile_title = f'{c["db_domain"].alias or c["db_domain"].domain} {c["user"].name}'
|
114
|
-
if c['has_auto_cdn']:
|
115
|
-
profile_title += f" {c['asn']}"
|
116
|
-
resp.headers['profile-title'] = 'base64:'+do_base_64(profile_title)
|
117
|
-
|
118
|
-
return resp
|
106
|
+
return add_headers(res, c)
|
119
107
|
|
120
108
|
@route('/manifest.webmanifest')
|
121
109
|
def create_pwa_manifest(self):
|
@@ -259,3 +247,21 @@ def get_common_data(user_uuid, mode, no_domain=False, filter_domain=None):
|
|
259
247
|
"country": clean_ip.get_country(user_ip),
|
260
248
|
'has_auto_cdn': has_auto_cdn
|
261
249
|
}
|
250
|
+
|
251
|
+
|
252
|
+
def add_headers(res, c):
|
253
|
+
resp = Response(res)
|
254
|
+
resp.mimetype = "text/plain"
|
255
|
+
resp.headers['Subscription-Userinfo'] = f"upload=0;download={c['usage_current_b']};total={c['usage_limit_b']};expire={c['expire_s']}"
|
256
|
+
resp.headers['profile-web-page-url'] = request.base_url.rsplit('/', 1)[0].replace("http://", "https://")+"/"
|
257
|
+
|
258
|
+
if hconfig(ConfigEnum.branding_site):
|
259
|
+
resp.headers['support-url'] = hconfig(ConfigEnum.branding_site)
|
260
|
+
resp.headers['profile-update-interval'] = 1
|
261
|
+
# resp.headers['content-disposition']=f'attachment; filename="{c["db_domain"].alias or c["db_domain"].domain} {c["user"].name}"'
|
262
|
+
profile_title = f'{c["db_domain"].alias or c["db_domain"].domain} {c["user"].name}'
|
263
|
+
if c['has_auto_cdn']:
|
264
|
+
profile_title += f" {c['asn']}"
|
265
|
+
resp.headers['profile-title'] = 'base64:'+do_base_64(profile_title)
|
266
|
+
|
267
|
+
return resp
|
hiddifypanel/templates/fake.html
CHANGED
@@ -0,0 +1,4 @@
|
|
1
|
+
{{_("config.first_setup.label")}}{{_("config.first_setup.description")}}{{_("config.core_type.label")}}{{_("config.core_type.description")}}{{_("config.warp_enable.label")}}{{_("config.warp_enable.description")}}{{_("config.warp_mode.label")}}{{_("config.warp_mode.description")}}{{_("config.warp_plus_code.label")}}{{_("config.warp_plus_code.description")}}{{_("config.dns_server.label")}}{{_("config.dns_server.description")}}{{_("config.reality_fallback_domain.label")}}{{_("config.reality_fallback_domain.description")}}{{_("config.reality_server_names.label")}}{{_("config.reality_server_names.description")}}{{_("config.reality_short_ids.label")}}{{_("config.reality_short_ids.description")}}{{_("config.reality_private_key.label")}}{{_("config.reality_private_key.description")}}{{_("config.reality_public_key.label")}}{{_("config.reality_public_key.description")}}{{_("config.restls1_2_domain.label")}}{{_("config.restls1_2_domain.description")}}{{_("config.restls1_3_domain.label")}}{{_("config.restls1_3_domain.description")}}{{_("config.show_usage_in_sublink.label")}}{{_("config.show_usage_in_sublink.description")}}{{_("config.cloudflare.label")}}{{_("config.cloudflare.description")}}{{_("config.license.label")}}{{_("config.license.description")}}{{_("config.country.label")}}{{_("config.country.description")}}{{_("config.package_mode.label")}}{{_("config.package_mode.description")}}{{_("config.utls.label")}}{{_("config.utls.description")}}{{_("config.telegram_bot_token.label")}}{{_("config.telegram_bot_token.description")}}{{_("config.is_parent.label")}}{{_("config.is_parent.description")}}{{_("config.parent_panel.label")}}{{_("config.parent_panel.description")}}{{_("config.unique_id.label")}}{{_("config.unique_id.description")}}{{_("config.last_hash.label")}}{{_("config.last_hash.description")}}{{_("config.cdn_forced_host.label")}}{{_("config.cdn_forced_host.description")}}{{_("config.lang.label")}}{{_("config.lang.description")}}{{_("config.admin_lang.label")}}{{_("config.admin_lang.description")}}{{_("config.admin_secret.label")}}{{_("config.admin_secret.description")}}{{_("config.tls_ports.label")}}{{_("config.tls_ports.description")}}{{_("config.http_ports.label")}}{{_("config.http_ports.description")}}{{_("config.kcp_ports.label")}}{{_("config.kcp_ports.description")}}{{_("config.kcp_enable.label")}}{{_("config.kcp_enable.description")}}{{_("config.decoy_domain.label")}}{{_("config.decoy_domain.description")}}{{_("config.proxy_path.label")}}{{_("config.proxy_path.description")}}{{_("config.firewall.label")}}{{_("config.firewall.description")}}{{_("config.netdata.label")}}{{_("config.netdata.description")}}{{_("config.http_proxy_enable.label")}}{{_("config.http_proxy_enable.description")}}{{_("config.block_iran_sites.label")}}{{_("config.block_iran_sites.description")}}{{_("config.allow_invalid_sni.label")}}{{_("config.allow_invalid_sni.description")}}{{_("config.auto_update.label")}}{{_("config.auto_update.description")}}{{_("config.speed_test.label")}}{{_("config.speed_test.description")}}{{_("config.only_ipv4.label")}}{{_("config.only_ipv4.description")}}{{_("config.shared_secret.label")}}{{_("config.shared_secret.description")}}{{_("config.telegram_enable.label")}}{{_("config.telegram_enable.description")}}{{_("config.telegram_adtag.label")}}{{_("config.telegram_adtag.description")}}{{_("config.telegram_lib.label")}}{{_("config.telegram_lib.description")}}{{_("config.telegram_fakedomain.label")}}{{_("config.telegram_fakedomain.description")}}{{_("config.v2ray_enable.label")}}{{_("config.v2ray_enable.description")}}{{_("config.torrent_block.label")}}{{_("config.torrent_block.description")}}{{_("config.ssfaketls_enable.label")}}{{_("config.ssfaketls_enable.description")}}{{_("config.ssfaketls_fakedomain.label")}}{{_("config.ssfaketls_fakedomain.description")}}{{_("config.shadowtls_enable.label")}}{{_("config.shadowtls_enable.description")}}{{_("config.shadowtls_fakedomain.label")}}{{_("config.shadowtls_fakedomain.description")}}{{_("config.tuic_enable.label")}}{{_("config.tuic_enable.description")}}{{_("config.tuic_port.label")}}{{_("config.tuic_port.description")}}{{_("config.ssr_enable.label")}}{{_("config.ssr_enable.description")}}{{_("config.ssr_fakedomain.label")}}{{_("config.ssr_fakedomain.description")}}{{_("config.vmess_enable.label")}}{{_("config.vmess_enable.description")}}{{_("config.domain_fronting_domain.label")}}{{_("config.domain_fronting_domain.description")}}{{_("config.domain_fronting_http_enable.label")}}{{_("config.domain_fronting_http_enable.description")}}{{_("config.domain_fronting_tls_enable.label")}}{{_("config.domain_fronting_tls_enable.description")}}{{_("config.db_version.label")}}{{_("config.db_version.description")}}{{_("config.branding_title.label")}}{{_("config.branding_title.description")}}{{_("config.branding_site.label")}}{{_("config.branding_site.description")}}{{_("config.branding_freetext.label")}}{{_("config.branding_freetext.description")}}{{_("config.not_found.label")}}{{_("config.not_found.description")}}{{_("config.path_vmess.label")}}{{_("config.path_vmess.description")}}{{_("config.path_vless.label")}}{{_("config.path_vless.description")}}{{_("config.path_trojan.label")}}{{_("config.path_trojan.description")}}{{_("config.path_v2ray.label")}}{{_("config.path_v2ray.description")}}{{_("config.path_ss.label")}}{{_("config.path_ss.description")}}{{_("config.path_ws.label")}}{{_("config.path_ws.description")}}{{_("config.path_tcp.label")}}{{_("config.path_tcp.description")}}{{_("config.path_grpc.label")}}{{_("config.path_grpc.description")}}
|
2
|
+
{{_("config.admin.label")}}{{_("config.admin.description")}}{{_("config.branding.label")}}{{_("config.branding.description")}}{{_("config.general.label")}}{{_("config.general.description")}}{{_("config.proxies.label")}}{{_("config.proxies.description")}}{{_("config.domain_fronting.label")}}{{_("config.domain_fronting.description")}}{{_("config.telegram.label")}}{{_("config.telegram.description")}}{{_("config.http.label")}}{{_("config.http.description")}}{{_("config.tls.label")}}{{_("config.tls.description")}}{{_("config.ssfaketls.label")}}{{_("config.ssfaketls.description")}}{{_("config.shadowtls.label")}}{{_("config.shadowtls.description")}}{{_("config.restls.label")}}{{_("config.restls.description")}}{{_("config.tuic.label")}}{{_("config.tuic.description")}}{{_("config.ssr.label")}}{{_("config.ssr.description")}}{{_("config.kcp.label")}}{{_("config.kcp.description")}}{{_("config.hidden.label")}}{{_("config.hidden.description")}}{{_("config.advanced.label")}}{{_("config.advanced.description")}}{{_("config.too_advanced.label")}}{{_("config.too_advanced.description")}}{{_("config.warp.label")}}{{_("config.warp.description")}}{{_("config.reality.label")}}{{_("config.reality.description")}}
|
3
|
+
{{_("direct")}}{{_("sub_link_only")}}{{_("cdn")}}{{_("auto_cdn_ip")}}{{_("relay")}}{{_("reality")}}{{_("old_xtls_direct")}}{{_("worker")}}{{_("fake")}}
|
4
|
+
{{_("no_reset")}}{{_("monthly")}}{{_("weekly")}}{{_("daily")}}
|
Binary file
|
@@ -3,8 +3,8 @@ msgid ""
|
|
3
3
|
msgstr ""
|
4
4
|
"Project-Id-Version: HiddifyPanel\n"
|
5
5
|
"Report-Msgid-Bugs-To: \n"
|
6
|
-
"POT-Creation-Date: 2023-
|
7
|
-
"PO-Revision-Date: 2023-07-30 09:
|
6
|
+
"POT-Creation-Date: 2023-08-03 10:13+0200\n"
|
7
|
+
"PO-Revision-Date: 2023-07-30 09:43-0500\n"
|
8
8
|
"Last-Translator: hidden u\n"
|
9
9
|
"Language-Team: English (USA)\n"
|
10
10
|
"Language: en_US\n"
|
@@ -15,7 +15,7 @@ msgstr ""
|
|
15
15
|
"Generated-By: Babel 2.12.1\n"
|
16
16
|
|
17
17
|
# | msgid "This Domain does not exist in the Panel !"
|
18
|
-
#: hiddifypanel/models/domain.py:134 hiddifypanel/panel/user/user.py:
|
18
|
+
#: hiddifypanel/models/domain.py:134 hiddifypanel/panel/user/user.py:165
|
19
19
|
msgid "This domain does not exist in the panel!"
|
20
20
|
msgstr "This Domain does not exist in the Panel !"
|
21
21
|
|
@@ -24,27 +24,27 @@ msgstr "This Domain does not exist in the Panel !"
|
|
24
24
|
msgid "Error! auto cdn ip can not be find, please contact admin."
|
25
25
|
msgstr "Error In Auto CDN IP! It Can Not Be Find, Please Contact Admin"
|
26
26
|
|
27
|
-
#: hiddifypanel/panel/hiddify.py:
|
27
|
+
#: hiddifypanel/panel/hiddify.py:78
|
28
28
|
#, fuzzy
|
29
29
|
msgid "Access Denied"
|
30
30
|
msgstr "Access Denied"
|
31
31
|
|
32
32
|
# | msgid "Apply Configs"
|
33
|
-
#: hiddifypanel/panel/hiddify.py:
|
33
|
+
#: hiddifypanel/panel/hiddify.py:223
|
34
34
|
msgid "admin.config.apply_configs"
|
35
35
|
msgstr "Apply Configs"
|
36
36
|
|
37
37
|
# | msgid ""
|
38
38
|
# | "Configs have been changed successfully. Click %(link)s to apply the "
|
39
39
|
# | "configs. It may take 2 minutes to apply"
|
40
|
-
#: hiddifypanel/panel/hiddify.py:
|
40
|
+
#: hiddifypanel/panel/hiddify.py:224
|
41
41
|
msgid "config.validation-success"
|
42
42
|
msgstr ""
|
43
43
|
"Configs have been changed successfully. Click %(link)s to apply the configs."
|
44
44
|
" It may take 2 minutes to apply"
|
45
45
|
|
46
46
|
# | msgid " ✅ Configs have been changed successfully"
|
47
|
-
#: hiddifypanel/panel/hiddify.py:
|
47
|
+
#: hiddifypanel/panel/hiddify.py:226
|
48
48
|
msgid "config.validation-success-no-reset"
|
49
49
|
msgstr " ✅ Configs have been changed successfully"
|
50
50
|
|
@@ -57,14 +57,14 @@ msgstr " ✅ Configs have been changed successfully"
|
|
57
57
|
#: hiddifypanel/panel/admin/DomainAdmin.py:179
|
58
58
|
#: hiddifypanel/panel/admin/QuickSetup.py:126
|
59
59
|
#: hiddifypanel/panel/commercial/ParentDomainAdmin.py:107
|
60
|
-
#: hiddifypanel/panel/hiddify.py:
|
60
|
+
#: hiddifypanel/panel/hiddify.py:345
|
61
61
|
msgid "Domain can not be resolved! there is a problem in your domain"
|
62
62
|
msgstr ""
|
63
63
|
"Domain can not be resolved! There is a problem in your domain. Please check "
|
64
64
|
"your Domain configurations."
|
65
65
|
|
66
66
|
# | msgid "Last Day"
|
67
|
-
#: hiddifypanel/panel/hiddify.py:
|
67
|
+
#: hiddifypanel/panel/hiddify.py:373
|
68
68
|
msgid "0 - Last day"
|
69
69
|
msgstr "Last Day"
|
70
70
|
|
@@ -72,7 +72,7 @@ msgstr "Last Day"
|
|
72
72
|
# | "Selected Domain for REALITY is not in the same ASN. To better use of the
|
73
73
|
# "
|
74
74
|
# | "Protocol, it is better to find a Domain in the same ASN"
|
75
|
-
#: hiddifypanel/panel/hiddify.py:
|
75
|
+
#: hiddifypanel/panel/hiddify.py:654
|
76
76
|
msgid ""
|
77
77
|
"selected domain for REALITY is not in the same ASN. To better use of the "
|
78
78
|
"protocol, it is better to find a domain in the same ASN."
|
@@ -81,12 +81,12 @@ msgstr ""
|
|
81
81
|
"Protocol, it is better to find a Domain in the same ASN"
|
82
82
|
|
83
83
|
# | msgid "User Activated"
|
84
|
-
#: hiddifypanel/panel/usage.py:
|
84
|
+
#: hiddifypanel/panel/usage.py:102
|
85
85
|
msgid "User activated!"
|
86
86
|
msgstr "User Activated"
|
87
87
|
|
88
88
|
# | msgid "Package Ended"
|
89
|
-
#: hiddifypanel/panel/usage.py:
|
89
|
+
#: hiddifypanel/panel/usage.py:102
|
90
90
|
msgid "Package ended!"
|
91
91
|
msgstr "Package Ended"
|
92
92
|
|
@@ -2738,11 +2738,11 @@ msgstr "Hiddify Configs"
|
|
2738
2738
|
#: hiddifypanel/panel/user/templates/home/all-configs.html:52
|
2739
2739
|
#: hiddifypanel/panel/user/templates/home/all-configs.html:53
|
2740
2740
|
#: hiddifypanel/panel/user/templates/home/all-configs.html:54
|
2741
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2742
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2743
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2744
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2745
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2741
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:77
|
2742
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:78
|
2743
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:79
|
2744
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:80
|
2745
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:81
|
2746
2746
|
#: hiddifypanel/panel/user/templates/home/all-configs_old.html:22
|
2747
2747
|
#: hiddifypanel/panel/user/templates/home/all-configs_old.html:23
|
2748
2748
|
#: hiddifypanel/panel/user/templates/home/all-configs_old.html:24
|
@@ -2771,13 +2771,27 @@ msgstr "Except VLess"
|
|
2771
2771
|
|
2772
2772
|
# | msgid "Subscription Link"
|
2773
2773
|
#: hiddifypanel/panel/user/templates/home/all-configs.html:47
|
2774
|
-
#: hiddifypanel/panel/user/templates/home/all-configs.html:
|
2774
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:74
|
2775
2775
|
#: hiddifypanel/panel/user/templates/home/all-configs_old.html:43
|
2776
2776
|
#: hiddifypanel/panel/user/templates/home/android.html:43
|
2777
2777
|
#: hiddifypanel/panel/user/templates/home/ios.html:29
|
2778
2778
|
msgid "user.home.allconfig.link-configs"
|
2779
2779
|
msgstr "Subscription Link"
|
2780
2780
|
|
2781
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:61
|
2782
|
+
#, fuzzy
|
2783
|
+
msgid "singbox: ssh"
|
2784
|
+
msgstr "singbox: ssh"
|
2785
|
+
|
2786
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:64
|
2787
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:65
|
2788
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:66
|
2789
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:67
|
2790
|
+
#: hiddifypanel/panel/user/templates/home/all-configs.html:68
|
2791
|
+
#, fuzzy
|
2792
|
+
msgid "ssh"
|
2793
|
+
msgstr "ssh"
|
2794
|
+
|
2781
2795
|
# | msgid ""
|
2782
2796
|
# | "📍 Please select one of the following applications:\n"
|
2783
2797
|
# | "<br />\n"
|
@@ -3786,6 +3800,36 @@ msgstr ""
|
|
3786
3800
|
"\n"
|
3787
3801
|
"Please contact us at <a href=\"mailto:info@hiddify.com\">info@hiddify.com</a> if you can help us."
|
3788
3802
|
|
3803
|
+
#: hiddifypanel/templates/fake.html:1
|
3804
|
+
#, fuzzy
|
3805
|
+
msgid "config.ssh_server_redis_url.label"
|
3806
|
+
msgstr "config.ssh_server_redis_url.label"
|
3807
|
+
|
3808
|
+
#: hiddifypanel/templates/fake.html:1
|
3809
|
+
#, fuzzy
|
3810
|
+
msgid "config.ssh_server_redis_url.description"
|
3811
|
+
msgstr "config.ssh_server_redis_url.description"
|
3812
|
+
|
3813
|
+
#: hiddifypanel/templates/fake.html:1
|
3814
|
+
#, fuzzy
|
3815
|
+
msgid "config.ssh_server_ports.label"
|
3816
|
+
msgstr "config.ssh_server_ports.label"
|
3817
|
+
|
3818
|
+
#: hiddifypanel/templates/fake.html:1
|
3819
|
+
#, fuzzy
|
3820
|
+
msgid "config.ssh_server_ports.description"
|
3821
|
+
msgstr "config.ssh_server_ports.description"
|
3822
|
+
|
3823
|
+
#: hiddifypanel/templates/fake.html:1
|
3824
|
+
#, fuzzy
|
3825
|
+
msgid "config.ssh_server_enable.label"
|
3826
|
+
msgstr "config.ssh_server_enable.label"
|
3827
|
+
|
3828
|
+
#: hiddifypanel/templates/fake.html:1
|
3829
|
+
#, fuzzy
|
3830
|
+
msgid "config.ssh_server_enable.description"
|
3831
|
+
msgstr "config.ssh_server_enable.description"
|
3832
|
+
|
3789
3833
|
# | msgid "🎛️ Core"
|
3790
3834
|
#: hiddifypanel/templates/fake.html:1
|
3791
3835
|
msgid "config.core_type.label"
|
@@ -3818,6 +3862,16 @@ msgstr ""
|
|
3818
3862
|
"🚧 Block Malware 1.1.1.2 <br>\n"
|
3819
3863
|
"🔞 Block Porn 1.1.1.3\n"
|
3820
3864
|
|
3865
|
+
#: hiddifypanel/templates/fake.html:2
|
3866
|
+
#, fuzzy
|
3867
|
+
msgid "config.ssh.label"
|
3868
|
+
msgstr "config.ssh.label"
|
3869
|
+
|
3870
|
+
#: hiddifypanel/templates/fake.html:2
|
3871
|
+
#, fuzzy
|
3872
|
+
msgid "config.ssh.description"
|
3873
|
+
msgstr "config.ssh.description"
|
3874
|
+
|
3821
3875
|
#: hiddifypanel/templates/fake.html:2
|
3822
3876
|
#, fuzzy
|
3823
3877
|
msgid "config.hidden.label"
|
Binary file
|