テストで色々発言したりさせたりするとどんどんゴチャゴチャしてくるので。
#/usr/bin/env python from waveapi import events from waveapi import robot def deleteAll(context): for blip in context.GetBlips(): if not blip.IsRoot(): blip.Delete() def blipSubmitted(properties, context): blip = context.GetBlipById(properties['blipId']) text = blip.GetDocument().GetText() if text == '!delete\n': deleteAll(context) return if __name__ == '__main__': sugyan_robot = robot.Robot( 'sugyan_robot', 1.0, image_url = 'http://sugi1982.appspot.com/icon.png') sugyan_robot.RegisterHandler(events.BLIP_SUBMITTED, blipSubmitted) sugyan_robot.Run()
誰かが'!delete'と書いて'Done'を押すと、その発言を含むTreeをRoot以外削除する。
どうやら送信されるデータには必ず改行が入ってしまうようで、GetTextとマッチさせるには'!delete\n'と書かないと動かなかった。
contextからとったBlipsを全部削除するとホントにすべてなくなってしまって、そうすると新たに何か書いてもRobotが反応しなくなってしまった。
とりあえずRootのものを残すようにしたんだけど、このRootってなんだろう?いまだにWaveの中でのBlipsの構造というか階層がよく理解できてない。。