Google Wave громко пришел в наш мир. И одной из класных штук в нем – является возможность писать роботов на любимом языке, на Python. Но сейчас существует проблемка с документацией, которая почти отсуствует. И поэтому учиться что-то делать можно лишь на примерах. Для начала я рекомендую прочитать маленький туториал от Гугла, а потом уж можете искать другие примеры. Может кому-то и будет интересен еще один пример – робота, что получает почту и ее постит в Гугл Вейв.
Он принимает почту и всю ее записывает в базу данных. В тоже время устанавливаются обработчики на крон, и на постинг сообщения в волну. Тоесть если кто-то что-то запостит в волну, то скрипт проверить если ли в базе данных емайлы и если есть, то их запостит в волну, а с базы удалит.
Код бота следующий:
import sys
from email_model import EmailModel
from waveapi import events
from waveapi import model
from waveapi import robot
def addBlip(context, string):
context.GetRootWavelet().CreateBlip().GetDocument().SetText(string)
def OnBlipSubmitted(properties, context):
for email in EmailModel.all():
t = "Sender: %s\n Date: %s\n\n Text: %s" % (
email.sender,
email.date,
email.body
)
addBlip(context, t)
email.delete()
def OnRobotAdded(properties, context):
addBlip(context, "I'm alive!")
if __name__ == '__main__':
myRobot = robot.Robot('super-mail-robot',
image_url='http://super-mail-robot.appspot.com/images/avatar.png',
version='7',
profile_url='http://super-mail-robot.appspot.com/')
myRobot.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
myRobot.RegisterCronJob("/_wave/robot/cron_bot", 60)
myRobot.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted)
myRobot.Run()
Как видим, все достаточно просто
. Полный код исходников можете скачать по ссылке – http://tutamc.com/sites/default/files/super-mail-bot.zip



Пятница, 26. марта 2010
У вас RSS в кривой кодировке!