instances.set_has_obfuscation(row["domain"], False)
# c.s isn't part of oliphant's "hidden" blocklists
+ logger.debug("row[domain]='%s',row[software]='%s'", row["domain"], row["software"])
if row["domain"] == "chaos.social" or software_helper.is_relay(row["software"]) or blocklists.has(row["domain"]):
logger.debug("Skipping row[domain]='%s', run ./fba.py fetch_cs, fetch_oliphant, fetch_csv instead!", row["domain"])
continue
logger.debug("blocked='%s',block_level='%s',reason='%s'", block["blocked"], block["block_level"], block["reason"])
if block["block_level"] in [None, ""]:
- logger.warning("block_level is empty, row[domain]='%s',blocked='%s'", block["blocker"], block["blocked"])
+ logger.warning("block_level='%s' is empty, row[domain]='%s',block[blocked]='%s'", block_level, block["blocker"], block["blocked"])
continue
- logger.debug("blocked='%s',reason='%s' - BEFORE!", block["blocked"], block["reason"])
+ logger.debug("block[blocked]='%s',block[reason]='%s' - BEFORE!", block["blocked"], block["reason"])
block["blocked"] = tidyup.domain(block["blocked"])
block["reason"] = tidyup.reason(block["reason"]) if block["reason"] is not None and block["reason"] != "" else None
- logger.debug("blocked='%s',reason='%s' - AFTER!", block["blocked"], block["reason"])
+ logger.debug("block[blocked]='%s',block[reason]='%s' - AFTER!", block["blocked"], block["reason"])
if block["blocked"] in [None, ""]:
logger.warning("block[blocked]='%s' is empty, row[domain]='%s'", block["blocked"], row["domain"])
logger.debug("Setting has_obfuscation=False for row[domain]='%s' ...", row["domain"])
instances.set_has_obfuscation(row["domain"], False)
- logger.debug("blocking()=%d", len(blocking))
+ logger.debug("blocking()=%d - BEFORE!", len(blocking))
if len(blocking) == 0:
logger.debug("Empty blocking list, trying individual fetch_blocks() for row[domain]='%s',row[software]='%s' ...", row["domain"], row["software"])
if row["software"] == "pleroma":
else:
logger.warning("Unknown software: row[domain]='%s',row[software]='%s'", row["domain"], row["software"])
+ logger.debug("blocking()=%d - AFTER!", len(blocking))
+
# c.s isn't part of oliphant's "hidden" blocklists
- logger.debug("row[domain]='%s'", row["domain"])
+ logger.debug("row[domain]='%s',row[software]='%s'", row["domain"], row["software"])
if row["domain"] != "chaos.social" and row["software"] is not None and not software_helper.is_relay(row["software"]) and not blocklists.has(row["domain"]):
logger.debug("Invoking instances.set_total_blocks(%s,%d) ...", row["domain"], len(blocking))
instances.set_last_blocked(row["domain"])
_set_data("detection_mode", domain, mode)
logger.debug("EXIT!")
-def set_has_obfuscation(domain: str, status: bool) -> None:
- logger.debug("domain='%s',status='%s' - CALLED!", domain, status)
+def set_has_obfuscation(domain: str, has_obfuscation: bool) -> None:
+ logger.debug("domain='%s',has_obfuscation='%s' - CALLED!", domain, has_obfuscation)
domain_helper.raise_on(domain)
- if not isinstance(status, bool):
- raise ValueError(f"Parameter status[]='{type(status)}' is not of type 'bool'")
+ if not isinstance(has_obfuscation, bool):
+ raise ValueError(f"Parameter has_obfuscation[]='{type(has_obfuscation)}' is not of type 'bool'")
# Set timestamp
- _set_data("has_obfuscation", domain, status)
+ _set_data("has_obfuscation", domain, has_obfuscation)
logger.debug("EXIT!")
def set_original_software(domain: str, software: str) -> None:
logger.debug("is_valid='%s' - EXIT!", is_valid)
return is_valid
-def delete(domain: str, column: str = "domain") -> None:
- logger.debug("domain='%s, column='%s'' - CALLED!", domain, column)
+def delete(search: str, column: str = "domain") -> None:
+ logger.debug("search='%s, column='%s'' - CALLED!", search, column)
- if not isinstance(domain, str):
- raise ValueError(f"Parameter domain[]='{type(domain)}' is not of type 'str'")
- elif domain == "":
- raise ValueError("Parameter 'domain' is empty")
- elif not isinstance(column, str):
+ if not isinstance(column, str):
raise ValueError(f"Parameter column[]='{type(column)}' is not of type 'str'")
elif column == "":
raise ValueError("Parameter 'column' is empty")
elif column in ["domain", "origin"]:
- domain_helper.raise_on(domain)
+ domain_helper.raise_on(search)
- database.cursor.execute(f"DELETE FROM instances WHERE {column} = ? LIMIT 1", [domain])
+ database.cursor.execute(f"DELETE FROM instances WHERE {column} = ?", [search])
logger.debug("Invoking commit() ...")
database.connection.commit()
return peers
def parse_script(doc: bs4.BeautifulSoup, only: str = None) -> list:
- logger.debug("doc[]='%s',only='%s' - CALLED!")
+ logger.debug("doc[]='%s',only='%s' - CALLED!", type(doc), only)
if not isinstance(doc, bs4.BeautifulSoup):
raise ValueError(f"Parameter doc[]='{type(only)}' is not of type 'bs4.BeautifulSoup'")
parsed = None
try:
+ logger.debug("Parsing %d Bytes long JSON string ...", len(iso_data))
parsed = json.loads(iso_data)
except json.decoder.JSONDecodeError as exception:
logger.warning("Exception '%s' during parsing %d Bytes: '%s' - EXIT!", type(exception), len(iso_data), str(exception))
data = parsed["routeData"]["federatedInstancesResponse"]["data"]["federated_instances"]
logger.debug("Checking %d data elements ...", len(data))
for element in data:
- logger.debug("element[%s]='%s'", type(element), element)
+ logger.debug("element[%s]='%s',only='%s'", type(element), element, only)
if isinstance(only, str) and only != element:
logger.debug("Skipping unwanted element='%s',only='%s'", element, only)
continue
logger.debug("Checking data[%s]()=%d row(s) ...", element, len(data[element]))
for row in data[element]:
logger.debug("row[]='%s'", type(row))
- if "domain" not in row:
+ if not isinstance(row, dict):
+ logger.warning("row[]='%s' is not of expected type 'dict' - SKIPPED!", type(row))
+ continue
+ elif "domain" not in row:
logger.warning("row()=%d has no element 'domain' - SKIPPED!", len(row))
continue
elif row["domain"] in [None, ""]: