X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/a2f8ee881d66601e9cb714069dc88d3ed9703db6..b92b58ba86f08f04b4f0436479d3d73ce0c03f00:/scripts/book2partner diff --git a/scripts/book2partner b/scripts/book2partner index 786c2c2..136fffc 100755 --- a/scripts/book2partner +++ b/scripts/book2partner @@ -2,14 +2,14 @@ # -*- 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. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # import os.path import optparse from copy import deepcopy from lxml import etree -from librarian import epub, DirDocProvider, ParseError, cover +from librarian import epub, pdf, DirDocProvider, ParseError, cover from librarian.dcparser import BookInfo @@ -66,8 +66,8 @@ def virtualo(filenames, output_dir, verbose): product_elem[4][0][1].text = utf_trunc(info.author.last_name, 100) xml.append(product_elem) - cover.virtualo_cover( - u' '.join(info.author.first_names + (info.author.last_name,)), + cover.VirtualoCover( + u' '.join(info.author.first_names + (info.author.last_name,)), info.title ).save(os.path.join(outfile_dir, slug+'.jpg')) outfile = os.path.join(outfile_dir, '1.epub') @@ -86,7 +86,7 @@ def virtualo(filenames, output_dir, verbose): xml_file.close() -def asbis(filenames, output_dir, verbose): +def prestigio(filenames, output_dir, verbose): try: for main_input in input_filenames: if options.verbose: @@ -102,7 +102,57 @@ def asbis(filenames, output_dir, verbose): pass outfile = os.path.join(output_dir, slug + '.epub') epub.transform(provider, file_path=main_input, output_file=outfile, - cover_fn=cover.asbis_cover, flags=('less-advertising',)) + cover=cover.PrestigioCover, flags=('less-advertising',)) + except ParseError, e: + print '%(file)s:%(name)s:%(message)s' % { + 'file': main_input, + 'name': e.__class__.__name__, + 'message': e.message + } + + +def prestigio_pdf(filenames, output_dir, verbose): + try: + for main_input in input_filenames: + if options.verbose: + print main_input + path, fname = os.path.realpath(main_input).rsplit('/', 1) + provider = DirDocProvider(path) + slug, ext = os.path.splitext(fname) + + if output_dir != '': + try: + os.makedirs(output_dir) + except: + pass + outfile = os.path.join(output_dir, slug + '.pdf') + pdf.transform(provider, file_path=main_input, output_file=outfile, + cover=cover.PrestigioCover, verbose=options.verbose, flags=('less-advertising',)) + except ParseError, e: + print '%(file)s:%(name)s:%(message)s' % { + 'file': main_input, + 'name': e.__class__.__name__, + 'message': e.message + } + + +def bookoteka(filenames, output_dir, verbose): + try: + for main_input in input_filenames: + if options.verbose: + print main_input + path, fname = os.path.realpath(main_input).rsplit('/', 1) + provider = DirDocProvider(path) + slug, ext = os.path.splitext(fname) + + if output_dir != '': + try: + os.makedirs(output_dir) + except: + pass + outfile = os.path.join(output_dir, slug + '.epub') + epub.transform(provider, file_path=main_input, output_file=outfile, + cover=cover.BookotekaCover) except ParseError, e: print '%(file)s:%(name)s:%(message)s' % { 'file': main_input, @@ -123,10 +173,14 @@ if __name__ == '__main__': help='print status messages to stdout') parser.add_option('-O', '--output-dir', dest='output_dir', metavar='DIR', default='', help='specifies the directory for output') + parser.add_option('--bookoteka', action='store_true', dest='bookoteka', default=False, + help='prepare files for Bookoteka') parser.add_option('--virtualo', action='store_true', dest='virtualo', default=False, help='prepare files for Virtualo API') - parser.add_option('--asbis', action='store_true', dest='asbis', default=False, - help='prepare files for Asbis') + parser.add_option('--prestigio', action='store_true', dest='prestigio', default=False, + help='prepare files for Prestigio') + parser.add_option('--prestigio-pdf', action='store_true', dest='prestigio_pdf', default=False, + help='prepare PDF files for Prestigio') options, input_filenames = parser.parse_args() @@ -134,8 +188,11 @@ if __name__ == '__main__': parser.print_help() exit(1) + if options.bookoteka: + bookoteka(input_filenames, options.output_dir, options.verbose) if options.virtualo: virtualo(input_filenames, options.output_dir, options.verbose) - if options.asbis: - asbis(input_filenames, options.output_dir, options.verbose) - \ No newline at end of file + if options.prestigio: + prestigio(input_filenames, options.output_dir, options.verbose) + if options.prestigio_pdf: + prestigio_pdf(input_filenames, options.output_dir, options.verbose)