aboutsummaryrefslogtreecommitdiff
path: root/app.py
diff options
context:
space:
mode:
authorBen Burwell <ben@benburwell.com>2019-07-28 18:34:21 -0400
committerBen Burwell <ben@benburwell.com>2019-07-28 18:34:30 -0400
commit28ee93d735879dbf07c9a3549712f35bd8832da9 (patch)
tree0919e8e9f136383c5b114378749c66ba6b7d1f08 /app.py
parent917b41d80c8ade7e35b71d23281d2e4209a5a1b2 (diff)
Typeahead and search
Diffstat (limited to 'app.py')
-rw-r--r--app.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/app.py b/app.py
index d6e4461..3c26ed2 100644
--- a/app.py
+++ b/app.py
@@ -1,8 +1,4 @@
-from flask import Flask
-from flask import render_template
-from flask import redirect
-from flask import request
-from flask import url_for
+from flask import Flask, render_template, redirect, request, url_for, jsonify
from utils import get_closest, translate_to_attr, get_style_preds, translate_to_style
import json
import random
@@ -13,11 +9,17 @@ app = Flask(__name__)
with open("./data/beer_info_small.json") as beers_json:
beer = json.loads(beers_json.read())
+ beer_ids = {}
+ for long_id, val in beer.items():
+ beer_ids[val[0]] = long_id.split('-')[1]
beers_for_random = [b for b in beer if beer[b][3] > 75]
print(len(beers_for_random))
with open('./data/brewery_names.json') as f:
brewery_names = json.load(f)
+ brewery_ids = {}
+ for id, name in brewery_names.items():
+ brewery_ids[name] = id
ATTRS = ['Barnyardy',
'Bitter',
'Boozy',
@@ -58,11 +60,6 @@ def random_beer():
return redirect(url_for('get_beer_details', brewery_id=rando[0], beer_id=rando[1]))
-@app.route('/brewery/<brewery_id>/')
-def get_brewery_list(brewery_id):
- return json.dumps(find_beers_from_brewery(brewery_id))
-
-
@app.route('/brewery/<brewery_id>/<beer_id>', methods=['GET', 'POST'])
def get_beer_details(brewery_id, beer_id):
result, brewery_name = beer_lookup(brewery_id, beer_id)
@@ -110,6 +107,20 @@ def get_beer_details(brewery_id, beer_id):
return render_template('beerpage.jinja2', **kwargs)
+@app.route('/all_beers.json')
+def get_all_beers():
+ return jsonify([ brewery_names[k.split('-')[0]]+' — '+v[0] for k, v in beer.items()])
+
+@app.route('/search', methods=['POST'])
+def search():
+ q = request.form.get('q')
+ if not q:
+ return redirect('/')
+ brewery, beer_name = q.split(' — ')
+ brewery_id = brewery_ids[brewery]
+ beer_id = beer_ids[beer_name]
+ return redirect(url_for('get_beer_details', beer_id=beer_id, brewery_id=brewery_id))
+
def beer_lookup(brewery_id, beer_id=None):
if beer_id: