diff options
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 46 |
1 files changed, 46 insertions, 0 deletions
| @@ -0,0 +1,46 @@ | |||
| 1 | import sys | ||
| 2 | from shutil import copyfile | ||
| 3 | import argparse | ||
| 4 | |||
| 5 | from src.parsers import pdf | ||
| 6 | |||
| 7 | |||
| 8 | def create_arg_parser(): | ||
| 9 | parser = argparse.ArgumentParser(description='Metadata anonymisation toolkit 2') | ||
| 10 | parser.add_argument('files', nargs='*') | ||
| 11 | |||
| 12 | info = parser.add_argument_group('Information') | ||
| 13 | info.add_argument('-c', '--check', action='store_true', | ||
| 14 | help='check if a file is free of harmful metadatas') | ||
| 15 | info.add_argument('-l', '--list', action='store_true', | ||
| 16 | help='list all supported fileformats') | ||
| 17 | info.add_argument('-s', '--show', action='store_true', | ||
| 18 | help='list all the harmful metadata of a file without removing them') | ||
| 19 | return parser | ||
| 20 | |||
| 21 | def show_meta(file_name:str): | ||
| 22 | p = pdf.PDFParser(file_name) | ||
| 23 | for k,v in p.get_meta().items(): | ||
| 24 | print("%s: %s" % (k, v)) | ||
| 25 | |||
| 26 | def main(): | ||
| 27 | argparser = create_arg_parser() | ||
| 28 | args = argparser.parse_args() | ||
| 29 | |||
| 30 | if args.show: | ||
| 31 | for f in args.files: | ||
| 32 | show_meta(f) | ||
| 33 | return 0 | ||
| 34 | elif not args.files: | ||
| 35 | return parser.show_help() | ||
| 36 | |||
| 37 | copyfile(sys.argv[1] + '.bak', sys.argv[1]) | ||
| 38 | p = pdf.PDFParser(sys.argv[1]) | ||
| 39 | p.remove_all() | ||
| 40 | p = pdf.PDFParser('OUT_clean.pdf') | ||
| 41 | print("ok") | ||
| 42 | |||
| 43 | |||
| 44 | if __name__ == '__main__': | ||
| 45 | |||
| 46 | main() | ||
