hiddifypanel 10.50.0__py3-none-any.whl → 10.50.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
hiddifypanel/VERSION CHANGED
@@ -1 +1 @@
1
- 10.50.0
1
+ 10.50.2
hiddifypanel/VERSION.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__='10.50.0'
1
+ __version__='10.50.2'
2
2
  from datetime import datetime
3
3
  __release_date__= datetime.strptime('2024-07-14','%Y-%m-%d')
@@ -1,3 +1,5 @@
1
+ from collections import defaultdict
2
+ import ipaddress
1
3
  from flask import current_app, request, g
2
4
  import glob
3
5
  import random
@@ -173,7 +175,7 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
173
175
  allp = []
174
176
  allphttp = [p for p in request.args.get("phttp", "").split(',') if p]
175
177
  allptls = [p for p in request.args.get("ptls", "").split(',') if p]
176
- added_ip = {}
178
+ added_ip = defaultdict(set)
177
179
  configsmap = {}
178
180
  proxeismap = {}
179
181
  for domain in domains:
@@ -181,10 +183,9 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
181
183
  configsmap[domain.child_id] = get_hconfigs(domain.child_id)
182
184
  proxeismap[domain.child_id] = get_proxies(domain.child_id, only_enabled=True)
183
185
  hconfigs = configsmap[domain.child_id]
184
-
185
- ip = hutils.network.get_domain_ip(domain.domain, version=4)
186
- ip6 = hutils.network.get_domain_ip(domain.domain, version=6)
187
- ips = [x for x in [ip, ip6] if x is not None]
186
+ ips = domain.get_cdn_ips_parsed()
187
+ if not ips:
188
+ ips = hutils.network.get_domain_ips(domain.domain)
188
189
  for proxy in proxeismap[domain.child_id]:
189
190
  noDomainProxies = False
190
191
  if proxy.proto in [ProxyProto.ssh, ProxyProto.wireguard]:
@@ -193,18 +194,17 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
193
194
  noDomainProxies = True
194
195
  options = []
195
196
  key = f'{proxy.proto}{proxy.transport}{proxy.cdn}{proxy.l3}'
196
- if key not in added_ip:
197
- added_ip[key] = {}
197
+
198
198
  if proxy.proto in [ProxyProto.ssh, ProxyProto.tuic, ProxyProto.hysteria2, ProxyProto.wireguard, ProxyProto.ss]:
199
199
  if noDomainProxies and all([x in added_ip[key] for x in ips]):
200
200
  continue
201
201
 
202
202
  for x in ips:
203
- added_ip[key][x] = 1
203
+ added_ip[key].add(x)
204
204
 
205
205
  if proxy.proto in [ProxyProto.ssh, ProxyProto.wireguard, ProxyProto.ss]:
206
- if domain.mode == 'fake':
207
- continue
206
+ # if domain.mode == 'fake':
207
+ # continue
208
208
  if proxy.proto in [ProxyProto.ssh]:
209
209
  options = [{'pport': hconfigs[ConfigEnum.ssh_server_port]}]
210
210
  elif proxy.proto in [ProxyProto.wireguard]:
@@ -1,4 +1,6 @@
1
1
  from enum import auto
2
+ import ipaddress
3
+ import re
2
4
  from typing import Dict, List
3
5
  from flask import request
4
6
  from flask_babel import lazy_gettext as _
@@ -57,6 +59,16 @@ class Domain(db.Model, SerializerMixin):
57
59
  def __repr__(self):
58
60
  return f'{self.domain}'
59
61
 
62
+ def get_cdn_ips_parsed(self):
63
+ ips = re.split('[ \t\r\n;,]+', self.cdn_ip.strip())
64
+ res = set()
65
+ for ip in ips:
66
+ try:
67
+ res.add(ipaddress.ip_address(ip))
68
+ except:
69
+ pass
70
+ return res
71
+
60
72
  def to_dict(self, dump_ports=False, dump_child_id=False):
