谷歌机器人内联回复

时间:2009-10-13 17:14:10

标签: python google-wave

我最近一直在研究我的第一个google wave机器人,它的一个重要部分就是将内联回复插入到一个blip中。我不能为我的生活弄清楚如何做到这一点!

API文档有一个函数InsertInlineBlip听起来很有希望,但是调用似乎没有做任何事情!

EDIT :: 看来这是一个已知的bug。但是,问题仍然是插入内联blip的正确方法是什么?我假设是这样的:

inline = blip.GetDocument().InsertInlineBlip(positionInText)
inline.GetDocument().SetText("some text")

3 个答案:

答案 0 :(得分:4)

如果您查看OpBasedDocument.InsertInlineBlip()的{​​{3}},您会看到以下内容:

 412 -  def InsertInlineBlip(self, position): 
 413      """Inserts an inline blip into this blip at a specific position. 
 414   
 415      Args: 
 416        position: Position to insert the blip at. 
 417   
 418      Returns: 
 419        The JSON data of the blip that was created. 
 420      """ 
 421      blip_data = self.__context.builder.DocumentInlineBlipInsert( 
 422          self._blip.waveId, 
 423          self._blip.waveletId, 
 424          self._blip.blipId, 
 425          position) 
 426      # TODO(davidbyttow): Add local blip element. 
 427      return self.__context.AddBlip(blip_data) 

我认为TODO评论表明此功能尚未激活。该方法应该是可调用的并且可以正确返回,但是我怀疑文档操作没有应用于全局文档。

您在帖子中包含的语法看起来是正确的。如上所示,InsertInlineBlip()的{​​{1}} sourcecode,即... dun,dun,dun ......一个短暂的。

AddBlip()

编辑: 有趣的是,Insert方法 543 - def AddBlip(self, blip_data): 544 """Adds a transient blip based on the data supplied. 545 546 Args: 547 blip_data: JSON data describing this blip. 548 549 Returns: 550 An OpBasedBlip that may have operations applied to it. 551 """ 552 blip = OpBasedBlip(blip_data, self) 553 self.blips[blip.GetId()] = blip 554 return blip 的方法签名与Insert方法InsertInlineBlip(self, position)明显不同。 InsertElement(self, position, element)不会插入元素参数。似乎InsertInlineBlip()的当前逻辑更像InsertInlineBlip(),它返回一个新的子blip,可以使用它。由此我们可以怀疑,这个API会随着功能的添加而改变。

答案 1 :(得分:2)

可能是bug

答案 2 :(得分:1)

这似乎是以前的错误,但是,今天的更新有望修复它: http://code.google.com/p/google-wave-resources/wiki/WaveAPIsChangeLog