PDF: Respect inherited covers.
[wolnelektury.git] / apps / catalogue / management / commands / pack.py
index 80f612a..6ecf32d 100755 (executable)
@@ -23,9 +23,8 @@ class Command(BaseCommand):
         make_option('-e', '--exclude', dest='exclude', metavar='SLUG,...',
             help='Exclude specific books by slug')
     )
         make_option('-e', '--exclude', dest='exclude', metavar='SLUG,...',
             help='Exclude specific books by slug')
     )
-    help = 'Prepare data for Lesmianator.'
-    ftypes = ['xml', 'txt', 'html', 'epub', 'pdf']
-    args = '[%s] output_path.zip' % '|'.join(ftypes)
+    help = 'Prepare ZIP package with files of given type.'
+    args = '[%s] output_path.zip' % '|'.join(Book.formats)
 
     def handle(self, ftype, path, **options):
         self.style = color_style()
 
     def handle(self, ftype, path, **options):
         self.style = color_style()
@@ -34,7 +33,7 @@ class Command(BaseCommand):
         include = options.get('include')
         exclude = options.get('exclude')
 
         include = options.get('include')
         exclude = options.get('exclude')
 
-        if ftype in self.ftypes:
+        if ftype in Book.formats:
             field = "%s_file" % ftype
         else:
             print self.style.ERROR('Unknown file type.')
             field = "%s_file" % ftype
         else:
             print self.style.ERROR('Unknown file type.')
@@ -53,7 +52,7 @@ class Command(BaseCommand):
         if exclude:
             books = [book for book in books if book.slug not in exclude.split(',')]
 
         if exclude:
             books = [book for book in books if book.slug not in exclude.split(',')]
 
-        archive = zipfile.ZipFile(path, 'w')
+        archive = zipfile.ZipFile(path, 'w', zipfile.ZIP_DEFLATED)
 
         processed = skipped = 0
         for book in books:
 
         processed = skipped = 0
         for book in books: