feat: Add Markdown export
This commit is contained in:
		| @@ -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,10 +97,16 @@ 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: | ||||||
|             print(toml.dumps({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]})) |             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]})) | ||||||
|         else: |         else: | ||||||
|             with open(args.output, "w") as f: |             with open(args.output, "w") as f: | ||||||
|                 toml.dump({"instances": [remove_key_from_dict(b.__dict__, 'id') for b in remote_blocklist]}, 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) | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|   | |||||||
							
								
								
									
										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 | ||||||
		Reference in New Issue
	
	Block a user