2009-10-13 4 views
5

J'ai récemment travaillé sur mon premier robot pour google wave, une partie essentielle de ce qu'il fait est d'insérer des réponses en ligne dans un blip. Je ne peux pas pour la vie de moi comprendre comment faire cela!Robot de vague en ligne Google réponse

Les docs de l'API ont une fonction InsertInlineBlip qui semblait prometteuse, mais appelant qui ne semble rien faire!

EDIT :: Il semble que ce soit un bug connu. Cependant, la question reste toujours quelle est la bonne façon d'insérer un blip en ligne? Je présume que quelque chose comme ceci:

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

hehe, retagged de débutant à débutant, quelle est la différence scientifique? ;) – Martin

+0

"Newbie" peut avoir des connotations négatives, je suppose. – ceejayoz

+0

nombre qui suit balise débutant est 3051, débutant 60. c'est tout – SilentGhost

Répondre

4

Si vous regardez le sourcecode pour OpBasedDocument.InsertInlineBlip() vous verrez les éléments suivants:

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) 

Je pense que le commentaire TODO suggère cette fonctionnalité est pas encore actif. La méthode devrait être appelable et retourner correctement, cependant je suspecte que l'opération de document n'est pas appliquée au document global.

La syntaxe que vous avez incluse dans votre message semble correcte. Comme vous pouvez le voir ci-dessus, InsertInlineBlip()returns the value de AddBlip(), qui est ... dun, dun, dun ... un blip.

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 

EDIT: Il est intéressant de noter que la signature de la méthode de la méthode d'insertion InsertInlineBlip(self, position) est significativement différente de la méthode d'insertion InsertElement(self, position, element). InsertInlineBlip() ne prend pas un paramètre d'élément à insérer. Il semble que la logique actuelle pour InsertInlineBlip() ressemble plus à Blip.CreateChild(), ce qui retourne un nouveau blip enfant avec lequel travailler. De ceci nous pouvons suspecter que cette API changera pendant que la fonctionnalité est ajoutée.

2

Il pourrait être un bug possible.

+0

Aha! J'espère qu'ils sortiront un correctif bientôt:/ – Martin

Questions connexes