diff --git a/main.py b/main.py index 3cff75830c296a1234f5eee0e4b222531872afc9..877bc70a10927de43a6e4be770f829ea10ea0fd4 100644 --- a/main.py +++ b/main.py @@ -20,9 +20,8 @@ def create_arg_parser(): return parser def show_meta(filename:str): - p = parser_factory.get_parser(filename) + p, mtype = parser_factory.get_parser(filename) if p is None: - mtype, _ = mimetypes.guess_type(filename) print("[-] %s's format (%s) is not supported" % (filename, mtype)) return for k,v in p.get_meta().items(): @@ -38,9 +37,9 @@ def main(): return 0 for f in args.files: - p = parser_factory.get_parser(f) + p, mtype = parser_factory.get_parser(f) if p is None: - print("[-] %s's format (%s) is not supported" % (f, "meh")) + print("[-] %s's format (%s) is not supported" % (f, mtype)) continue p.remove_all() diff --git a/src/office.py b/src/office.py index 0a34185ea9d92b16071620d046ba784d32f57502..8d478c159cfe81c599dae4e08659fdc1c712df4b 100644 --- a/src/office.py +++ b/src/office.py @@ -38,9 +38,9 @@ class ArchiveBasedAbstractParser(abstract.AbstractParser): def _clean_internal_file(self, item:zipfile.ZipInfo, temp_folder:str, zin:zipfile.ZipFile, zout:zipfile.ZipFile): zin.extract(member=item, path=temp_folder) - tmp_parser = parser_factory.get_parser(os.path.join(temp_folder, item.filename)) + tmp_parser, mtype = parser_factory.get_parser(os.path.join(temp_folder, item.filename)) if tmp_parser is None: - print("%s isn't supported" % item.filename) + print("%s's format (%s) isn't supported" % (item.filename, mtype)) return tmp_parser.remove_all() zinfo = zipfile.ZipInfo(item.filename) diff --git a/src/parser_factory.py b/src/parser_factory.py index 176ff2b17c8ddc3655a9890a8217f7956d2f13cb..226234bac91d46851b770301f14d49a13f9822c9 100644 --- a/src/parser_factory.py +++ b/src/parser_factory.py @@ -15,6 +15,6 @@ def get_parser(filename: str): mtype, _ = mimetypes.guess_type(filename) for c in abstract.AbstractParser.__subclasses__(): if mtype in c.mimetypes: - return c(filename) + return c(filename), mtype print('factory: %s is not supported' % mtype) - return None + return None, mtype diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py index 8aa91f01a23381f589dbbc1c874b355938977230..b52e8ce8b5cdf6669500febb813c05939be0c6df 100644 --- a/tests/test_libmat2.py +++ b/tests/test_libmat2.py @@ -72,7 +72,7 @@ class TestDeepCleaning(unittest.TestCase): for subdir, dirs, files in os.walk(tempdir): for f in files: complete_path = os.path.join(subdir, f) - inside_p = parser_factory.get_parser(complete_path) + inside_p, _ = parser_factory.get_parser(complete_path) if inside_p is None: continue print('[+] %s is clean inside %s' %(complete_path, p.filename))