Get port from yggdrasil address

main
bashrc 2026-02-23 16:53:19 +00:00
parent eedf1b08f6
commit 035ad379dc
2 changed files with 16 additions and 4 deletions

View File

@ -67,6 +67,8 @@ from flags import is_right_to_left_text
from status import actor_status_expired
from status import get_actor_status
from unicodetext import uninvert_text
from utils import remove_domain_port
from utils import get_port_from_domain
from utils import is_yggdrasil_url
from utils import replace_strings
from utils import valid_content_warning
@ -9653,8 +9655,12 @@ def _test_yggdrasil_addresses() -> None:
assert is_yggdrasil_url(text)
text = 'http://[200:abcd:abcd:abcd:abcd:abcd:abcd:abcd]:5026/something'
assert is_yggdrasil_url(text)
assert get_port_from_domain(text) == 5026
assert remove_domain_port(text) == \
'http://[200:abcd:abcd:abcd:abcd:abcd:abcd:abcd]'
text = 'http://[203:abcd:abcd:abcd:abcd:abcd:abcd]/something'
assert not is_yggdrasil_url(text)
assert get_port_from_domain(text) is None
def run_all_tests():

View File

@ -2964,7 +2964,8 @@ def remove_domain_port(domain: str) -> str:
if domain.startswith('did:'):
return domain
if ']:' not in domain:
domain = domain.split(':')[0]
if '[' not in domain:
domain = domain.split(':')[0]
else:
domain = domain.split(']:')[0] + ']'
return domain
@ -2977,12 +2978,17 @@ def get_port_from_domain(domain: str) -> int:
if ':' in domain:
if domain.startswith('did:'):
return None
port_str = ''
if ']:' not in domain:
port_str = domain.split(':')[1]
if '[' not in domain:
port_str = domain.split(':')[1]
else:
port_str = domain.split(']:')[1]
if port_str.isdigit():
return int(port_str)
if port_str:
if '/' in port_str:
port_str = port_str.split('/')[0]
if port_str.isdigit():
return int(port_str)
return None