from flask import request import requests import json def get_annotations(): KEY = "6879-n8AksBoSB7kYoQ3eEwzpEr3nFQEmSp3XN-0PcKL_Sik" #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) server = request.host for row in data['rows']: row['uri']= row['uri'].replace('http://' + server+'/uploads/','') 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=[] server = request.host 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://' + server+'/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://' + server+'/uploads/',''): data={'text': item['text'],'extract':item['target'][0]['selector'][1]['exact'],'title':item['document']['title'], 'url':item['uri']} res.append(data) return res