Apéndice B. Guía de implementación del complemento Pipes de Kopete

A partir de Kopete 1.0, el complemento Pipes forma parte de Kopete. Pipes permite redireccionar mensajes entrantes o salientes a través de un script o ejecutable externo. Los mensajes entrantes se redireccionarán a través del ejecutable antes de que lleguen a su ventana de conversación, mientras que los mensajes salientes se redireccionarán a través del ejecutable antes de que se envíen por Internet. Pipes puede recibir texto de cualquiera de las siguientes formas:

Cuerpo en texto sin formato

cuerpo del mensaje en texto ASCII sin formato

cuerpo en HTML

cuerpo del mensaje en HTML, como si su interlocutor le hubiera enviado HTML, el cual se procesará en la ventana de conversación

mensaje completo en XML

Documento XML que describe todas las características del mensaje, incluido el cuerpo, en HTML.

Dicho documento describe las características específicas del formato XML y cómo escribir un programa que pueda manejarlo.

Salida XML

Este es un ejemplo de lo que recibirá un programa en su flujo de entrada estándar:


<?xml version=«1.0» encoding=«ISO-8859-1»?>
<message subject=""
        route=«outbound»
        importance=«1»
        formattedTimestamp=«11:06:46 am»
        timestamp=«Sat Dec 1 11:06:46 2007»
        type=«normal»
        mainContactId=«spacemonkey1234»
        time=«11:06 am» >
        <from>
                <contact contactId=«tdurden»
                        protocolIcon=«aim_protocol»
                        userPhoto=«/home/kde-devel/.kde4/share/apps/kopete/oscarpictures/tdurden.jpg» >
                        <contactDisplayName dir=«ltr» text=«tdurden» />
                        <metaContactDisplayName dir=«ltr»
                                text=«Tyler» />
                </contact>
        </from>
        <to>
                <contact contactId=«spacemonkey1234»
                        protocolIcon=«aim_protocol»
                        userPhoto=«/home/kde-devel/.kde4/share/apps/kopete/avatars/User/7e542903e0ac7519a7496e85f5a5b99d.png» >
                        <contactDisplayName dir=«ltr» text=«spacemonkey1234» />
                        <metaContactDisplayName dir=«ltr» text=«Robert Paulson» />
                </contact>
                </to>
        <body dir=«ltr»
                bgcolor=«#000000»
                color=«#000000» >
                &lt;span style=« color:#000000;»
>hey&lt;/span
></body>
</message>

Este XML se basa ligeramente en el XSD utilizado para los estilos de conversación que se encuentran en la página web de Kopete. Este código representa un mensaje. Cabe destacar varias cuestiones:

  • El atributo «timestamp» del elemento «message» está en el formato estándar ISO 8601.

  • El atributo «protocolIcon» del elemento «contact» se selecciona así:

    1. Si el objeto Contacto tiene determinada la propiedad de foto, se utiliza esa ruta.

    2. En caso contrario, se solicita al metacontacto del contacto una ruta para la imagen y esa será la que se utilice independientemente de si es nula o no.

  • En caso de que no se hayan determinado en Kopete, los atributos «color» y «bgcolor» del elemento «body» serán cadenas vacías. Están en formato de color web.

  • El contenido del elemento «body» presenta el código de escape para «<», así que no se confunde con la estructura XML real. Evidentemente, para interpretar de forma correcta el cuerpo como HTML, habría que convertir los «&lt;»s en «<»s.