2010-02-19 9 views
13

साथ साधारण चीजें कार्य करें: http://code.google.com/apis/wave/extensions/robots/python-tutorial.htmlमैं ट्यूटोरियल यहाँ से रोबोट के लिए 3 सुविधाओं जोड़ना चाहते थे एक गूगल वेव रोबोट

इन सभी सुविधाओं के जोड़ने से पहले, के रूप में इरादा मेरी रोबोट काम कर रहा है। अब अजीब विशेषताएं अभी भी दिखाई देती हैं (ब्लिप सामग्री के बैक पर "v2" के साथ), लेकिन नई सुविधाओं में से कोई भी दिखाई नहीं देता है! मैंने अलग-अलग तरीकों की कोशिश की, अभी भी काम नहीं करता है। तो निराशाजनक ... नीचे कोड टीटी है जो मुझे लगता है कि अधिक तर्कसंगत दिखता है। क्या कोई मुझे बता सकता है कि कोई भी काम क्यों नहीं कर रहा है? धन्यवाद ...

फ़ीचर 1 - चाहता था एक ब्लिप पता लगाने के लिए रोबोट प्रस्तुत की है
सुविधा 3 - - चाहता था रोबोट की सामग्री के साथ एक ब्लिप जोड़ने के लिए
सुविधा 2 AppendText की कोशिश करना चाहता था पुराना ब्लिप हटा दिया गया।

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

संपादित करें: (! महत्वपूर्ण) मैं सिर्फ देखा है कि यह sandbox मोड बनाम सामान्य मोड पर अलग व्यवहार hv लगता है। सामान्य मोड में मैं दोनों ब्लिप्स देखता हूं "मैं जिंदा हूँ! V2" और "हाय सबको! V2", लेकिन सैंडबॉक्स मोड में मैं केवल पहला देख सकता हूं। Werid ... न तो मामले मैं संलग्न पाठ को देखने ... में

कारण है कि मैं इस हिस्से "" "myRobot.RegisterHandler (events.BLIP_SUMBITTED, OnBlipSubmitted) myRobot.RegisterHandler (events.BLIP_DELETED, OnBlipDeleted टिप्पणी की) "" यह टिप्पणी किए बिना cos है, रोबोट कुछ भी नहीं करता है!

+2

'events.BLIP_SUMBITTED' मेरे लिए गलत वर्तनी लग। –

उत्तर

1

events.BLIP_SUMBITTED होना चाहिए events.BLIP_SUBMITTED

संबंधित मुद्दे