import io import requests import json from django.conf import settings url = "https://www.googleapis.com/books/v1/volumes?q=isbn:%s&key=AIzaSyCCYn5v58R08msS06pRfOzTHANUuG2tSHI" % (book.isbn) def get_book_isbn(book): print(book.title) if book.author_name != "Instapaper": url = "https://www.googleapis.com/books/v1/volumes?q=%s+inauthor:%s&key=AIzaSyCCYn5v58R08msS06pRfOzTHANUuG2tSHI" % (book.title, book.author_name) r = requests.get(url, timeout=3.001) data = r.json() isbn10 = "" isbn13 = "" for item in data["items"]: for isbn in item["volumeInfo"]["industryIdentifiers"]: print(isbn['identifier']) if isbn['type'] == "ISBN_13": isbn13 = isbn['identifier'] elif isbn['type'] == "ISBN_10": isbn10 = isbn['identifier'] print(isbn10) return isbn10 break def get_book_data(book): if book.author_name != "Instapaper": url = "https://openlibrary.org/api/books?bibkeys=ISBN:%s&format=json&jscmd=data" % book.isbn r = requests.get(url, timeout=9.001) j = json.loads(r.text) obj = "ISBN:%s" % book.isbn try: pages = j[obj]['number_of_pages'] except: pages = '' try: publish_date = j[obj]['publish_date'] except: publish_date = '' try: publish_places = j[obj]['publish_places'][0]['name'] except: publish_places = '' try: openlib_url = j[obj]['url'] except: openlib_url = '' print("pages " + str(pages)) print("date " + publish_date) print("place " + publish_places) print("openlib " + openlib_url) book.pages = pages book.publish_date = publish_date book.publish_place = publish_places book.openlib_url = openlib_url book.save() def fetch_image(book): path = '%s/%s/%s.jpg' % (settings.IMAGES_ROOT, 'book-covers', book.slug) r = requests.get(book.image, timeout=6.001) im = io.StringIO(r.content) # constructs a StringIO holding the image im.save(path)