Exemple #1
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]))
Exemple #2
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]))
def get_nh_furniture_all():
    authorize(DB_KEYS, request)

    if "thumbsize" in request.args:
        abort(
            400,
            description=error_response(
                "Invalid arguments",
                "Cannot have thumbsize in a group item request"),
        )

    furniture_limit = "1300"
    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"  #'
    variation_limit = "6000"
    variation_tables = "nh_furniture_variation"
    variation_fields = "en_name=name,variation,pattern,image_url,color1,color2"
    variation_orderby = "variation_number,pattern_number"

    furniture_list = get_furniture_list(furniture_limit, furniture_tables,
                                        furniture_fields)
    variation_list = get_furniture_variation_list(variation_limit,
                                                  variation_tables,
                                                  variation_fields,
                                                  variation_orderby)
    stitched = stitch_variation_list(furniture_list, variation_list)

    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in stitched])
    else:
        return jsonify(stitched)
Exemple #4
0
def get_nh_photo_all():
    authorize(DB_KEYS, request)

    if "thumbsize" in request.args:
        abort(
            400,
            description=error_response(
                "Invalid arguments",
                "Cannot have thumbsize in a group item request"),
        )

    photo_limit = "900"
    photo_tables = "nh_photo"
    photo_fields = "_pageName=url,en_name=name,category,hha_base,buy1_price,buy1_currency,buy2_price,buy2_currency,sell,availability1,availability1_note,availability2,availability2_note,customizable,custom_kits,custom_body_part,grid_size,interactable,version_added,unlocked"
    variation_limit = "3700"
    variation_tables = "nh_photo_variation"
    variation_fields = "en_name=name,variation,image_url,color1,color2"
    variation_orderby = "variation_number"

    photo_list = get_photo_list(photo_limit, photo_tables, photo_fields)
    variation_list = get_variation_list(variation_limit, variation_tables,
                                        variation_fields, variation_orderby)
    stitched = stitch_variation_list(photo_list, variation_list)

    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in stitched])
    else:
        return jsonify(stitched)
Exemple #5
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]))
Exemple #6
0
def get_nh_fossil_all_all():  # What a good name
    authorize(DB_KEYS, request)

    group_limit = "50"
    group_tables = "nh_fossil_group"
    group_fields = "name,_pageName=url,room,description"
    fossil_limit = "100"
    fossil_tables = "nh_fossil"
    fossil_fields = "name,_pageName=url,image_url,fossil_group,interactable,sell,color1,color2,hha_base,width,length"

    groups = get_fossil_group_list(group_limit, group_tables, group_fields)
    fossils = get_fossil_list(fossil_limit, fossil_tables, fossil_fields)

    stitched = stitch_fossil_group_list(groups, fossils)

    if request.args.get("excludedetails") == "true":
        ret = []
        for group in stitched:
            obj = {
                "group": group["name"],
                "fossils": [_["name"] for _ in group["fossils"]]
            }
            ret.append(obj)
        return jsonify(ret)
    else:
        return jsonify(stitched)
Exemple #7
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])
Exemple #8
0
def get_nh_clothing_all():
    authorize(DB_KEYS, request)

    if "thumbsize" in request.args:
        abort(
            400,
            description=error_response(
                "Invalid arguments", "Cannot have thumbsize in a group item request"
            ),
        )

    clothing_limit = "1350"
    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"
    variation_limit = "5000"
    variation_tables = "nh_clothing_variation"
    variation_fields = "en_name=name,variation,image_url,color1,color2"
    variation_orderby = "variation_number"

    clothing_list = get_clothing_list(clothing_limit, clothing_tables, clothing_fields)
    variation_list = get_variation_list(
        variation_limit, variation_tables, variation_fields, variation_orderby
    )
    stitched = stitch_variation_list(clothing_list, variation_list)

    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in stitched])
    else:
        return jsonify(stitched)
Exemple #9
0
def get_nh_tool_all():
    authorize(DB_KEYS, request)

    if "thumbsize" in request.args:
        abort(
            400,
            description=error_response(
                "Invalid arguments", "Cannot have thumbsize in a group item request"
            ),
        )

    tool_limit = "150"
    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"
    variation_limit = "300"
    variation_tables = "nh_tool_variation"
    variation_fields = "en_name=name,variation,image_url"
    variation_orderby = "variation_number"

    tool_list = get_tool_list(tool_limit, tool_tables, tool_fields)
    variation_list = get_variation_list(
        variation_limit, variation_tables, variation_fields, variation_orderby
    )
    stitched = stitch_variation_list(tool_list, variation_list)

    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in stitched])
    else:
        return jsonify(stitched)
Exemple #10
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])
Exemple #11
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])
Exemple #12
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]))
Exemple #13
0
def get_nh_recipe_all():
    authorize(DB_KEYS, request)

    limit = "800"
    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"

    return get_recipe_list(limit, tables, fields)
Exemple #14
0
def get_nh_item_all():
    authorize(DB_KEYS, request)

    limit = "400"
    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"

    return get_other_item_list(limit, tables, fields)
