diff --git a/mat2 b/mat2 index 6ffa86725e0e158c79e74a6b4d91c75570842bb4..295afd507c598c207aed1dfc23ab0db5a662b4f9 100755 --- a/mat2 +++ b/mat2 @@ -63,34 +63,30 @@ def show_meta(filename: str): return p, mtype = parser_factory.get_parser(filename) # type: ignore + print("[+] Metadata for %s:" % filename) + metadata = p.get_meta().items() if p is None: print("[-] %s's format (%s) is not supported" % (filename, mtype)) return + print_meta(metadata) - print("[+] Metadata for %s:" % filename) - metadata = p.get_meta().items() + +def print_meta(metadata: dict): if not metadata: print(" No metadata found") return for k, v in metadata: zipmeta = v - zipmeta_name = v + zipmeta_name = k try: # FIXME this is ugly. if not isinstance(zipmeta, dict): print(" %s: %s" % (k, v)) + else: + print_meta(v) except UnicodeEncodeError: print(" %s: harmful content" % k) - if mtype in recursive_mtype: - print("[+] Metadata for files inside the archive :") - if isinstance(zipmeta, dict): - for name, metas in zipmeta.items(): - try: # FIXME this is ugly. - print(" %s" % name) - for meta_name, meta in metas.items(): - print(" %s: %s" % (meta_name, meta)) - except UnicodeEncodeError: - print(" %s: harmful content" % zipmeta_name) + def clean_meta(filename: str, is_lightweight: bool, policy: UnknownMemberPolicy) -> bool: if not __check_file(filename, os.R_OK|os.W_OK):