Google Wave @ pySpa
pySpa こと、python 温泉 2 日目です。昨日から今日にかけて、@atusi さんと、Google Wave のロボットを作ってみました。pyzon (旧 pyAWWS) を使って、asin:[ASINコード] をタイトルに変換するというボットです。アカウントをお持ちの方は、amzbot@appspot.com を追加すると試すことができます。今のところ、html を blip に表示することはできないので、リンクもテキストになっています。
参考にさせていただいたサイト、およびコード
以下が実際のコードです。
appengine で bot 書いて wave に突っ込むというのは、すっごい楽ですね。メールやチャットでのコミュニケーションではできない、情報に付加価値をつけていくことが wave では可能となると思います。
参考にさせていただいたサイト、およびコード
以下が実際のコードです。
# coding:utf-8
from waveapi import events
from waveapi import model
from waveapi import robot
from pyzon import AWSECommerceService
ROBOT_NAME = 'amzbot'
PROFILE_URL = 'http://%s.appspot.com/' % ROBOT_NAME
IMAGE_URL = PROFILE_URL + 'icon.gif'
awsecapi = AWSECommerceService(
ACCESS_KEY_ID,
SECRET_ACCESS_KEY,
associate_tag = ASSOCIATE_TAG,
locale = LOCALE
)
DEBUG = True
def get_title_from_asin(contents):
pass
"""
contents の中身を変換するための関数
"""
def OnBlipSubmitted(properties, context):
# blip の取得
blip = context.GetBlipById(properties['blipId'])
logging.info(u'blip (%s -> %s' % (blip.GetWaveId(), blip.GetId()))
# blip のテキストを取得
contents = blip.GetDocument().GetText()
# テキストを変換
result = get_title_from_asin(contents)
# blip に変換後のテキストをセット
if result:
blip.GetDocument().SetText(result)
if __name__ == '__main__':
# ボットの作成
bot = robot.Robot(
ROBOT_NAME.capitalize(),
'1',
image_url=IMAGE_URL,
profile_url=PROFILE_URL
)
# サブミット時のハンドリング
bot.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted)
bot.Run(debug=DEBUG)
appengine で bot 書いて wave に突っ込むというのは、すっごい楽ですね。メールやチャットでのコミュニケーションではできない、情報に付加価値をつけていくことが wave では可能となると思います。
コメント
コメントを投稿