Exemplo n.º 1
0
def get_nh_sea(sea):
    authorize(DB_KEYS, request)

    sea = requests.utils.unquote(sea).replace("_", " ")
    limit = "1"
    tables = "nh_sea_creature"
    fields = "name,_pageName=url,number,image_url,render_url,catchphrase,catchphrase2,shadow_size,shadow_movement,rarity,total_catch,sell_nook,tank_width,tank_length,time,time_n_availability=time_n_months,time_s_availability=time_s_months,time2,time2_n_availability=time2_n_months,time2_s_availability=time2_s_months,n_availability,n_m1,n_m2,n_m3,n_m4,n_m5,n_m6,n_m7,n_m8,n_m9,n_m10,n_m11,n_m12,n_m1_time,n_m2_time,n_m3_time,n_m4_time,n_m5_time,n_m6_time,n_m7_time,n_m8_time,n_m9_time,n_m10_time,n_m11_time,n_m12_time,s_availability,s_m1,s_m2,s_m3,s_m4,s_m5,s_m6,s_m7,s_m8,s_m9,s_m10,s_m11,s_m12,s_m1_time,s_m2_time,s_m3_time,s_m4_time,s_m5_time,s_m6_time,s_m7_time,s_m8_time,s_m9_time,s_m10_time,s_m11_time,s_m12_time"
    where = 'name="' + sea + '"'
    params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tables,
        "fields": fields,
        "where": where,
        "limit": limit,
    }

    cargo_results = call_cargo(params, request.args)
    if cargo_results == []:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                "MediaWiki Cargo request succeeded by nothing was returned for the parameters: {}"
                .format(params),
            ),
        )
    else:
        if exact_version("1.0"):
            return jsonify(months_to_array(format_critters(cargo_results)))
        else:
            return jsonify(months_to_array(format_critters(cargo_results))[0])
Exemplo n.º 2
0
def get_nh_item(item):
    authorize(DB_KEYS, request)

    item = requests.utils.unquote(item).replace("_", " ")
    limit = "1"
    tables = "nh_item"
    fields = "_pageName=url,en_name=name,image_url,stack,hha_base,buy1_price,buy1_currency,sell,is_fence,material_type,material_seasonality,material_sort,material_name_sort,material_seasonality_sort,edible,plant_type,availability1,availability1_note,availability2,availability2_note,availability3,availability3_note,version_added,unlocked,notes"
    where = f'en_name="{item}"'
    params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tables,
        "fields": fields,
        "where": where,
        "limit": limit,
    }

    cargo_results = call_cargo(params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {params}",
            ),
        )
    else:
        return jsonify(format_other_item(cargo_results[0]))
Exemplo n.º 3
0
def get_nh_art(art):
    authorize(DB_KEYS, request)

    art = requests.utils.unquote(art).replace("_", " ")
    limit = "1"
    tables = "nh_art"
    fields = "name,_pageName=url,image_url,has_fake,fake_image_url,art_name,author,year,art_style,description,buy_price=buy,sell,availability,authenticity,width,length"
    where = f'name="{art}"'
    params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tables,
        "fields": fields,
        "where": where,
        "limit": limit,
    }

    cargo_results = call_cargo(params, request.args)
    if cargo_results == []:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {params}",
            ),
        )
    else:
        return jsonify(format_art(cargo_results[0]))
Exemplo n.º 4
0
def get_nh_fossil_group(name):
    authorize(DB_KEYS, request)

    limit = "1"
    tables = "nh_fossil_group"
    fields = "name,_pageName=url,room,description"
    where = f'name = "{name}"'

    params = {
        "action": "cargoquery",
        "format": "json",
        "limit": limit,
        "tables": tables,
        "fields": fields,
        "where": where,
    }

    cargo_results = call_cargo(params, request.args)

    if not cargo_results:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                "MediaWiki Cargo request succeeded by nothing was returned for the parameters: {}"
                .format(params),
            ),
        )
    else:
        return format_fossil_group(cargo_results[0])
