Bijlage B. Implementatiegids voor de Pipes-plugin van Kopete

Beginnend met Kopete 1.0, wordt Kopete geleverd met een plugin genaamd Pipes. Pipes stelt u in staat om via een pipe in- of uitgaande berichten te transporteren door een extern script of programma. Een inkomend bericht zal via de pipe door het programma gaan alvorens het uw chat-venster bereikt, terwijl uitgaande berichten via de pipe door het programma gaan alvorens ze verzonden worden over het internet. Pipes kunnen tekst ontvangen in drie vormen:

Platte tekst gedeelte

Het hoofdgedeelte van het bericht in platte ASCII tekst

HTML tekst gedeelte

Het hoofdgedeelte van het bericht in HTML, alsof uw chat-peer HTML naar u gezonden heeft, die zal worden weergegeven in het chat-venster

volledig XML bericht

Een XML-document dat alle karakteristieken van het bericht beschrijft, inclusief het HTML hoofdgedeelte.

Dit document beschrijft de specifieke zaken van het XML-formaat en hoe een programma te schrijven dat dit kan behandelen.

XML-uitvoer

Hier is een voorbeeld van wat een programma zal ontvangen in zijn standaard invoer stream:


<?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>

Deze XML is losjes gebaseerd op de XSD die gebruikt wordt voor chat-stijlen gevonden op de Kopete website. Deze code stelt één bericht voor. Er zijn een paar dingen op te merken:

  • Het attribuut "timestamp" in het "message"-element is in ISO 8601 standaard formaat.

  • Het attribuut "protocolIcon" in het "contact"-element is als volgt gekozen:

    1. Als in het Contact-object de foto-eigenschap is ingesteld, dan wordt dat pad gebruikt.

    2. Zo niet, dan wordt het MetaContact van Contact gevraagd naar een afbeeldingspad en dat wordt gebruikt onafhankelijk van of het nul is of niet.

  • De attributen "color" en "bgcolor" in het "body"-element zijn lege tekenreeksen als zij niet in Kopete zijn ingesteld. Zij zijn in "web color format".

  • De inhoud in het "body"-element heeft "<" escaped, zodat het niet verwart wordt met de actuele XML-structuur. Het is duidelijk dat het juist interpreteren van de body als HTML, dat de "&lt;"'s geconverteerd moeten worden naar "<"'s.