]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 15:23:02 +0000 (17:23 +0200)
committerRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 15:23:02 +0000 (17:23 +0200)
- added column has_obsfucation for tracking if instances uses obsfucation in
  their block list
- please run this SQL:
  ALTER TABLE instances ADD has_obsfucation TINYINT(1) NULL DEFAULT NULL
- sorted links

blocks_empty.db
fba/commands.py
fba/models/instances.py
fba/networks/mastodon.py
fba/networks/pleroma.py
fba/utils.py
templates/base.html
templates/widgets/links.tpl

index 7d4e8870814c368ac2ddb88ed6c07ad30560232d..3dec226bca7ff8820a0971f3b8ffba7165214b4b 100644 (file)
Binary files a/blocks_empty.db and b/blocks_empty.db differ
index 18615066c6620443e4ad3aa199ac58e8dce3b674..f388f572abf893083160eb238ca3eb070ebba091 100644 (file)
@@ -227,6 +227,9 @@ def fetch_blocks(args: argparse.Namespace):
                         logger.warning("blocked is empty, blocker='%s'", blocker)
                         continue
                     elif blocked.count("*") > 0:
+                        logger.debug("blocker='%s' uses obsfucated domains, marking ...", blocker)
+                        instances.set_has_obsfucation(blocker, True)
+
                         # Some friendica servers also obscure domains without hash
                         row = instances.deobscure("*", blocked)
 
@@ -239,6 +242,9 @@ def fetch_blocks(args: argparse.Namespace):
                         origin       = row[1]
                         nodeinfo_url = row[2]
                     elif blocked.count("?") > 0:
+                        logger.debug("blocker='%s' uses obsfucated domains, marking ...", blocker)
+                        instances.set_has_obsfucation(blocker, True)
+
                         # Some obscure them with question marks, not sure if that's dependent on version or not
                         row = instances.deobscure("?", blocked)
 
index 12f5f044b58fcb07729e99b286d79d406a9be04c..2632f4177c4268e89f1cf7a9e0c117356a50e72a 100644 (file)
@@ -60,6 +60,8 @@ _pending = {
     "last_status_code"   : {},
     # Last error details
     "last_error_details" : {},
+    # Wether obsfucation has been used
+    "has_obsfucation"    : {},
 }
 
 def _set_data(key: str, domain: str, value: any):
@@ -213,10 +215,6 @@ def set_last_nodeinfo(domain: str):
     logger.debug("Updating last_nodeinfo for domain='%s'", domain)
     _set_data("last_nodeinfo", domain, time.time())
 
-    # Running pending updated
-    logger.debug("Invoking update_data(%s) ...", domain)
-    update_data(domain)
-
     logger.debug("EXIT!")
 
 def set_last_error(domain: str, error: dict):
@@ -365,6 +363,7 @@ def set_total_peers(domain: str, peers: list):
 def set_nodeinfo_url(domain: str, url: str):
     logger.debug(f"domain='{domain}',url='{url}' - CALLED!")
     domain_helper.raise_on(domain)
+
     if not isinstance(url, str):
         raise ValueError("Parameter url[]='{type(url)}' is not 'list'")
     elif url == "":
@@ -377,6 +376,7 @@ def set_nodeinfo_url(domain: str, url: str):
 def set_detection_mode(domain: str, mode: str):
     logger.debug(f"domain='{domain}',mode='{mode}' - CALLED!")
     domain_helper.raise_on(domain)
+
     if not isinstance(mode, str):
         raise ValueError("Parameter mode[]='{type(mode)}' is not 'list'")
     elif mode == "":
@@ -385,3 +385,14 @@ def set_detection_mode(domain: str, mode: str):
     # Set timestamp
     _set_data("detection_mode", domain, mode)
     logger.debug("EXIT!")
+
+def set_has_obsfucation(domain: str, status: bool):
+    logger.debug("domain(%d)='%s',status='%s' - CALLED!", len(domain), domain)
+    domain_helper.raise_on(domain)
+
+    if not isinstance(status, bool):
+        raise ValueError(f"Parameter status[]='{type(status)}' is not 'bool'")
+
+    # Set timestamp
+    _set_data("has_obsfucation", domain, status)
+    logger.debug("EXIT!")
index 4c92c1e495e94f8098d2752393ca4f00444781fa..47aefd9c661a15faa72fea43037cfcb88ad7605c 100644 (file)
@@ -250,6 +250,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                     logger.warning("blocked is empty, domain='%s'", domain)
                     continue
                 elif blocked.count("*") > 0:
+                    logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                    instances.set_has_obsfucation(domain, True)
+
                     # Doing the hash search for instance names as well to tidy up DB
                     row = instances.deobscure("*", blocked, blocked_hash)
 
@@ -263,6 +266,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                     origin       = row[1]
                     nodeinfo_url = row[2]
                 elif blocked.count("?") > 0:
+                    logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                    instances.set_has_obsfucation(domain, True)
+
                     # Doing the hash search for instance names as well to tidy up DB
                     row = instances.deobscure("?", blocked, blocked_hash)
 
index 1f38e358b987a49253ea1040e4de15291d1cccb1..09f869766d6b9958d100046b9ec9d006b6ff4c13 100644 (file)
@@ -117,6 +117,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                         logger.debug("blocked='%s' is a fake domain - SKIPPED!", blocked)
                         continue
                     elif blocked.count("*") > 0:
