Update utils.py

This commit is contained in:
Bernward Sanchez 2022-12-23 08:23:14 +08:00 committed by GitHub
parent 33ec2acd3f
commit c7eaec27d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -238,24 +238,22 @@ class customBoxes:
}
order = ["reverse", "ip6arpa", "inaddrarpa"]
def pretty_domain_name(value):
"""
Display domain name in original format.
If it is IDN domain (Punycode starts with xn--), do the
idna decoding.
Note that any part of the domain name can be individually punycoded
"""
if isinstance(value, str):
if value.startswith('xn--') \
or value.find('.xn--') != -1:
try:
return to_idna(value, 'decode')
except:
raise Exception('Cannot decode IDN domain')
else:
return value
else:
raise Exception('Require the Punycode in string format')
def pretty_domain_name(domain_name):
# Add a debugging statement to print out the domain name
print("Received domain name:", domain_name)
# Check if the domain name is encoded using Punycode
if domain_name.endswith('.xn--'):
try:
# Decode the domain name using the idna library
domain_name = idna.decode(domain_name)
except Exception as e:
# If the decoding fails, raise an exception with more information
raise Exception('Cannot decode IDN domain: {}'.format(e))
# Return the "pretty" version of the domain name
return domain_name
def to_idna(value, action):
splits = value.split('.')