peerlist = list()
logger.debug("software='%s'", software)
if software is not None:
- logger.debug("Fetching instances for domain='%s',software='%s',origin='%s'", domain, software, origin)
- peerlist = fetch_peers(domain, software, origin)
+ try:
+ logger.debug("Fetching instances for domain='%s',software='%s',origin='%s'", domain, software, origin)
+ peerlist = fetch_peers(domain, software, origin)
+ except network.exceptions as exception:
+ _DEPTH = _DEPTH - 1
+ raise exception
logger.debug("peerlist[]='%s'", type(peerlist))
if isinstance(peerlist, list):
)
logger.debug("response.ok='%s',response.status_code=%d,response.text()=%d", response.ok, response.status_code, len(response.text))
- if ((response.ok and response.status_code == 200) or response.status_code == 410) and response.text.find("<html") > 0 and domain_helper.is_in_url(domain, response.url):
+ if ((response.ok and response.status_code == 200) or response.status_code == 410) and response.text.find("<html") > 0 and domain_helper.is_in_url(domain, response.url.split("#")[0]):
logger.debug("Parsing response.text()=%d Bytes ...", len(response.text))
doc = bs4.BeautifulSoup(response.text, "html.parser")
if software is not None and software != "":
logger.debug("domain='%s' has og:site_name='%s' - Setting detection_mode=SITE_NAME ...", domain, software)
instances.set_detection_mode(domain, "SITE_NAME")
- elif not domain_helper.is_in_url(domain, response.url):
+ elif not domain_helper.is_in_url(domain, response.url.split("#")[0]):
logger.warning("domain='%s' doesn't match response.url='%s', maybe redirect to other domain?", domain, response.url)
components = urlparse(response.url)
logger.debug("Returning None - EXIT!")
return None
- logger.debug("Setting original software='%s' ...", software)
+ logger.debug("Setting original software='%s' for domain='%s' ...", software, domain)
instances.set_original_software(domain, software)
logger.debug("software='%s'- BEFORE!", software)
software = software_helper.alias(software)
logger.debug("software['%s']='%s' - AFTER!", type(software), software)
- if str(software) == "":
+ if software in [None, ""]:
logger.debug("software for domain='%s' was not detected, trying generator ...", domain)
software = fetch_generator_from_path(domain)
elif len(str(software)) > 0 and ("." in software or " " in software):
def find_domains(tag: bs4.element.Tag) -> list:
logger.debug("tag[]='%s' - CALLED!", type(tag))
+
if not isinstance(tag, bs4.element.Tag):
raise ValueError(f"Parameter tag[]='{type(tag)}' is not type of bs4.element.Tag")
elif len(tag.select("tr")) == 0:
def add_peers(rows: dict) -> list:
logger.debug("rows[]='%s' - CALLED!", type(rows))
+
if not isinstance(rows, dict):
raise ValueError(f"Parameter rows[]='{type(rows)}' is not of type 'dict'")
+ elif len(rows) == 0:
+ raise ValueError("Parameter 'rows' is empty")
peers = list()
for key in ["linked", "allowed", "blocked"]:
logger.debug("domain='%s' - CALLED!", domain)
domain_helper.raise_on(domain)
- if not instances.is_registered(domain):
- raise Exception(f"domain='{domain}' is not registered but function is invoked.")
- elif blacklist.is_blacklisted(domain):
+ if blacklist.is_blacklisted(domain):
raise Exception(f"domain='{domain}' is blacklisted but function was invoked")
+ elif not instances.is_registered(domain):
+ raise Exception(f"domain='{domain}' is not registered but function is invoked.")
# Init block list
blocklist = list()