Luke Murphy
6 years ago
8 changed files with 751 additions and 350 deletions
@ -1,61 +1,87 @@ |
|||
from flask import request |
|||
import requests |
|||
import json |
|||
|
|||
import requests |
|||
|
|||
from flask import request |
|||
|
|||
|
|||
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 |
|||
# TODO(decentral1se): remove this from the source |
|||
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: |
|||
exact_second = item['target'][0]['selector'][2]['exact'] |
|||
if name in item['text'] or name in exact_second: |
|||
data = { |
|||
'text': item['text'], |
|||
'extract': item['target'][0]['selector'][2]['exact'], |
|||
'title': item['document']['title'], 'url': item['uri'] |
|||
} |
|||
res.append(data) |
|||
else: |
|||
exact_first = item['target'][0]['selector'][1]['exact'] |
|||
if name in item['text'] or name in exact_first: |
|||
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 |
|||
|
File diff suppressed because it is too large
Loading…
Reference in new issue