# #https://gist.github.com/mjlavin80/186a6395c5819dbe25a8a0e001d5acfd # import requests # import json # # This script demonstrates how to query annotations for a particular URL using the hypothes.is API. An API key is required. # # The end result of this script is a Python dictionary with annotation data in it. Top save to csv or other format, further parsing would be required # def get_annotations(): import requests import json # This script demonstrates how to query annotations for a particular URL using the hypothes.is API. An API key is required. # The end result of this script is a Python dictionary with annotation data in it. Top save to csv or other format, further parsing would be required def get_annotations(): KEY = "6879-n8AksBoSB7kYoQ3eEwzpEr3nFQEmSp3XN-0PcKL_Sik" # URL = "https://monoskop.org/Monoskop" #a dictionary containing necessary http headers headers = { "Host": "hypothes.is", "Accept": "application/json", "Authorization": "Bearer %s" % KEY } base_url = "https://hypothes.is/api/search?user=xpub@hypothes.is" search_url = "".join([base_url]) r = requests.get(search_url, headers=headers) #data is a python dictionary data = json.loads(r.text) # r = requests.get(search_url, headers=headers) # data = json.loads(r.text) return data def get_annot_results(annot,name): res=[] annot=get_annotations() for item in annot['rows']: if 'selector' in item['target'][0]: if len(item['target'][0]['selector'])>2: if name in item['text'] or name in item['target'][0]['selector'][2]['exact']: data={'text': item['text'],'extract':item['target'][0]['selector'][2]['exact'],'title':item['document']['title'], 'url':item['uri']} res.append(data) else: if name in item['text'] or name in item['target'][0]['selector'][1]['exact']: data={'text': item['text'],'extract':item['target'][0]['selector'][1]['exact'],'title':item['document']['title'], 'url':item['uri']} res.append(data) return res def get_annot_book(annot,name): res=[] for item in annot['rows']: if 'selector' in item['target'][0]: if len(item['target'][0]['selector'])>2: string=item['uri'] if name==string.replace('http://localhost:8080/uploads/',''): data={'text': item['text'],'extract':item['target'][0]['selector'][2]['exact'],'title':item['document']['title'], 'url':item['uri']} res.append(data) else: string=item['uri'] if name==string.replace('http://localhost:8080/uploads/',''): data={'text': item['text'],'extract':item['target'][0]['selector'][1]['exact'],'title':item['document']['title'], 'url':item['uri']} res.append(data) return res