mirror of
https://github.com/StevenBlack/hosts.git
synced 2026-07-01 02:36:52 +00:00
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.
This commit is contained in:
8
post.json
Normal file
8
post.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"filters": [
|
||||||
|
"allegro",
|
||||||
|
"bilet",
|
||||||
|
"-pl",
|
||||||
|
"npost"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -951,6 +951,17 @@ def remove_dups_and_excl(mergefile, exclusionregexes, outputfile=None):
|
|||||||
else:
|
else:
|
||||||
finalfile = outputfile
|
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
|
mergefile.seek(0) # reset file pointer
|
||||||
hostnames = {"localhost", "localhost.localdomain", "local", "broadcasthost"}
|
hostnames = {"localhost", "localhost.localdomain", "local", "broadcasthost"}
|
||||||
exclusions = settings["exclusions"]
|
exclusions = settings["exclusions"]
|
||||||
@@ -961,6 +972,10 @@ def remove_dups_and_excl(mergefile, exclusionregexes, outputfile=None):
|
|||||||
# Explicit encoding
|
# Explicit encoding
|
||||||
line = line.decode("UTF-8")
|
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
|
# replace tabs with space
|
||||||
line = line.replace("\t+", " ")
|
line = line.replace("\t+", " ")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user