Search for wikibase for unused depicts.
This commit is contained in:
parent
888610f5fe
commit
96a03a0abe
24
app.py
24
app.py
|
@ -943,6 +943,7 @@ def depicts_lookup():
|
||||||
item_ids = []
|
item_ids = []
|
||||||
hits = []
|
hits = []
|
||||||
q1 = DepictsItem.query.filter(DepictsItem.label.ilike(terms + '%'))
|
q1 = DepictsItem.query.filter(DepictsItem.label.ilike(terms + '%'))
|
||||||
|
seen = set()
|
||||||
for item in q1:
|
for item in q1:
|
||||||
hit = {
|
hit = {
|
||||||
'label': item.label,
|
'label': item.label,
|
||||||
|
@ -952,6 +953,7 @@ def depicts_lookup():
|
||||||
}
|
}
|
||||||
item_ids.append(item.item_id)
|
item_ids.append(item.item_id)
|
||||||
hits.append(hit)
|
hits.append(hit)
|
||||||
|
seen.add(item.qid)
|
||||||
|
|
||||||
cls = DepictsItemAltLabel
|
cls = DepictsItemAltLabel
|
||||||
q2 = cls.query.filter(cls.alt_label.ilike(terms + '%'),
|
q2 = cls.query.filter(cls.alt_label.ilike(terms + '%'),
|
||||||
|
@ -967,9 +969,31 @@ def depicts_lookup():
|
||||||
'alt_label': alt.alt_label,
|
'alt_label': alt.alt_label,
|
||||||
}
|
}
|
||||||
hits.append(hit)
|
hits.append(hit)
|
||||||
|
seen.add(item.qid)
|
||||||
|
|
||||||
|
r = mediawiki.api_call({
|
||||||
|
'action': 'wbsearchentities',
|
||||||
|
'search': terms,
|
||||||
|
'limit': 'max',
|
||||||
|
'language': 'en'
|
||||||
|
})
|
||||||
hits.sort(key=lambda hit: hit['count'], reverse=True)
|
hits.sort(key=lambda hit: hit['count'], reverse=True)
|
||||||
|
|
||||||
|
for result in r.json()['search']:
|
||||||
|
if result['id'] in seen:
|
||||||
|
continue
|
||||||
|
|
||||||
|
seen.add(result['id'])
|
||||||
|
hit = {
|
||||||
|
'label': result['label'],
|
||||||
|
'description': result.get('description') or None,
|
||||||
|
'qid': result['id'],
|
||||||
|
'count': 0,
|
||||||
|
}
|
||||||
|
if result['match']['type'] == 'alias':
|
||||||
|
hit['alt_label'] = result['match']['text']
|
||||||
|
hits.append(hit)
|
||||||
|
|
||||||
ret = {
|
ret = {
|
||||||
'count': q1.count() + q2.count(),
|
'count': q1.count() + q2.count(),
|
||||||
'hits': hits,
|
'hits': hits,
|
||||||
|
|
Loading…
Reference in a new issue