From 18857b03ac26793984c03a212eb5b3dd834b988f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org> Date: Sun, 18 Jun 2023 18:39:45 +0200 Subject: [PATCH] Continued: - returned JSON can sometimes be no list --- fba/federation.py | 6 ++++-- fba/models/instances.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/fba/federation.py b/fba/federation.py index 97dc786..bdb6574 100644 --- a/fba/federation.py +++ b/fba/federation.py @@ -195,9 +195,11 @@ def fetch_peers(domain: str, software: str) -> list: message = "JSON response does not contain 'federated_instances' or 'error_message'" print(f"WARNING: {message},domain='{domain}'") instances.set_last_error(domain, message) - else: - # DEBUG: print("DEBUG: Querying API was successful:", domain, len(data)) + elif isinstance(data["json"], list): + # DEBUG print("DEBUG: Querying API was successful:", domain, len(data['json'])) peers = data["json"] + else: + print(f"WARNING: Cannot parse data[json][]='{type(data['json'])}'") # DEBUG: print(f"DEBUG: Adding '{len(peers)}' for domain='{domain}'") instances.set_total_peers(domain, peers) diff --git a/fba/models/instances.py b/fba/models/instances.py index cb08eb5..7cf70e6 100644 --- a/fba/models/instances.py +++ b/fba/models/instances.py @@ -347,7 +347,7 @@ def deobscure(char: str, domain: str, blocked_hash: str = None) -> tuple: # DEBUG: print(f"DEBUG: row[]='{type(row)}' - EXIT!") return row -def set_last_blocked (domain: str): +def set_last_blocked(domain: str): # DEBUG: print(f"DEBUG: domain='{domain}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") @@ -358,7 +358,7 @@ def set_last_blocked (domain: str): _set_data("last_blocked", domain, time.time()) # DEBUG: print("DEBUG: EXIT!") -def set_last_instance_fetch (domain: str): +def set_last_instance_fetch(domain: str): # DEBUG: print(f"DEBUG: domain='{domain}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") @@ -369,20 +369,20 @@ def set_last_instance_fetch (domain: str): _set_data("last_instance_fetch", domain, time.time()) # DEBUG: print("DEBUG: EXIT!") -def set_total_peers (domain: str, peers: list): +def set_total_peers(domain: str, peers: list): # DEBUG: print(f"DEBUG: domain='{domain}',peers()={len(peers)} - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") elif domain == "": raise ValueError("Parameter 'domain' is empty") elif not isinstance(peers, list): - raise ValueError("Parameter peers[]='{type(peers)}' is not 'list'") + raise ValueError(f"Parameter peers[]='{type(peers)}' is not 'list'") # Set timestamp _set_data("total_peers", domain, len(peers)) # DEBUG: print("DEBUG: EXIT!") -def set_nodeinfo_url (domain: str, url: list): +def set_nodeinfo_url(domain: str, url: list): # DEBUG: print(f"DEBUG: domain='{domain}',url='{url}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") @@ -397,7 +397,7 @@ def set_nodeinfo_url (domain: str, url: list): _set_data("nodeinfo_url", domain, url) # DEBUG: print("DEBUG: EXIT!") -def set_detection_mode (domain: str, url: list): +def set_detection_mode(domain: str, url: list): # DEBUG: print(f"DEBUG: domain='{domain}',url='{url}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") @@ -412,7 +412,7 @@ def set_detection_mode (domain: str, url: list): _set_data("detection_mode", domain, url) # DEBUG: print("DEBUG: EXIT!") -def set_detection_mode (domain: str, url: list): +def set_detection_mode(domain: str, url: list): # DEBUG: print(f"DEBUG: domain='{domain}',url='{url}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") @@ -427,7 +427,7 @@ def set_detection_mode (domain: str, url: list): _set_data("detection_mode", domain, url) # DEBUG: print("DEBUG: EXIT!") -def set_detection_mode (domain: str, mode: list): +def set_detection_mode(domain: str, mode: list): # DEBUG: print(f"DEBUG: domain='{domain}',mode='{mode}' - CALLED!") if not isinstance(domain, str): raise ValueError(f"Parameter domain[]='{type(domain)}' is not 'str'") -- 2.39.5