X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/d2b0cc75d0835ad5384bec638fea6ea244eadb40..ce097db0af8c96297501b569ec49477b76c1ceec:/src/catalogue/management/commands/importbooks.py diff --git a/src/catalogue/management/commands/importbooks.py b/src/catalogue/management/commands/importbooks.py index e5e7c89fa..79bdbb882 100644 --- a/src/catalogue/management/commands/importbooks.py +++ b/src/catalogue/management/commands/importbooks.py @@ -1,5 +1,5 @@ -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # import os import sys @@ -8,11 +8,7 @@ from django.core.management.base import BaseCommand from django.core.management.color import color_style from django.core.files import File from django.db import transaction -from librarian.picture import ImageStore - from catalogue.models import Book -from picture.models import Picture -from search.index import Index class Command(BaseCommand): @@ -28,17 +24,10 @@ class Command(BaseCommand): parser.add_argument( '-D', '--dont-build', dest='dont_build', metavar="FORMAT,...", help="Skip building specified formats") - parser.add_argument( - '-S', '--no-search-index', action='store_false', - dest='search_index', default=True, - help='Skip indexing imported works for search') parser.add_argument( '-F', '--not-findable', action='store_false', dest='findable', default=True, help='Set book as not findable.') - parser.add_argument( - '-p', '--picture', action='store_true', dest='import_picture', - default=False, help='Import pictures') parser.add_argument('directory', nargs='+') def import_book(self, file_path, options): @@ -50,8 +39,8 @@ class Command(BaseCommand): file_base, ext = os.path.splitext(file_path) book = Book.from_xml_file(file_path, overwrite=options.get('force'), dont_build=dont_build, - search_index_tags=False, findable=options.get('findable'), + remote_gallery_url='file://' + os.path.dirname(os.path.abspath(file_base)) + '/img/' ) for ebook_format in Book.ebook_formats: if os.path.isfile(file_base + '.' + ebook_format): @@ -64,33 +53,11 @@ class Command(BaseCommand): print("Importing %s.%s" % (file_base, ebook_format)) book.save() - def import_picture(self, file_path, options, continue_on_error=True): - try: - image_store = ImageStore(os.path.dirname(file_path)) - picture = Picture.from_xml_file(file_path, image_store=image_store, overwrite=options.get('force')) - except Exception as ex: - if continue_on_error: - print("%s: %s" % (file_path, ex)) - return - else: - raise ex - return picture - @transaction.atomic def handle(self, **options): self.style = color_style() verbose = options.get('verbose') - import_picture = options.get('import_picture') - - if options.get('search_index') and not settings.NO_SEARCH_INDEX: - index = Index() - try: - index.index_tags() - index.index.commit() - except Exception as e: - index.index.rollback() - raise e files_imported = 0 files_skipped = 0 @@ -119,16 +86,12 @@ class Command(BaseCommand): # Import book files try: - if import_picture: - self.import_picture(file_path, options) - else: - self.import_book(file_path, options) - + self.import_book(file_path, options) files_imported += 1 - except (Book.AlreadyExists, Picture.AlreadyExists): + except Book.AlreadyExists: print(self.style.ERROR( - '%s: Book or Picture already imported. Skipping. To overwrite use --force.' % + '%s: Book already imported. Skipping. To overwrite use --force.' % file_path)) files_skipped += 1