Phone not required.
[wolnelektury.git] / src / catalogue / management / commands / importbooks.py
index b8a9aa7..79bdbb8 100644 (file)
@@ -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):
@@ -29,12 +25,9 @@ class Command(BaseCommand):
                 '-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(
-                '-p', '--picture', action='store_true', dest='import_picture',
-                default=False, help='Import pictures')
+                '-F', '--not-findable', action='store_false',
+                dest='findable', default=True,
+                help='Set book as not findable.')
         parser.add_argument('directory', nargs='+')
 
     def import_book(self, file_path, options):
@@ -46,7 +39,9 @@ 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):
                 getattr(book, '%s_file' % ebook_format).save(
@@ -58,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
@@ -113,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