refactored get_mastodon_blocks
This commit is contained in:
parent
433bcd3f00
commit
46cf65678e
@ -8,24 +8,36 @@ headers = {
|
||||
}
|
||||
|
||||
def get_mastodon_blocks(domain: str) -> dict:
|
||||
try:
|
||||
reject = []
|
||||
media_removal = []
|
||||
federated_timeline_removal = []
|
||||
blocks = {
|
||||
"Suspended servers": [],
|
||||
"Filtered media": [],
|
||||
"Limited servers": [],
|
||||
"Silenced servers": [],
|
||||
}
|
||||
|
||||
try:
|
||||
doc = BeautifulSoup(
|
||||
get(f"https://{domain}/about/more", headers=headers, timeout=5).text,
|
||||
"html.parser",
|
||||
)
|
||||
except:
|
||||
return {}
|
||||
|
||||
doc = BeautifulSoup(get(f"https://{domain}/about/more", headers=headers, timeout=5).text, "html.parser")
|
||||
for header in doc.find_all("h3"):
|
||||
if header.text == "Suspended servers":
|
||||
for line in header.find_next_siblings("table")[0].find_all("tr")[1:]:
|
||||
reject.append({"domain": line.find("span").text, "hash": line.find("span")["title"][9:], "reason": line.find_all("td")[1].text.strip()})
|
||||
elif header.text == "Filtered media":
|
||||
for line in header.find_next_siblings("table")[0].find_all("tr")[1:]:
|
||||
media_removal.append({"domain": line.find("span").text, "hash": line.find("span")["title"][9:], "reason": line.find_all("td")[1].text.strip()})
|
||||
elif header.text in ["Limited servers", "Silenced servers"]:
|
||||
for line in header.find_next_siblings("table")[0].find_all("tr")[1:]:
|
||||
federated_timeline_removal.append({"domain": line.find("span").text, "hash": line.find("span")["title"][9:], "reason": line.find_all("td")[1].text.strip()})
|
||||
finally:
|
||||
return {"reject": reject, "media_removal": media_removal, "federated_timeline_removal": federated_timeline_removal}
|
||||
if header.text in blocks:
|
||||
blocks[header.text].append(
|
||||
{
|
||||
"domain": line.find("span").text,
|
||||
"hash": line.find("span")["title"][9:],
|
||||
"reason": line.find_all("td")[1].text.strip(),
|
||||
}
|
||||
)
|
||||
return {
|
||||
"reject": blocks["Suspended servers"],
|
||||
"media_removal": blocks["Filtered media"],
|
||||
"federated_timeline_removal": blocks["Limited servers"] + blocks["Silenced servers"],
|
||||
}
|
||||
|
||||
|
||||
def get_type(domain: str) -> str:
|
||||
|
Loading…
x
Reference in New Issue
Block a user