from mastodon_blocklist_deploy.models import Instance import toml import io import csv def blocklist_to_markdown(blocklist: [Instance], private: bool = False): if private: markdown_string = "| Instance | Status | Reason | Private Comment |\n | --- | --- | --- |\n" else: markdown_string = "| Instance | Status | Reason |\n | --- | --- | --- |\n" for instance in blocklist: if private: markdown_string += f"| {instance.domain} | {instance.severity} | {instance.public_comment} | {instance.private_comment} |\n" else: markdown_string += f"| {instance.domain} | {instance.severity} | {instance.public_comment} |\n" return markdown_string def blocklist_to_toml(blocklist: [Instance], private: bool = False): toml_string = toml.dumps({"instances": [b.as_dict(private) for b in blocklist]}) return toml_string def blocklist_to_csv(blocklist: [Instance], private: bool = False): csv_string = io.StringIO() blocklist_as_dict = [b.as_dict(private) for b in blocklist] keys = blocklist_as_dict[0].keys() w = csv.DictWriter(csv_string, keys) w.writeheader() w.writerows(blocklist_as_dict) return csv_string.getvalue()