Spaces:
Running
Running
File size: 1,944 Bytes
87e74a8 9d05dd2 87e74a8 9d05dd2 87e74a8 9d05dd2 |
1 2 3 4 5 6 7 8 9 10 11 12 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 57 58 59 60 61 |
import hashlib
def get_domains(i_domains):
domains = []
for domain in i_domains.split(","):
domain = domain.strip()
domains.append(domain)
return domains
def extract_subdomains(domains):
exchange = min(domains, key=len)
return exchange
def prefix(domain):
domain_bytes = domain.encode()
prefix = hashlib.blake2b(domain_bytes, digest_size=12).hexdigest()
return prefix
def gen_cname_recs(domains):
cname_recs = []
for domain in domains:
cname_rec = f"_acme-challenge.{domain}"
cname_recs.append(cname_rec)
return cname_recs
def gen_cname_values(domains, cf_domain, exchange):
temp_cname_values = []
cname_values = []
for domain in domains:
cname_value = prefix(domain)
cname_value = f"{cname_value}.{domain}"
temp_cname_values.append(cname_value)
for cname_value in temp_cname_values:
modified_cname_value = cname_value.replace(exchange, cf_domain)
cname_values.append(modified_cname_value)
return cname_values
def gen_cname(domains, cf_domain, exchange):
print(domains)
cname_recs = gen_cname_recs(domains)
cname_values = gen_cname_values(domains, cf_domain, exchange)
return cname_recs, cname_values
def generate_cnames(i_domains, cf_domain, wildcard=False):
domains = get_domains(i_domains)
exchange = extract_subdomains(domains=domains)
if wildcard:
domain = []
domain.append(f"{exchange}")
cname_recs, cname_values = gen_cname(domain, cf_domain, exchange)
else:
cname_recs, cname_values = gen_cname(domains, cf_domain, exchange)
return cname_recs, cname_values
# i_domains = "dash.raanna.com, raanna.com"
# cf_domain = "silerudaagartha.eu.org"
# wildcard = True
# cname_recs, cname_values = generate_cnames(i_domains, cf_domain, wildcard)
# for rec, value in zip(cname_recs, cname_values):
# print(f"{rec} -> {value}")
|