# Guia d'implementació de connectors de conductes del &kopete;

Des del &kopete; 1.0, el &kopete; proporciona un connector anomenat Conductes. El Conductes us permet conduir els missatges entrants o sortints mitjançant un script o executable intern. Un missatge entrant es conduirà mitjançant l'executable abans que arribi a la vostra finestra de xat, mentre que els missatges sortints es conduiran mitjançant l'executable abans que s'enviïn per Internet. Els Conductes poden rebre text i una d'aquestes tres maneres:

Cos de text net

  El cos del missatge, en text &ascii; pla

cos de text en &HTML;

  El cos del missatge, en &HTML;, com seria si el vostre company de xat us ha enviat HTML, que es renderitzarà a la finestra de xat

missatge complet &XML;

  Un document &XML; que descriu totes les característiques del missatge, incloent-hi el cos &HTML;.

Aquest document descriu els específics del format &XML;, i com escriure un programa amb el qual podeu gestionar-lo.

## Sortida en &XML;

Aquest és un exemple de quina mena de programa rebrà en el seu flux d'introducció estàndard:

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

Aquest &XML; està basat en l'XSD usat per als estils de xat trobat al web del Kopete. Aquest codi representa un missatge. Hi ha unes poques coses a tenir en compte:

- L'atribut "timestamp" de l'element "message" ha d'estar en format estàndard ISO 8601.

- L'atribut "protocolIcon" de l'element "contact" és escollit d'aquesta manera:

  1. Si l'objecte Contact té arranjada la propietat de foto, s'usa aquest camí.

  2. Si no, es demana un camí per a la imatge del metacontacte del contacte i aquest s'usa sigui o no nul·la.

- Els atributs "color" i "bgcolor" de l'element "body" són cadenes buides si no estan arranjades al Kopete. Estan en format de color de web.

- El contingut dins de l'element "body" té "<" escapat, de manera que no es confon amb l'estructura &XML; real. Òbviament, per a interpretar correctament el cos com a HTML, un ha de convertir el "&lt;"s a "<"s.

## Entrada en &XML;

El vostre programa rebrà &XML; en el seu flux estàndard d'entrada, tindrà l'oportunitat de modificar-lo, i llavors el tornarà al &kopete; mitjançant el seu flux estàndard de sortida. Si el vostre programa modifica els següents elements, el coneixement intern que el &kopete; té del missatge es modificarà per a reflectir els vostres canvis.

- "message" atribut "timestamp" però cap altre atribut d'hora

- "message" attribute "subject"

- "message" attribute "type"

- "message" attribute "importance"

- "body" attribute "color". Això s'arranja normalment per a un nombre de color de web, però es pot arranjar a un nom. Els noms definit per SVG s'accepten per a QColor a les Qt 4, així que són els únics noms que es poden usar.

- "body" attribute "bgcolor" — el mateix comportament que "color"

- contingut de l'element "body"

Si modifiqueu els elements o els seus atributs no mencionats amunt, els vostres canvis per a aquests elements no tindran cap efecte.

## Valors acceptables

Alguns atributs tenen certs valors acceptables. La sortida del connector Conductes sempre tindrà valors legals. Si el vostre programa escull canviar aquests atributs, han de romandre legals. Si no, el comportament del &kopete; és indefinit.

Atribut "route" a l'element "message"

  Ha de ser "inbound", "outbound", o "internal"

Atribut "type" a l'element "message"

  Ha de ser "action" o "normal"

Atribut "importance" a l'element "message"

  Ha de ser "0" per a baix, "1" per a normal i "2" per a alt

Atribut "dir" a la majoria d'elements

  Ha de ser "ltr" per d'esquerra a dreta o "rtl" per de dreta a esquerra