def item(qid): username = get_username() lang = pt_to_ptbr(get_locale()) with open(os.path.join(app.static_folder, 'queries.json')) as category_queries: all_queries = json.load(category_queries) metadata_query = all_queries["Metadados"]["query"].replace( "LANGUAGE", lang).replace("QIDDAOBRA", qid) brands_query = all_queries["Marcas"]["query"].replace("LANGUAGE", lang).replace( "QIDDAOBRA", qid) all_objects_query = all_queries["Todos"]["query"].replace( "LANGUAGE", lang).replace("QIDDAOBRA", qid) next_qid_query = all_queries["Next_qid"]["query"].replace("QIDDAOBRA", qid) work_metadata = query_metadata_of_work(metadata_query, lang=lang) work_depicts = query_brands_metadata(brands_query, qid) next_qid = query_next_qid(next_qid_query) if not next_qid: next_qid = query_next_qid(all_objects_query) if "category" in work_metadata: category_images = api_category_members(work_metadata["category"]) else: category_images = [] return render_template('item.html', metadata=work_metadata, depicts_metadata=work_depicts, category_images=category_images, username=username, lang=lang, qid=qid, next_qid=next_qid)
def sobre(): username = get_username() lang = pt_to_ptbr(get_locale()) with open(os.path.join(app.static_folder, 'queries.json'), encoding="utf-8") as category_queries: all_queries = json.load(category_queries) quantidade = query_quantidade(all_queries["Quantidade_de_obras"]["query"], lang=lang) return render_template('sobre.html', username=username, lang=get_locale(), number_works=quantidade)
def item(qid): username = get_username() with open(os.path.join(app.static_folder, 'queries.json')) as category_queries: all_queries = json.load(category_queries) lang = pt_to_ptbr(get_locale()) metadata_query = all_queries["Metadados"]["query"].replace( "LANGUAGE", lang).replace("QIDDAOBRA", qid) depicts_query = all_queries["Retratas"]["query"].replace( "LANGUAGE", lang).replace("QIDDAOBRA", qid) work_metadata = query_metadata_of_work(metadata_query, lang=lang) work_depicts = query_depicts_metadata(depicts_query, qid) return render_template('item.html', metadata=work_metadata, depicts_metadata=work_depicts, username=username, lang=get_locale())
def colecao(type): username = get_username() lang = pt_to_ptbr(get_locale()) with open(os.path.join(app.static_folder, 'queries.json'), encoding="utf-8") as category_queries: all_queries = json.load(category_queries) try: selected_query = all_queries[type]["query"] selection = query_by_type(selected_query) if lang == "en": descriptor = all_queries[type]["descriptor"]["en"] else: descriptor = all_queries[type]["descriptor"]["pt-br"] return render_template("colecao.html", collection=selection, username=username, lang=lang, descriptor=descriptor) except: return redirect(url_for('inicio'))
def global_user(): g.user = get_username()
def tutorial(): username = get_username() return render_template('tutorial.html', username=username, lang=get_locale())
def inicio(): username = get_username() return render_template('inicio.html', username=username, lang=get_locale())
def add_statement(): if request.method == 'POST': data = request.get_json() qid = data['id'] pid = data['tipo'] # Tipo de qualificador username = get_username() today = datetime.today().strftime('%Y-%m-%dT%H:%M:%S') if pid != 'nonvisible': snaktype = 'value' token = get_token() params = { "action": "wbcreateclaim", "format": "json", "entity": qid, "property": pid, "snaktype": snaktype, "token": token } if pid == 'P1684': claim = data['claim'] params["value"] = "{\"text\":\"" + str( claim) + "\",\"language\":\"" + pt_to_ptbr( get_locale()) + "\"}", elif pid == 'unknownvalue': params["snaktype"] = 'somevalue' params["property"] = 'P1716' elif pid == 'P1716': claim = data['claim'].replace("Q", "") params[ "value"] = "{\"entity-type\":\"item\",\"numeric-id\":" + str( claim) + "}" else: return jsonify("204") results = api_post_request(params) if pid == 'P1684': stat_id = get_claim(qid, pid, claim) new_params = { "action": "wbsetqualifier", "format": "json", "claim": stat_id, "property": 'P3831', "value": "{\"entity-type\":\"item\",\"numeric-id\":431289}", "snaktype": "value", "token": token } api_post_request(new_params) return jsonify("200") else: with open(os.path.join(app.static_folder, 'moreimages.json'), encoding="utf-8") as need_more_images: values = json.load(need_more_images) if qid in values: values[qid].append({"user": username, "data": today}) else: values[qid] = [{"user": username, "data": today}] with open(os.path.join(app.static_folder, 'moreimages.json'), 'w', encoding="utf-8") as need_more_images: json.dump(values, need_more_images, ensure_ascii=False) return jsonify( gettext( u'Obrigado! Sua declaração de que esta obra necessita de mais imagens foi inserida no nosso banco de dados com sucesso!' )) else: return jsonify("204")
def apps(): username = get_username() lang = pt_to_ptbr(get_locale()) return render_template('apps.html', username=username, lang=lang)
def tutorial(): username = get_username() lang = pt_to_ptbr(get_locale()) return render_template('tutorial.html', username=username, lang=lang)
def inicio(): username = get_username() lang = pt_to_ptbr(get_locale()) return render_template('inicio.html', username=username, lang=lang)
def add_statement(): if request.method == 'POST': data = request.get_json() qid = data['id'] pid = data['tipo'] # Tipo de qualificador edit_claim = data['edit_claim'] if "edit_claim" in data else '' username = get_username() today = datetime.today().strftime('%Y-%m-%dT%H:%M:%S') if edit_claim: claim = data['edit_claim'] new_qid = data['claim'].replace("Q", "") token = get_token() if pid != 'unknownvalue' and pid != 'novalue': params = { "action": "wbsetclaimvalue", "claim": claim, "snaktype": "value", "token": token, "value": "{\"entity-type\":\"item\",\"numeric-id\":" + str(new_qid) + "}" } api_post_request(params) message = lazy_gettext(u'Declaração inserida com sucesso!') return jsonify(message) if pid == 'P180': snaktype = 'value' token = get_token() params = { "action": "wbcreateclaim", "format": "json", "entity": qid, "property": pid, "snaktype": snaktype, "token": token } claim = data['claim'].replace("Q", "") params[ "value"] = "{\"entity-type\":\"item\",\"numeric-id\":" + str( claim) + "}" api_post_request(params) stat_id = get_claim(qid, pid, claim) new_params = { "action": "wbsetqualifier", "format": "json", "claim": stat_id, "property": 'P3831', "value": "{\"entity-type\":\"item\",\"numeric-id\":1229071}", "snaktype": "value", "token": token } api_post_request(new_params) message = lazy_gettext(u'Declaração inserida com sucesso!') return jsonify(message) elif pid == 'unknownvalue': with open(os.path.join(app.static_folder, 'unknownmotifs.json'), encoding="utf-8") as file: values = json.load(file) if qid in values: values[qid].append({"user": username, "data": today}) else: values[qid] = [{"user": username, "data": today}] with open(os.path.join(app.static_folder, 'unknownmotifs.json'), 'w', encoding="utf-8") as file: json.dump(values, file, ensure_ascii=False) message = lazy_gettext( u'Sua declaração foi inserida com sucesso no nosso banco de dados para análise!' ) return jsonify(message) elif pid == 'novalue': with open(os.path.join(app.static_folder, 'nomotifs.json'), encoding="utf-8") as file: values = json.load(file) if qid in values: values[qid].append({"user": username, "data": today}) else: values[qid] = [{"user": username, "data": today}] with open(os.path.join(app.static_folder, 'nomotifs.json'), 'w', encoding="utf-8") as file: json.dump(values, file, ensure_ascii=False) message = lazy_gettext( u'Sua declaração foi inserida com sucesso no nosso banco de dados para análise!' ) return jsonify(message) else: message = lazy_gettext( u"'Ocorreu algum erro! Verifique se selecionou uma opção. Caso o erro persista, por favor, reporte em https://github.com/WikiMovimentoBrasil/wikimotivos/issues'" ) return jsonify(message) else: message = lazy_gettext( u"'Ocorreu algum erro! Verifique se selecionou uma opção. Caso o erro persista, por favor, reporte em https://github.com/WikiMovimentoBrasil/wikimotivos/issues'" ) return jsonify(message)
def page_not_found(e): username = get_username() lang = pt_to_ptbr(get_locale()) return render_template('error.html', username=username, lang=lang)