summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.py41
1 files changed, 29 insertions, 12 deletions
diff --git a/main.py b/main.py
index 877bc70..2c580f8 100644
--- a/main.py
+++ b/main.py
@@ -1,3 +1,4 @@
1import os
1import sys 2import sys
2import mimetypes 3import mimetypes
3from shutil import copyfile 4from shutil import copyfile
@@ -5,6 +6,14 @@ import argparse
5 6
6from src import parser_factory 7from src import parser_factory
7 8
9def __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
9def create_arg_parser(): 18def 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
22def show_meta(filename:str): 31def 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
43def 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
30def main(): 53def 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
47if __name__ == '__main__': 65if __name__ == '__main__':
48
49 main() 66 main()