+                        logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                        instances.set_has_obsfucation(domain, True)
+
                         # Obscured domain name with no hash
                         row = instances.deobscure("*", blocked)
 
@@ -130,6 +133,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                         origin       = row[1]
                         nodeinfo_url = row[2]
                     elif blocked.count("?") > 0:
+                        logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                        instances.set_has_obsfucation(domain, True)
+
                         # Obscured domain name with no hash
                         row = instances.deobscure("?", blocked)
 
@@ -188,6 +194,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                 logger.debug("blocked='%s' is a fake domain - SKIPPED!", blocked)
                 continue
             elif blocked.count("*") > 0:
+                logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                instances.set_has_obsfucation(domain, True)
+
                 # Obscured domain name with no hash
                 row = instances.deobscure("*", blocked)
 
@@ -201,6 +210,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                 origin       = row[1]
                 nodeinfo_url = row[2]
             elif blocked.count("?") > 0:
+                logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                instances.set_has_obsfucation(domain, True)
+
                 # Obscured domain name with no hash
                 row = instances.deobscure("?", blocked)
 
@@ -287,6 +299,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                     logger.warning("blocked is empty after tidyup.domain(): domain='%s',block_level='%s'", domain, block_level)
                     continue
                 elif blocked.count("*") > 0:
+                    logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                    instances.set_has_obsfucation(domain, True)
+
                     # Obscured domain name with no hash
                     row = instances.deobscure("*", blocked)
 
@@ -300,6 +315,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                     origin       = row[1]
                     nodeinfo_url = row[2]
                 elif blocked.count("?") > 0:
+                    logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                    instances.set_has_obsfucation(domain, True)
+
                     # Obscured domain name with no hash
                     row = instances.deobscure("?", blocked)
 
@@ -353,6 +371,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                 logger.warning("blocked is empty after tidyup.domain(): domain='%s',block_level='%s'", domain, block_level)
                 continue
             elif blocked.count("*") > 0:
+                logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                instances.set_has_obsfucation(domain, True)
+
                 # Obscured domain name with no hash
                 row = instances.deobscure("*", blocked)
 
@@ -366,6 +387,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                 origin       = row[1]
                 nodeinfo_url = row[2]
             elif blocked.count("?") > 0:
+                logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                instances.set_has_obsfucation(domain, True)
+
                 # Obscured domain name with no hash
                 row = instances.deobscure("?", blocked)
 
@@ -420,6 +444,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                         logger.warning("blocked is empty after tidyup.domain(): domain='%s',block_level='%s'", domain, block_level)
                         continue
                     elif blocked.count("*") > 0:
+                        logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                        instances.set_has_obsfucation(domain, True)
+
                         # Obscured domain name with no hash
                         row = instances.deobscure("*", blocked)
 
@@ -433,6 +460,9 @@ def fetch_blocks(domain: str, origin: str, nodeinfo_url: str):
                         origin       = row[1]
                         nodeinfo_url = row[2]
                     elif blocked.count("?") > 0:
+                        logger.debug("domain='%s' uses obsfucated domains, marking ...", domain)
+                        instances.set_has_obsfucation(domain, True)
+
                         # Obscured domain name with no hash
                         row = instances.deobscure("?", blocked)
 
index 2460cd514d2110f038bbdcf4284a37a72ede7593..a0ee2992dce0129c2ffaa0752d489890b453e574 100644 (file)
@@ -82,6 +82,9 @@ def process_domain(domain: str, blocker: str, command: str) -> bool:
         raise ValueError("Parameter 'command' is empty")
 
     if domain.find("*") > 0:
+        logger.debug("blocker='%s' uses obsfucated domains, marking ...", blocker)
+        instances.set_has_obsfucation(blocker, True)
+
         # Try to de-obscure it
         row = instances.deobscure("*", domain)
 
@@ -93,6 +96,9 @@ def process_domain(domain: str, blocker: str, command: str) -> bool:
         logger.debug(f"domain='{domain}' de-obscured to '{row[0]}'")
         domain = row[0]
     elif domain.find("?") > 0:
+        logger.debug("blocker='%s' uses obsfucated domains, marking ...", blocker)
+        instances.set_has_obsfucation(blocker, True)
+
         # Try to de-obscure it
         row = instances.deobscure("?", domain)
 
index ab2c71098f279e2051ee62002592597b403f3fae..9d3e735f075fbd52fff6d888e818c63cf507c87d 100644 (file)
@@ -64,7 +64,6 @@
         }
         a.listlink {
             text-decoration: none;
-            font-size: 0.8em;
         }
         a:hover {
             color: #f00000;
index f0499fac64972038f5501c2c215470f73b93effe..e946612bc26195b01b81267ddd4c19b827c987a9 100644 (file)
@@ -1,3 +1,3 @@
-<a href="https://{{domain}}" rel="nofollow noopener noreferrer">{{domain}}</a>
 [<a class="listlink" href="{{base_url}}/top?reverse={{domain}}" title="Search {{domain}}">D</a>]
 [<a class="listlink" href="{{base_url}}/top?reverse={{domain}}" title="Reverse search {{domain}}">R</a>]
+<a href="https://{{domain}}" rel="nofollow noopener noreferrer">{{domain}}</a>