]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Mon, 20 Nov 2023 07:42:02 +0000 (08:42 +0100)
committerRoland Häder <roland@mxchange.org>
Mon, 20 Nov 2023 07:42:02 +0000 (08:42 +0100)
- handle empty peer list differently than fetching none
- added alias 'mbin' for software 'kbin'

fba/helpers/software.py
fba/http/federation.py

index 7e79e750d5ccceb68891a47f9015e76a7ba447ed..badb887204201ae72d27d4945a379171efbb795e 100644 (file)
@@ -86,6 +86,9 @@ def alias(software: str) -> str:
     elif software == "gitdab":
         logger.debug("Setting forgejo: software='%s'", software)
         software = "forgejo"
+    elif software == "mbin":
+        logger.debug("Setting kbin: software='%s'", software)
+        software = "kbin"
     elif "gnu social" in software:
         logger.debug("Setting gnusocial: software='%s'", software)
         software = "gnusocial"
index 27fcad33d96ad100cd31c9ec559143ae865b6126..1aa79b125da37eb8b44b87d5d6fd4e283bae8dce 100644 (file)
@@ -107,7 +107,7 @@ def fetch_instances(domain: str, origin: str, software: str, command: str, path:
         instances.set_total_peers(domain, peerlist)
 
     logger.debug("peerlist[]='%s'", type(peerlist))
-    if peerlist is None or len(peerlist) == 0:
+    if peerlist is None:
         logger.warning("Cannot fetch peers: domain='%s',software='%s'", domain, software)
 
         if instances.has_pending(domain):
@@ -120,6 +120,9 @@ def fetch_instances(domain: str, origin: str, software: str, command: str, path:
         _DEPTH = _DEPTH - 1
         logger.debug("EXIT!")
         return
+    elif len(peerlist) == 0:
+        logger.debug("domain='%s',software='%s' has an empty peer list returned - EXIT!", domain, software)
+        return
 
     logger.info("Checking %d instance(s) from domain='%s',software='%s',depth=%d ...", len(peerlist), domain, software, _DEPTH)
     for instance in peerlist:
@@ -129,11 +132,11 @@ def fetch_instances(domain: str, origin: str, software: str, command: str, path:
             continue
 
         logger.debug("instance='%s' - BEFORE!", instance)
-        instance = tidyup.domain(instance)
+        instance = tidyup.domain(instance) if isinstance(instance, str) and instance != "" else None
         logger.debug("instance='%s' - AFTER!", instance)
 
-        if instance == "":
-            logger.warning("Empty instance after tidyup.domain(), domain='%s'", domain)
+        if instance is None or instance == "":
+            logger.warning("instance='%s' is empty after tidyup.domain(), domain='%s'", instance, domain)
             continue
         elif ".." in instance:
             logger.warning("instance='%s' contains double-dot, removing ...", instance)
@@ -183,6 +186,8 @@ def fetch_peers(domain: str, software: str, origin: str) -> list:
 
     if not isinstance(software, str) and software is not None:
         raise ValueError(f"Parameter software[]='{type(software)}' is not of type 'str'")
+    elif isinstance(software, str) and software == "":
+        raise ValueError("Parameter 'software' is empty")
     elif software_helper.is_relay(software):
         raise ValueError(f"domain='{domain}' is of software='{software}' and isn't supported here.")
     elif not isinstance(origin, str) and origin is not None: