Ejemplo n.º 1
0
def basic_search(req):
    # do not know how to get userId from session yet, to be resolved
    user_id = 0
    if req.session.has_key('user_id'):
        user_id = req.session['user_id']
    else:
        user_id = req.GET.dict()['user_id']


    ep = db_retrieve_eating_preferences(user_id)

    search_results = search_alg(req.GET.dict(), ep)

    return HttpResponse(json.dumps(search_results), content_type='application/json')
Ejemplo n.º 2
0
def suggest(user_id):
    #############
    #############
    #############
    suggested_total_fat = 65
    suggested_protein = 50
    suggested_carbohydrate = 300
    suggested_fiber = 25
    suggested_calories = 2000
    suggested_sugar = 30
    ##############
    ##############
    ##############
    consumed_total_fat = 0
    consumed_protein = 0
    consumed_carbohydrate = 0
    consumed_fiber = 0
    consumed_calories = 0
    consumed_sugar = 0
    start = int(datetime.utcnow().date().strftime("%s")) + 6*60*60
    end = time.time() + 3 * 60 * 60
    if end < start:
        start -= 24 * 60 * 60
    records = db_search_consumption_foods(start , end , user_id)
    count = 1
    for record in records:
        consumed_total_fat += record.fat_value
        consumed_protein += record.protein_value
        consumed_carbohydrate += record.carbohydrate_value
        consumed_fiber += record.fiber_value
        consumed_calories += record.calorie_value
        consumed_sugar += record.sugar_value
        if consumed_calories > 400:
            count += 1
    #######################
    #######################
    #######################
    if count < 4:
        coefficient = count / 3
    else:
        coefficient = 1
    suggested_total_fat = coefficient * 1 * suggested_total_fat - consumed_total_fat
    if suggested_total_fat < 0:
        suggested_total_fat = 0
    suggested_protein = coefficient * 1 * suggested_protein - consumed_protein
    if suggested_protein < 0:
        suggested_protein = 0
    suggested_carbohydrate = coefficient * 1 * suggested_carbohydrate - consumed_carbohydrate
    if suggested_carbohydrate < 0:
        suggested_carbohydrate = 0
    suggested_fiber = coefficient * 1 * suggested_fiber - consumed_fiber
    if suggested_fiber < 0:
        suggested_fiber = 0
    suggested_sugar = coefficient * 1 * suggested_sugar - consumed_sugar
    if suggested_sugar < 0:
        suggested_sugar = 0
    suggested_calories = coefficient * 1 * suggested_calories - consumed_calories
    if suggested_calories < 0:
        suggested_calories = -100
    #######################
    #######################
    #######################
    user_preferences = db_retrieve_eating_preferences(user_id)
    foods_query = unwanted_search(user_preferences["unwanted_list"])
    foods_query = calorie_search(suggested_calories-200, suggested_calories+200,foods_query)
    foods_query = sugar_search(0,suggested_sugar+10,foods_query)
    foods = list(fat_search(suggested_total_fat-10,suggested_total_fat+10,foods_query))
    foods.extend(list(protein_search(suggested_protein-10,suggested_protein+10,foods_query)))
    foods.extend(list(carbohydrate_search(suggested_carbohydrate-30, suggested_carbohydrate+30,foods_query)))
    foods.extend(list(fiber_search(suggested_fiber-10,suggested_fiber+10,foods_query)))
    suggested_foods = []
    food_id_list = []
    for food in foods:
        food_id_list.append(food.food_id)
    food_id_list = [ite for ite, it in Counter(food_id_list).most_common(3)]
    for id in food_id_list:
        food = db_retrieve_food(id)
        food_dict = dict(
            food_name=food.food_name,
            food_id=food.food_id,
            food_image=food.food_image,
            food_rate=food.food_rate,
            food_description = food.food_description,
            food_owner = food.food_owner,
            calorie_value=food.calorie_value
        )
        suggested_foods.append(food_dict)
    return suggested_foods
Ejemplo n.º 3
0
def suggest(user_id):
    #############
    #############
    #############
    suggested_total_fat = 65
    suggested_protein = 50
    suggested_carbohydrate = 300
    suggested_fiber = 25
    suggested_calories = 2000
    suggested_sugar = 30
    ##############
    ##############
    ##############
    consumed_total_fat = 0
    consumed_protein = 0
    consumed_carbohydrate = 0
    consumed_fiber = 0
    consumed_calories = 0
    consumed_sugar = 0
    start = int(datetime.utcnow().date().strftime("%s")) + 6 * 60 * 60
    end = time.time() + 3 * 60 * 60
    if end < start:
        start -= 24 * 60 * 60
    records = db_search_consumption_foods(start, end, user_id)
    count = 1
    for record in records:
        consumed_total_fat += record.fat_value
        consumed_protein += record.protein_value
        consumed_carbohydrate += record.carbohydrate_value
        consumed_fiber += record.fiber_value
        consumed_calories += record.calorie_value
        consumed_sugar += record.sugar_value
        if consumed_calories > 400:
            count += 1
    #######################
    #######################
    #######################
    if count < 4:
        coefficient = count / 3
    else:
        coefficient = 1
    suggested_total_fat = coefficient * 1 * suggested_total_fat - consumed_total_fat
    if suggested_total_fat < 0:
        suggested_total_fat = 0
    suggested_protein = coefficient * 1 * suggested_protein - consumed_protein
    if suggested_protein < 0:
        suggested_protein = 0
    suggested_carbohydrate = coefficient * 1 * suggested_carbohydrate - consumed_carbohydrate
    if suggested_carbohydrate < 0:
        suggested_carbohydrate = 0
    suggested_fiber = coefficient * 1 * suggested_fiber - consumed_fiber
    if suggested_fiber < 0:
        suggested_fiber = 0
    suggested_sugar = coefficient * 1 * suggested_sugar - consumed_sugar
    if suggested_sugar < 0:
        suggested_sugar = 0
    suggested_calories = coefficient * 1 * suggested_calories - consumed_calories
    if suggested_calories < 0:
        suggested_calories = -100
    #######################
    #######################
    #######################
    user_preferences = db_retrieve_eating_preferences(user_id)
    foods_query = unwanted_search(user_preferences["unwanted_list"])
    foods_query = calorie_search(suggested_calories - 200,
                                 suggested_calories + 200, foods_query)
    foods_query = sugar_search(0, suggested_sugar + 10, foods_query)
    foods = list(
        fat_search(suggested_total_fat - 10, suggested_total_fat + 10,
                   foods_query))
    foods.extend(
        list(
            protein_search(suggested_protein - 10, suggested_protein + 10,
                           foods_query)))
    foods.extend(
        list(
            carbohydrate_search(suggested_carbohydrate - 30,
                                suggested_carbohydrate + 30, foods_query)))
    foods.extend(
        list(
            fiber_search(suggested_fiber - 10, suggested_fiber + 10,
                         foods_query)))
    suggested_foods = []
    food_id_list = []
    for food in foods:
        food_id_list.append(food.food_id)
    food_id_list = [ite for ite, it in Counter(food_id_list).most_common(3)]
    for id in food_id_list:
        food = db_retrieve_food(id)
        food_dict = dict(food_name=food.food_name,
                         food_id=food.food_id,
                         food_image=food.food_image,
                         food_rate=food.food_rate,
                         food_description=food.food_description,
                         food_owner=food.food_owner,
                         calorie_value=food.calorie_value)
        suggested_foods.append(food_dict)
    return suggested_foods