2010-02-19 7 views
13

Je voulais ajouter 3 fonctionnalités au robot du tutoriel ici: http://code.google.com/apis/wave/extensions/robots/python-tutorial.htmlfaire des choses simples avec un robot Google Wave

Avant d'ajouter toutes ces caractéristiques, mon robot fonctionne comme prévu. Maintenant, les caractéristiques impaires apparaît encore (avec "v2" au bck du contenu blip), mais aucune des nouvelles fonctionnalités apparaît! J'ai essayé différentes façons alr, ne fonctionne toujours pas. Tellement frustrant ... Voici le code tt que je trouve plus logique. Quelqu'un peut-il me dire pourquoi aucun ne semble fonctionner? Merci ...

Feature 1 - voulait essayer AppendText
Feature 2 - voulait le robot pour détecter un blip est soumis
Feature 3 - voulait le robot d'ajouter un blip avec le contenu du ancien blip supprimé.

from waveapi import events 
from waveapi import model 
from waveapi import robot 

def OnParticipantsChanged(properties, context): 
    """Invoked when any participants have been added/removed.""" 
    added = properties['participantsAdded'] 
    for p in added: 
    Notify(context) 

def OnRobotAdded(properties, context): 
    """Invoked when the robot has been added.""" 
    root_wavelet = context.GetRootWavelet() 
    """feature 1""" 
    root_wavelet.CreateBlip().GetDocument().SetText("I'm alive! v2").GetDocument().AppendText("xxx") 

def Notify(context): 
    root_wavelet = context.GetRootWavelet() 
    root_wavelet.CreateBlip().GetDocument().SetText("Hi everybody! v2") 

    """feature 2""" 
def OnBlipSubmitted(properties, context): 
    blip = context.GetBlipById(properties['blipId']) 
    blip.GetDocument().AppendText("xxx") 

    """feature 3""" 
def OnBlipDeleted(properties, context): 
    blip = context.GetBlipById(properties['blipId']) 
    contents = blip.GetDocument().GetText() 
    root_wavelet = context.GetRootWavelet() 
    root_wavelet.CreateBlip().GetDocument().SetText(contents) 

if __name__ == '__main__': 
    myRobot = robot.Robot('appName', 
     image_url='http://appName.appspot.com/icon.png', 
     version='1', 
     profile_url='http://appName.appspot.com/') 
    myRobot.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED, OnParticipantsChanged) 
    myRobot.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded) 
    """myRobot.RegisterHandler(events.BLIP_SUMBITTED, OnBlipSubmitted) 
    myRobot.RegisterHandler(events.BLIP_DELETED, OnBlipDeleted)""" 
    myRobot.Run() 

Edit: (Important!) Je viens de remarquer qu'il semble hv un comportement différent en mode normal vs mode bac à sable. En mode normal, je vois les deux blips "Je suis en vie! V2" et "Salut tout le monde! V2", mais en mode bac à sable je ne vois que le 1er. Werid ... Dans les deux cas, je vois le texte ci-joint ...

La raison pour laquelle je commentais cette partie "" "myRobot.RegisterHandler (events.BLIP_SUMBITTED, OnBlipSubmitted) myRobot.RegisterHandler (events.BLIP_DELETED, OnBlipDeleted) "" " est cos sans le commenter, le robot ne fait rien du tout!

+2

'events.BLIP_SUMBITTED' Me semble mal orthographié. –

Répondre

1

events.BLIP_SUMBITTED devrait être events.BLIP_SUBMITTED

Questions connexes