X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8559c95597de98e8f6c580e97224ed3ecc9dc5c0..5761df5a5d4d40ba7c82e1b1277af30cedeb8306:/catalogue/management/commands/importbooks.py diff --git a/catalogue/management/commands/importbooks.py b/catalogue/management/commands/importbooks.py index 24908fe44..838fd4f17 100644 --- a/catalogue/management/commands/importbooks.py +++ b/catalogue/management/commands/importbooks.py @@ -1,11 +1,11 @@ -from django.core.management.base import BaseCommand, CommandError +import os + +from django.core.management.base import BaseCommand from django.core.management.color import color_style from optparse import make_option -import sys -import os +from slughifi import slughifi +import dcparser -from catalogue.lib.dcparser import parse -from catalogue.lib.slughifi import slughifi from catalogue.models import Book, Tag @@ -40,26 +40,10 @@ class Command(BaseCommand): if not os.path.splitext(file_name)[1] == '.xml': print self.style.NOTICE("Skipping '%s': not an XML file." % file_path) continue - if verbosity > 1: + if verbosity > 0: print "Parsing '%s'" % file_path - - book_info = parse(file_path) - book = Book(title=book_info.title, slug=slughifi(book_info.title)) - book.save() - book_tags = [] - for category in ('kind', 'genre', 'author', 'epoch'): - tag_name = getattr(book_info, category) - tag_sort_key = tag_name - if category == 'author': - tag_sort_key = tag_name.last_name - tag_name = ' '.join(tag_name.first_names) + ' ' + tag_name.last_name - tag, created = Tag.objects.get_or_create(name=tag_name, - slug=slughifi(tag_name), sort_key=slughifi(tag_sort_key), category=category) - tag.save() - book_tags.append(tag) - book.tags = book_tags - + Book.from_xml_file(file_path) transaction.commit() transaction.leave_transaction_management()