Merging changes to book_data.py
authorChristopher Hawthorne <cdchawthorne@gmail.com>
Sat, 9 Nov 2013 04:44:16 +0000 (23:44 -0500)
committerChristopher Hawthorne <cdchawthorne@gmail.com>
Sat, 9 Nov 2013 04:44:16 +0000 (23:44 -0500)
1  2 
book_data.py

diff --combined book_data.py
@@@ -5,6 -5,7 +5,7 @@@ except ImportError
          # Fall back to Python 2's urllib2
              from urllib2 import urlopen,URLError
  from json import loads,dumps
+ from socket import timeout
  import sys
  
  """ Library Book Type Description:
@@@ -36,11 -37,11 +37,13 @@@ Keys
  def openLibrary_isbn(ISBN):
      isbn = str(ISBN)
      try:
 -        jsondata = urlopen("http://openlibrary.org/api/books?format=json&jscmd=data&bibkeys=ISBN:"+isbn, timeout=3)
 +        jsondata = urlopen("http://openlibrary.org/api/books"
 +                           "?format=json&jscmd=data&bibkeys=ISBN:"+isbn,
 +                           timeout=3)
-     except URLError:
-         return {}
+     except URLError as e:
+         return {'title':e}
+     except timeout:
+         return {'title':'Timeout while connecting to OpenLibrary.org'}
      openBook = loads(jsondata.read().decode('utf-8'))
      if "ISBN:"+isbn not in openBook:
          return {'isbn':isbn,'title':'Book not found'}
@@@ -64,8 -65,7 +67,8 @@@
              book["publish location"] += "; " + v['name']
          book['publish location'] = book['publish location'][2:]
  
 -    # for lccn, there maybe be multiple values in the query. I'm just taking the first, but the full list may be useful
 +    # for lccn, there maybe be multiple values in the query. I'm just taking
 +    # the first, but the full list may be useful
      if "lccn" in openBook['identifiers']:
          book["lccn"]=int(openBook['identifiers']['lccn'][0])
      if "publish_date" in openBook:
@@@ -85,9 -85,7 +88,9 @@@
  def openLibrary_lccn(LCCN):
      lccn = str(LCCN)
      try:
 -        jsondata = urlopen("http://openlibrary.org/api/books?format=json&jscmd=data&bibkeys=lccn:"+lccn, timeout=3)
 +        jsondata = urlopen("http://openlibrary.org/api/books"
 +                           "?format=json&jscmd=data&bibkeys=lccn:"+lccn,
 +                           timeout=3)
      except URLError:
          return {}
      openBook = loads(jsondata.read().decode('utf-8'))
              book["publish location"] += "; " + v['name']
          book['publish location'] = book['publish location'][2:]
  
 -    # for isbn, there maybe be multiple values in the query. I'm just taking the first, but the full list may be useful
 +    # for isbn, there maybe be multiple values in the query. I'm just taking
 +    # the first, but the full list may be useful
      # There are also ISBN's that have non-number values :(
      if "isbn_10" in openBook['identifiers']:
          book["isbn"]=openBook['identifiers']['isbn_10'][0]