一つのGAEスロットで複数のWaveロボットをホストするためのライブラリ作りました
http://github.com/technohippy/appengine_multi_robot_runner/
前に同じ事をするライブラリを作ったら、二週間もしない内にWaveのロボットAPIのバージョンが上がって使い物にならなくなりました。今度はもう少し息が長いライブラリになることを祈ってます。
Waveのロボットを作ろうって人がどのくらいいるのか分かってませんけど、もしいたら、とりあえず使って損はないです。あとで単体のアプリに昇格させるとしてもコードの修正はほとんどいらないし。
サンプルコード。
from waveapi import robot from waveapi import events import appengine_multi_robot_runner class FooRobot(robot.Robot): def __init__(self): robot.Robot.__init__(self, 'Foo') self.register_handler(events.BlipSubmitted, self.on_blip_submitted) def on_blip_submitted(self, event, wavelet): wavelet.reply('foo') class BarRobot(robot.Robot): def __init__(self): robot.Robot.__init__(self, 'Bar') self.register_handler(events.BlipSubmitted, self.on_blip_submitted) def on_blip_submitted(self, event, wavelet): wavelet.reply('bar') if __name__ == '__main__': appengine_multi_robot_runner.compound_and_run([ ('foo', FooRobot()), # foo.your_appname@appspot.com ('bar', BarRobot()) # bar.your_appname@appspot.com ])
例えば最初に上のを使ってて、人気が出てきてからやっぱりFooRobotを独立させたくなったら、appengine_multi_robot_runner.compound_and_run
とこをappengine_robot_runner.run
に変えるだけ。
if __name__ == '__main__': appengine_robot_runner.run(FooRobot())
別に難しいことやってるわけでもないちょっとしたライブラリだけどマジオススメ・・・だと思うんだけど、多分あんまり使われないだろうなー。