Subscribe to GRead Subscribe to GRead's comments

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


One Response

  1. У вас RSS в кривой кодировке!

Leave a Reply