From deb69cab3dd70fd77c0005bbd6d5e16051814be0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 13 Jan 2025 23:33:37 +0100 Subject: [PATCH] Continued: - check if required key 'url' is in dict 'row' - avoided superflous else + indenting - simplier check before complex checks (`if domain in domains` is lesser intensive than invoking "expensive" is_wanted()) --- fba/commands.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/fba/commands.py b/fba/commands.py index c120021..4e13cfd 100644 --- a/fba/commands.py +++ b/fba/commands.py @@ -1725,9 +1725,9 @@ def fetch_relaylist(args: argparse.Namespace) -> int: if sources.is_recent(source_domain): logger.info("API from source_domain='%s' has recently being accessed - EXIT!", source_domain) return 1 - else: - logger.debug("source_domain='%s' has not been recently used, marking ...", source_domain) - sources.update(source_domain) + + logger.debug("source_domain='%s' has not been recently used, marking ...", source_domain) + sources.update(source_domain) logger.info("Fetching list from source_domain='%s' ...", source_domain) rows = network.fetch_json_rows( @@ -1740,6 +1740,10 @@ def fetch_relaylist(args: argparse.Namespace) -> int: logger.info("Checking %d row(s) ...", len(rows)) for row in rows: logger.debug("row[%s]='%s' - BEFORE!", type(row), row) + if "url" not in row: + logger.warning("row='%s' has no required element 'url' - SKIPPED!", row) + continue + domain = urlparse(row["url"]).netloc.lower().split(":")[0] logger.debug("domain='%s' - AFTER!", domain) @@ -1751,12 +1755,12 @@ def fetch_relaylist(args: argparse.Namespace) -> int: domain = domain_helper.encode_idna(domain) logger.debug("domain='%s' - AFTER!", domain) - if not domain_helper.is_wanted(domain): - logger.debug("domain='%s' is not wanted - SKIPPED!", domain) - continue - elif domain in domains: + if domain in domains: logger.debug("domain='%s' is already added - SKIPPED!", domain) continue + elif not domain_helper.is_wanted(domain): + logger.debug("domain='%s' is not wanted - SKIPPED!", domain) + continue elif instances.is_registered(domain): logger.debug("domain='%s' is already registered - SKIPPED!", domain) continue @@ -1795,9 +1799,6 @@ def fetch_relays(args: argparse.Namespace) -> int: if not args.force_all and instances.is_recent(row["domain"]): logger.debug("row[domain]='%s' has recently been fetched - SKIPPED!", row["domain"]) continue - elif row["nodeinfo_url"] is None: - logger.warning("row[domain]='%s' has empty nodeinfo_url but this is required - SKIPPED!", row["domain"]) - continue peers = [] try: @@ -1832,7 +1833,7 @@ def fetch_relays(args: argparse.Namespace) -> int: logger.info("Fetching / from relay row[domain]='%s',row[software]='%s' ...", row["domain"], row["software"]) raw = network.fetch_url( f"https://{row['domain']}", - network.web_headers, + headers=network.web_headers, timeout=config.timeout ).text logger.debug("raw[%s]()=%d", type(raw), len(raw)) -- 2.39.5