<!-- Copyright (c) 2008 by Charles Connell <charles@connells.org > --> <!-- Licensed under the GNU Free Documentation License --> <appendix id="pipes"> <title >Vodič za skriptovanje za <application >Kopeteov</application > priključak cevi</title> <para >Od izdanja 1.0, <application >Kopete</application > dolazi sa priključkom zvanim cevi. Cevi omogućavaju provlačenje dolaznih i odlaznih poruka kroz spoljašnju skriptu. Dolazna poruka provlači se kroz skriptu pre nego što dospe u prozor za ćaskanje, dok se odlazna poruka provlači pre nego što se pošalje. Cevi mogu da primaju tekst u jednom od tri oblika: <variablelist > <varlistentry > <term >poruka kao obični tekst</term > <listitem > <para >Telo poruke kao čist tekst.</para > </listitem > </varlistentry > <varlistentry > <term >poruka kao HTML</term > <listitem > <para >Telo poruke u obliku HTML‑a, kako bi izgledalo kada bi vam sagovornik poslao HTML poruke kakva izgleda u prozoru za ćaskanje.</para > </listitem > </varlistentry > <varlistentry > <term >Kopeteov XML porukâ</term > <listitem > <para >XML dokument koji opisuje sve karakteristike poruke, uključujući HTML telo.</para > </listitem > </varlistentry > </variablelist >. Ovaj dokument opisuje specifičnosti XML formata i kako napisati program za njegovo obrađivanje. </para> <sect1 id="xml-output"> <title >XML izlaz</title> <para >Evo primera onoga što će skripta primiti na svoj standardni ulazni tok: <literallayout> <?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> </literallayout >Ovaj XML je donekle zasnovan na XSD‑u stilova ćaskanja, koji se može naći na <ulink url="http://kopete.kde.org/files/kopetemessage.xsd" >veb sajtu <application >Kopetea</application ></ulink >. Dati kô̂d predstavlja jednu poruku. Treba obratiti pažnju na nekoliko stvari: <itemizedlist> <listitem ><para >Atribut <literal >timestamp</literal > u elementu <literal >message</literal > je u formatu standarda ISO 8601.</para ></listitem> <listitem ><para >Atribut <literal >protocolIcon</literal > u elementu <literal >contact</literal > određuje se ovako: <orderedlist> <listitem ><para >Ako objekat kontakta ima postavljeno svojstvo fotografije, koristi se ta putanja.</para ></listitem> <listitem ><para >Ako nema, od kontaktovog metakontakta se traži putanja slike, koja se uzima bilo da je nulta ili ne.</para ></listitem> </orderedlist> </para ></listitem> <listitem ><para >Atributi <literal >color</literal > i <literal >bgcolor</literal > u elementu <literal >body</literal > ostaju prazne niske ako nisu postavljeni u <application >Kopeteu</application >. Inače su u formatu veb boja.</para ></listitem> <listitem ><para >Sadržaj elementa <literal >body</literal > ima izbegnute znakove <literal ><</literal >, da se ne bi pomešali sa strukturom XML‑a. Da bi se telo ispravno protumačilo kao HTML, očigledno se svi <literal >&lt;</literal > moraju pretvoriti u <literal ><</literal >.</para ></listitem> </itemizedlist> </para> </sect1> <sect1 id="xml-input"> <title >XML ulaz</title> <para >Skripta će imati priliku da izmeni XML koji primi na svoj standardni ulazni tok, a zatim ga mora vratiti <application >Kopeteu</application > kroz svoj standardni izlazni tok. Ako skripta izmeni sledeće elemente, unutrašnje stanje koje <application >Kopete</application > nosi o poruci izmeniće se tako da odrazi učinjene izmene. <itemizedlist > <listitem ><para >atribut <literal >timestamp</literal > u <literal >message</literal >, ali ne i ostali vremenski atributi</para ></listitem > <listitem ><para >atribut <literal >subject</literal > u <literal >message</literal ></para ></listitem > <listitem ><para >atribut <literal >type</literal > u <literal >message</literal ></para ></listitem > <listitem ><para >atribut <literal >importance</literal > u <literal >message</literal ></para ></listitem > <listitem ><para >atribut <literal >color</literal > u <literal >body</literal >. Obično zadato kao broj veb boje, ali se može zadati i ime. Objekti <literal >QColor</literal > u Qt‑u4 prihvataju imena koja definiše <ulink url="http://www.w3.org/TR/SVG/types.html#ColorKeywords" >SVG</ulink >, tako da se jedino ona mogu koristiti.</para ></listitem > <listitem ><para >atribut <literal >bgcolor</literal > u <literal >body</literal >. Isto ponašanje kao <literal >color</literal >.</para ></listitem > <listitem ><para >sadržaj elementa <literal >body</literal ></para ></listitem > </itemizedlist >. Ako skripta izmeni elemente ili njihove atribute koji nisu pomenuti ovde, te izmene neće imati efekta. </para> </sect1> <sect1 id="acceptable-values"> <title >Prihvatljive vrednosti</title> <para >Neki atributi imaju ograničen skup prihvatljivih vrednosti. Priključak cevi uvek će na izlazu dati pravilne vrednosti; ako vaša skripta menja ove atribute, moraju ostati pravilni. Ako to nisu, nedefinisano je šta će <application >Kopete</application > učiniti. <variablelist> <varlistentry ><term >atribut <literal >route</literal > u elementu <literal >message</literal ></term ><listitem ><para >Mora biti <literal >inbound</literal >, <literal >outbound</literal > ili <literal >internal</literal >.</para ></listitem ></varlistentry> <varlistentry ><term >atribut <literal >type</literal > u elementu <literal >message</literal ></term ><listitem ><para >Mora biti <literal >action</literal > ili <literal >normal</literal >.</para ></listitem ></varlistentry> <varlistentry ><term >atribut <literal >importance</literal > u elementu <literal >message</literal ></term ><listitem ><para >Mora biti <literal >0</literal > za malu, <literal >1</literal > za normalnu ili <literal >2</literal > za veliku.</para ></listitem ></varlistentry> <varlistentry ><term >atribut <literal >dir</literal > u mnogim elementima</term ><listitem ><para >Mora biti <literal >ltr</literal > za sleva nadesno, ili <literal >rtl</literal > za zdesna nalevo.</para ></listitem ></varlistentry> </variablelist> </para> </sect1> </appendix>