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 では可能となると思います。
コメント
コメントを投稿