Appendix A. Sample Robots Code

In this appendix you will find the complete, uninterrupted source code for the robots covered in Chapters 5 and 6.

Oracle Bot

You can browse or check out the source code at http://code.google.com/p/oracle-bot.

Code

from waveapi import events from waveapi import robot from waveapi import ops from waveapi import appengine_robot_runner import random def OnRobotAdded(event, wavelet): """Invoked when the robot has been added.""" root_blip = wavelet.root_blip greeting = "Hello. I am the Oracle Bot. I'm here to answer your questions." root_blip.reply().append(greeting) def OnBlipSubmitted(event, wavelet): """Invoked when a blip is sent to the wavelet. If it ends in a question mark, we reply with one of three responses.""" blip = event.blip contents = blip.text #Check to see if the last letter is a question mark. length = len(contents) if length > 0: if contents.endswith('?'): Notify(blip) def Notify(blip): """Send an answer based on random selection.""" choices = ['Yes','No','The future is uncertain','Absolutely', 'Definitely Not','There is a good possibility','Likely Not'] answer = random.choice(choices) blip.reply().append(answer) if __name__ == '__main__': oracleBot = robot.Robot('Oracle Bot', image_url='http://oracle-bot.appspot.com/images/icon.png', profile_url='http://oracle-bot.appspot.com/') oracleBot.register_handler(events.WaveletSelfAdded, OnRobotAdded) oracleBot.register_handler(events.BlipSubmitted, OnBlipSubmitted) appengine_robot_runner.run(oracleBot) ...

Get Google Wave: Up and Running now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.