Example #1
0
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')
Example #2
0
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
Example #3
0
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