X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/1e438727014e352799b4dfb8d3dfb2f8e7a58251..b92b58ba86f08f04b4f0436479d3d73ce0c03f00:/scripts/book2partner diff --git a/scripts/book2partner b/scripts/book2partner index 5866cc3..136fffc 100755 --- a/scripts/book2partner +++ b/scripts/book2partner @@ -2,19 +2,19 @@ # -*- 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 def utf_trunc(text, limit): -""" truncates text to at most `limit' bytes in utf-8 """ + """ truncates text to at most `limit' bytes in utf-8 """ if text is None: return text orig_text = text @@ -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.cover(600, 730, - 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,6 +86,80 @@ def virtualo(filenames, output_dir, verbose): xml_file.close() +def prestigio(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.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, + 'name': e.__class__.__name__, + 'message': e.message + } + if __name__ == '__main__': @@ -99,8 +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('--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() @@ -108,5 +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.prestigio: + prestigio(input_filenames, options.output_dir, options.verbose) + if options.prestigio_pdf: + prestigio_pdf(input_filenames, options.output_dir, options.verbose)