61
73
  data = {
62
74
  'domain': self.domain.lower(),
@@ -254,8 +254,9 @@ class DomainAdmin(AdminLTEModelView):
254
254
  raise ValidationError(_("Domain is not REALITY friendly!") + f' {d}')
255
255
 
256
256
  if not hutils.network.is_in_same_asn(d, server_ips[0]):
257
+ dip = next(iter(dips))
257
258
  server_asn = hutils.network.get_ip_asn(server_ips[0])
258
- domain_asn = hutils.network.get_ip_asn(dips[0]) # type: ignore
259
+ domain_asn = hutils.network.get_ip_asn(dip) # type: ignore
259
260
  msg = _("domain.reality.asn_issue") + \
260
261
  (f"<br> Server ASN={server_asn}<br>{d}_ASN={domain_asn}" if server_asn or domain_asn else "")
261
262
  hutils.flask.flash(msg, 'warning')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hiddifypanel
3
- Version: 10.50.0
3
+ Version: 10.50.2
4
4
  Summary: hiddifypanel multi proxy panel
5
5
  Home-page: https://github.com/hiddify/hiddify-manager/
6
6
  Author: hiddify
@@ -1,6 +1,6 @@
1
1
  hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
2
- hiddifypanel/VERSION,sha256=8ci2kApyyTEN0XchiYhaFwFbbaG6V0OT9MIlTM5Dzvs,8
3
- hiddifypanel/VERSION.py,sha256=l5r5zw1PhhdXrKVF1uCWUZ4d9JM96q2BI-IE-zI7GEU,113
2
+ hiddifypanel/VERSION,sha256=DUQBdAOuAKfJ37rMnpDFMV7J2msDNY7x1Dv50pMNn0g,8
3
+ hiddifypanel/VERSION.py,sha256=iZZ7yX2w_Q3Kd4KmcGadd8ZNYUoS7wvI3OEVwDkrVTk,113
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=Xq0UwiFTRFmQpxnOehQGwPDlJqoelwGhPQbYZ0Xn5c0,7850
@@ -37,7 +37,7 @@ hiddifypanel/hutils/node/parent.py,sha256=UbyfvfP4fTSn6HN9oZDjYsKYIejiqW6eApKIfP
37
37
  hiddifypanel/hutils/node/shared.py,sha256=FDSj3e-i3pb3mEv5vcUeX0Km1nxYg1CeAruIq7RwFmU,2540
38
38
  hiddifypanel/hutils/proxy/__init__.py,sha256=xXBa83kjYT_b-BNseEykfQYyJBQHTq1ZosfR8ZrQHkI,106
39
39
  hiddifypanel/hutils/proxy/clash.py,sha256=t57ywMo2TPpnAIuOn9v5gMD2os7zqS9b4NQtFX-Do5s,5813
40
- hiddifypanel/hutils/proxy/shared.py,sha256=O7lVTUlNo-kbI0P2DMG9ZdmPypsrm8eoWUJeGIGEK3A,21832
40
+ hiddifypanel/hutils/proxy/shared.py,sha256=3xyRNkwlUl91asHhCExcMNrjU5-qWvHI4dtji1exvSo,21766
41
41
  hiddifypanel/hutils/proxy/singbox.py,sha256=WBSsGF7QeNvDPg0SbfWitV2_CP6UQ0gcV5-Gpy4AlkY,10786
42
42
  hiddifypanel/hutils/proxy/xray.py,sha256=LFHjgQhebN4Kw1XzMDRk7F_K-2DSL93wkad12XijzBA,10694
43
43
  hiddifypanel/hutils/proxy/xrayjson.py,sha256=Ph1m_ZKINZ57XyWcnhp5mjASWL4ahj8ObVu3Kd7O8ZI,14452
@@ -47,7 +47,7 @@ hiddifypanel/models/base_account.py,sha256=TUGDGHt3q3GWqWBdWwqaZl75KXTt7bw6pxnzO
47
47
  hiddifypanel/models/child.py,sha256=ZFJaH-GWTKAGD0BGMH0iKEMipi37_cAk59OeJKt2IKA,3039
48
48
  hiddifypanel/models/config.py,sha256=-KKYqMkSEn2DabRxqBogSyA6xOU4ons6sa5CxxHAlAk,6373
49
49
  hiddifypanel/models/config_enum.py,sha256=KDDXdYfNKjY3SUvmmhAJqLQ5cshFAsQjtqgZ8jbrjo8,15364
50
- hiddifypanel/models/domain.py,sha256=szrSdqGZBZ4lS_D_K-XO8OUjU4ojKrxnYzXy5MgU2QA,8016
50
+ hiddifypanel/models/domain.py,sha256=0tAPHR6XukN35CoyOxR3zXDNjXR-w_Ezd89jxk2H-xc,8308
51
51
  hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
52
52
  hiddifypanel/models/proxy.py,sha256=9cm5Q0ZUEPeRDWdm1lQGom0SM_Q32NCDFTNFh36OzaQ,3304
53
53
  hiddifypanel/models/report.py,sha256=33h9k12SAEWkwZsc3-jUdIIpFL66cEOTHQqVXd07NWY,1001
@@ -71,7 +71,7 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=eUUe5b8bGPj2nZstKkwK3lhqBhM
71
71
  hiddifypanel/panel/admin/Backup.py,sha256=BKSoAZgw1j16P1Jh9vMqGj7ZfB2m-WafDK0C5vil5FY,3634
72
72
  hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
73
73
  hiddifypanel/panel/admin/Dashboard.py,sha256=JOqZLHxPOYKQYQVJ7AtHAkilH-anJZQyK1rQrgCJUeA,3798
74
- hiddifypanel/panel/admin/DomainAdmin.py,sha256=rAtLUgVHXarbqAsfskW-77oSpulWZ6bI4Gb0hHW79aU,15747
74
+ hiddifypanel/panel/admin/DomainAdmin.py,sha256=hORvsng-7m-r4bPS866g1AxI2eU1lmisrK5QD2p5py0,15790
75
75
  hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
76
76
  hiddifypanel/panel/admin/ProxyAdmin.py,sha256=jiay6e9Eyi_-VgWORBLgCAyzxLRYCAyJnlG7DtFaQIc,5243
77
77
  hiddifypanel/panel/admin/QuickSetup.py,sha256=EDa_ombxF3vWDsj7JEmDnw8Kf0bKwdXU-IdISDi2hj0,11448
@@ -822,24 +822,24 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
822
822
  hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
823
823
  hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
824
824
  hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
825
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=n3UAYfs9_LkwoRFy__ab9Fgsw4wMzUNPhz0jkn1MkDI,75756
825
+ hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=xKjzGhSJO71URpFNxD0DBW0BPXJLUPl-BYa7zrIjrmI,75756
826
826
  hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=96O8XWX3UEb8OCw0WL9cGTOkzyU51UupXSKt4dBMs14,78920
827
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=g_66PYmqTLxcNJXZtnYIQEf5WI4YVB5gMdhbtYzSPvM,96092
827
+ hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=oA9Ptn17rDCOuGi24lY3_MIUVr2fYYhHOYkMkcWbr2I,96092
828
828
  hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=JdZQhrLwzFDngs0Wu3qDJaCxSoh7UJn09zwPTMKupyg,101469
829
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=cUhiqn7a-VLvjcQa9s8tLvTQ0hovpnPsSssW4jMzbR8,58649
829
+ hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=4qHrNodkt-6_zgGyRV3kuTeUc8FDwQmQCF9myyJdNoM,58649
830
830
  hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=tEWo_g0gJAm1wlmRWfV7rKjt1w87GglPwv504K7hPyI,69401
831
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=gsCtaOl6s4zJlleYpEmOl87Rquw9qVWtxb4ItImDrgo,97620
831
+ hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=49qGdceJuJmi4yKqXIdyfeogPP46YDF6kkj8r6sue1Y,97620
832
832
  hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=7gdyumMtKwmL2KtbdE6aVSZ31N5VM51GuyHhS__41ds,104624
833
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=9VCLGnY5usqoz-zspdqo6RFZkIf_hNd0OdOnij2e0Po,58966
833
+ hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=JJrIIN5TceGYRpwEVXI1uB-cFWUGm4Ni28SCm2QDzWU,58966
834
834
  hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=8aP7TqaDZjDEHwiL0t8_eu5yP5PH8OrgouOND9ExH88,68629
835
835
  hiddifypanel/translations.i18n/en.json,sha256=IukyU5kkY_FRkFx_xT1APP7A5PASazjFOzMzDg5aZy0,68563
836
836
  hiddifypanel/translations.i18n/fa.json,sha256=ebTs9S5L4F_rFYfQxuJ8pMr6fz2PG8i8fkl4Soyxhzc,91103
837
837
  hiddifypanel/translations.i18n/pt.json,sha256=YQseQvgHDlCy3HHVJo-yAvepMl_y-zCU0qPLARybDmA,59407
838
838
  hiddifypanel/translations.i18n/ru.json,sha256=dCp5BI_15WoiMpV2u9_6M6feS_yL_lf22gXeyMqJDB4,94231
839
839
  hiddifypanel/translations.i18n/zh.json,sha256=8iFoOhmXeoPJHWop7Fa8FMs1Ix-5jvn09gq8N9w1iUs,58875
840
- hiddifypanel-10.50.0.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
841
- hiddifypanel-10.50.0.dist-info/METADATA,sha256=FxcAZhcv6WruvqO6rgKnibbQuyjALo2ygm7zwNkDz20,4039
842
- hiddifypanel-10.50.0.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
843
- hiddifypanel-10.50.0.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
844
- hiddifypanel-10.50.0.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
845
- hiddifypanel-10.50.0.dist-info/RECORD,,
840
+ hiddifypanel-10.50.2.dist-info/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
841
+ hiddifypanel-10.50.2.dist-info/METADATA,sha256=PjgN7NVbTyxamXLihAR41ABhBBQxahWSY5pY8Q7h6pk,4039
842
+ hiddifypanel-10.50.2.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
843
+ hiddifypanel-10.50.2.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
844
+ hiddifypanel-10.50.2.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
845
+ hiddifypanel-10.50.2.dist-info/RECORD,,