Apêndice B. Guia de Implementação de Plugins de Canais do Kopete

A partir do Kopete 1.0, o Kopete vem com um plugin chamado Canais. Ele permite encaminhar as mensagens recebidas ou enviadas por um programa externo. Uma mensagem recebida será encaminhada pelo executável antes de atingir a sua janela de conversação, enquanto as mensagens enviadas serão encaminhadas pelo executável antes de serem enviadas para a Internet. Os canais poderão receber o texto num de três formatos:

Corpo em texto simples

O corpo da mensagem, em texto ASCII simples

Corpo de texto em HTML

O corpo da mensagem, em HTML, como apareceria se o seu parceiro tivesse enviado HTML para você, o qual será apresentado na janela de conversação

Mensagem completa em XML

Um documento em XML que descreve todas as características da mensagem, incluindo o corpo em HTML.

. Este documento descreve os detalhes específicos do formato XML, bem como a maneira de criar um programa que possa lidar com este formato.

Saída XML

Aqui está um exemplo do que um programa irá receber no seu descritor de 'stdin':


<?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="macacoespaco1234"
        time="11:06 am" >
        <from>
                <contact contactId="marcus"
                        protocolIcon="aim_protocol"
                        userPhoto="/home/kde-devel/.kde4/share/apps/kopete/oscarpictures/marcus.jpg" >
                        <contactDisplayName dir="ltr" text="marcus" />
                        <metaContactDisplayName dir="ltr"
                                text="Marcus" />
                </contact>
        </from>
        <to>
                <contact contactId="macacoespaco1234"
                        protocolIcon="aim_protocol"
                        userPhoto="/home/kde-devel/.kde4/share/apps/kopete/avatars/User/7e542903e0ac7519a7496e85f5a5b99d.png" >
                        <contactDisplayName dir="ltr" text="macacoespaco1234" />
                        <metaContactDisplayName dir="ltr" text="Roberto Pires" />
                </contact>
                </to>
        <body dir="ltr"
                bgcolor="#000000"
                color="#000000" >
                &lt;span style=" color:#000000;"
>olá&lt;/span
></body>
</message>

Este XML baseia-se de certa forma no XSD usado para os estilos de conversação disponíveis na página Web do Kopete. Este código representa uma mensagem. Existem algumas notas a fazer:

  • O atributo "timestamp" do elemento "message" está no formato-padrão ISO 8601.

  • O atributo "protocolIcon" do elemento "contact" é escolhido da seguinte forma:

    1. Se o objeto Contact tiver a propriedade 'photo' definida, é usado esse local.

    2. Caso contrário, é pedida ao Meta-Contato do Contato a localização de uma imagem, sendo esta usada se for nula ou não.

  • Os atributos "color" e "bgcolor" do elemento "body" são cadeias de caracteres vazias se não estiverem definidas no Kopete. Estão no formato de cores da Web.

  • O conteúdo dentro do elemento "body" tem o "<" escapado, para que não seja confundido com a estrutura atual em XML. Obviamente, para interpretar corretamente o conteúdo como HTML, você terá que converter os "&lt;"s para "<"s.