Talk:Zambrano
Template:TOC limit Template:Infobox peerage title
== Fortun Sanchez Grandee Zambrana.<ref name="Mogrobejo2010">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main() </ref> ==
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Fortun Sanchez of Mendoza,Vitoria-Gasteiz, Spain. <ref name="SANDOVAL1601">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
was the first Grandee Zambrana, <ref name="Fern�ndez1956">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
receiving his title in Burgos on 1058 and died in 1088. <ref>http://www.cuadrilladeanana.es/zambrana/zambrana.php</ref> <ref name="Cascales1775">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Madoz(Madrid)1847">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
The grandee title was given to him by [[Sancho IV of Navarre]], for his service to Sancho III of Navarre and to Garcia Sanchez III of Navarre, The Zambrana family crest shows two silver stars for this service to the crown. <ref name="Sandoval1601">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Fortun serve as page and squire until he became lord Zambrana. <ref name="Diario curioso, erudito, economico y comercial">{{cite book|title=Diario curioso, erudito, economico y comercial|url=http://books.google.com/books?id=MZUTM-Uh1qUC&pg=PA245%7Caccessdate=19 November 2012|year=1787|publisher=Imp. de Manuel Gonzalez|pages=245�}}</ref> <ref name="Diario curioso, erudito, economico y comercial">{{cite book|title=Diario curioso, erudito, economico y comercial|url=http://books.google.com/books?id=6xPkshYZM_0C&pg=PA202%7Caccessdate=19 November 2012|year=1787|publisher=Imp. de Manuel Gonzalez|pages=202�}}</ref> <ref name="Sandoval1601">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>.
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Diario curioso, erudito, economico y comercial">{{cite book|title=Diario curioso, erudito, economico y comercial|url=http://books.google.com/books?id=MZUTM-Uh1qUC&pg=PA245%7Caccessdate=4 December 2012|year=1787|publisher=Imp. de Manuel Gonzalez|pages=245�}}</ref> <ref name="Diario curioso, erudito, economico y comercial">{{cite book|title=Diario curioso, erudito, economico y comercial|url=http://books.google.com/books?id=6xPkshYZM_0C&pg=PA202%7Caccessdate=4 December 2012|year=1787|publisher=Imp. de Manuel Gonzalez|pages=202�}}</ref>
Zambrana, Spain came to be after the [[Solar (Spanish term)|Solares]] or house mark Zambrana became Villa Zambrana<ref name="Piferrer1858">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Due to the many
languages spoken in Spain, many spelling variations of the same name are shown in history. Spain, France and England have records of the Zambrano in their historical documents as follows; Zambrana,Zambrano,Cambrano,Sambrano,Sembrano,Zambraos,Zambranok are among the most noted in history.<ref name="Valenzuela2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref name="Catalogo
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
de la coleccion , antes denominada">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
name="Molenat1997">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Library of congress: Endika de Mogrobejo continued the work and in Endika's volume 13 I found the article on the Zambranos. The citation is: <http://lccn.loc.gov/95184192>.
Contents
- 1 Family Crest Zambrana
- 2 Service to the Kings of Spain, Germany, Italy and America (Indias).
- 3 Zambra and Zamorano became Zambrano in America
- 4 Lineage
- 5 Zambrano DNA by location
- 6 Monuments
- 7 America (Colonial 1492-1800)
- 7.1 Clergyman
- 7.2 Mexico colonies.
- 7.3 Durango Mexico.
- 7.4 Jalisco Mexico
- 7.5 Chile
- 7.6 New Mexico
- 7.7 California.
- 7.8 Spanish Empire Netherland, Italy and (Indias America and philippines).
- 7.9 Spain
- 7.10 Texas.
- 7.11 Mexico Monterey.
- 7.12 Nuevo Leon.
- 7.13 Nueva granada (South America).
- 7.14 Italy.
- 7.15 Uruguay.
- 7.16 Philippines.
- 7.17 Spanish Monasteries.
- 7.18 Argentina.
- 7.19 Ecuador.
- 7.20 Colombia.
- 7.21 Spanish Netherlands.
- 7.22 Canay Islands.
- 7.23 Other languages not classified
- 8 WWI and WWII
- 9 Present times 1900-present
- 10 Google map locations for Zambrana and Zambrano, City or St.
- 10.1 USA Streets
- 10.2 Puerto Rico
- 10.3 Spain Street
- 10.4 Cuba, Zambrana st.
- 10.5 Panama, Zambrano city
- 10.6 Chile, Zambrano City
- 10.7 Mexico, Zambrano city.
- 10.8 Colombia, Zambrano city
- 10.9 Ecuador, Zambrano street
- 10.10 Nicaragua, Zambrano City
- 10.11 Nicaragua, Zambrana City
- 10.12 Argentina, Zambrano st.
- 10.13 Ecuador, Zambrano St.
- 10.14 Philippines
- 11 Resources
- 12 Heraldry websites
- 13 Santiago Surname History
- 14 Santiago family crest
- 15 De Santiago Linage
- 16 References
Family Crest Zambrana
County of Castile. <ref name="Valenzuela2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
King Sancho IV of Navarre awarded,Fortun Sanchez of Mendoza his lordship in Burgos on 1058. Inherited to his son Fortun Sanchez De Zambrana in Zambrana.
This was the first arms awarded to Zambrana. A citizen of Zambrana is refer to as Zambrano. Zambrana being a lord ship Surname, Zambrano a topophonic name.
The Zambrano later receive their arms,Ochoa Zambraos Family being the first. This family serve in Germany, Italy and England. And They were part of the first colonies in America.
Jaen, Baeza, Ubeda, Linares
King Ferdinand III of Castile awarded, Martin Alonso Zambrana on 1227 in Baeza.
- Escudo de Linares.svg
Linaje de Zambrana pdf.]<ref name="G�mez1979">Template:Citebook</ref>
The Zambrana Family moved Jaen territory. Following Fernand III who recorded his Charter in the arch of Alcanzar. Both Zambrana and Zambrano recorded in this territory. They donated their land to the Catholic Monasteries.
Linares Zambrano Arms shows a Marquez of Zambrana as governor of the land. Apointted by Phillip II of Spain.
This arms can be seen in this old record:
http://diegomallen.blogspot.com/2011/01/usurpacion-de-armas-de-don-pedro-de.html
Murcia
King Henry III of Castile awarded, Pedro Sanchez Inigez Zambrana on 1523 in Mula.
Zambrana Family Govern over the Castle under Henry III of Spain.
Netherlands, flanders
- Gran Cruz de la Orden de Carlos III.svg
King Carlos III de Espa�a Awarded, Marquis Von Zambrano in 1820 in Spain.
The First Zambrano to receive his arms join Charles V in Flanders Armies. They later travel to England under his son Phillip II.
England
King Philip II of Spain in England awarded,Antonio Zambrano Frias on **** in Ucles.
- File:blank.svg
King Philip III of Spain awarded, Juan Zambrano in Brujas/Bruges.
This are the arms of the first Zambrano. The red castile and Gules Reus Shows Service to Flanders and England. The Blue stars may have originated from their union with the Ortiz adn Frias families.
Juan Zambrana Died with no male Peerage.
The Zambranok surname is mention in records but no information is available.
Castilla Leon
- Zambrano medina de pomar.jpg
Zambrano Medina de Pomar.
Burgos was the place were the first Zambrana recieve his arms. The Zambrana and Zambrano branch out and they share a common origin, they also share the same territory. Looking to see if they are conected to Ochoa Zambrano families.
Andalusia
Zambranos of Granada
Fernando Zambrana de Villalobos in
Zambrano Las Monta�as (Narcea) in
All Zambrana and Zambrano Families moved to Arcos de la frontera. From here they moved all over America and Phillippines.
Madrid
Zambrana Leon.
- Fundacion Valle Salado528.JPG
Zambrana Palace A�ana de
- Escudo de Madrid.svg
Los Condes Vega del Pozo, Antonio Maria Quijada Gutierrez De Haro and Martin Fajardo Y Zambrana.<ref name="Piñal1984">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
This Zambrana Family is recorded to have united with Ponce de Leon Family. When they travel to America they change their surname to Zambrano?
Francisca Zambrana became Frnacisca Zambrano, She marry to one of Ponce de Leon Guards who died in Alta Califroania. She LIved in Colima Mexico one of the first colonies in America.
Extramadura
The Zambrana and Zambrano are well recorded in this territory, mainly Fuente del Maestre.
Catambria
- Zambrnaa catambria 2.jpg
Zambrana Laredo 2nd branch.
Misc
- Zambranoa or zambrano arms no records.jpg
Arms picture record only, Zambrana or Zambrano.
Zambrana or Zambrano.<ref name="Piferrer1858">{{cite
book|author=Francisco Piferrer|title=Nobiliario de los reinos y
se�orios de Espa�a (revisado por A. Rujula y
Busel).|url=http://books.google.com/books?id=m1UBAAAAQAAJ&pg=PA42%7Caccessdate=19
November 2012|year=1858|pages=42�}}</ref>
<ref name="Cascales1775">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Mogrobejo2010">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="GuerraMayor1867">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
</ref>
- Castile Silver: A family establish by a Royal gold family of
Castile. Silver Moon, Sole duty to protect the maiden ladies and the orphans.
- 2 Silver Stars: Represent Service to King [[Garc�a S�nchez III of
Navarre]] and King Sancho III of Navarre
- 8 Golden saltire Cross: Cross of St. Andrew. Conquest of
Baez or Baeza. And the 8 count marks as a new family from a existing family or Grandee. Gold Sun, Sole duty is to protect the prince to the Death, and guard the poor.
[http://www.monumentalnet.org/pais_vasco/alava/anana/salinas_de_anana/palacio_de_los_herran.php?vis=4 Zambrana Crest] in Palacio de Zambrana Herran<ref name="Cascales1775">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
[http://books.google.com/books/reader?id=m1UBAAAAQAAJ&printsec=frontcover&output=reader Zambrana crest Heraldic records] Page 40 Illustration. Record 730. page 42.
- All the Zambrana(o) are known by this sigil. Those near sea
will add water waves; those that serve the French Kings will have a red castle and flower. Many Families sprouted all over Spain, Italy and America. The most important families are register in the Orders of Spain. The Zambranos that belong to these orders are the most important in history. They are Explorers, rich miners, zealots for the Catholic religion. The Zambrano were Inherited to the Kingdom of Granada after the Reconquista by the king�s of Spain. The Zambrano were inherited for their Castile lineage and service to the crown. The Zambrana(o) have monuments in Spain and America. They govern Castles, monuments, House mark , and regal tombs. According to the digital library of Spain and the genealogy science department there are 5 original families in America.
Service to the Kings of Spain, Germany, Italy and America (Indias).
- Fortun Sanchez of Mendoza, Page to [[Garcia Sanchez III of
Navarre]] and to Sancho III of Navarre And became Lord Zambrana under Sancho IV of Navarre. <ref name="Cascales1621">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Martin Alonzo De Zambrana, Conquest of Baeza in 1227.
[[http://bscw.rediris.es/pub/bscw.cgi/d507866/5%20-%20Lista%20Baeza | Los arcos del alcanzar.]] [[http://bscw.rediris.es/pub/bscw.cgi/507850?client_size=1020x579 | Lista de los 300 Soldados ]] <ref name="SorianoTejada2000">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="L�pez2012">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Pedro Sanchez Iniguez De Zambrana Serve Henry III of Castile.
Govern over the castle Mula, Murcia,Spain.
- Francisco Zambrana y Montemayor brother to Juan Perez de Zambrana
Regidor de Ubeda. <ref name="Pe�aranda1975">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Mendoza2005">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Pedro Zambrana Page to Charles V, Holy Roman Emperor, and
member of the order of Santiago. <ref name="Cascales1621">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Narratives of the Career of Hernando de Soto in the Conquest of Florida">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Zambrano, Navarro, Alva."El carnicero" libro en aleman. Buscando.
German book in google books.
- Isidro, Hipolito and Antonio Zambrano, serve Philip II of Spain
in England.
- Jaun Zambrano Grnad child to Antonio Zambrano Serve in Bruges/Brujas.
- Don Pedro Zambrano y Gordillo receive the title Marquez Zambrano
(Marquis von zambrano) on 1761, Under Spanish Empire. The title migrated to Italy under Ferdinand VII.. <ref name="Catal�Galcer�n1769">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Fontane1848">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Oesterreichischer Beobachter">{{cite book|title=Oesterreichischer Beobachter|url=http://books.google.com/books?id=ULNIAAAAcAAJ&pg=PA230%7Caccessdate=18 March 2013|year=1847|publisher=Strau�|pages=230�}}</ref> <ref name="BerghausHumboldt1829">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Bayreuther Zeitung">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Conversations-Lexikon der Gegenwart: In vier B�nden. K bis O">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Suplemento al Elenco de grandezas y t�tulos nobiliarios espa�oles: T�tulos vacantes y t�tulos extranjeros cuyo uso fue autorizado en Espa�a">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Der Oesterreichische Beobachter">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Ranft1762">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Oesterreichischer Beobachter">{{cite book|title=Oesterreichischer Beobachter|url=http://books.google.com/books?id=HbdIAAAAcAAJ&pg=PA1435%7Caccessdate=23 March 2013|year=1832|publisher=Strau�|pages=1435�}}</ref> <ref name="�sterreichischer Beobachter">{{cite book|title=�sterreichischer Beobachter|url=http://books.google.com/books?id=wAM8AQAAIAAJ&pg=PA701%7Caccessdate=23 March 2013|year=1833|publisher=A. Strauss|pages=701�}}</ref> <ref name="BredowVenturini1829">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Der Wanderer">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Neckar-Zeitung">{{cite book|title=Neckar-Zeitung|url=http://books.google.com/books?id=ZPFDAAAAcAAJ&pg=RA2-PA787%7Caccessdate=27 March 2013|year=1826|pages=787�}}</ref> <ref name="SparksSanger1831">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Blanchetai1962">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Quinze ann�es d'un proscrit">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
6. D. Miguel de Ibarrola y González, Marqués de Zambrano.<ref>http://losejercitosdelrey.es/fernando7/1830_marques_de_zambrano/1830_marques_de_zambrano.html | Spanish, la biblioteca del Palacio Real, (sala VIII), bajo el tÃtulo de 'Colección de uniformes del Egército Español"</ref>
7. Mateo Toro Zambrano, Marquez Zambrano: Zambrano armas from Ucles.<ref name="Covarrubias1981">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Zambra and Zamorano became Zambrano in America
Zambra<ref name="Genealog�a">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
name="Castro1983">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
name="Piferrer1859">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
The Zambra Family belong to the Barnuevo Family year 1435. Calatrava order templar family. Zambra family shows sinople tree, w/ golden fruit in golden field. Sobreabo tree shows Zambrana origin.
Barnuevo shows 4 quarter shield Castile and calatrava.
Zamora Family are related to the Princes of Castile. Year 1067. Identical to Zambrana but with fleur de reus were the saltire cross would be.
Zambrano in Arab records.<ref name="Molenat1997">{{cite book|author=Jean Pierre Molenat|title=Campagnes et Monts de Tol�de du XIIe au XVe si�cleAge|url=http://books.google.com/books?id=nOeSqv7SM2AC&pg=PA99%7Caccessdate=3 April 2013|year=1997|publisher=Casa de Vel�zquez|isbn=978-84-86839-78-9|pages=87�89 , 100.}}</ref>
Lineage
Grandee Vizcaya <ref name="Garcia2002">{{cite
book|author=Francisco Rodriguez Garcia|title=Cronica Del Se�orio de
Vizcaya|url=http://books.google.com/books?id=HDOU-YWlmIoC&pg=PA46%7Caccessdate=20
November 2012|date=22 November 2002|publisher=Editorial
MAXTOR|isbn=978-84-9761-029-2|pages=46�}}</ref><ref>http://books.google.com/books?id=qFhpohL-NckC&pg=PA596&dq=toda+ortiz+fortun&hl=en&sa=X&ei=vXvjT5LTCIiA2gWCy6nJCw&ved=0CD4Q6AEwAg#v=onepage&q=for-tun%20sanchez%20mendoza&f=false</ref>
<ref name="Sandoval1601">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Basque se�or�os Lord of Biscay<ref>http://personal.telefonica.terra.es/web/vizcayamedieval/armas.htm</ref>
As per the records of the Roda Codex
Family tree for Jimeno of Pamplona and Banu Qasi<ref name="NavarreteNavarrete2008">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Father:[[Fort�n Garc�s of Pamplona]]<ref>http://www.euskomedia.org/aunamendi/52069</ref> <ref name="Sanz2007">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Ayes2010">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Jur�o1995">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Morets�n1892">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Mother: Aurea daugther of [[Lop ibn Musa]].<ref>http://es.wikipedia.org/wiki/Fort%C3%BAn_Garc%C3%A9s</ref>
Children: ��igo Fort�nez Aznar Fort�nez,Blasco (Velasco) Fort�nez,Lope Fort�nez,Onneca Fort�nez
1) D. Lope Fortunez Jaun Zuria "The white Lord" 1st Grandee of Vizcaya<ref>http://books.google.com/books?id=MlA8AQAAIAAJ&pg=PA319&lpg=PA319&dq=lope+ortiz+y+maria+de+escocia&source=bl&ots=eR0PMx87_i&sig=myVWdSfmetOYRTtEIADGrY2k2hg&hl=en&sa=X&ei=bYBzUMClIMO3igKSioHoCA&ved=0CDAQ6AEwAA</ref><ref>http://www.navarchivo.com/index.php/es/localidades/sanguesa/zuriain-esteribar?print=1</ref> [http://fr.wikipedia.org/wiki/Zuriain Zuriain]<ref>http://books.google.com/books?id=Dr8QAQAAMAAJ&q=zuriain&dq=zuriain&hl=en&sa=X&ei=i8iRULbXI6Wh2QWA0YCYDQ&ved=0CD4Q6AEwBg</ref>
- Da. Dalda daugther of D. Sancho Estiguiz Grandee of [[Durango,
Biscay|Durango]]
2) D. Munio Lopez or Manso Lopez 2nd Grandee of Vizcaya, Grandee Lopez.<ref name="P�rez1741">{{cite book|author=Pedro Morote P�rez|title=Antiguedad, y blasones de la ciudad de Lorca, y Historia de Santa Maria la Real de las Huertas...|url=http://books.google.com/books?id=0CW9Y1btLoMC&pg=PA214%7Caccessdate=20 November 2012|year=1741|publisher=por Francisco Joseph Lopez Mesnier, en la calle de Zambrana|pages=214�}}</ref>
- Da. Velazquita o Blasquita Daughter of Sancho II of Pamplona<ref
name="Llorente1808">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
3) Inigo Lopez 3rd El Ezquerra "left hand"Grandee of Vizcaya
4) Lope Diaz 4th Botiller Grandee of Vizcaya
- Elvira Bermudez
5)Father: Sancho Lopez 5th Grandee of Vizcaya <ref name="Alava1661">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Piferrer1858">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
House Mendoza <ref name="Piferrer1858">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Coronel1946">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Princes Dona Urraca Daughter of Sancho I of Pamplona
- Uncle: Inigo Lopez Esquerra as his granfather. Grandee Haro
after conquest of Baeza.
Brother: Lope Sanchez Grandee Laudio/Llodio<ref name="Alava1661">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Fortun Sanchez Mendoza Squire that became Grandee Zambrana
Surnames from Navarra/Pamplona or Biscaya have Wolf Sable or Sinople
Tree.<ref name="Prayla1867">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Fortun Sanchez was given his grandee title after the conquest of Baeza or Paez.<ref>http://books.google.com/books?id=XYh-6AZyE0YC&pg=PA503&dq=fortun+sanchez+baeza&hl=en&sa=X&ei=CueKUPCwNqWc2AXFi4HwCQ&ved=0CDIQ6AEwAQ#v=onepage&q=fortun%20sanchez%20baeza&f=false</ref> Fortun receive the title of lord do to his royal lineage <ref name="Garcia2002">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Zabala1885">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
, Lope Fortunez Jaun Zuria �The white lord� the 1st [[Lord of Biscay]] was son to Fort�n Garc�s of Pamplona recorded in the Roda Codex.<ref name="Garcia2002">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
The lords of vizcaya joined the Pamplona/Navarra kingdom by the marriage of Velasquita Daughter of Sancho I of Pamplona and the 2nd lord of viscaya Munio Lopez uncle to Fortun Sanchez. Fortun Sanchez is son to Count Sancho Lopez the 5th Lord of Biscay and Dona Urraca Sanchez daughter of Sancho I of Pamplona who became Queen of Leon and mother to Sancho I of Leon. His brother Lope Sanchez serve as Manager to king Sancho III of Navarra and became the 6th Lord of Biscay and was the first to receive a family crest.
Grandee Lope Fortunez has a house mark in Zuriain. And is recorded as the 1s Lord of Viscay. (Jaun, Fuero , Count or Grandee).<ref name="Zuricalday1885">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Coat of Arms of Asturias.svg
- Escand�n
title=Historia monumental del her�ico Rey Pelayo y sucesores
- En el trono cristiano de
- December 2012
pages=56�}}</ref>
- Beretta
title=Historia de Espa�a y su influencia en la historia
- December 2012
pages=181�}}</ref>
- Condado de Castilla, 711-1038: La Historia Frente a la
- December 2012
publisher=Marcial Pons
- Historia
pages=61�}}</ref>
- Tree of Sobrarbe Arms.svg
- Hist. por la antiguedad ... de
- December 2012
pages=166�}}</ref>
- HERRERO
title=Sobrarbe y
- December 2012
pages=430�}}</ref>
- Mart�nez
title=Sobrarbe y Arag�n: Estudios hist�ricos sobre la
- Fundacion y progreso de estos reinos hasta que se agreg� � los mismos
- El Condado de Barcelona
- December 2012
publisher=Tip. de E.
- Casa�al
pages=158�}}</ref>
- Espa�ol � la Ciencia Her�ldica: Escudos de armas de los diferentes
- December 2012
pages=32�}}</ref>
- Escudo de Bizkaia 2007.svg
Biscay County.
- Coat of Arms of Biscay (15th-19th Centuries).svg
[[Basque
- Escudo de Durango.svg
- Banner of the King of Scots.svg
Zuriain Royal palace<ref
- Name="Enciclopedia general ilustrada del Pa�s Vasco: Diccionario
- General ilustrada del Pa�s Vasco: Diccionario enciclop�dico vasco.
- November 2012
publisher=Au�amendi, Estornes
- Lasa
page=539}}</ref><ref
- Genealog�a y Her�ldica
title=Armer�a y nobiliario de los reinos
- Espa�oles
- November 2012
page=402}}</ref>
- Escudo de Esteribar.svg
- Book
title=Historicas de las tres
- Provincias Vascongadas
- November 2012
pages=429�}}</ref><ref>http://www.alltravels.com/spain/navarre/urdanoz/photos/current-photo-76264664</ref>
- Basque Lopez.jpg
Lopez arms from Viscaya, 2nd Lord of Biscay.
- Mendoza Arms (cropped).svg
Sancho Lopez 5th Lord of biscay
- Book
title=Nobleza del
- November 2012
pages=233�}}</ref>
- House mark Mendoza, Spain.JPG
House Mark in Mendoza, Spain.
- Laudio-llodio color.png
Grandee Llodio Arms Before
- House of Haro COA.svg
Grandee Haro After conquest of Baeza.
Grandee Zambrana <ref name="Piferrer1858">{{cite
book|author=Francisco Piferrer|title=Nobiliario de los reinos y
se�orios de Espa�a (revisado por A. Rujula y
Busel).|url=http://books.google.com/books?id=m1UBAAAAQAAJ&pg=PA43%7Caccessdate=21
November 2012|year=1858|pages=43�}}</ref>
1) Fortun Sanchez De Zambrana.<ref name="Zam�cola1818">{{cite book|author=Juan Antonio de Zam�cola|title=Historia de las naciones bascas de una y otra parte del Pirineo septentrional y costas del mar Cant�brico|url=http://books.google.com/books?id=_HwTAAAAQAAJ&pg=PA60%7Caccessdate=21 November 2012|year=1818|pages=60�}}</ref> <ref name="PiferrerColmillo1857">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref name="Spain)1953">{{cite
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
book|author=Centro de Estudios Hist�ricos Internacionales (Barcelona, Spain)|title=Indice hist�rico espa�ol: bibliograf�a hist�rica de Espa�a e Hispanoam�rica|url=http://books.google.com/books?id=v8Tam6akCesC&pg=PA98%7Caccessdate=21 November 2012|year=1953|publisher=Edicions Universitat Barcelona|pages=98�|id=GGKEY:N705USK76BP}}</ref>
- Toda
2) Martin Alonso De Zambrana.
3) Juan De Zambrana.
4) Pedro Sanchez Iniguez De Zambrana. Serve Henry III of Castile Govern over the castle Mula, Murcia,Spain.
5) Nofre De Zambrana.
6) Pedro Zambrana. Squire to Charles V, Holy Roman Emperor, and Member of the order of Santiago.<ref name="Sabio1980">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
7) Don Pedro Martin De Zambrana. Grandee Torralba<ref name="De2010">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
8) Don Pedro Iniguez De Zambrana. 17th Century.
9) Don Pedro Zambrana Fajardo. His Brother Don Manuel Zambrana Guerrero died with no children, they belong to the [[order of Santiago]].
- Francisca Zambrana(o) move to america, lived in colima Mexico, Her
husband worked for Ponce de Leon Family and died in California.
10) Ana Zambrana.
11) Dona Cathalina Maria De Zambrana. Her family belongs to the order of Alcantara.
12) Dona Ginesa Junteros y Zambrana. She Belongs to the Ponce De Leon Family.
Zambrano DNA by location
Haplogroup E-M215 (Y-DNA)
South migration from Palestine to south Europe and North Africa.
====Em183 Berber, South West Spain.==== Portal:Berbers
- Berber refer to the Barbara (region).
- The berber oroginated from Etiopia. The berber were conquer by the Egyptian and Arab empires. The Berber Jews group settle in Gaul. Berber and visigoths are recorded to mix during this time, one of this family are the Banu Qasi.
- The berber founded empires in north africa and south Spain. Taifas emirate.<ref name="PavlacCannon2004">Template:Citebook</ref>[86-87]
- Kingdom of Granada Vassal for Spanish Catholic Kings.<ref name="Bunson1995">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Bohemian jews in Czech Republic.<refname="PavlacCannon2004">Template:Citebook</ref>
Haplogroup R-M207
Migrated from Palestine to Asia mostly, Europe and Africa.
R1b Basque
The basque people grew with in the same territory as the british Britania. This can be seen on their flag with is the english jack with different colors.
The basque people have been divided by the Spanish March.
Haplogroup J-M172
Migrated from Palestine to Asia Mostly and Europe.
- Caucasus: White people of Palestine. This group moved to Europe as the Basque.
Email me to add your dna and location or you can do dna test kit here.
http://www.familytreedna.com/public/ZAMBRANO/default.aspx?section=yresults
Monuments
[http://dspace.unia.es/bitstream/10334/380/1/05JIIITII.pdf EL CONVENTO DE SAN JUAN BAUTISTA DE VILLALBA DEL ALCOR] A tomb shows Ponce De Leon tomb with Zambrano family crest. Alonso Zambrano And Rodrigo Zambrano and his family were companions in his explorations. Historical records show the Zambrano Family marry into the Ponce De Leon Family. Google map the adress, calle de Francisco Alcal� #40, Villalba del Alcor, Seville, Spain.
[http://www.castillosnet.org/programs/castillosnet.php?tip=ficcas&dat=murcia/MU-CAS-018 Castillo de Mula:] Zambrana Family serve as Governor of the castle.Castle is located in the mount North of present mula city , Murcia, Spain.
[http://es.wikipedia.org/wiki/Baeza_(Espa%C3%B1a) Arco de Alcanzar Baeza"Plaza del populo":]<ref name="Cascales1775">{{cite book|author=Francisco Cascales|title=Discursos historicos de la... Ciudad de Murcia. 2. Impr|url=http://books.google.com/books?id=Qh5PAAAAcAAJ&pg=PA503%7Caccessdate=21 November 2012|year=1775|publisher=Francisco Benedito|pages=503�}}</ref> <ref>http://books.google.com/books?id=kThAAAAAYAAJ&printsec=frontcover&dq=baeza&source=bl&ots=rmaq3cwDPl&sig=yjjzuynjscVOx1ZYTizMMH_rKls&hl=en&sa=X&ei=lh93UJawOKqViQLu9oHYDg&ved=0CEYQ6AEwBA#v=onepage&q=zambrana&f=false</ref> Arco de Alcanzar de Baeza or Plaza del populo or Arco de los Leones. Has the Zambrano Crest as great Heros. The code of arms in the arc directly infront of the fountain of lions is the Zambrana code of arms.
[https://maps.google.com/maps/ms?msid=200173334021275347501.0004cf0969bdc5096d1c9&msa=0 Puerta de Dona Urraca]Built at the end of the 10th century, later given the name Zambranos. The arc gate was part of the Zambranos Palace. This is a Spanish Monument of great historical importance.
[https://maps.google.com/maps?q=fuente+del+maestre&hl=en&sll=37.328048,-6.498338&sspn=0.094186,0.142479&t=h&hnear=Fuente+del+Maestre,+Province+of+Badajoz,+Extremadura,+Spain&z=10 Fuente del Maestre]. Zambrano Family members lived here as great orders of spain. <ref name="Contreras1982">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Valenzuela2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Melgar1965">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
All this monuments are available to see in google earth. [https://maps.google.com/maps?saddr=mula+spain&daddr=Puerta+de+Do%C3%B1a+Urraca+%4041.504693,-5.74874+to:fuente+del+populo+baeza+to:calle+de+Francisco+Alcal%C3%A1+40,+Villalba+del+Alcor+to:fuente+del+maestre&hl=en&ie=UTF8&ll=41.153842,-3.691406&spn=4.127309,9.832764&sll=38.702659,-3.47168&sspn=4.277687,9.832764&geocode=Fe9zRAIdB1Lp_ynJJHo2RF5kDTFg6iLXbq8CBA%3BFbVPeQId_Eeo_w%3BFUK2QwIdiAvL_yE750DEMCCeBCmFTtbzl4tuDTE750DEMCCeBA%3BFVihOgIdmzed_ymN62IkFfQRDTFATD7C9OuB_Q%3BFXTmSwIdSJWd_ykNlmksMKoWDTEA95-M_WMEBA&t=h&mra=ls&z=7 Click here] for a map with driving directions to all the monuments.
[http://www.monumentalnet.org/pais_vasco/alava/anana/salinas_de_anana/palacio_de_los_herran.php Palacio Zambrana and Herran], Located in A�ana, Spain
Palacio Zambrana, Located in Linares, Ja�n, Spain<ref name="Bolet�n del Instituto de Estudios Giennenses">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>[[http://dialnet.unirioja.es/servlet/articulo?codigo=1123399
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
| Linaje de Zambrana pdf.]]<ref name="G�mez1979">{{cite book|author=Mariano S�ez G�mez|title=Hidalgu�as de Ja�n|url=http://books.google.com/books?id=6OEa0gIMcrsC%7Caccessdate=4 April 2013|date=1 January 1979|publisher=Ediciones Hidalguia|isbn=978-84-00-04442-8}}</ref>
[http://www.banosdelaencina.es/_detalles-galeria-unica.html?uid=113096c9-40da-11e0-8191-79fb06ed8546
Casa de Caridad Zambrano] "Image 11 of 18",
Banos de la encina, Spain.
Kingdom of Granada (Crown of Castile). Zambrano Family. <ref name="Ocariz1676">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- ConventoSanJuanBautista.jpg
- Castillo fajardo mula.jpg
Castle in Mula, Spain
- Baeza - Fuente de los Leones 1.jpg
Arco Del Populo en la fuente
- Puerta de Do�a Urraca.JPG
- Escudo de Fuente del Maestre.svg
- Fundacion Valle Salado528.JPG
Zambrana Palace in A�ana.
- Escudo de Linares.svg
- Granada Arms.svg
- Zambrana Family was Inherited.
- EscudoLaredo.jpg
Laredo, Cantabria, Spain.<ref
- Geogr�fico universal: Que comprehende la description de las quatro
- Partes del mundo.... A -
- December 2012
pages=17�}}</ref>
- Escudo medina de pomar.jpg
Medina de Pomar, Spain
- Escudo de Guadalupe (C�ceres).svg
Guadalupe, C�ceres.<ref
- General de Espa�a, historia chronol�gica, sus trofeos, blasones y
- Conquistas heroicas: Descripciones agradables y grandezas notables,
- Exelencias gloriosas...
- December 2012
pages=456�}}</ref>
- Escudo ayuntamiento de zamora actual.gif
- Escudo de Ba�os de la Encina.svg
Ba�os de la Encina Casa
- Caridad Zambrano.
- Escudo de Jerez de la Frontera.svg
Escudo de Jerez de la
- Acha
title=Estudio hist�rico sobre una familia extreme�a: Los S�nchez
- April 2013
pages=675�}}</ref><ref
- DE VARGAS-Z��IGA Y MONTERO DE ESPINOSA
title=�ndice de la colecci�n de
- Don Luis de Salazar y Castro. Tomo
- April 2013
publisher=Real Academia de la
- Historia
id=GGKEY:GH60KRDS632}}</ref><ref name="CATALOGO DE
- LA COLECCION “PELLICER” ANTES DENOMINADA
- COLECCION “PELLICER” ANTES DENOMINADA “GRANDEZAS
- April 2013
publisher=Real Academia de la
- Historia
id=GGKEY:CWG60TZRP43}}</ref><ref
- Vicent
title=Caballeros de Montesa que efectuaron sus pruebas de
- Ingreso durante el siglo
- April 2013
publisher=Ediciones
- Hidalguia
pages=248�}}</ref>
America (Colonial 1492-1800)
Casa de Contrataci�n Sevilla. Crews logs data base. [http://pares.mcu.es/MovimientosMigratorios/staticContent.form?viewName=fuentes2 Main Web page Casa de contratacion] <ref name="IndiasOviedo1940">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Zambrano en Sevilla. <ref name="Gu�a de Sevilla: Su provincia, arzobispado, capitania general, tercio naval, audiencia territorial y distrito universitario...">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Juan Zambrano, Guadalajara, Spain, Died in battle under Charles V. 1535.
<ref name="Sandoval1681">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Rodrigo Zambrano <ref name="Mir1995">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Manuel Zambrano <ref name="Genealog� y Her�ldica">{{cite
book|title=Genealog� y
Her�ldica|url=http://books.google.com/books?id=rfQ8AQAAIAAJ%7Caccessdate=2
March 2013|year=1967|page=248}}</ref>
Hernando de Soto Alvaro Zambrano part of crew.<ref
name="Galloway2006">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Narratives of the Career of Hernando de Soto in the Conquest of Florida">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
St. Augustine, FloridaRodrigo Zambrano y Alonso Zambrano and two
sisters 1 Servant.
Casa Museo Alfonso Zambrano.
Woodcraft master .
[http://www.culturapasto.gov.co/index.php?option=com_content&view=article&id=26:museo-alfonso-zambrano&catid=6:museos-pasto&Itemid=4
Gallery].
Clergyman
Fray Juan Zambrano, Chiapas, Mexico. Service to the church in 1537. <ref name="Garc�a2001">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Ecuador: MonSenor Alverto Zambrano, Bishop from Loja, Ecuador. <ref name="G�mez1981">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
[[1]]
Mexico colonies.
<ref name="FerrariNovo1961">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Pi�a1863">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Durango Mexico.
Palacio Zambrano Juan Jose Zambrano from the Order of Santiago.<ref name="Boehm2000">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref>http://cdnc.ucr.edu/cdnc/cgi-bin/cdnc?a=d&cl=search&d=SFC18980123.2.95&srpos=1&e=-------en--20--1--txt-IN-juan+jose+zambrano----</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="The Encyclopaedia Britannica: a dictionary of arts, sciences, and general literature">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Jalisco Mexico
Hacienda de Zambrano. Jalisco Mexico. Near Sierra de los lobos. and Leon Guanajuato.
Chile
Government Junta of Chile (1810) President Mateo de Toro Zambrano. Casa solar Casa Colorada [[2]]
New Mexico
Mission Nuestra Se�ora de los �ngeles de Porci�ncula de los Pecos Fray Pedro Zambrano Ortiz.
California.
Mission San Fernando Rey de Espa�a Manuel Nicolas Zambrano, Order of Santiago.<ref name="Crosby2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Crosby2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Spanish Empire Netherland, Italy and (Indias America and philippines).
Don Pedro Zambrano y Gordillo, Marquez Zambrano (Marquis von zambrano)1761. Under Spanish Flanders. The title migrated to Italy under [[Ferdinand VII of Spain|Ferdinand VII.]]. <ref name="Catal�Galcer�n1769">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Fontane1848">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Oesterreichischer Beobachter">{{cite book|title=Oesterreichischer Beobachter|url=http://books.google.com/books?id=ULNIAAAAcAAJ&pg=PA230%7Caccessdate=18 March 2013|year=1847|publisher=Strau�|pages=230�}}</ref> <ref name="BerghausHumboldt1829">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Bayreuther Zeitung">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Conversations-Lexikon der Gegenwart: In vier B�nden. K bis O">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Suplemento al Elenco de grandezas y t�tulos nobiliarios espa�oles: T�tulos vacantes y t�tulos extranjeros cuyo uso fue autorizado en Espa�a">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Der Oesterreichische Beobachter">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Ranft1762">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Spain
[http://www.acsandino.org.ni/index.php?option=com_content&view=article&id=42&Itemid=115 ORLANDO JOS� ZAMBRANO B�EZ]., Born in 1� de Septiembre de 1894, and Died on 13 de Noviembre de 1959.
Texas.
Juan Manuel Zambrano <ref name="CommissionCasta�eda1976">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
[http://books.google.com/books?id=1X4FAAAAQAAJ&pg=PA186&dq=zambrano+laredo+tejas&hl=en&sa=X&ei=Ot-OUKeRJMG82wXGxYGYAQ&ved=0CC8Q6AEwAA#v=onepage&q=zambrano%20laredo%20tejas&f=false Canas de Zambrano in Texas colony 1789] Republic of Texas<ref name="Fil�solaAlmonte1849">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Teja1996">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Alam�n1850">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
name="Fil�solaAlmonte1849">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref><ref name="Faulk1964"> - __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
[http://www.tamu.edu/faculty/ccbn/dewitt/zambrano.htm Zambrano Spanish Index]
Mexico Monterey.
<ref name="Cavazos2009">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Nuevo Leon.
<ref name="Cavazos2009">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Torres2006">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="QuirogaMac�as2006">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Congress1920">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Villarreal2004">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Nueva granada (South America).
<ref name="Eli�n2001">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Cruz-Coke1995">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="IndiasHerrera1984">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Fil�solaAlmonte1848">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="VillenaSolano1993">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Italy.
<ref name="Delille1985">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Delille1988">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Passarelliitaliano1999">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="araldico1923">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Uruguay.
Jose Zambrano y Vienna <ref name="Villena1947">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Apolant1966">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Philippines.
Andres Zambrano <ref name="Colecci�n de documentos in�ditos para la historia de Espa�a">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="AduarteCruz1693">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Spanish Monasteries.
<ref name="Dom�nguezAdams2012">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Argentina.
<ref name="Revista hist�rica">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Los Vascos en Am�rica: Provincias de C�rdoba, Corrientes, Tucum�n, Mendoza, San Juan, San Luis">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Zorregu�etaZorreguieta2008">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="L�pez2005">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Calvo1943">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Redonnet1992">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Ecuador.
Ramon Zambrano. <ref name="Lisb�a1992">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="O'NeillDom�nguez2001">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Groot1893">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Colombia.
Manuel Zambrano y Benavides. <ref name="Guzm�n2006">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Alvaro Zambrano 1770. [http://www.culturainmaterial.com/montesdemaria/index.php?option=com_content&view=article&id=83&Itemid=85 Puerto Zambrano]. <ref name="Arroyo1992">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="4 Premio Somos Patrimonio: 391 experiencias de apropiaci�n social del patrimonio cultural y natural">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref> Founded House mark
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
zambrano in 1770, became Villa [[San Sebastian de las playas blancas]]. Colombia.
Casa Museo Alfonso Zambrano. Woodcraft master . [http://www.culturapasto.gov.co/index.php?option=com_content&view=article&id=26:museo-alfonso-zambrano&catid=6:museos-pasto&Itemid=4 Gallery].
Spanish Netherlands.
<ref name="Conversations-Lexikon der Gegenwart">{{cite book|title=Conversations-Lexikon der Gegenwart|url=http://books.google.com/books?id=1dxOAAAAcAAJ%7Caccessdate=20 December 2012|year=1840|publisher=Brockhaus|page=355}}</ref> <ref name="Der Oesterreichische Beobachter">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="Ranft1762">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
<ref name="�sterreichischer Beobachter">{{cite book|title=�sterreichischer Beobachter|url=http://books.google.com/books?id=ixM8AQAAIAAJ&pg=PT278%7Caccessdate=20 December 2012|year=1839|publisher=A. Strauss|pages=1631�}}</ref> <ref name="IselinBuxtorf1742">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Canay Islands.
Zambrana House mark. <ref name="Haro1622">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Other languages not classified
Mr. Zambrano 1825. Paris France. <ref name="Journal de Paris">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
- Escudo de Bogot�.svg
Viceroyalty of New Granada Zambrano
- Family From South America.
- Lesser Royal Coat of Arms of Spain (1700-1868 and
- 1834-1930)-Golden Fleece and Mantle Variant.svg
- Indies
author=Eugenio
- Del Hoyo
title=Historia del Nuevo Reino de Le�n
- December 2012
publisher=Fondo Editorial de
- NL
isbn=978-970-9715-07-1}}</ref>
- Coat of arms of Durango.svg
[[Coat of arms of
- Mexico
Durango,Mexico]] Juan Jose Zambrano, Zambrano palace.
- Escudo-Zamora-Mex.jpg
Zamora, Michoac�n, Mexico.
- Flag of the Republic of the Rio Grande.svg
Laredo, Texas.<ref
- Name="Laredo Legacies: A Tribute to Our Past and a Legacy for Our
- Legacy for Our Future
- December 2012
publisher=Webb County Heritage
- & Commerce on the Rio Grande: Laredo,
- December 2012
publisher=Texas A&M University
- Press
pages=66�}}</ref>
- Iselin
author3=Jakob Christoph
- Beck
title=Neu-vermehrtes historisch- und geographisches allgemeines
- March 2013
pages=329�}}</ref>
- Book
title=Geology of the Zambrano quadrangle,
- Honduras, Central
- December 2012
publisher=University of Texas at
WWI and WWII
Juan Zambrano: [http://www.forces-war-records.co.uk/Search?vbm=home_guard_mailer_wednesday&id=464408&cid=3250856 Dads Army England]
Present times 1900-present
Lorenzo Zambrano. Alemania <ref name="Laudon2006">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Tom Zambrano. <ref name="Zambrano2003">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Lorenzo Zambrano. Mexico <ref name="Agtmael2007">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Fabio Zambrano. Colombia. <ref name="PantojaPopular1998">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Myrna Zambrano. <ref name="Zambrano1985">
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
' #print thisdict['title'], "
" title = thisdict['title'] if thisdict.has_key('title') else date = thisdict['date'] if thisdict.has_key('date') else publisher = (', '.join(thisdict['publishers'])) if thisdict.has_key('publishers') else authors = thisdict['authors'] if thisdict.has_key('authors') else coauthors = ', '.join(authors[3:]) isbn = issn = iccn = oclc = other_id_list = [] otherfields = [] if thisdict.has_key('identifiers'): for idpair in thisdict['identifiers']: if idpair[0].lower() == 'google_id': pass elif idpair[0].lower() == 'isbn': if len(idpair[1]) >= len(isbn): isbn = idpair[1] # Only keep the longest ISBN elif idpair[0].lower() == 'issn': issn = idpair[1] other_id_list.append('Template:ISSN') elif idpair[0].lower() == 'lccn': lccn = idpair[1] other_id_list.append('Template:LCCN') elif idpair[0].lower() == 'oclc': oclc = idpair[1] otherfields.append('oclc=' + oclc) elif idpair[0].lower() == 'doi': otherfields.append('doi=' + idpair[1]) else: other_id_list.append(idpair[0] + ':' + idpair[1]) other_id = ', '.join(other_id_list) if len(other_id): otherfields.append('id=' + other_id) bookdata = {'title': title, 'isbn': isbn, 'publisher': publisher, 'pages': page, 'url': new_url, 'authors': authors, 'date': date} jsonstr = json.dumps(bookdata, sort_keys=True, indent=4, ensure_ascii=False) jsonp = callback + '(' + jsonstr + ');' print 'Content-Type: text/javascript' print print jsonp memcache.add(memcache_key, jsonp, 3600)if __name__ == "__main__": main()</ref>
- __author__ = 'Apoc2400'import wsgiref.handlersimport atom.urlimport gdata.serviceimport gdata.alt.appengineimport gdata.booksimport gdata.books.servicefrom google.appengine.api import memcacheimport sysimport osimport cgiimport cgitb; cgitb.enable()import reimport urllibfrom django.utils import simplejson as jsondef error(message): print 'Content-Type: text/plain' print print 'Error: ', messagedef main(): book_url = form = cgi.FieldStorage() if (not form.has_key("book_url")): error('No URL.') return book_url = form["book_url"].value if (not form.has_key("callback")): error('No callback.') return callback = form["callback"].value memcache_key = '5:' + os.environ['CURRENT_VERSION_ID'] + '/' + callback + ':' + book_url memcache_jsonp = memcache.get(memcache_key) if memcache_jsonp is not None: #print >> sys.stderr, "From memcache: " + memcache_key print 'Content-Type: text/javascript' print print memcache_jsonp return else: #print >> sys.stderr, "From fetch: " + memcache_key pass dateformat = if (form.has_key("dateformat")): dateformat = form["dateformat"].value checked_dmy = checked_mdy = checked_ymd = if dateformat == 'dmy': checked_dmy = ' checked="1"' elif dateformat == 'mdy': checked_mdy = ' checked="1"' elif dateformat == 'ymd': checked_ymd = ' checked="1"' else: checked_dmy = ' checked="1"' dateformat = 'dmy' if not re.search('books.google.', book_url, re.I) and not re.search('\\?id=', book_url, re.I): error('Not a Google Books URL.') return urlsep = re.search('\\?([^#]*)', book_url) if not urlsep: error('Bad URL.') return book_url_qs = urlsep.group(1) book_url_qs_fields = cgi.parse_qs(book_url_qs) if not book_url_qs_fields.has_key("id"): error('Bad URL. It has to be for a specific book, not a search result page') return book_id = book_url_qs_fields["id"][0] page = page_string = if book_url_qs_fields.has_key('pg'): page_string = book_url_qs_fields['pg'][0] match = re.search('\\D*(\\d+)', page_string) if match: page = match.group(1) + u"\\u2013".encode("utf-8") new_url = 'http://books.google.com/books?id=' + urllib.quote_plus(book_id) if page_string: new_url += '&pg=' + urllib.quote_plus(page_string) client = gdata.books.service.BookService() gdata.alt.appengine.run_on_appengine(client) thisbook = client.get_by_google_id(book_id) # '8cp-Z_G42g4C' thisdict = thisbook.to_dict() #thisdict = {'embeddability': 'embeddable', 'info': 'http://books.google.com/books?id=9PE2T2a5fDYC&ie=ISO-8859-1&source=gbs_gdata', 'description': 'Ramon Sarr\\xc3\\xb3 explores an iconoclastic religious movement initiated by a Muslim preacher during the French colonial period. Employing an ethnographic approach that respects the testimony of those who suffered violence as opposed to those who wanted to "get rid of custom," this work discusses the extent to which iconoclasm produces a rupture of religious knowledge and identity and analyzes its relevance in the making of modern nations and citizens. The Politics of Religious Change on the Upper Guinea Coastexamines the historical complexity of the interface between Islam, traditional religions, and Christianity in West Africa, and how this interface connects to dramatic political change. The book unveils a rare history and brokers a dialogue between a long tradition of anthropology and contemporary anthropological debates. A wide range of readers, particularly those with an interest in the anthropology of religion, iconoclasm, the history and anthropology of West Africa, or the politics of heritage, will gravitate toward this work.', 'format': 'book', 'publishers': ['Edinburgh University Press'], 'identifiers': [('google_id', '9PE2T2a5fDYC'), ('ISBN', '0748635157'), ('ISBN', '9780748635153')], 'thumbnail': 'http://bks9.books.google.com/books?id=9PE2T2a5fDYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U0LyllDnVUHiadMIrdIuvVAiURtuQ&source=gbs_gdata', 'subjects': ['Iconoclasm', 'Guinea', 'Iconoclasm/ Guinea', 'Religion and politics', 'History / Europe / General', 'Social Science / Human Geography', 'Social Science / Ethnic Studies / General', 'Social Science / Customs & Traditions', 'Religion / Ethnic & Tribal', 'Religion / General', 'History / Africa / General', 'Religion / Comparative Religion', 'History / General', 'History / Africa / General', 'Religion / Ethnic & Tribal', 'Religion / Islam / General', 'Religion / Religion, Politics & State', 'Social Science / Human Geography', 'Social Science / Islamic Studies', 'Travel / Africa / General'], 'authors': ['Ramon Sarr\\xc3\\xb3', 'John Smith', 'Jane Smith', 'Olaus Petrus', 'Mick Paff'], 'date': '2009-05-03', 'title': 'The Politics of Religious Change on the Upper Guinea Coast: Iconoclasm Done and Undone', 'viewability': 'view_partial', 'annotation': 'http://www.google.com/books/feeds/users/me/volumes'} #print 'Got dict: ' + str(thisdict)+ '
Google map locations for Zambrana and Zambrano, City or St.
USA Streets
Zambrano ST.
https://maps.google.com/maps/place?q=Zambrano,+USA&hl=en&ftid=0x865fcba98a8854f7:0xe63b8e1613151fb
Zambrana ST.
Puerto Rico
Spain Street
Cuba, Zambrana st.
Panama, Zambrano city
Chile, Zambrano City
Mexico, Zambrano city.
Colombia, Zambrano city
Ecuador, Zambrano street
Nicaragua, Zambrano City
Nicaragua, Zambrana City
Argentina, Zambrano st.
Ecuador, Zambrano St.
Philippines
Resources
[http://www.bne.es/es/Micrositios/Guias/Genealogia/MapaWeb.html Geneology Hispanic]:Good source for Hispanic Names of Regal importance.
[http://www.jstor.org/discover/10.2307/40340398?uid=3739256&sid=56203014793 Historia Social:]Libro de historia zambrana. 2781 CHACON JIMENEZ, FRANCISCO HACIA UNA NUEVA DEFINICION DE LA ESTRUCTURA SOCIAL EN LA ESPA�A DEL ANTIGUO REGIMEN A TRAVES DE LA FAMILIA Y LAS RELACIONES DE PARENTESCO HISTORIA SOCIAL , 1995, (21): PP. 75-104.
Anaheim Public Library:If you�re a Zambrano please donate to this library for providing information for the research.
[http://www.bne.es/es/Inicio/index.html Spain digital public library]:I provide links to the pdf. Use Ctrl+F to look for Zambrano reference
[http://bdh.bne.es/bnesearch/hemeroteca/Estado%20militar%20de%20Espa%C3%B1a%20(Ed.%20en%2016%C2%BA);jsessionid=84C84AE19AE15606E8B797D3C03ECC44 Estado Militar de Espana:] Zambrano Records and Orders of Spain they belong to.
Link to [[The Library of Congress]]
Geneanet: I surname database with heraldic data. And world wide surname population and density.
http://www.mcu.es/archivos/Novedades/novedades_Pasajeros.html
http://pares.mcu.es/MovimientosMigratorios/staticContent.form?viewName=fuentes2
http://www.bisabuelos.com/links.html
Heraldry websites
http://www.ngw.nl/heraldrywiki/index.php?title=Main_Page
http://www.contironco.it/index.htm
http://www.cnicg.net/legnob.asp
Santiago Surname History
Template:Infobox peerage title
The Santiago Familiy name or surname originates from the house of Quevedo in Pie de concha.<ref>http://books.google.com/books/reader?id=m1UBAAAAQAAJ&printsec=frontcover&output=reader</ref> And Quevedo is from house Mantilla.<ref>http://books.google.com/books/reader?id=4sk7IDhe4XgC&printsec=frontcover&output=reader</ref><ref>http://books.google.com/books?id=3DXFXdo4mikC&pg=PA42&dq=Mantilla+blason&hl=en&sa=X&ei=pTKQUM2XJYWg2gWz94HgBg&ved=0CC8Q6AEwADgK#v=onepage&q=Mantilla%20blason&f=false</ref><ref>http://books.google.com/books?id=3DXFXdo4mikC&pg=PA43&dq=casa+solar+Mantilla+blason&hl=en&sa=X&ei=KDOQUJm1ENGr2AXj7IGACg&ved=0CDMQ6AEwAA#v=onepage&q=casa%20solar%20Mantilla%20blason&f=false</ref>
Quevedo arms show arms from http://en.wikipedia.org/wiki/%C3%8Ele-de-France_(region)And the mantle of San Martin. Searching San Martin de quevedo. And Saint families origin.
848. Santiago. DeQuevedo house, located in the town of Pie de Concha proceeded to Santiago, whose illustrious sons are distinguished as follows: Don Pasquale and Don Domingo de Santiago, mayor of the city of Baeza in the reign of Don Alonso the Wise: the lawyer Toribio Gomez de Santiago, St. Bartholomew's College of Salamanca, the board of the Catholic Monarchs, his daughter Queen Juana and his son and successor Emperor Charles V: Don Fray Pedro de Santiago, religion overall barefoot St. Augustine, Bishop of Solsona and Lerida and Maestro Fray Juan de Santiago, known for his eloquent preaching and attractive Gold Pico Weapons of this illustrious lineageare: Silver shield and a red and white flag, held by two hands cut and bleeding 2.
� 0.6. Rodrigo Mantilla, Senior Cafa Mantilla, married Dona Maria of
7> tego Fernandez de Queuedo, died QUC 159z.procedienr.edel year folar
fu dizevn name} and Mendoza, Nobiliario> * the CFAA, and folar of AI
is Qucuedo Mountain, ay good kijfofdalgo delta, but not in fe�orio
podero�os funds for weapons bring vn} e�cudo party eventually
vneftandarte and cut it, that is l�tela half white, half colored c,
and the middle cica-do is blue, right hand with three gold lilies, and
the other half white cot� ?. vn black cauldron. And Caftillo: The
lineage of Qucuedo is well-known in hijfofdalgo. eftos kingdoms,
enjoyCafa (olariega in Pie de Concha, where 74 people have �alido � cn
fr.Geronmo ejios many hijo�dalgo defta Cafa, the av in Guadalaxua, and
elsewhere "')' C * itroCafltllobifit in Madrid
afsifteD.FrancifcodcQueuedodclAbitodeSantiago ( juftamcrmi of
RefesGodoSffol aqueltan held by IU great wit, eftudios, yefcritos,
�e�or of � laTotrede uasrAbad) po� "4?2 / that here are two defta
CAFAS vna familia.la faith draws deQucucdo Cafa of Santiago, and one
that EFTA otr in Pie Shell enjoy ^ known both nobility and great
antiquity. 'and D.AiUfi> efta.Ca�a Nu�iz of Santiago de Qucuedo
defeender which will boast a and Martos, D. quefon Gua bifi.de Caftro
Franci�co SantiagoGuzman, Luan father Alonfode Santiago Guzman, tenors
dalsxara.ls \\. I $ 5. ????4? ja ma? orazgo what DNDC Santiago,
D-Iuandc mugerde Ortega and Aguilera, Queue per-Arms' fona of well
known and remarkable quality. The hiftoria deGaadalaxara: The fon of
do-Gone has one leros hijo�dalgo Caua Vizcaya, fu name is Pie de
Concha de la Villa cieron ici na linage is Queuedo, ylaCa�adeQueuedoes
in the Valley of the Vi cn Gu�aziua Pie de Concha call. Oh another
Cafa Afturias Shell in Santillana-.rraen by ai * maslosQueuedos,
quees�u own apellidu, vn e�cudo split into three loaves, cuclpti-ma
mere right qo gold tresliles blue field inthe cauldron
feguodQvnnegrojQQ silver champion, and the trio vn pcndon.la half red
half field blanco.y by Rodrigo Msnrilla pfata.El and children
D.MariadeQucuedo tuuuron fumuger Lop ^ M? Aniu, Dicgo Mantilia,
D.Maria, D.Iacs) D.AoayD.VriuiafD.AldoDca and D.l�abei, what
ma��doazelia, other were ca | adas, DM aria> qucera most, dexo two
sons, Will * UI hij�jla husband D.Iscs tuuo Lu�n Mantilla de Soto the
three men, and vna facm-, bi j 4,4.1 the adult of twelve years pafs�
to Indies and China DEIDE Lima was Cutad � ^ fummvolugar.D.Ana
another, and also children DELA D.Vt�uladexaron D. Aldon�� that. a. on
FCIS sons, daughters} 1 and de�tos ptimos, and uncles, coc those of
other lincas, fc car could ?? ooc�nros fighting men to VNtime.
<ref>http://books.google.com/books/reader?id=4sk7IDhe4XgC&printsec=frontcover&output=reader</ref>
Santiago family crest
Red and white banner, bleeding praying hands, on silver field.
De Santiago Linage
Alonso Fernadez de Santiago Son to Sancho Fernandez de Santiago. and his wife Maria Sanz Mantilla.<ref name="Ocariz1676">{{cite book|author=Juan Fl�rez de Ocariz|title=Libro segundo de las geneaologias del Nueuo Reyno de Granada...|url=http://books.google.com/books?id=4sk7IDhe4XgC&pg=RA1-PT265%7Caccessdate=5 December 2012|year=1676|publisher=por Ioseph Fernandez de Buendia|pages=288�}}</ref> Founded House Santiago.
References
http://www.cuadrilladeanana.es/zambrana/zambrana.php Municipality local history government page.
http://www.heraldaria.com Surname sigil and information.
http://www.castillosnet.org/programs/castillosnet.php Castles from Spain "Paradores = Goverment hostels"
http://cdnc.ucr.edu/cdnc/cgi-bin/cdnc?a=cl&cl=CL1.DAC&e=en--20--1--txt-IN
http://gallica.bnf.fr/?lang=EN
http://www.parador.es/en/portal.do
http://www.genealogy.com/cgi-bin/my_main.cgi
[http://books.google.es/books?ei=FKrbT_yWFsOZ2QXGjbHCCA&hl=es&id=KkdfAAAAMAAJ&dq=caridad+zambrano+granada&q=zambrano Cartas de La Pi�ce: correspondencia con Agust�n Andreu:]This book read of a Zambrano Family living in a Castle.
[http://www.euskalnet.net/laviana/gen_hispanas/zambrana.htm Zambrana o Zambrano o Zambranos o Zambraos:]
[http://books.google.es/books?ei=gqLbT9s8g97YBf_m1LgI&hl=es&id=14waAAAAYAAJ&dq=zambrano+calatrava&q=zambrano Pruebas para ingreso de religiosos en las �rdenes de Calatrava, Alc�ntara y Montesa]
[http://books.google.es/books?id=LGcvAQAAMAAJ&pg=PA573&dq=zambrano+santiago&hl=es&sa=X&ei=iKTbT6NQydzaBbOf-YgG&ved=0CEIQ6AEwAg#v=onepage&q=zambrano&f=false Gaceta de los tribunales, N�meros 1330-1381]
[http://books.google.es/books?id=DHvrKWXzii4C&pg=PA81&dq=zambrano+santiago&hl=es&sa=X&ei=eabbT8G8M8rs2QWRr92LCw&ved=0CEgQ6AEwAzgK#v=onepage&q=zambrano%20&f=false Propietarios, empresarios y empresa en el norte de M�xico: Monterrey:]
[http://books.google.es/books?id=jHzNb9rFkKIC&pg=PA113&dq=zambrano+santiago&hl=es&sa=X&ei=p6bbT8OeN6fs2QWjnImPBg&ved=0CDIQ6AEwADgU#v=onepage&q=zambrano&f=false Caballeros de la Orden de Santiago, Siglo XVIII: Tomo IX.]
[http://books.google.es/books?id=_-Pvk_kdoWEC&pg=PA311&dq=Caballeros+de+la+orden+de+Santiago+zambrano&hl=es&sa=X&ei=56fbT5v3MsWdiAenx5SFCg&ved=0CD4Q6AEwAQ#v=onepage&q=zambrano&f=false Caballeros de la Orden de Santiago Que Efectuaron Sus Pruebas de Ingreso ]
[http://books.google.es/books?id=rlEVL7oQidYC&pg=PA139&dq=Caballeros+de+la+orden+de+Santiago+zambrano&hl=es&sa=X&ei=56fbT5v3MsWdiAenx5SFCg&ved=0CEoQ6AEwAw#v=snippet&q=zambrana&f=false Los hombres de la Monarqu�a Universal]
[http://books.google.es/books?id=Jlefq-NJKq0C&pg=PA410&dq=zambrano+santiago&hl=es&sa=X&ei=iKTbT6NQydzaBbOf-YgG&ved=0CF0Q6AEwBg#v=onepage&q=zambrano&f=false Los Americanos en las �rdenes nobiliarias, Volumen 2]
[http://books.google.es/books?id=kuxBAAAAcAAJ&pg=PA4&dq=Caballeros+de+la+orden+de+Santiago+zambrano&hl=es&sa=X&ei=56fbT5v3MsWdiAenx5SFCg&ved=0CFAQ6AEwBA#v=onepage&q=zambrana&f=false Nobiliario de los reinos y se�orios de Espa�a: contiene las armas ..., Volumen 4]
[http://books.google.es/books?id=xsROAAAAMAAJ&pg=PA291&dq=caridad+zambrano+granada&hl=es&sa=X&ei=FKrbT_yWFsOZ2QXGjbHCCA&ved=0CDMQ6AEwAA#v=onepage&q=zambrano&f=false Historia del Nuevo Reino de Granada, Volumen 2]
[3] Nobiliario de Extremadura, Volumen 8]Its shows that Zambrana and Zambrano are same family, it Shows 2 crest one As Fortune Sanchez but with gold castile. Second is castile gold only. Both Families from Fuente del Maestre.
[http://books.google.es/books?id=IVofWLGUi9YC&pg=PA57&dq=zambrano+escudo+de+armas&hl=es&sa=X&ei=a4jfT_3FKuLYmAXh5ZGBAw&ved=0CFYQ6AEwBQ#v=onepage&q=zambrano&f=false Catalogo de la coleccion <Pellicer>, antes denominada <Grandeza de Espana>]It Read Zambrano can be spelled Cambrano.
[http://books.google.es/books?id=Qh5PAAAAcAAJ&pg=PA503&dq=zambrano+escudo+de+armas&hl=es&sa=X&ei=a4jfT_3FKuLYmAXh5ZGBAw&ved=0CFoQ6AEwBg#v=onepage&q=zambrana&f=false Discursos historicos de la... Ciudad de Murcia. 2. Impr] On this book it reads the record of the code of arms Silver castile, on red field two silver stars with blue borders with gules. It reads Fortun Sanchez family history and he died in 1088. His Family crest is shown in the arc of alcanzar de baeza. Recall as Heros.
[http://books.google.es/books?id=Cn-19462xaYC&pg=PA234&dq=zambrano+escudo+de+armas&hl=es&sa=X&ei=a4jfT_3FKuLYmAXh5ZGBAw&ved=0CF8Q6AEwBw#v=onepage&q=zambrano%20escudo%20de%20armas&f=false Antiguedad, y blasones de la ciudad de Lorca, y Historia de Santa Maria la ]It shows Zambrana Family using Fortun Sanchez Emblem. And that they were managers of the Castillo de Mula.
[http://books.google.es/books?ei=15HfT6bGPMPi2gXD-9zFCA&hl=es&id=w21GAQAAIAAJ&dq=zambrano+armas&q=zambrano Colecci�n Los Zambrana: Los Zambrana]
[http://books.google.es/books?id=LdGz79VKSU4C&pg=PA268&dq=sanchez+heraldico&hl=es&sa=X&ei=fc_gT9nwK6y42QXn3KnuCw&ved=0CDUQ6AEwAA#v=onepage&q&f=false Her�ldica patron�mica espa�ola y sus patron�micos compuestos:] Sanchez de Toca Castile silver, gules and blue flag in castle. Fortune Sanchez was first Zambrana.
[http://books.google.es/books?id=EzbwpCtgm0cC&pg=PA47&dq=sanchez+armas+heraldico+Gipuzkoa&hl=es&sa=X&ei=vNXgT_C6I6Kc2QXbgeXiCw&ved=0CF8Q6AEwBw#v=onepage&q=sanchez&f=false Nobiliario de los reinos y se�or�os de Espa�a...: Ilustrado con un ]Shows Fortunes Sanchez Arms, Silver castle two stars red field blue borders with golden gules. Shows Saenz,Sanz And Sanchez as Children of Sancho.
[http://books.google.es/books?id=3fMpAQAAMAAJ&q=castillo+rojo+zambrano&dq=castillo+rojo+zambrano&hl=es&sa=X&ei=pg_hT8-CNoaA2wWD5oy6Cw&ved=0CDwQ6AEwAjgK Andaluc�a y America en el siglo XVII: actas]It reads Zambrano and Ponce de Leon Family in a tomb.
[http://books.google.es/books?id=4qsTAAAAQAAJ&pg=PA189&dq=castillo+rojo+zambrano&hl=es&sa=X&ei=pg_hT8-CNoaA2wWD5oy6Cw&ved=0CDIQ6AEwADgK#v=onepage&q=castillo%20rojo%20zambrano&f=false Apuntes para la historia de �beda recopilacion de datos exparcidos en ]
[http://books.google.es/books?id=kf-TgsREcFoC&pg=PA16&dq=saenz,+sanz,+sanchez&hl=es&sa=X&ei=WA3hT5X4OMjq2QXThYzNCw&ved=0CDoQ6AEwAQ#v=onepage&q=saenz%2C%20sanz%2C%20sanchez&f=false Estudio hist�rico sobre una familia extreme�a, los S�nchez Arjona]Its read Saenz, Sanz ,Sanchez as Saint or Santo. Looking into Zion due to Jewish Heriatge in that area. First recorded Sanchez is listed.
[http://books.google.es/books?id=0_-v3qzIe2IC&pg=PA104&dq=reus+heraldico&hl=es&sa=X&ei=PxThT528HcX42gXS2fyZCw&ved=0CEUQ6AEwAw#v=onepage&q=zambrano&f=false Diccionario hist�rico, geneal�gico y her�ldico de las familias ilustres de ]It Reads the tomb of Zambranos and heraldic information.
[http://dspace.unia.es/bitstream/10334/380/1/05JIIITII.pdf EL CONVENTO DE SAN JUAN BAUTISTA DE VILLALBA DEL ALCOR, UNA FUNDACION INDIANA DE 1618]It Reads that the Convent shows the Zambrano family crest next to Ponce de Leon.
[http://books.google.com/books?id=J1YPAAAAIAAJ&pg=PA64&dq=urraca+sanchez+raina+de+leon+escudo+heraldico&hl=en&sa=X&ei=jELiT6rME8GC2AWt0-XqCw&ved=0CEQQ6AEwAg#v=snippet&q=for%20tun&f=false Alrededor del mundo, Volume 5]It reads that Fortune Sanchez was a rich man in the kingdom of Alonso I of Leon. He was proud of his visigoth heritage for Don Pelayo was his Ancestor.
[http://books.google.com/books?id=3beZ-cIDZXAC&pg=PA69&dq=zuria+lopez&hl=en&sa=X&ei=hcniT7iSLo31sgac1uzBBg&ved=0CEwQ6AEwBA#v=onepage&q=zuria%20lopez&f=false Diccionario geogr�fico-estad�stico-hist�rico de Espa�a y sus ..., Volume 9]
[http://books.google.com/books?id=MZUTM-Uh1qUC&pg=PA245&lpg=PA245&dq=fortun+sanchez++siglo+10&source=bl&ots=8aiBnb07cr&sig=GNGqLK7Shv0vbwdhpBsC8kCdj2E&hl=en&sa=X&ei=lXQYUMGEJefM0AG4yoG4Dg&ved=0CDEQ6AEwAA#v=onepage&q=fortun%20sanchez%20%20siglo%2010&f=false Diario curioso, erudito, economico y comercial] This books read that fortun sanchez or Sangiz, became King Garcia from kingdom of Galicia Squire.
[http://books.google.com/books?id=6xPkshYZM_0C&pg=PA202&lpg=PA202&dq=fortun+sangiz&source=bl&ots=L96AnjsD6A&sig=4NlT8dHunjAP3BG_5OFHPPD5ZHE&hl=en&sa=X&ei=EncYUKWBL-Xi0QHeuoD4AQ&ved=0CDQQ6AEwAA#v=onepage&q=fortun%20sangiz&f=false Diario curioso, erudito, economico y comercial] It reads that Fortun Sanchez or Sangiz became squire to the king of Castile.
[http://books.google.es/books?id=bXopAAAAYAAJ&pg=PA293&lpg=PA293&dq=rodrigo+zambrano+florida&source=bl&ots=-1s6f8N0ry&sig=TjDjbtqYnmLBK9ExirkOS1sbQi8&hl=en&sa=X&ei=-LgZUMCnGIWe8gSeuYCgBA&ved=0CDQQ6AEwAQ#v=snippet&q=zambrano&f=false Narratives of the Career of Hernando de Soto in the Conquest of Florida] The name of Zambrano is listed in the crew as being from Burgos where the Zambrano are from. Soldiers enlisted to conquer Florida. Letter to Charles V dated 1539.
[http://books.google.es/books?id=PBnBEWrXTYoC&pg=RA1-PA70&lpg=RA1-PA70&dq=fortun+sanchez+sambrana&source=bl&ots=sxYb20cyTC&sig=MqaxvIUq3dzVx4g4d5cTSyETiBw&hl=en&sa=X&ei=o8kZUJiVFMmpqwH1yYCoBw&ved=0CC8Q6AEwADgK#v=onepage&q=zambrana&f=false Primera parte de las Fundaciones de los Monasterios del Glorioso P. S ...] Provides information about Forun Sanchez Zambrana. And all his family information and his titles.
[http://books.google.es/books?id=xx3TKbYQcnYC&pg=PA156&lpg=PA156&dq=casa+solar+santiago&source=bl&ots=vbmFdDNTYA&sig=AIJBkBEORG2I4Yl0CUwT94nB4e4&hl=en&sa=X&ei=T4skUPTIIKKe2QWM74HQDA#v=onepage&q=sanchez&f=false El Gran libro de los apellidos y la her�ldica]It read information with suit of armas.
http://books.google.es/books?id=Jlefq-NJKq0C&pg=PA171&lpg=PA171&dq=casa+solar+santiago&source=bl&ots=QcsA3n4S9g&sig=xn3eLP834teuzKOkDLjgUHYMHPU&hl=en&sa=X&ei=FI4kUMy3LsLE2wWM5oDICQ&ved=0CGgQ6AEwCTgK#v=onepage&q=zambrano&f=false Los Americanos en Las �rdenes Nobiliarias, Volume 2]
http://books.google.es/books?id=m1UBAAAAQAAJ&pg=PA43&lpg=PA43&dq=baeza+zambrana&source=bl&ots=OASP_STqFW&sig=2RN3ICaGAOza7oS-HsRGThvWlNM&hl=en&sa=X&ei=G7MkUPiYJanA2gX50oBo&ved=0CDcQ6AEwAQ#v=onepage&q=baeza%20zambrana&f=false Nobiliario de los reinos y se�orios de Espa�a (revisado por A. Rujula y Busel).]Greater then Hidalgo family, And inherited the Villa Zambrana.
http://books.google.com/books?id=ctAd6yR2FpIC&pg=PA504&lpg=PA504&dq=Don+Pedro+Iniguez+De+Zambrana&source=bl&ots=j8HObQLWfQ&sig=0JjQQkY9_vMRFICZyjaSaClgf7U&hl=en&sa=X&ei=Y8MkUNu0N-qQ2AXM5YH4Ag&ved=0CDYQ6AEwAA#v=onepage&q=Don%20Pedro%20Iniguez%20De%20Zambrana&f=false Discursos Historicos de la Muy Noble Y Muy Leal Ciudad de Murcia By Francisco Cascales] It shows Zambrana family and Ponce de Leon united by marriage. Pedro Iniguez Zambrana children were Female.
http://books.google.es/books?id=AdIs_kXt8zcC&pg=PA615&lpg=PA615&dq=zamora+mexico+zambrano&source=bl&ots=7eHo8kUApb&sig=oq4nx1kRhtSK1G4Vk6kx-fxqGc8&hl=es&sa=X&ei=SqopUJz3NYjNiwL5qIGYDQ#v=onepage&q=zamora%20mexico%20zambrano&f=false Andariegos y Pobladores: Nueva Espa�a y Nueva Galicia: Siglo XVI]It read Francisca Zambrana daughter of the Zambrana Lineage, In New Viscaya, (Mexico).
http://books.google.fr/books?id=v8Tam6akCesC&pg=PA98&lpg=PA98&dq=fortun+sanchez+zambrana&source=bl&ots=UPZyv_BKFw&sig=uNb6IZpiXDuhzOAfRsVEhiIQI9Q&hl=fr&sa=X&ei=wiQ1UIu6J4fY2QXE-YDADQ&ved=0CGIQ6AEwBw#v=onepage&q=fortun%20sanchez%20zambrana&f=false] This ebook has notes of Zambrana spelled Cembrana.
http://books.google.es/books?id=YJLwnhnl5ggC&pg=PA1623&lpg=PA1623&dq=sobredo+blasones&source=bl&ots=IZDAhdd1F5&sig=v-A9NQWRBqDGJq3WzUP0Z_Z4IKo&hl=es&sa=X&ei=rbw2UJ2YHcry0gGq1IHIAQ&ved=0CC4Q6AEwAA#v=onepage&q=zambrana&f=false] This book shows zambrano crest description.
http://books.google.es/books?id=QQ6557YtjVwC&pg=RA2-PA81&lpg=RA2-PA81&dq=fortun+sanchez+tota&source=bl&ots=1kbUdhJYNu&sig=wLalIYvDqUU7-sdQPq76en7uZ28&hl=es&sa=X&ei=eNQ2UPb1LY_K9QSDgIGYAw&ved=0CE0Q6AEwBQ#v=onepage&q=fortun%20sanchez%20tota&f=false]I found the book i was looking for after reading about the wrong fortun Sanchez i will be deleting the books that dont relate to this fortun sanchez of the Mendoza family.
http://books.google.com/books?id=BRORc9gsAb4C&pg=PA70&lpg=PA70&dq=Jaun+Lope+Zuria&source=bl&ots=af2uKApHkU&sig=aV9yvbIttjkte5-U5W2Zv5HRPxA&hl=en&sa=X&ei=OFw4UKfyLIPq2QWHi4CYDA&ved=0CDwQ6AEwAg#v=onepage&q=Jaun%20Lope%20Zuria&f=false] The white lord of VIzcaya.
http://books.google.com/books?id=L89DAAAAYAAJ&pg=PA60&lpg=PA60&dq=Jaun+Lope+Zuria&source=bl&ots=-JCr7yqiYA&sig=o2Zpvh9StuLkAbQYS92XUq8XZKw&hl=en&sa=X&ei=OFw4UKfyLIPq2QWHi4CYDA&ved=0CFEQ6AEwBQ#v=onepage&q=Jaun%20Lope%20Zuria&f=false] Defeted the Moors advance to france.
http://books.google.com/books?id=BkDunC5th60C&pg=PA150&lpg=PA150&dq=zambrano+armas+fuente+del+maestre&source=bl&ots=NOM5Zw5l3f&sig=6SBbMlHI6tZtSDgj4zmT2vR1rBc&hl=en&sa=X&ei=HiFBULvbHcTXigK464CQDw&ved=0CC0Q6AEwAA#v=onepage&q=zambrano%20armas%20fuente%20del%20maestre&f=false Zambrano family recorded with same arms as Zambrana refer to as being the same. And that they travel to America or "Indias"
http://books.google.com/books?id=QIE4lY4xFXsC&pg=PA104&lpg=PA104&dq=fray+pedro+zambrano&source=bl&ots=8UAIN_mKex&sig=2isNO85Y227PbI8xRabldy66uCY&hl=en&sa=X&ei=_vFgUNHJD6GpigL1tIF4&ved=0CCwQ6AEwAA#v=onepage&q=fray%20pedro%20zambrano&f=false Fray Pedro Zambrano New Mexico.
http://books.google.com/books?id=wva_Ysr0HxUC&q=familia+zambrano&dq=familia+zambrano&source=bl&ots=zGz7s0aWRn&sig=gHvI3FUY3-YDo732PT0PXcpaxIc&hl=en&sa=X&ei=VCJiUPzRAsX5igKT54GYCg&ved=0CGAQ6AEwCQ Zambrana y Zambrano conection, Follow the family crest and city arms Castile silver on red field is Zambrano, Haro relatives are Elm tree on silver field, Medina de pomar is another castle contacting the locals for more infromation
[[:Category: Zambrano, Spain, Castillo, Palace, Casa, Santiago, Calatrava, Montesa, Alcantara, Genealogy, Espa�a , Alta California, Florida, Nueva Granada, Granada, Basque, Vasco, Castilla, Castile, Grandee .]]