From 9f5addf64554c6cc93fb04a360958163402fdce7 Mon Sep 17 00:00:00 2001 From: Rob McMullen Date: Sun, 10 Feb 2019 09:02:12 -0800 Subject: [PATCH] Updated omnivore loader for new API --- atrcopy/omnivore_framework_loader.py | 30 +++++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/atrcopy/omnivore_framework_loader.py b/atrcopy/omnivore_framework_loader.py index 740b3db..92330bf 100644 --- a/atrcopy/omnivore_framework_loader.py +++ b/atrcopy/omnivore_framework_loader.py @@ -4,18 +4,24 @@ import logging log = logging.getLogger(__name__) -def identify_mime(header): +def identify_mime(header, fh): mime_type = None try: - parser, mime_type = find_diskimage_from_data(header, True) - except (errors.UnsupportedContainer, errors.UnsupportedDiskImage, IOError) as e: - print(f"error in atrcopy parser: {e}") + fh.seek(0) + data = fh.read() + except IOError as e: + log.debug(f"atrcopy loader: error reading entire file: {e}") else: - print(f"{parser.image}: {mime_type}") - - if mime_type: - log.debug(f"atrcopy loader: identified {mime_type}") - return dict(mime=mime_type, ext="") - else: - log.debug(f"atrcopy loader: unidentified") - return None + try: + parser, mime_type = find_diskimage_from_data(data, True) + except (errors.UnsupportedContainer, errors.UnsupportedDiskImage, IOError) as e: + print(f"error in atrcopy parser: {e}") + else: + print(f"{parser.image}: {mime_type}") + + if mime_type: + log.debug(f"atrcopy loader: identified {mime_type}") + return dict(mime=mime_type, ext="", atrcopy_parser=parser) + else: + log.debug(f"atrcopy loader: not recognized") + return None