Quick Hack to Catalog your Books

If you have actual, paper books and want to catalog their info quickly, this bookdata.py script may be handy:

import sys
import time
import gdata.books.service
import json

def get_book_info(isbn):
    print "Looking for ISBN:", isbn
    google_books = gdata.books.service.BookService()
    result = google_books.search('ISBN %s '%isbn)
    data = [x.to_dict() for x in result.entry]
    if not data:
        print "No results"
        return
    title = data[0]['title']
    with open(title+'.json','w') as f:
        f.write(json.dumps(data))
    print "Guardada info de '%s' en '%s.json'" %(isbn, title)

if __name__ == "__main__":
    while True:
        isbn = sys.stdin.readline().strip()
        if isbn:
            get_book_info(isbn)
        time.sleep(1)

What does it do? It reads ISBN numbers from standard input and saves the book's info in a title.json file for later processing and formatting.

If you want to edit that information, you can just do it or you can try doing a little script using jsonwidget like this:

python -c 'import jsonwidget; jsonwidget.run_editor("abook.json", schemafile="gbooks.schema")'

Where abook.json is a file generated by the previous script and gbooks.schema is this file.

Oh, and if your books have barcodes, you can just do:

zbarcam --raw | python bookdata.py

Show your computer your books and let it do the rest :-)

PS: I would love if someone gathered all this and made a nice personal book cataloguing thing.

Comments

Comments powered by Disqus