feat: Add Markdown export
This commit is contained in:
parent
d4c754c103
commit
8762112e37
@ -7,6 +7,7 @@ import os
|
|||||||
import toml
|
import toml
|
||||||
|
|
||||||
from mastodon_blocklist_deploy.models import Instance
|
from mastodon_blocklist_deploy.models import Instance
|
||||||
|
from mastodon_blocklist_deploy.helpers import blocklist_to_markdown
|
||||||
|
|
||||||
|
|
||||||
def load_blocklist_file(filename: str) -> [Instance]:
|
def load_blocklist_file(filename: str) -> [Instance]:
|
||||||
@ -56,6 +57,7 @@ def cli():
|
|||||||
parser.add_argument('-o', '--output', help="Filename where to export the blocklist")
|
parser.add_argument('-o', '--output', help="Filename where to export the blocklist")
|
||||||
parser.add_argument('-v', '--verbose', action='store_true')
|
parser.add_argument('-v', '--verbose', action='store_true')
|
||||||
parser.add_argument('-n', '--no-delete', action='store_true', help="Do not delete existing blocks")
|
parser.add_argument('-n', '--no-delete', action='store_true', help="Do not delete existing blocks")
|
||||||
|
parser.add_argument('--markdown', action='store_true', help="Export as markdown table")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
@ -95,9 +97,15 @@ def cli():
|
|||||||
Instance.apply_blocks_from_diff(diffs, args.server, token, args.no_delete)
|
Instance.apply_blocks_from_diff(diffs, args.server, token, args.no_delete)
|
||||||
elif args.action == "export":
|
elif args.action == "export":
|
||||||
if not args.output:
|
if not args.output:
|
||||||
|
if args.markdown:
|
||||||
|
print(blocklist_to_markdown(remote_blocklist))
|
||||||
|
else:
|
||||||
print(toml.dumps({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]}))
|
print(toml.dumps({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]}))
|
||||||
else:
|
else:
|
||||||
with open(args.output, "w") as f:
|
with open(args.output, "w") as f:
|
||||||
|
if args.markdown:
|
||||||
|
f.write(blocklist_to_markdown(remote_blocklist))
|
||||||
|
else:
|
||||||
toml.dump({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]}, f)
|
toml.dump({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]}, f)
|
||||||
|
|
||||||
|
|
||||||
|
6
mastodon_blocklist_deploy/helpers.py
Normal file
6
mastodon_blocklist_deploy/helpers.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
from mastodon_blocklist_deploy.models import Instance
|
||||||
|
def blocklist_to_markdown(blocklist:[Instance]):
|
||||||
|
markdown_string = "| Instance | Status | Reason |\n | --- | --- | --- |\n"
|
||||||
|
for instance in blocklist:
|
||||||
|
markdown_string += f"| {instance.domain} | {instance.severity} | {instance.public_comment} |\n"
|
||||||
|
return markdown_string
|
Loading…
Reference in New Issue
Block a user