Exemplo n.º 5
0
def get_nh_fossil_individual(name):
    authorize(DB_KEYS, request)

    name = requests.utils.unquote(name).replace("_", " ")
    limit = "1"
    tables = "nh_fossil"
    fields = "name,_pageName=url,image_url,fossil_group,interactable,sell,color1,color2,hha_base,width,length"
    where = f'name = "{name}"'

    params = {
        "action": "cargoquery",
        "format": "json",
        "limit": limit,
        "tables": tables,
        "fields": fields,
        "where": where,
    }

    cargo_results = call_cargo(params, request.args)

    if not cargo_results:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                "MediaWiki Cargo request succeeded by nothing was returned for the parameters: {}"
                .format(params),
            ),
        )
    else:
        return format_fossil(cargo_results[0])
Exemplo n.º 6
0
def get_nh_interior(interior):
    authorize(DB_KEYS, request)

    interior = requests.utils.unquote(interior).replace("_", " ")
    limit = "1"
    tables = "nh_interior"
    fields = "_pageName=url,en_name=name,image_url,category,item_series,item_set,theme1,theme2,hha_category,tag,hha_base,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,availability1,availability1_note,availability2,availability2_note,grid_size,color1,color2,version_added,unlocked,notes"
    where = f'en_name="{interior}"'
    params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tables,
        "fields": fields,
        "where": where,
        "limit": limit,
    }

    cargo_results = call_cargo(params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {params}",
            ),
        )
    else:
        return jsonify(format_interior(cargo_results[0]))
Exemplo n.º 7
0
def get_nh_recipe(recipe):
    authorize(DB_KEYS, request)

    recipe = recipe.replace("_", " ")
    limit = "1"
    tables = "nh_recipe"
    fields = "_pageName=url,en_name=name,image_url,serial_id,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,recipes_to_unlock,diy_availability1,diy_availability1_note,diy_availability2,diy_availability2_note,material1,material1_num,material2,material2_num,material3,material3_num,material4,material4_num,material5,material5_num,material6,material6_num"
    where = f'en_name="{recipe}"'
    params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tables,
        "fields": fields,
        "where": where,
        "limit": limit,
    }

    cargo_results = call_cargo(params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {params}",
            ),
        )
    else:
        return jsonify(format_recipe(cargo_results[0]))
Exemplo n.º 8
0
def get_nh_furniture(furniture):
    authorize(DB_KEYS, request)

    furniture = requests.utils.unquote(furniture).replace("_", " ")
    furniture_limit = "1"
    furniture_tables = "nh_furniture"
    furniture_fields = "_pageName=url,en_name=name,category,item_series,item_set,theme1,theme2,hha_category,tag,hha_base,lucky,lucky_season,function1,function2,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,availability1,availability1_note,availability2,availability2_note,availability3,availability3_note,variation_total,pattern_total,customizable,custom_kits,custom_kit_type,custom_body_part,custom_pattern_part,grid_size,height,door_decor,version_added,unlocked,notes"  #'
    furniture_where = f'en_name = "{furniture}"'
    furniture_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": furniture_tables,
        "fields": furniture_fields,
        "where": furniture_where,
        "limit": furniture_limit,
    }
    variation_limit = "70"
    variation_tables = "nh_furniture_variation"
    variation_fields = "en_name=name,variation,pattern,image_url,color1,color2"
    variation_where = f'en_name = "{furniture}"'
    variation_orderby = "variation_number,pattern_number"
    variation_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": variation_tables,
        "fields": variation_fields,
        "where": variation_where,
        "order_by": variation_orderby,
        "limit": variation_limit,
    }

    cargo_results = call_cargo(furniture_params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {furniture_params}",
            ),
        )
    else:
        piece = format_furniture(cargo_results[0])
        variations = call_cargo(variation_params, request.args)
        return jsonify(stitch_variation(piece, variations))
Exemplo n.º 9
0
def get_nh_tool(tool):
    authorize(DB_KEYS, request)

    tool = requests.utils.unquote(tool).replace("_", " ")
    tool_limit = "1"
    tool_tables = "nh_tool"
    tool_fields = "_pageName=url,en_name=name,uses,hha_base,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,availability1,availability1_note,availability2,availability2_note,availability3,availability3_note,customizable,custom_kits,custom_body_part,version_added,unlocked,notes"
    tool_where = f'en_name = "{tool}"'
    tool_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": tool_tables,
        "fields": tool_fields,
        "where": tool_where,
        "limit": tool_limit,
    }
    variation_limit = "10"
    variation_tables = "nh_tool_variation"
    variation_fields = "en_name=name,variation,image_url"
    variation_where = f'en_name = "{tool}"'
    variation_orderby = "variation_number"
    variation_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": variation_tables,
        "fields": variation_fields,
        "where": variation_where,
        "order_by": variation_orderby,
        "limit": variation_limit,
    }

    cargo_results = call_cargo(tool_params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {tool_params}",
            ),
        )
    else:
        piece = format_tool(cargo_results[0])
        variations = call_cargo(variation_params, request.args)
        return jsonify(stitch_variation(piece, variations))
