2009-10-13 6 views
5

He estado trabajando recientemente en mi primer robot para google wave, una parte vital de lo que hace es insertar respuestas en línea en un blip. ¡No puedo, por la vida de mí, descubrir cómo hacer esto!Google wave robot respuesta en línea

Los documentos API tienen una función InsertInlineBlip que sonaba prometedor, ¡pero las llamadas no parecen hacer nada!

EDITAR :: Parece que se trata de un error conocido. Sin embargo, la pregunta sigue en pie ¿cuál es la forma correcta de insertar un blip en línea? Estoy asumiendo que algo como esto:

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

jeje, reetiquetado de novato a principiantes, ¿cuál es la diferencia científica? ;) – Martin

+0

"Novato" puede tener connotaciones negativas, supongo. – ceejayoz

+0

El número que sigue a la etiqueta de principiante es 3051, novato 60. eso es todo – SilentGhost

Respuesta

4

Si nos fijamos en la sourcecodeOpBasedDocument.InsertInlineBlip() para que se vea lo siguiente:

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) 

creo que el comentario TODO sugiere que esta función no está aún activa. El método debe ser invocable y devolver correctamente, sin embargo, sospecho que la operación del documento no se aplica al documento global.

La sintaxis que incluyó en su publicación parece correcta. Como puede ver arriba, InsertInlineBlip()returns the value de AddBlip(), que es ... 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: Es interesante observar que la firma del método del método Insert InsertInlineBlip(self, position) es significativamente diferente del método Insert InsertElement(self, position, element). InsertInlineBlip() no toma un parámetro de elemento para insertar. Parece que la lógica actual para InsertInlineBlip() es más como Blip.CreateChild(), que devuelve una nueva señal secundaria con la que trabajar. De esto podemos sospechar que esta API cambiará a medida que se agregue la funcionalidad.

2

podría ser una posible bug.

+0

¡Ajá! Espero que publiquen una solución pronto:/ – Martin

Cuestiones relacionadas