# Водич за скриптовање за Копетеов прикључак цеви

Од издања 1.0, Копете долази са прикључком званим цеви. Цеви омогућавају провлачење долазних и одлазних порука кроз спољашњу скрипту. Долазна порука провлачи се кроз скрипту пре него што доспе у прозор за ћаскање, док се одлазна порука провлачи пре него што се пошаље. Цеви могу да примају текст у једном од три облика:

порука као обични текст

  Тело поруке као чист текст.

порука као ХТМЛ

  Тело поруке у облику ХТМЛ‑а, како би изгледало када би вам саговорник послао ХТМЛ поруке каква изгледа у прозору за ћаскање.

Копетеов ИксМЛ порукâ

  ИксМЛ документ који описује све карактеристике поруке, укључујући ХТМЛ тело.

. Овај документ описује специфичности ИксМЛ формата и како написати програм за његово обрађивање.

## ИксМЛ излаз

Ево примера онога што ће скрипта примити на свој стандардни улазни ток:

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

Овај ИксМЛ је донекле заснован на ИксСД‑у стилова ћаскања, који се може наћи на веб сајту Копетеа. Дати ко̂д представља једну поруку. Треба обратити пажњу на неколико ствари:

- Атрибут `timestamp` у елементу `message` је у формату стандарда ИСО 8601.

- Атрибут `protocolIcon` у елементу `contact` одређује се овако:

  1. Ако објекат контакта има постављено својство фотографије, користи се та путања.

  2. Ако нема, од контактовог метаконтакта се тражи путања слике, која се узима било да је нулта или не.

- Атрибути `color` и `bgcolor` у елементу `body` остају празне ниске ако нису постављени у Копетеу. Иначе су у формату веб боја.

- Садржај елемента `body` има избегнуте знакове `<`, да се не би помешали са структуром ИксМЛ‑а. Да би се тело исправно протумачило као ХТМЛ, очигледно се сви `&lt;` морају претворити у `<`.

## ИксМЛ улаз

Скрипта ће имати прилику да измени ИксМЛ који прими на свој стандардни улазни ток, а затим га мора вратити Копетеу кроз свој стандардни излазни ток. Ако скрипта измени следеће елементе, унутрашње стање које Копете носи о поруци измениће се тако да одрази учињене измене.

- атрибут `timestamp` у `message`, али не и остали временски атрибути

- атрибут `subject` у `message`

- атрибут `type` у `message`

- атрибут `importance` у `message`

- атрибут `color` у `body`. Обично задато као број веб боје, али се може задати и име. Објекти `QColor` у КуТ‑у‑4 прихватају имена која дефинише СВГ, тако да се једино она могу користити.

- атрибут `bgcolor` у `body`. Исто понашање као `color`.

- садржај елемента `body`

. Ако скрипта измени елементе или њихове атрибуте који нису поменути овде, те измене неће имати ефекта.

## Прихватљиве вредности

Неки атрибути имају ограничен скуп прихватљивих вредности. Прикључак цеви увек ће на излазу дати правилне вредности; ако ваша скрипта мења ове атрибуте, морају остати правилни. Ако то нису, недефинисано је шта ће Копете учинити.

атрибут `route` у елементу `message`

  Мора бити `inbound`, `outbound` или `internal`.

атрибут `type` у елементу `message`

  Мора бити `action` или `normal`.

атрибут `importance` у елементу `message`

  Мора бити `0` за малу, `1` за нормалну или `2` за велику.

атрибут `dir` у многим елементима

  Мора бити `ltr` за слева надесно, или `rtl` за здесна налево.