Unable to register event handlers for all events except WaveletSelfAdded

0 views
Skip to first unread message

Sri

unread,
Nov 5, 2009, 11:12:32 AM11/5/09
to Google Wave API
Hi,

For some reason, I am unable to set handlers for all events except the
WaveletselfAdded event. Here's the code:
---
import logging
import re

from waveapi import events
from waveapi import model
from waveapi import robot
from waveapi import document
from waveapi import ops
from waveapi import util
from waveapi import simplejson

def OnWaveletBlipCreated(properties, context):
logging.debug("OnWaveletBlipCreated")

def OnWaveletBlipRemoved(properties, context):
logging.debug("OnWaveletBlipRemoved")

def OnWaveletParticipantsChanged(properties, context):
logging.debug("OnWaveletParticipantsChanged")

def OnWaveletSelfAdded(properties, context):
logging.debug("OnWaveletSelfAdded")

def OnWaveletSelfRemoved(properties, context):
logging.debug("OnWaveletSelfRemoved")

def OnWaveletTimestampChanged(properties, context):
logging.debug("OnWaveletTimestampChanged")

def OnWaveletTitleChanged(properties, context):
logging.debug("OnWaveletTitleChanged")

def OnWaveletVersionChanged(properties, context):
logging.debug("OnWaveletVersionChanged")

def OnBlipContributorsChanged(properties, context):
logging.debug("OnBlipContributorsChanged")

def OnBlipDeleted(properties, context):
logging.debug("OnBlipDeleted")

def OnBlipSubmitted(properties, context):
logging.debug("OnBlipSubmitted")

def OnBlipTimestampChanged(properties, context):
logging.debug("OnBlipTimestampChanged")

def OnBlipVersionChanged(properties, context):
logging.debug("OnBlipVersionChanged")

def OnDocumentChanged(properties, context):
logging.debug("OnDocumentChanged")

def OnFormButtonClicked(properties, context):
logging.debug("OnFormButtonClicked")

if __name__ == '__main__':
my_robot = robot.Robot('...',
image_url='...',
version='...',
profile_url='...')
my_robot.RegisterHandler(events.WAVELET_BLIP_CREATED,
OnWaveletBlipCreated)
my_robot.RegisterHandler(events.WAVELET_BLIP_REMOVED,
OnWaveletBlipRemoved)
my_robot.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED,
OnWaveletParticipantsChanged)
my_robot.RegisterHandler(events.WAVELET_SELF_ADDED,
OnWaveletSelfAdded)
my_robot.RegisterHandler(events.WAVELET_SELF_REMOVED,
OnWaveletSelfRemoved)
my_robot.RegisterHandler(events.WAVELET_TIMESTAMP_CHANGED,
OnWaveletTimestampChanged)
my_robot.RegisterHandler(events.WAVELET_TITLE_CHANGED,
OnWaveletTitleChanged)
my_robot.RegisterHandler(events.WAVELET_VERSION_CHANGED,
OnWaveletVersionChanged)
my_robot.RegisterHandler(events.BLIP_CONTRIBUTORS_CHANGED,
OnBlipContributorsChanged)
my_robot.RegisterHandler(events.BLIP_DELETED, OnBlipDeleted)
my_robot.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted)
my_robot.RegisterHandler(events.BLIP_TIMESTAMP_CHANGED,
OnBlipTimestampChanged)
my_robot.RegisterHandler(events.BLIP_VERSION_CHANGED,
OnBlipVersionChanged)
my_robot.RegisterHandler(events.DOCUMENT_CHANGED, OnDocumentChanged)
my_robot.RegisterHandler(events.FORM_BUTTON_CLICKED,
OnFormButtonClicked)
my_robot.Run()
---

I am completely out of ideas, I have spent 1 entire day on this. :-)

Thanks,
Sri

pamela (Google Employee)

unread,
Nov 9, 2009, 3:48:57 PM11/9/09
to google-...@googlegroups.com
Hi Sri-

Did you try deploying your app to a new app identifier? Did you try incrementing the version of your Robot?
What is the URL of the robot?

- pamela

Sri

unread,
Nov 10, 2009, 11:49:16 PM11/10/09
to Google Wave API
Hi Pam,

Yes I've tried incrementing the version. The URL for the robot is:
http://arthabot.appspot.com/

- Sri

On Nov 10, 1:48 am, "pamela (Google Employee)" <pamela...@gmail.com>
wrote:
> Hi Sri-
>
> Did you try deploying your app to a new app identifier? Did you try
> incrementing the version of your Robot?
> What is the URL of the robot?
>
> - pamela
>

onlythou...@googlemail.com

unread,
Nov 16, 2009, 7:22:17 AM11/16/09
to Google Wave API
Hi,

i had the same issue with events.BLIP_SUBMITTED in:

if __name__ == '__main__':
delicy = robot.Robot('deliciousrobot',
image_url='http://deliciousrobot.appspot.com/icon.png',
version='4',
profile_url='http://deliciousrobot.appspot.com/')
delicy.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED,
OnParticipantsChanged)
delicy.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
delicy.RegisterHandler(events.BLIP_SUBMITTED,
OnBlipSubmitted)
delicy.Run(debug=True)

What i finally did, after 2 hours of debugging, was to change to order
in which handlers are registered and now it works:

if __name__ == '__main__':
delicy = robot.Robot('deliciousrobot',
image_url='http://deliciousrobot.appspot.com/icon.png',
version='4',
profile_url='http://deliciousrobot.appspot.com/')
delicy.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted)
delicy.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED,
OnParticipantsChanged)
delicy.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
delicy.Run(debug=True)

So try changing the order of your registered Handlers.

Sri

unread,
Nov 17, 2009, 2:14:18 AM11/17/09
to Google Wave API
Okay, thanks that fixed it.

This is a very weird bug in the Python API. .RegisterHandler
(events.WAVELET_SELF_ADDED, OnRobotAdded) must always be the last to
be defined. :-/

- Sri

On Nov 16, 5:22 pm, "onlythoughtwo...@googlemail.com"
Reply all
Reply to author
Forward
0 new messages