<!-- Copyright (c) 2008 by Charles Connell <charles@connells.org
> -->
<!-- Licensed under the GNU Free Documentation License  -->

<appendix id="pipes">
<title
>Guia d'implementació de connectors de conductes del &kopete;</title>
<para
>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: <variablelist
> <varlistentry
> <term
>Cos de text net</term
> <listitem
><para
>El cos del missatge, en text &ascii; pla</para
></listitem
> </varlistentry
> <varlistentry
> <term
>cos de text en &HTML;</term
> <listitem
><para
>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</para
></listitem
> </varlistentry
> <varlistentry
> <term
>missatge complet &XML;</term
> <listitem
><para
>Un document &XML; que descriu totes les característiques del missatge, incloent-hi el cos &HTML;.</para
></listitem
> </varlistentry
> </variablelist
> Aquest document descriu els específics del format &XML;, i com escriure un programa amb el qual podeu gestionar-lo. </para>

<sect1 id="xml-output">
<title
>Sortida en &XML;</title>
<para
>Aquest és un exemple de quina mena de programa rebrà en el seu flux d'introducció estàndard: <literallayout>
&lt;?xml version="1.0" encoding="ISO-8859-1"?>
&lt;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" >
        &lt;from>
                &lt;contact contactId="tdurden"
                        protocolIcon="aim_protocol"
                        userPhoto="/home/kde-devel/.kde4/share/apps/kopete/oscarpictures/tdurden.jpg" >
                        &lt;contactDisplayName dir="ltr" text="tdurden" />
                        &lt;metaContactDisplayName dir="ltr"
                                text="Tyler" />
                &lt;/contact>
        &lt;/from>
        &lt;to>
                &lt;contact contactId="spacemonkey1234"
                        protocolIcon="aim_protocol"
                        userPhoto="/home/kde-devel/.kde4/share/apps/kopete/avatars/User/7e542903e0ac7519a7496e85f5a5b99d.png" >
                        &lt;contactDisplayName dir="ltr" text="spacemonkey1234" />
                        &lt;metaContactDisplayName dir="ltr" text="Robert Paulson" />
                &lt;/contact>
                &lt;/to>
        &lt;body dir="ltr"
                bgcolor="#000000"
                color="#000000" >
                &amp;lt;span style=" color:#000000;"
>hey&amp;lt;/span
>&lt;/body>
&lt;/message>
</literallayout
> Aquest &XML; està basat en l'XSD usat per als estils de xat trobat al <ulink url="http://kopete.kde.org/files/kopetemessage.xsd"
>web del Kopete</ulink
>. Aquest codi representa un missatge. Hi ha unes poques coses a tenir en compte: <itemizedlist>
<listitem
><para
>L'atribut "timestamp" de l'element "message" ha d'estar en format estàndard ISO 8601.</para
></listitem>
<listitem
><para
>L'atribut "protocolIcon" de l'element "contact" és escollit d'aquesta manera: <orderedlist>
<listitem
><para
>Si l'objecte Contact té arranjada la propietat de foto, s'usa aquest camí.</para
></listitem>
<listitem
><para
>Si no, es demana un camí per a la imatge del metacontacte del contacte i aquest s'usa sigui o no nul·la.</para
></listitem>
</orderedlist>
</para
></listitem>
<listitem
><para
>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.</para
></listitem>
<listitem
><para
>El contingut dins de l'element "body" té "&lt;" 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 "&amp;lt;"s a "&lt;"s.</para
></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="xml-input">
<title
>Entrada en &XML;</title>
<para
>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. <itemizedlist
> <listitem
><para
>"message" atribut "timestamp" però cap altre atribut d'hora</para
></listitem
> <listitem
><para
>"message" attribute "subject"</para
></listitem
> <listitem
><para
>"message" attribute "type"</para
></listitem
> <listitem
><para
>"message" attribute "importance"</para
></listitem
> <listitem
><para
>"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 <ulink url="http://www.w3.org/TR/SVG/types.html#ColorKeywords"
>SVG</ulink
> s'accepten per a QColor a les Qt 4, així que són els únics noms que es poden usar.</para
></listitem
> <listitem
><para
>"body" attribute "bgcolor" &mdash; el mateix comportament que "color"</para
></listitem
> <listitem
><para
>contingut de l'element "body"</para
></listitem
> </itemizedlist
> Si modifiqueu els elements o els seus atributs no mencionats amunt, els vostres canvis per a aquests elements no tindran cap efecte. </para>
</sect1>

<sect1 id="acceptable-values">
<title
>Valors acceptables</title>
<para
>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. <variablelist>
<varlistentry
><term
>Atribut "route" a l'element "message"</term
><listitem
><para
>Ha de ser "inbound", "outbound", o "internal"</para
></listitem
></varlistentry>
<varlistentry
><term
>Atribut "type" a l'element "message"</term
><listitem
><para
>Ha de ser "action" o "normal"</para
></listitem
></varlistentry>
<varlistentry
><term
>Atribut "importance" a l'element "message"</term
><listitem
><para
>Ha de ser "0" per a baix, "1" per a normal i "2" per a alt</para
></listitem
></varlistentry>
<varlistentry
><term
>Atribut "dir" a la majoria d'elements</term
><listitem
><para
>Ha de ser "ltr" per d'esquerra a dreta o "rtl" per de dreta a esquerra</para
></listitem
></varlistentry>
</variablelist>
</para>
</sect1>

</appendix>
