Я хотел добавить 3 функции для робота из учебника здесь:
http://code.google.com/apis/wave/extensions/robots/python-tutorial.html
Перед добавлением всех этих функций мой робот работает, как задумано.
Теперь нечетные функции все еще отображаются (с v2), но ни одна из новых функций не появляется! Я уже пробовал разные способы, все еще не работает. Ниже приведен код, который, я думаю, выглядит более логично.
Может кто-нибудь сказать мне, почему никто не работает?
Функция 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()
Редактировать (важно)
Я только что заметил, что в обычном режиме и в режиме песочницы он выглядит по-разному. В обычном режиме я вижу оба сообщения: «Я жив! Ни в том, ни в другом случае я не вижу прилагаемый текст.
причина, по которой я прокомментировал эту часть
"" "myRobot.RegisterHandler (events.BLIP_SUMBITTED, OnBlipSubmitted)
myRobot.RegisterHandler (events.BLIP_DELETED, OnBlipDeleted) "" "
потому что без комментариев робот ничего не делает!