migration and oth. minor fixes
[wolnelektury.git] / apps / catalogue / management / commands / importbooks.py
index c0a5df1..c5fbb2e 100644 (file)
@@ -1,9 +1,14 @@
+# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
 import os
 import sys
+from optparse import make_option
 
 from django.core.management.base import BaseCommand
 from django.core.management.color import color_style
-from optparse import make_option
+from django.core.files import File
 
 from catalogue.models import Book
 
@@ -38,7 +43,6 @@ class Command(BaseCommand):
         for dir_name in directories:
             if not os.path.isdir(dir_name):
                 print self.style.ERROR("%s: Not a directory. Skipping." % dir_name)
-                files_skipped += 1
             else:
                 for file_name in os.listdir(dir_name):
                     file_path = os.path.join(dir_name, file_name)
@@ -46,8 +50,6 @@ class Command(BaseCommand):
                     
                     # Skip files that are not XML files
                     if not ext == '.xml':
-                        print self.style.NOTICE("%s: Not an XML file. Skipping." % file_path)
-                        files_skipped += 1
                         continue
                     
                     if verbose > 0:
@@ -65,6 +67,10 @@ class Command(BaseCommand):
                             book.pdf_file.save('%s.pdf' % book.slug, File(file(file_base + '.pdf')))
                             if verbose:
                                 print "Importing %s.pdf" % file_base 
+                        if os.path.isfile(file_base + '.epub'):
+                            book.epub_file.save('%s.epub' % book.slug, File(file(file_base + '.epub')))
+                            if verbose:
+                                print "Importing %s.epub" % file_base 
                         if os.path.isfile(file_base + '.odt'):
                             book.odt_file.save('%s.odt' % book.slug, File(file(file_base + '.odt')))
                             if verbose:
@@ -73,7 +79,15 @@ class Command(BaseCommand):
                             book.txt_file.save('%s.txt' % book.slug, File(file(file_base + '.txt')))
                             if verbose:
                                 print "Importing %s.txt" % file_base
-                    
+                        if os.path.isfile(os.path.join(dir_name, book.slug + '.mp3')):
+                            book.mp3_file.save('%s.mp3' % book.slug, File(file(os.path.join(dir_name, book.slug + '.mp3'))))
+                            if verbose:
+                                print "Importing %s.mp3" % book.slug
+                        if os.path.isfile(os.path.join(dir_name, book.slug + '.ogg')):
+                            book.ogg_file.save('%s.ogg' % book.slug, File(file(os.path.join(dir_name, book.slug + '.ogg'))))
+                            if verbose:
+                                print "Importing %s.ogg" % book.slug
+                            
                         book.save()
                     
                     except Book.AlreadyExists, msg: