X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/e9aeedc51047d8d5e9e45c5253c776f8994da965..3a0c83394d5783715fab2be29fa1a9cfc3574e28:/src/librarian/packagers.py diff --git a/src/librarian/packagers.py b/src/librarian/packagers.py deleted file mode 100644 index 0f7a42e..0000000 --- a/src/librarian/packagers.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. -# -from __future__ import print_function, unicode_literals - -import os -from librarian import pdf, epub, mobi, DirDocProvider, ParseError -from librarian.parser import WLDocument - -from .util import makedirs - - -class Packager(object): - cover = None - flags = None - - @classmethod - def transform(cls, *args, **kwargs): - return cls.converter.transform(*args, **kwargs) - - @classmethod - def prepare_file(cls, main_input, output_dir, verbose=False, - overwrite=False): - path, fname = os.path.realpath(main_input).rsplit('/', 1) - provider = DirDocProvider(path) - slug, ext = os.path.splitext(fname) - - if output_dir != '': - makedirs(output_dir) - outfile = os.path.join(output_dir, slug + '.' + cls.ext) - if os.path.exists(outfile) and not overwrite: - return - - doc = WLDocument.from_file(main_input, provider=provider) - output_file = cls.transform(doc, cover=cls.cover, flags=cls.flags) - doc.save_output_file(output_file, output_path=outfile) - - @classmethod - def prepare(cls, input_filenames, output_dir='', verbose=False, - overwrite=False): - try: - for main_input in input_filenames: - if verbose: - print(main_input) - cls.prepare_file(main_input, output_dir, verbose, overwrite) - except ParseError as e: - print('%(file)s:%(name)s:%(message)s' % { - 'file': main_input, - 'name': e.__class__.__name__, - 'message': e.message - }) - - -class EpubPackager(Packager): - converter = epub - ext = 'epub' - - -class MobiPackager(Packager): - converter = mobi - ext = 'mobi' - - -class PdfPackager(Packager): - converter = pdf - ext = 'pdf' - - @classmethod - def transform(cls, *args, **kwargs): - return cls.converter.transform(*args, morefloats='new', **kwargs)