]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 16:03:49 +0000 (18:03 +0200)
committerRoland Häder <roland@mxchange.org>
Thu, 22 Jun 2023 16:03:49 +0000 (18:03 +0200)
- need to set has_obsfucation = False first, then later when obsfucated domains
  are found set it to True
- only find entries with has_obsfucation=1

api.py
fba/commands.py
fba/models/instances.py
fba/utils.py

diff --git a/api.py b/api.py
index 2d3bbe1d7e650691bf8aa1b537c99e1769ea1457..3c03c6f32f686081dd05c64661d5c6fe7e3b46f7 100644 (file)
--- a/api.py
+++ b/api.py
@@ -70,9 +70,9 @@ def api_scoreboard(mode: str, amount: int):
     elif mode == "error_code":
         database.cursor.execute("SELECT last_status_code, COUNT(domain) AS score FROM instances WHERE last_status_code IS NOT NULL AND last_status_code != '200' GROUP BY last_status_code ORDER BY score DESC LIMIT ?", [amount])
     elif mode == "avg_peers":
-        database.cursor.execute("SELECT software, AVG(total_peers) AS sum FROM instances WHERE software IS NOT NULL GROUP BY software HAVING sum>0 ORDER BY sum DESC LIMIT ?", [amount])
+        database.cursor.execute("SELECT software, AVG(total_peers) AS average FROM instances WHERE software IS NOT NULL GROUP BY software HAVING average>0 ORDER BY average DESC LIMIT ?", [amount])
     elif mode == "obsfucator":
-        database.cursor.execute("SELECT software, COUNT(domain) AS cnt FROM instances WHERE has_obsfucation IS NOT NULL GROUP BY software ORDER BY cnt DESC LIMIT ?", [amount])
+        database.cursor.execute("SELECT software, COUNT(domain) AS cnt FROM instances WHERE has_obsfucation = 1 GROUP BY software ORDER BY cnt DESC LIMIT ?", [amount])
     else:
         raise HTTPException(status_code=400, detail="No filter specified")
 
index f388f572abf893083160eb238ca3eb070ebba091..5070aa42ff40ac7c2f2d12365c805343fe69c08f 100644 (file)
@@ -187,6 +187,7 @@ def fetch_blocks(args: argparse.Namespace):
 
         logger.debug(f"blocker='{blocker}'")
         instances.set_last_blocked(blocker)
+        instances.set_has_obsfucation(blocker, False)
 
         if software == "pleroma":
             logger.info("blocker='%s',software='%s'", blocker, software)
index 2632f4177c4268e89f1cf7a9e0c117356a50e72a..aa7039a9a597a8a5e9c54dbc7c29b5bbe27f9003 100644 (file)
@@ -387,7 +387,7 @@ def set_detection_mode(domain: str, mode: str):
     logger.debug("EXIT!")
 
 def set_has_obsfucation(domain: str, status: bool):
-    logger.debug("domain(%d)='%s',status='%s' - CALLED!", len(domain), domain)
+    logger.debug("domain(%d)='%s',status='%s' - CALLED!", len(domain), domain, status)
     domain_helper.raise_on(domain)
 
     if not isinstance(status, bool):
index a0ee2992dce0129c2ffaa0752d489890b453e574..e7056c8f6ed21e7eb7a333e7b96b0ea3af3ac608 100644 (file)
@@ -109,6 +109,13 @@ def process_domain(domain: str, blocker: str, command: str) -> bool:
 
         logger.debug(f"domain='{domain}' de-obscured to '{row[0]}'")
         domain = row[0]
+    else:
+        logger.debug("blocker='%s' has NO obsfucation on their block list", blocker)
+        instances.set_has_obsfucation(blocker, False)
+
+    if instances.has_pending(blocker):
+        logger.debug("Invoking instances.update_data(%s) ...", blocker)
+        instances.update_data(blocker)
 
     if not is_domain_wanted(domain):
         logger.debug("domain='%s' is not wanted - SKIPPED!", domain)