Exemplo n.º 1
0
    def handle(self, *args, **options):

        if len(args) == 0:
            raise CommandError("You must specify book name!")

        try:
            book = models.Book.objects.get(url_title__iexact=args[0])
        except models.Book.DoesNotExist:
            raise CommandError('Book "%s" does not exist.' % args[0])

        book_version = book.get_version(options['book_version'])

        if not book_version:
            raise CommandError('Book version %s does not exist.' % options['book_version'])

        from booktype.apps.export.utils import get_exporter_class

        filename = '%s.epub' % book.url_title
        if options['output_name']:
            filename = options['output_name']

        get_exporter_class()(filename, book_version).run()

        if options['verbosity'] in ['1', '2']:
            print 'Book successfully exported into "%s" file.' % filename
Exemplo n.º 2
0
    def get(self, request, bookid):

        try:
            book = models.Book.objects.get(url_title__iexact=bookid)
        except models.Book.DoesNotExist:
            pass

        book_version = book.get_version(None)

        response = HttpResponse(content_type='application/epub+zip')
        response['Content-Disposition'] = 'attachment; filename=%s.epub' % book.url_title

        temp_dir = tempfile.mkdtemp()
        filename = '%s/export.epub' % temp_dir

        from booktype.apps.export.utils import get_exporter_class

        # it should return object epub book
        # we should be able to write it as a separate thing
        get_exporter_class()(filename, book_version).run()

        # write file
        response.write(open(filename, 'rb').read())

        os.unlink(filename)
        os.rmdir(temp_dir)

        return response
Exemplo n.º 3
0
    def handle(self, *args, **options):

        if len(args) == 0:
            raise CommandError("You must specify book name!")

        try:
            book = models.Book.objects.get(url_title__iexact=args[0])
        except models.Book.DoesNotExist:
            raise CommandError('Book "%s" does not exist.' % args[0])

        book_version = book.get_version(options['book_version'])

        if not book_version:
            raise CommandError('Book version %s does not exist.' %
                               options['book_version'])

        from booktype.apps.export.utils import get_exporter_class

        filename = '%s.epub' % book.url_title
        if options['output_name']:
            filename = options['output_name']

        get_exporter_class()(filename, book_version).run()

        if options['verbosity'] in ['1', '2']:
            print 'Book successfully exported into "%s" file.' % filename
Exemplo n.º 4
0
def import_based_on_book(base_book_version, book_dest):
    """
    This will create an epub file from an existing book to later
    use our importing mechanism and put its content into a second book
    (just like cloning action but based on epub)

    Keyword arguments:
        base_book_version -- Book version to be used as base
        book_dest -- Destiny book
    """

    with temporary_directory() as temp_dir:
        temporale_epub = '%s/temporale.epub' % temp_dir

        # it should return object epub book
        # we should be able to write it as a separate thing
        get_exporter_class()(temporale_epub, base_book_version).run()

        return import_based_on_epub(temporale_epub, book_dest)