]> git.mxchange.org Git - fba.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Sat, 20 May 2023 11:12:05 +0000 (13:12 +0200)
committerRoland Häder <roland@mxchange.org>
Sat, 20 May 2023 11:13:06 +0000 (13:13 +0200)
- added last_blocked to reduce requering instances to often (be nice!)

blocks_empty.db
config.defaults.json
fba.py
fetch_blocks.py

index af1c0a79e8d3719772c01d6a9f66b355ca7a0634..dc11b3532ecb5e55ac3b2fa97761b1c6d8cbd73e 100644 (file)
Binary files a/blocks_empty.db and b/blocks_empty.db differ
index 3578f7d290f80ce51de6dfa13569199fc6c353a1..87f5b65eb28082daab258643484a29f9acc3aefa 100644 (file)
@@ -8,5 +8,6 @@
     "bot_token": "",
     "bot_visibility": "unlisted",
     "slogan": "### Your footer slogan ###",
-    "recheck_instance": 3600
+    "recheck_instance": 3600,
+    "recheck_block": 3600
 }
diff --git a/fba.py b/fba.py
index 53ef74c688bbb6e420061f955ff28ce7a17cab62..78f6b8bf80b0af52c2763aedcf5c36bf5bf1b93a 100644 (file)
--- a/fba.py
+++ b/fba.py
@@ -31,6 +31,19 @@ def get_hash(domain: str) -> str:
     # NOISY-DEBUG: print("DEBUG: Calculating hash for domain:", domain)
     return sha256(domain.encode("utf-8")).hexdigest()
 
+def update_last_blocked(domain: str):
+    # NOISY-DEBUG: print("DEBUG: Updating last_blocked for domain", domain)
+
+    try:
+        c.execute("UPDATE instances SET last_blocked = ? WHERE domain = ?", [
+            time.time(),
+            domain
+        ])
+
+    except:
+        print("ERROR: failed SQL query:", domain)
+        sys.exit(255)
+
 def update_last_error(domain: str, res: any):
     # NOISY-DEBUG: print("DEBUG: domain,res.status_code", domain, res.status_code)
 
index 69843484ce364c08abb74f4970c449ca5d5b94a1..93b6134f5ec36c87354be092eaedfed024d2bcf3 100644 (file)
@@ -6,7 +6,7 @@ import re
 import fba
 
 fba.c.execute(
-    "SELECT domain, software FROM instances WHERE software IN ('pleroma', 'mastodon', 'friendica', 'misskey', 'gotosocial') ORDER BY rowid DESC"
+    "SELECT domain, software FROM instances WHERE software IN ('pleroma', 'mastodon', 'friendica', 'misskey', 'gotosocial') AND (last_blocked IS NULL OR last_blocked < ?) ORDER BY rowid DESC", [time.time() - fba.config["recheck_block"]]
 )
 
 for blocker, software in fba.c.fetchall():
@@ -19,6 +19,8 @@ for blocker, software in fba.c.fetchall():
         print("WARNING: blocker is now empty!")
         continue
 
+    fba.update_last_blocked(blocker)
+
     if software == "pleroma":
         print("INFO: blocker:", blocker)
         try: