def run(epub, opts, log): with TemporaryDirectory('_epub-fix') as tdir: with CurrentDir(tdir): zf = ZipFile(epub) zf.extractall() zf.close() container = Container(tdir, log) for fixer in epub_fixers(): fix = getattr(opts, fixer.fix_name, False) fixer.run(container, opts, log, fix=fix) container.write(epub)
def option_parser(): parser = OptionParser(usage=_( '%prog [options] file.epub\n\n' 'Fix common problems in EPUB files that can cause them ' 'to be rejected by poorly designed publishing services.\n\n' 'By default, no fixing is done and messages are printed out ' 'for each error detected. Use the options to control which errors ' 'are automatically fixed.')) for fixer in epub_fixers(): fixer.add_options_to_parser(parser) return parser