Exemplo n.º 10
0
def get_nh_clothing(clothing):
    authorize(DB_KEYS, request)

    clothing = requests.utils.unquote(clothing).replace("_", " ")
    clothing_limit = "1"
    clothing_tables = "nh_clothing"
    clothing_fields = "_pageName=url,en_name=name,category,style1,style2,label1,label2,label3,label4,label5,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,availability1,availability1_note,availability2,availability2_note,variation_total,vill_equip,seasonality,version_added,unlocked,notes"
    clothing_where = f'en_name = "{clothing}"'
    clothing_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": clothing_tables,
        "fields": clothing_fields,
        "where": clothing_where,
        "limit": clothing_limit,
    }
    variation_limit = "10"
    variation_tables = "nh_clothing_variation"
    variation_fields = "en_name=name,variation,image_url,color1,color2"
    variation_where = f'en_name = "{clothing}"'
    variation_orderby = "variation_number"
    variation_params = {
        "action": "cargoquery",
        "format": "json",
        "tables": variation_tables,
        "fields": variation_fields,
        "where": variation_where,
        "order_by": variation_orderby,
        "limit": variation_limit,
    }

    cargo_results = call_cargo(clothing_params, request.args)
    if len(cargo_results) == 0:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                f"MediaWiki Cargo request succeeded by nothing was returned for the parameters: {clothing_params}",
            ),
        )
    else:
        piece = format_clothing(cargo_results[0])
        variations = call_cargo(variation_params, request.args)
        return jsonify(stitch_variation(piece, variations))
Exemplo n.º 11
0
def get_nh_fossil_all(name):
    authorize(DB_KEYS, request)

    name = requests.utils.unquote(name).replace("_", " ")

    group_limit = "1"
    group_tables = "nh_fossil_group"
    group_fields = "name,_pageName=url,room,description"

    # fossil_fields = "name,_pageName=url,image_url,fossil_group,interactable,sell,color1,color2,hha_base,width,length"

    fossil_params = {
        "action": "cargoquery",
        "format": "json",
        "limit": "1",
        "tables": "nh_fossil",
        "fields": "name,fossil_group",
        "where": f'name = "{name}"',
    }

    group_params = {
        "action": "cargoquery",
        "format": "json",
        "limit": "1",
        "tables": "nh_fossil_group",
        "fields": "name,_pageName=url,room,description",
    }

    fossil_check = call_cargo(fossil_params, request.args)
    if fossil_check:
        fossil_check = fossil_check[0]
        group_params["where"] = f'name = "{fossil_check["fossil_group"]}"'
        matched = {"type": "individual", "name": fossil_check["name"]}
    else:
        fossil_check = None
        group_params["where"] = f'name = "{name}"'
        matched = {"type": "group"}

    group = call_cargo(group_params, request.args)
    if group:
        group = format_fossil_group(group[0])
        if not fossil_check:
            matched["name"] = group["name"]
        group["matched"] = matched
    else:
        abort(
            404,
            description=error_response(
                "No data was found for the given query.",
                "MediaWiki Cargo request succeeded by nothing was returned for the parameters: {}"
                .format(group_params),
            ),
        )

    fossil_params["where"] = f'fossil_group = "{group["name"]}"'
    fossil_params["limit"] = "10"
    fossil_params[
        "fields"] = "name,_pageName=url,image_url,fossil_group,interactable,sell,color1,color2,hha_base,width,length"
    #          Technically don't need this ^^^ but it syncs the /all and /all/name caches
    fossils = call_cargo(fossil_params, request.args)
    group["fossils"] = [format_fossil(_) for _ in fossils]
    for fossil in group["fossils"]:
        del fossil["fossil_group"]

    return jsonify(group)