March 2010
Intermediate to advanced
304 pages
8h 23m
English
You can browse or check out the source code at http://code.google.com/p/recipe-bot.
from waveapi import events from waveapi import robot from waveapi import element from waveapi import ops from waveapi import appengine_robot_runner import gdata.base.service import gdata.service import gdata.alt.appengine try: from xml.etree import ElementTree except ImportError: from elementtree import ElementTree import atom import gdata.base import urllib def OnRobotAdded(event, wavelet): """Invoked when the robot has been added.""" badge = 'http://recipe-bot.appspot.com/images/recipe-bot-badge.png' image = element.Image(badge) blip = wavelet.root_blip.reply() blip.append(image) greeting = "\nSimply ask for a recipe using the following keywords:\n\ 'recipe for [list of ingredients] ?'\n\ Example: recipe for chicken pizza?\n\ Don't forget to end your request with a question mark (?)" blip.append(greeting) def OnBlipSubmitted(event, wavelet): """Invoked when a blip is sent to the wavelet. If it ends in a question mark, we look for the start of the request. Based on the words 'recipe for' ... '?' (keywords are within this string)""" contents = event.blip.text #Check to see if the last letter is a question mark. if contents.endswith('?'): str_match = contents.partition('recipe for ') if str_match[2] != '': blip = event.blip keywords = str_match[2].rstrip('?') #Pass the keywords and blip ID to the getGoogleBase function getGoogleBase(keywords, blip, wavelet) def getGoogleBase(keywords, ...