Projects/worblehat-old
Projects
/
worblehat-old
Archived
12
0
Fork 0

faset over til google books og gdata

This commit is contained in:
Øyvind Almelid 2010-09-23 17:04:28 +00:00
parent 644e79f9b5
commit 9d3d77cbf6
2 changed files with 43 additions and 3 deletions

View File

@ -1,3 +1,5 @@
#!/usr/bin/python
from web.library.models import * from web.library.models import *
from gdata.books.service import BookService from gdata.books.service import BookService
@ -13,6 +15,41 @@ def get_book_loop():
if len(feed.entry) == 0: if len(feed.entry) == 0:
print "No items found" print "No items found"
elif len(feed.entry) == 1: elif len(feed.entry) == 1:
print "Found one item: "+feed.entry[0].title.text print "Found one item: "+feed.entry[0].dc_title[0].text
b = build_book(feed.entry[0], input)
else: else:
print "Found several items, OWNOES!" print "Found several items, OWNOES!"
def build_book(entry, input=False):
dic = entry.to_dict()
# print dic
print entry
b = Book(title=entry.dc_title[0].text)
if len(entry.dc_title) > 0:
b.subtitle = ''.join(map(lambda x: x.text, entry.dc_title[1:]))
isbn = find_isbn(dic['identifiers'])
if isbn:
b.isbn = isbn
elif input:
if len(input) == 13:
b.isbn = input
else:
print "No ISBN found"
return False
if 'description' in dic:
b.description = dic['description']
if 'date' in dic:
b.published_year = int(dic['date'][:4])
if 'publishers' in dic:
b.publisher = ','.join(dic['publishers'])
print entry.format
b.full_print()
def find_isbn(identifiers):
for pair in identifiers:
if pair[0] =='ISBN' and len(pair[1])==13:
return pair[1]
return False
get_book_loop()

View File

@ -22,7 +22,7 @@ class Reference(models.Model):
class Book(models.Model): class Book(models.Model):
isbn = models.CharField(max_length=13, primary_key=True) isbn = models.CharField(max_length=13, primary_key=True)
id = models.CharField(max_length=255, unique=True) id = models.CharField(max_length=255)
title = models.CharField(max_length=511) title = models.CharField(max_length=511)
subtitle = models.CharField(max_length=511, null=True, blank=True) subtitle = models.CharField(max_length=511, null=True, blank=True)
category = models.ForeignKey(Category) category = models.ForeignKey(Category)
@ -38,7 +38,10 @@ class Book(models.Model):
def full_print(self): def full_print(self):
for field in book_fields.items(): for field in book_fields.items():
print '%15s: %-30s' % (field[1],eval('self.'+field[0])) try:
print '%-15s: %50s' % (field[1],eval('self.'+field[0]))
except Category.DoesNotExist:
print '%-15s: %50s' % (field[1], 'Does not exist')
class AlternativeTitle(models.Model): class AlternativeTitle(models.Model):
book = models.ForeignKey(Book) book = models.ForeignKey(Book)