-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.py
More file actions
86 lines (69 loc) · 3.23 KB
/
app.py
File metadata and controls
86 lines (69 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from flask import Flask, render_template, request, redirect, url_for, jsonify, session
from main import get_ingredients, get_website_data, get_images, clean_data, mergeDataImage, high_to_low, generateKey
import json
import os
import sys
app = Flask(__name__)
app.secret_key = generateKey()
@app.route("/get-items", methods=["GET", "POST"])
def submit():
final_data = []
user_input = request.form.get("user-input") # hamburger buns
selected_filter = request.form.get('filter')
if selected_filter == "none":
ingredients = get_ingredients(user_input) # ["hamburger", "buns"]
for ingredient in ingredients:
website = get_website_data(ingredient)
images = get_images(ingredient)
individual_data = mergeDataImage(website, images) # [["hamburger", "10.99", img], ["buns", "2.99", img]]
final_data.append(individual_data)
return render_template('confirm.html', food=user_input,data=final_data, ingredients=ingredients)
elif selected_filter == "high-to-low":
ingredients = get_ingredients(user_input) # ["hamburger", "buns"]
for ingredient in ingredients:
website = get_website_data(ingredient)
images = get_images(ingredient)
individual_data = mergeDataImage(website, images) # [["hamburger", "10.99", img], ["buns", "2.99", img]]
individual_data = high_to_low(individual_data, 1)
final_data.append(individual_data)
return render_template('confirm.html', food=user_input,data=final_data, ingredients=ingredients)
else:
ingredients = get_ingredients(user_input) # ["hamburger", "buns"]
for ingredient in ingredients:
website = get_website_data(ingredient)
images = get_images(ingredient)
individual_data = mergeDataImage(website, images) # [["hamburger", "10.99", img], ["buns", "2.99", img]]
individual_data = high_to_low(individual_data, 0)
final_data.append(individual_data)
return render_template('confirm.html', food=user_input,data=final_data, ingredients=ingredients)
@app.route("/add-to-cart", methods=["POST"])
def add_to_cart():
cart_items = request.json.get('items', [])
# Get existing cart items
current_cart = session.get('cart', [])
# Add new items to cart
current_cart.extend(cart_items)
# Update session with new cart
session['cart'] = current_cart
# Force session to update
session.modified = True
return jsonify({"success": True})
@app.route("/remove-from-cart", methods=["POST"])
def remove_from_cart():
index = request.json.get('index')
if 'cart' in session and 0 <= index < len(session['cart']):
# Remove the item at the specified index
session['cart'].pop(index)
session.modified = True
return jsonify({"success": True})
return jsonify({"success": False})
@app.route("/cart")
def view_cart():
cart_items = session.get('cart', [])
return render_template("cart.html", cart_items=cart_items)
@app.route("/", methods=["GET", "POST"])
def home():
cart_items = session.get('cart', [])
return render_template("index.html", cart_count=len(cart_items))
if __name__ == '__main__':
app.run(debug=True, port=5001)