"followers_only": [],
"report_removal": []
}
+
+ # handling CSRF, I've saw at least one server requiring it to access the endpoint
+ meta = BeautifulSoup(
+ get(f"https://{blocker}/about", headers=headers, timeout=5).text,
+ "html.parser",
+ )
+ try:
+ csrf = meta.find("meta", attrs={"name": "csrf-token"})["content"]
+ reqheaders = {**headers, **{"x-csrf-token": csrf}}
+ except:
+ reqheaders = headers
+
blocks = get(
- f"https://{blocker}/api/v1/instance/domain_blocks", headers=headers, timeout=5
+ f"https://{blocker}/api/v1/instance/domain_blocks", headers=reqheaders, timeout=5
).json()
for block in blocks:
entry = {'domain': block['domain'], 'hash': block['digest'], 'reason': block['comment']}