Skip some paintings and avoid refresh after random
This commit is contained in:
parent
f322a6f47f
commit
581409dcd6
13
app.py
13
app.py
|
@ -217,8 +217,16 @@ def random_painting():
|
||||||
item_id = wdqs.row_id(random.choice(rows))
|
item_id = wdqs.row_id(random.choice(rows))
|
||||||
if PaintingItem.query.get(item_id):
|
if PaintingItem.query.get(item_id):
|
||||||
continue
|
continue
|
||||||
has_depicts = 'P180' in mediawiki.get_entity(f'Q{item_id}')['claims']
|
entity = mediawiki.get_entity_with_cache(f'Q{item_id}', refresh=True)
|
||||||
|
en_label = wikibase.get_en_label(entity)
|
||||||
|
if en_label and en_label.startswith('Page from '):
|
||||||
|
# example: Q60467422
|
||||||
|
# title: Page from Tales of a Parrot (Tuti-nama): text page
|
||||||
|
# this is not a painting
|
||||||
|
continue
|
||||||
|
has_depicts = 'P180' in entity['claims']
|
||||||
|
|
||||||
|
session[f'Q{item_id}'] = 'from redirect'
|
||||||
return redirect(url_for('item_page', item_id=item_id))
|
return redirect(url_for('item_page', item_id=item_id))
|
||||||
|
|
||||||
@app.route('/oauth/start')
|
@app.route('/oauth/start')
|
||||||
|
@ -338,7 +346,8 @@ def existing_depicts_from_entity(entity):
|
||||||
def item_page(item_id):
|
def item_page(item_id):
|
||||||
qid = f'Q{item_id}'
|
qid = f'Q{item_id}'
|
||||||
item = painting.Painting(qid)
|
item = painting.Painting(qid)
|
||||||
entity = mediawiki.get_entity_with_cache(qid, refresh=True)
|
from_redirect = qid in session and session.pop(qid) == 'from redirect'
|
||||||
|
entity = mediawiki.get_entity_with_cache(qid, refresh=not from_redirect)
|
||||||
|
|
||||||
existing_depicts = existing_depicts_from_entity(entity)
|
existing_depicts = existing_depicts_from_entity(entity)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue