from django.core.management.color import color_style
from django.db import transaction
from librarian.dcparser import BookInfo
-from librarian import ParseError, ValidationError
+from librarian import ParseError, ValidationError, WLURI
from django.conf import settings
from catalogue.models import Book
from catalogue.management import auto_taggers
text = b.materialize().encode('utf-8')
try:
info = BookInfo.from_string(text)
- slugs[info.slug].append(b)
+ slugs[info.url.slug].append(b)
except (ParseError, ValidationError):
slugs[b.slug].append(b)
except ValueError:
print "pad '%s' does not exist" % pid
continue
- slug = slughifi(pid)
+
+ open("/tmp/pad_%s.txt" % pid, 'w').write(text.encode('utf-8'))
+
+ if options.get('tag_edumed'):
+ auto_tagger = 'edumed'
+ else:
+ auto_tagger = options.get('auto_tagger')
+ if auto_tagger:
+ text = auto_taggers[auto_tagger](text)
+ try:
+ info = BookInfo.from_string(text.encode('utf-8'))
+ slug = info.url.slug
+ except (ParseError, ValidationError):
+ slug = slughifi(pid)
+
+ print "Importing %s (slug %s)..." % (pid, slug)
title = pid
+ # print slugs, slug
previous_books = slugs.get(slug)
if previous_books:
if len(previous_books) > 1:
if previous_book:
book = previous_book
+ book.slug = slug
else:
book = Book()
book.slug = slug
else:
chunk = book.add(slug, title)
- if options.get('tag_edumed'):
- auto_tagger = 'edumed'
- else:
- auto_tagger = options.get('auto_tagger')
- if auto_tagger:
- text = auto_taggers[auto_tagger](text)
chunk.commit(text, **commit_args)
book_count += 1