diff options
Diffstat (limited to 'main.py')
| -rw-r--r-- | main.py | 41 |
1 files changed, 29 insertions, 12 deletions
| @@ -1,3 +1,4 @@ | |||
| 1 | import os | ||
| 1 | import sys | 2 | import sys |
| 2 | import mimetypes | 3 | import mimetypes |
| 3 | from shutil import copyfile | 4 | from shutil import copyfile |
| @@ -5,6 +6,14 @@ import argparse | |||
| 5 | 6 | ||
| 6 | from src import parser_factory | 7 | from src import parser_factory |
| 7 | 8 | ||
| 9 | def __check_file(filename:str, mode=os.R_OK) -> bool: | ||
| 10 | if not os.path.isfile(filename): | ||
| 11 | print("[-] %s is not a regular file." % filename) | ||
| 12 | return False | ||
| 13 | elif not os.access(filename, mode): | ||
| 14 | print("[-] %s is not readable and writeable." % filename) | ||
| 15 | return False | ||
| 16 | return True | ||
| 8 | 17 | ||
| 9 | def create_arg_parser(): | 18 | def create_arg_parser(): |
| 10 | parser = argparse.ArgumentParser(description='Metadata anonymisation toolkit 2') | 19 | parser = argparse.ArgumentParser(description='Metadata anonymisation toolkit 2') |
| @@ -20,30 +29,38 @@ def create_arg_parser(): | |||
| 20 | return parser | 29 | return parser |
| 21 | 30 | ||
| 22 | def show_meta(filename:str): | 31 | def show_meta(filename:str): |
| 32 | if not __check_file(filename): | ||
| 33 | return | ||
| 34 | |||
| 23 | p, mtype = parser_factory.get_parser(filename) | 35 | p, mtype = parser_factory.get_parser(filename) |
| 24 | if p is None: | 36 | if p is None: |
| 25 | print("[-] %s's format (%s) is not supported" % (filename, mtype)) | 37 | print("[-] %s's format (%s) is not supported" % (filename, mtype)) |
| 26 | return | 38 | return |
| 39 | print("[+] Metadata for %s:" % filename) | ||
| 27 | for k,v in p.get_meta().items(): | 40 | for k,v in p.get_meta().items(): |
| 28 | print("%s: %s" % (k, v)) | 41 | print(" %s: %s" % (k, v)) |
| 42 | |||
| 43 | def clean_meta(filename:str): | ||
| 44 | if not __check_file(filename, os.R_OK|os.W_OK): | ||
| 45 | return | ||
| 46 | |||
| 47 | p, mtype = parser_factory.get_parser(f) | ||
| 48 | if p is None: | ||
| 49 | print("[-] %s's format (%s) is not supported" % (filename, mtype)) | ||
| 50 | return | ||
| 51 | p.remove_all() | ||
| 29 | 52 | ||
| 30 | def main(): | 53 | def main(): |
| 31 | argparser = create_arg_parser() | 54 | args = create_arg_parser().parse_args() |
| 32 | args = argparser.parse_args() | 55 | |
| 33 | 56 | ||
| 34 | if args.show: | 57 | if args.show: |
| 35 | for f in args.files: | 58 | for f in args.files: |
| 36 | show_meta(f) | 59 | show_meta(f) |
| 37 | return 0 | 60 | else: |
| 38 | 61 | for f in args.files: | |
| 39 | for f in args.files: | 62 | clean_meta(f) |
| 40 | p, mtype = parser_factory.get_parser(f) | ||
| 41 | if p is None: | ||
| 42 | print("[-] %s's format (%s) is not supported" % (f, mtype)) | ||
| 43 | continue | ||
| 44 | p.remove_all() | ||
| 45 | 63 | ||
| 46 | 64 | ||
| 47 | if __name__ == '__main__': | 65 | if __name__ == '__main__': |
| 48 | |||
| 49 | main() | 66 | main() |
