Add 'domain' to the blocklist supported headers (#623)

This commit is contained in:
Humberto Rocha 2023-08-03 12:41:47 -04:00 committed by GitHub
parent c4a2b62016
commit a69499c742
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -95,7 +95,7 @@ class FederationBlocklist(FormView):
blocklist = forms.FileField( blocklist = forms.FileField(
help_text=( help_text=(
"Blocklist file with one domain per line. " "Blocklist file with one domain per line. "
"Oliphant blocklist format is also supported." "CSVs with 'domain' and '#domain' headers are also supported."
), ),
validators=[FileExtensionValidator(allowed_extensions=["txt", "csv"])], validators=[FileExtensionValidator(allowed_extensions=["txt", "csv"])],
) )
@ -107,13 +107,13 @@ class FederationBlocklist(FormView):
try: try:
lines = form.cleaned_data["blocklist"].read().decode("utf-8").splitlines() lines = form.cleaned_data["blocklist"].read().decode("utf-8").splitlines()
if "#domain" in lines[0]: if "#domain" in lines[0] or "domain" in lines[0]:
reader = csv.DictReader(lines) reader = csv.DictReader(lines)
else: else:
reader = csv.DictReader(lines, fieldnames=["#domain"]) reader = csv.DictReader(lines, fieldnames=["#domain"])
for row in reader: for row in reader:
domain = row["#domain"].strip() domain = row.get("#domain", row.get("domain", "")).strip()
try: try:
validator(domain) validator(domain)