Сделайте простые вещи с роботом Google Wave

Я хотел добавить 3 опции к роботу из учебного руководства здесь: http://code.google.com/apis/wave/extensions/robots/python-tutorial.html

Прежде, чем добавить все эти опции, мой робот работает, как предназначено. Теперь нечетные функции все еще обнаруживаются (с "v2" в bck содержания вспышки), но ни одна из новых возможностей не обнаруживается! Я уже попробовал различные пути, все еще не работает. Ниже код, я думаю взгляды более логически. Кто-то может сказать мне, почему ни один, кажется, не работает?

Функция 1 - хотела испытать AppendText
Функция 2 - хотела, чтобы робот обнаружил вспышку, отправлен
Функция 3 - хотела, чтобы робот добавил вспышку с содержанием старой удаленной вспышки.

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

(Важное) редактирование

Я просто заметил, что это, кажется, имеет другое поведение на нормальном режиме по сравнению с режимом песочницы. В нормальном режиме я вижу обе вспышки, "я жив! v2" и "Привет все! v2", но в режиме песочницы я могу только видеть 1-й. Ни в том, ни в другом случае я вижу дополнительный текст.

Причина, почему я прокомментировал эту часть" ""myRobot. RegisterHandler (события. BLIP_SUMBITTED, OnBlipSubmitted) myRobot. RegisterHandler (события. BLIP_DELETED, OnBlipDeleted)","" то, потому что, не комментируя это, робот не делает ничего вообще!

13
задан halfer 15 December 2018 в 13:15
поделиться