/
app.py
104 lines (101 loc) · 3.42 KB
/
app.py
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from flask import Flask, render_template, request, redirect
import model as m
import os
from datetime import datetime
from dotenv import load_dotenv
# -- Initialization section --
app = Flask(__name__)
load_dotenv()
API_KEY = os.getenv("GOOGLE_KEY")
resIDs = []
link = ""
# -- Routes section --
@app.route('/', methods=["GET", "POST"])
@app.route('/index', methods=["GET", "POST"])
def index():
terms = set()
photos = []
while len(terms) != 3:
terms.add(m.getPhotoTerm())
for i in terms:
photos.append(m.getPhoto(i))
global link
if request.method == "GET":
resIDs.clear()
find = m.search(m.getRandom(), 'NYC')
res = m.getDetails(find['businesses'][0]['id'])
# print(res)
link = res['url']
try:
price = "(" + res["price"] + ")"
except (KeyError, TypeError):
price = ""
params = {
'name': res['name'],
'price': price,
'img1': res['photos'][0],
'img2': res['photos'][1],
'img3': res['photos'][2],
'rating': m.getRating(res['rating']),
'reviewCount': res['review_count'],
'address': res['location']['display_address'][0] + ", " + res['location']['display_address'][1],
'categories': res['categories'],
'terms': list(terms),
'photos': photos,
'KEY': API_KEY
}
return render_template('index.html', time=datetime.now(), **params)
else:
if request.form['formType'] == "initial":
termList = []
if request.form['term'] != "":
termList.append(request.form['term'])
try:
termList.append(request.form["term1"])
except (KeyError):
pass
try:
termList.append(request.form["term2"])
except (KeyError):
pass
try:
termList.append(request.form["term3"])
except (KeyError):
pass
# print(request.form)
print(termList)
loc = request.form["loc"]
for i in termList:
find = m.search(i, loc, 5)
for j in find['businesses']:
resIDs.append(j['id'])
res = m.getDetails(resIDs.pop(0))
elif request.form['formType'] == "no":
# print(resIDs)
if resIDs:
res = m.getDetails(resIDs.pop(0))
else:
find = m.search(m.getRandom(), 'NYC')
res = m.getDetails(find['businesses'][0]['id'])
elif request.form['formType'] == 'yes':
return redirect(link)
link = res['url']
try:
price = "(" + res["price"] + ")"
except (KeyError):
price = ""
params = {
'name': res['name'],
'price': price,
'img1': res['photos'][0],
'img2': res['photos'][1],
'img3': res['photos'][2],
'rating': m.getRating(res['rating']),
'reviewCount': res['review_count'],
'address': res['location']['display_address'][0] + ", " + res['location']['display_address'][1],
'categories': res['categories'],
'terms': list(terms),
'photos': photos,
'KEY': API_KEY
}
return render_template("index.html", time=datetime.now(), **params)