Exemple #15
0
def get_nh_interior_all():
    authorize(DB_KEYS, request)

    limit = "650"
    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"

    return get_interior_list(limit, tables, fields)
Exemple #16
0
def get_nh_event_all():
    authorize(DB_KEYS, request)

    limit = "1200"
    tables = "nh_calendar"
    fields = "event,date,type,link=url"
    orderby = "date"

    return get_event_list(limit, tables, fields, orderby)
Exemple #17
0
def get_nh_art_all():
    authorize(DB_KEYS, request)

    limit = "50"
    tables = "nh_art"
    if request.args.get("excludedetails") == "true":
        fields = "name"
    else:
        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"

    return get_art_list(limit, tables, fields)
Exemple #18
0
def get_nh_sea_all():
    authorize(DB_KEYS, request)

    limit = "100"
    tables = "nh_sea_creature"
    if request.args.get("excludedetails") == "true":
        fields = "name,n_m1,n_m2,n_m3,n_m4,n_m5,n_m6,n_m7,n_m8,n_m9,n_m10,n_m11,n_m12,s_m1,s_m2,s_m3,s_m4,s_m5,s_m6,s_m7,s_m8,s_m9,s_m10,s_m11,s_m12"
    else:
        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"

    return get_critter_list(limit, tables, fields)
Exemple #19
0
def get_nh_fossil_group_all():
    authorize(DB_KEYS, request)

    limit = "50"
    tables = "nh_fossil_group"
    fields = "name,_pageName=url,room,description"

    ret = get_fossil_group_list(limit, tables, fields)
    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in ret])
    else:
        return jsonify(ret)
Exemple #20
0
def get_nh_fossil_individual_all():
    authorize(DB_KEYS, request)

    limit = "100"
    tables = "nh_fossil"
    fields = "name,_pageName=url,image_url,fossil_group,interactable,sell,color1,color2,hha_base,width,length"

    ret = get_fossil_list(limit, tables, fields)
    if request.args.get("excludedetails") == "true":
        return jsonify([_["name"] for _ in ret])
    else:
        return jsonify(ret)
Exemple #21
0
def get_villager_all():
    authorize(DB_KEYS, request)

    limit = "500"
    tables = "villager"
    join = ""
    if request.args.get("excludedetails") == "true":
        fields = "name"
    elif request.args.get("nhdetails") == "true":
        tables = "villager,nh_villager,nh_house"
        join = "villager._pageName=nh_villager._pageName,villager._pageName=nh_house._pageName"
        fields = "villager.name,villager._pageName=url,villager.name,villager.alt_name,villager.title_color,villager.text_color,villager.id,villager.image_url,villager.species,villager.personality,villager.gender,villager.birthday_month,villager.birthday_day,villager.sign,villager.quote,villager.phrase,villager.prev_phrase,villager.prev_phrase2,villager.clothing,villager.islander,villager.debut,villager.dnm,villager.ac,villager.e_plus,villager.ww,villager.cf,villager.nl,villager.wa,villager.nh,villager.film,villager.hhd,villager.pc,nh_villager.image_url=nh_image_url,nh_villager.photo_url=nh_photo_url,nh_villager.icon_url=nh_icon_url,nh_villager.quote=nh_quote,nh_villager.sub_personality=nh_sub-personality,nh_villager.catchphrase=nh_catchphrase,nh_villager.clothing=nh_clothing,nh_villager.clothing_variation=nh_clothing_variation,nh_villager.fav_style1=nh_fav_style1,nh_villager.fav_style2=nh_fav_style2,nh_villager.fav_color1=nh_fav_color1,nh_villager.fav_color2=nh_fav_color2,nh_villager.hobby=nh_hobby,nh_house.interior_image_url=nh_house_interior_url,nh_house.exterior_image_url=nh_house_exterior_url,nh_house.wallpaper=nh_wallpaper,nh_house.flooring=nh_flooring,nh_house.music=nh_music,nh_house.music_note=nh_music_note"
    else:
        fields = "name,_pageName=url,alt_name,title_color,text_color,id,image_url,species,personality,gender,birthday_month,birthday_day,sign,quote,phrase,prev_phrase,prev_phrase2,clothing,islander,debut,dnm,ac,e_plus,ww,cf,nl,wa,nh,film,hhd,pc"

    return get_villager_list(limit, tables, join, fields)
Exemple #22
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))
Exemple #23
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))
Exemple #24
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))
Exemple #25
0
def generate_key():
    authorize(DB_ADMIN_KEYS, request)

    try:
        new_uuid = str(uuid.uuid4())
        email = ""
        if "email" in request.form:
            email = str(request.form["email"])
        project = ""
        if "project" in request.form:
            project = str(request.form["project"])
        db.insert_db("INSERT INTO " + DB_KEYS + ' VALUES("' + new_uuid +
                     '","' + email + '","' + project + '")')
        return jsonify({"uuid": new_uuid, "email": email, "project": project})
    except:
        abort(
            500,
            description=error_response(
                "Failed to create new client UUID.",
                "UUID generation, or UUID insertion into keys table, failed.",
            ),
        )
Exemple #26
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)