From 78e70f3dddf8ecf4f9f4a666cbc836eef481b839 Mon Sep 17 00:00:00 2001 From: Sean Dolan Date: Sun, 28 Jul 2019 15:17:27 -0400 Subject: shit --- app.py | 42 +++++++++++++++++++++++++++--------------- templates/beerpage.jinja2 | 14 ++++---------- utils.py | 6 ++++-- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/app.py b/app.py index aea7cff..d4f49f5 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from flask import render_template from flask import redirect from flask import request from flask import url_for +from utils import get_closest import json import random import re @@ -41,23 +42,35 @@ def get_beer_details(brewery_id, beer_id): 'Barnyardy', 'Woody', 'Smoky', 'Roasty', 'Yeasty', 'Sweet', 'Juicy', 'Light', 'Thin', 'Spicy', 'Dry', 'Fruity', 'Herbal', 'Salty'] + similar_beers = get_closest(brewery_id + '-' + beer_id) + similar_beer_objects = [] + for item in similar_beers: + item_result, item_brewer = beer_lookup(item) + similar_beer_objects.append(BeerInfo(item, item_brewer, item_result)) + if request.method == 'POST': - similar_beers = [] attr = request.form['attr'] direction = request.form['direction'] return render_template('beerpage.jinja2', beer_data=beerinfo, attrs=attrs, - similar_beers=similar_beers, attr=attr, direction=direction) - return render_template('beerpage.jinja2', beer_data=beerinfo, attrs=attrs) + similar_beers=similar_beer_objects, attr=attr, direction=direction) + return render_template('beerpage.jinja2', beer_data=beerinfo, attrs=attrs, + similar_beers=similar_beer_objects) -def beer_lookup(brewery_id, beer_id): - try: +def beer_lookup(brewery_id, beer_id=None): + if beer_id: item_id = brewery_id + "-" + beer_id - beer_result = beer[item_id] - brewer = brewery_names[brewery_id] - return BeerInfo(beer_id, brewery_id, beer_result, brewer) - except: - return None + try: + beer_result = beer[item_id] + return beer_result, brewery_names[brewery_id] + except: + return None + else: + try: + beer_result = beer[brewery_id] + return beer_result, brewery_names[brewery_id.split("-")[0]] + except: + return None def find_beers_from_brewery(brewery_id): @@ -68,17 +81,16 @@ def find_beers_from_brewery(brewery_id): class BeerInfo(object): - def __init__(self, beer_id, brewery_id, item_json, brewery_name): - self.id = beer_id - self.brewery_id = brewery_id + def __init__(self, beer_id, brewery_name, item_json): + self._id = beer_id self.parent_style = item_json[1][1] self.base_style = item_json[1][0] self.name = item_json[0] self.abv = item_json[2] self.brewer = brewery_name self.num_reviews = item_json[3] - self.drinks_like = get_drinks_like(brewery_id + '-' + beer_id) - + self.drinks_like = get_drinks_like(self._id) + self.link ="/brewery/" + beer_id.split('-')[0] + '/' + beer_id.split('-')[1] class Brewery(object): diff --git a/templates/beerpage.jinja2 b/templates/beerpage.jinja2 index f6e0b2e..f76c209 100644 --- a/templates/beerpage.jinja2 +++ b/templates/beerpage.jinja2 @@ -14,7 +14,7 @@ {{ beer_data.parent_style if beer_data != None else 'ASS BEER' }} {{ beer_data.base_style if beer_data != None else 'TURBO ASS BEER' }} - {{ beer_data.abv if beer_data != None else 'BETWEEN 0 and 100' }} (drinks like: {{beer_data.drinks_like|round(2)}}) + {{ beer_data.abv if beer_data != None else 'BETWEEN 0 and 100' }} (drinks like: {{beer_data.drinks_like}}) @@ -35,17 +35,11 @@ - {% if direction and attr %} -
Beers like {{ beer_data.name }} but {{ direction }} {{ attr }}
+
Beers like {{ beer_data.name }}
- {% endif %} {% endblock %} diff --git a/utils.py b/utils.py index a9a0786..27ef833 100644 --- a/utils.py +++ b/utils.py @@ -88,12 +88,14 @@ for e in embeddings: def get_closest(beer_id): one_embed = final_data[beer_id]['embed'] - + beer_ids = [] for thing in sorted(small_embeddings, key = lambda x: cosine(one_embed, x[1]), reverse=False)[:25]: if thing[0] in beer_names: - print(beer_names[thing[0]]) + beer_ids.append(thing[0]) + print(thing[0]) print('=' * 50) + return beer_ids def get_closest_to_point(one_embed, style_limit=[]): # one_embed = final_data[beer_id]['embed'] -- cgit v1.2.3