From: Steven Black Date: Sun, 13 Jul 2025 02:53:37 +0000 (-0400) Subject: Issue #2919: fix — look for a file named post.json in the list’s landing folder and... X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=777857f176522031f2b68b4c5fdd580cb9d07113;p=stevenblack-hosts.git Issue #2919: fix — look for a file named post.json in the list’s landing folder and, if found, parse its filters array for strings to exclude from the final list. --- diff --git a/post.json b/post.json new file mode 100644 index 000000000..838ae9f25 --- /dev/null +++ b/post.json @@ -0,0 +1,8 @@ +{ + "filters": [ + "allegro", + "bilet", + "-pl", + "npost" + ] +} diff --git a/updateHostsFile.py b/updateHostsFile.py index a350fe867..6d59fdbb7 100755 --- a/updateHostsFile.py +++ b/updateHostsFile.py @@ -951,6 +951,17 @@ def remove_dups_and_excl(mergefile, exclusionregexes, outputfile=None): else: finalfile = outputfile + # analyze any post.json here + post_json_path = os.path.join(os.path.dirname(finalfile.name), "post.json") + filters = [] + if os.path.isfile(post_json_path): + try: + with open(post_json_path, "r", encoding="UTF-8") as post_file: + post_data = json.load(post_file) + filters = post_data.get("filters", []) + except Exception as e: + print_failure(f"Error reading post.json: {e}") + mergefile.seek(0) # reset file pointer hostnames = {"localhost", "localhost.localdomain", "local", "broadcasthost"} exclusions = settings["exclusions"] @@ -961,6 +972,10 @@ def remove_dups_and_excl(mergefile, exclusionregexes, outputfile=None): # Explicit encoding line = line.decode("UTF-8") + # Apply post.json filters + if filters and any(f in line for f in filters): + continue + # replace tabs with space line = line.replace("\t+", " ")