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


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='', profile_url='') oracleBot.register_handler(events.WaveletSelfAdded, OnRobotAdded) oracleBot.register_handler(events.BlipSubmitted, OnBlipSubmitted) ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.