def beer(message_data, bot): rb = RateBeer() results = rb.search(message_data["parsed"]) highest_ratings = -1 #get at least 1 if results['beers']: for beer in results['beers']: if beer['num_ratings'] > highest_ratings: #pull highest rated beer from result set topbeer = beer topdetails = rb.beer(beer['url']) highest_ratings = beer['num_ratings'] if 'overall_rating' in topbeer: #overall_rating doesn't always exist http://www.ratebeer.com/ratingsqa.asp reply = topbeer['name'].encode('utf-8') + ': Rating ' + str( topbeer['overall_rating'] ) + ', http://www.ratebeer.com' + topbeer['url'].encode( 'utf-8') + ' ' else: reply = topbeer['name'].encode( 'utf-8') + ': http://www.ratebeer.com' + topbeer['url'].encode( 'utf-8') + ' (' + str( topbeer['num_ratings']) + ' ratings) ' reply += topdetails['style'].encode('utf-8') + ', ' + str( topdetails['abv']) + "% ABV, " + str( topdetails['calories'] ) + ' calories from alcohol, brewed by ' + topdetails[ 'brewery'].encode('utf-8') else: reply = 'Not Found' return reply.encode('utf-8')
def scrap_beer(name): from serveza.db import Beer try: page = wikipedia.page(name, auto_suggest=True) rb = RateBeer() rb_beer = rb.search(page.title)['beers'][0] except Exception as e: return None rb_beer._populate() def find_proper_image(urls): import re EXCLUDES = [ 'Emoji', 'Disambig', 'Hainaut', 'Liste', ] PATTERNS = [ r'\.svg$', ] for url in urls: good = True for word in EXCLUDES: if word in url: good = False break for pattern in PATTERNS: if re.search(pattern, url): good = False break if good: return url return None beer = Beer(name=page.title) beer.image = find_proper_image(page.images) beer.description = rb_beer.description beer.brewery = rb_beer.brewery beer.degree = rb_beer.abv return beer
def beer(message_data, bot): rb = RateBeer() results = rb.search(message_data["parsed"]) highest_ratings = -1 #get at least 1 if results['beers']: for beer in results['beers']: if beer['num_ratings'] > highest_ratings: #pull highest rated beer from result set topbeer = beer topdetails = rb.beer(beer['url']) highest_ratings = beer['num_ratings'] if 'overall_rating' in topbeer: #overall_rating doesn't always exist http://www.ratebeer.com/ratingsqa.asp reply = topbeer['name'].encode('utf-8') + ': Rating ' + str(topbeer['overall_rating']) + ', http://www.ratebeer.com'+ topbeer['url'].encode('utf-8') + ' ' else: reply = topbeer['name'].encode('utf-8') + ': http://www.ratebeer.com'+ topbeer['url'].encode('utf-8') + ' (' + str(topbeer['num_ratings']) +' ratings) ' reply += topdetails['style'].encode('utf-8') + ', ' + str(topdetails['abv']) + "% ABV, " + str(topdetails['calories']) + ' calories from alcohol, brewed by ' + topdetails['brewery'].encode('utf-8') else: reply = 'Not Found' return reply.encode('utf-8')
beersFile = "data/beers.csv" beersdf = pd.read_csv(beersFile) pprint(beersdf.columns.tolist()) rb = RateBeer() testBeer = rb.get_beer("/beer/albrecht-18o-imperial-ipa/402585/") pprint(testBeer.overall_rating) pprint(testBeer.mean_rating) pprint(testBeer.name) exit(1) # pprint("summit: " + _dirtystrip(u"Summit")) # # pprint(rb.search(_dirtystrip('Summit'))) try: for name in beersdf["name"]: name = _dirtystrip(name) pprint(name) rateBeerPossBeers = rb.search(name) pprint(rateBeerPossBeers) if rateBeerPossBeers["beers"]: pprint(rateBeerPossBeers) break except: pass