Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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())
Esempio n. 4
0
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'))
Esempio n. 5
0
def global_user():
    g.user = get_username()
Esempio n. 6
0
def tutorial():
    username = get_username()
    return render_template('tutorial.html',
                           username=username,
                           lang=get_locale())
Esempio n. 7
0
def inicio():
    username = get_username()
    return render_template('inicio.html', username=username, lang=get_locale())
Esempio n. 8
0
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")
Esempio n. 9
0
def apps():
    username = get_username()
    lang = pt_to_ptbr(get_locale())
    return render_template('apps.html', username=username, lang=lang)
Esempio n. 10
0
def tutorial():
    username = get_username()
    lang = pt_to_ptbr(get_locale())
    return render_template('tutorial.html', username=username, lang=lang)
Esempio n. 11
0
def inicio():
    username = get_username()
    lang = pt_to_ptbr(get_locale())
    return render_template('inicio.html', username=username, lang=lang)
Esempio n. 12
0
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)
Esempio n. 13
0
def page_not_found(e):
    username = get_username()
    lang = pt_to_ptbr(get_locale())
    return render_template('error.html', username=username, lang=lang)