diff --git a/src/calibre/ebooks/mobi/reader/mobi8.py b/src/calibre/ebooks/mobi/reader/mobi8.py index d871517178..7c5fbbe4f9 100644 --- a/src/calibre/ebooks/mobi/reader/mobi8.py +++ b/src/calibre/ebooks/mobi/reader/mobi8.py @@ -61,7 +61,8 @@ def reverse_tag_iter(block): class Mobi8Reader(object): - def __init__(self, mobi6_reader, log): + def __init__(self, mobi6_reader, log, for_tweak=False): + self.for_tweak = for_tweak self.mobi6_reader, self.log = mobi6_reader, log self.header = mobi6_reader.book_header self.encrypted_fonts = [] @@ -459,6 +460,20 @@ class Mobi8Reader(object): def exclude(path): return os.path.basename(path) == 'debug-raw.html' + # If there are no images then the azw3 input plugin dumps all + # binary records as .unknown images, remove them + if self.for_tweak and os.path.exists('images') and os.path.isdir('images'): + files = os.listdir('images') + unknown = [x for x in files if x.endswith('.unknown')] + if len(files) == len(unknown): + [os.remove('images/'+f) for f in files] + + if self.for_tweak: + try: + os.remove('debug-raw.html') + except: + pass + opf.create_manifest_from_files_in([os.getcwdu()], exclude=exclude) for entry in opf.manifest: if entry.mime_type == 'text/html': diff --git a/src/calibre/ebooks/oeb/polish/container.py b/src/calibre/ebooks/oeb/polish/container.py index c5c0c5e16e..b8fd8e2c18 100644 --- a/src/calibre/ebooks/oeb/polish/container.py +++ b/src/calibre/ebooks/oeb/polish/container.py @@ -1022,20 +1022,9 @@ def do_explode(path, dest): mr = MobiReader(stream, default_log, None, None) with CurrentDir(dest): - mr = Mobi8Reader(mr, default_log) + mr = Mobi8Reader(mr, default_log, for_tweak=True) opf = os.path.abspath(mr()) obfuscated_fonts = mr.encrypted_fonts - # If there are no images then the azw3 input plugin dumps all - # binary records as .unknown images, remove them - if os.path.exists('images') and os.path.isdir('images'): - files = os.listdir('images') - unknown = [x for x in files if x.endswith('.unknown')] - if len(files) == len(unknown): - [os.remove('images/'+f) for f in files] - try: - os.remove('debug-raw.html') - except: - pass return opf, obfuscated_fonts