Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
AX_PYTHON_MODULE([babel], [fatal])
AX_PYTHON_MODULE([fastapi], [fatal])
AX_PYTHON_MODULE([httpx], [fatal])
+AX_PYTHON_MODULE([publicsuffix2], [fatal])
AX_PYTHON_MODULE([rich], [fatal])
AX_PYTHON_MODULE([sqlmodel], [fatal])
import httpx
import io
import logging
+import publicsuffix2
import sqlmodel
# Initialize logging as early as possible
follow_redirects=True,
)
+ @functools.cached_property
+ def psl(self):
+ """
+ The Public Suffix List
+ """
+ return publicsuffix2.PublicSuffixList()
+
@functools.cached_property
def auth(self):
return auth.Auth(self)
log.debug("Skipping ignored domain: %s" % domain)
continue
+ # Is the domain actually publicly resolvable?
+ if not self.backend.psl.get_tld(domain, strict=True):
+ log.debug("Skipping non-public domain: %s" % domain)
+ continue
+
# Add the domain
domains.add(domain)