2010-02-19 8 views
13

que quería añadir 3 características para el robot desde el tutorial aquí: http://code.google.com/apis/wave/extensions/robots/python-tutorial.htmlhacer cosas simples con un robot de Google Wave

Antes de la adición de todas estas características, mi robot está funcionando según lo previsto. Ahora las funciones impares aún se muestran (con "v2" al final del contenido de blip), ¡pero ninguna de las nuevas características aparece! Intenté maneras diferentes alr, todavía no funciona. Tan frustrante ... A continuación está el código tt, creo que se ve más lógicamente. ¿Puede alguien decirme por qué ninguno parece funcionar? Gracias ...

Característica 1 - quería probar AppendText
Característica 2 - quería que el robot para detectar un bache se presenta
característica 3 - quería que el robot para añadir un bache con el contenido de la vieja señal borrada.

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() 

Editar: (Importante) Acabo de notar que parece hv comportamiento diferente en el modo normal vs modo de recinto. En el modo normal, veo los dos indicadores "¡Estoy vivo! V2" y "¡Hola a todos! V2", pero en el modo de espacio aislado solo puedo ver el primero. Werid ... En ninguno de los casos que veo el texto adjunto ...

La razón por la que comentaba esta parte "" "myRobot.RegisterHandler (events.BLIP_SUMBITTED, OnBlipSubmitted) myRobot.RegisterHandler (events.BLIP_DELETED, OnBlipDeleted) "" " es cos sin comentarlo, ¡el robot no hace nada en absoluto!

+2

'events.BLIP_SUMBITTED' parece que va mal escrito para mí. –

Respuesta

1

events.BLIP_SUMBITTED debería ser events.BLIP_SUBMITTED

Cuestiones relacionadas