]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Thu, 29 Jun 2023 05:24:40 +0000 (07:24 +0200)
committerRoland Häder <roland@mxchange.org>
Thu, 29 Jun 2023 05:30:18 +0000 (07:30 +0200)
- some block entries seem to contain https:// at the start, also try this
  varriant

fba/models/instances.py

index a812a858fd8e9324bbde0680faa0a46dfc949fc2..25ea215a229ca47c266261c2514a0893b97bfa99 100644 (file)
@@ -28,6 +28,7 @@ from fba.helpers import blacklist
 from fba.helpers import cache
 from fba.helpers import config
 from fba.helpers import domain as domain_helper
+from fba.helpers import tidyup
 
 from fba.http import federation
 from fba.http import network
@@ -330,6 +331,9 @@ def deobfuscate(char: str, domain: str, blocked_hash: str = None) -> tuple:
     elif not isinstance(blocked_hash, str) and blocked_hash is not None:
         raise ValueError(f"Parameter blocked_hash[]='{type(blocked_hash)}' is not 'str'")
 
+    # Init row
+    row = None
+
     logger.debug("blocked_hash[]='%s'", type(blocked_hash))
     if isinstance(blocked_hash, str):
         logger.debug("Looking up blocked_hash='%s',domain='%s' ...", blocked_hash, domain)
@@ -343,10 +347,20 @@ def deobfuscate(char: str, domain: str, blocked_hash: str = None) -> tuple:
         if row is None:
             logger.debug("blocked_hash='%s' not found, trying domain='%s' ...", blocked_hash, domain)
             return deobfuscate(char, domain)
-    else:
-        logger.debug("Looking up domain='%s' ...", domain)
+    elif not domain.startswith("*."):
+        logger.debug("domain='%s' - BEFORE!", domain)
+        domain = tidyup.domain(domain)
+        logger.debug("domain='%s' - AFTER!", domain)
+
+        if domain == "":
+            debug.warning("domain is empty after tidyup - EXIT!")
+            return None
+
+        search = domain.replace(char, "_")
+
+        logger.debug("Looking up domain='%s',search='%s' ...", domain, search)
         database.cursor.execute(
-            "SELECT domain, origin, nodeinfo_url FROM instances WHERE domain LIKE ? ORDER BY rowid LIMIT 1", [domain.replace(char, "_")]
+            "SELECT domain, origin, nodeinfo_url FROM instances WHERE domain LIKE ? OR 'https://' || domain LIKE ? ORDER BY rowid LIMIT 1", [search, search]
         )
 
         row = database.cursor.fetchone()