Introdução
**********

Descrição
=========

O WeeChat (Wee Enhanced Environment for Chat) é um cliente de IRC livre, rápido e leve, concebido para funcionar em diversos sistemas operativos.

As suas características prinicpais são as seguintes :

  - ligação a múltiplos servidores

  - várias interfaces : Curses, Gtk e Qt

  - pequeno rápido e leve

  - configuravel e extencível com scripts

  - compatível com RFCs 1459, 2810, 2811, 2812, e 2813

  - multiplataforma (Gnu/Linux, *BSD, Windows e outros)

  - 100% GPL, Software Livre

A página Web do Weechat é aqui :

http://weechat.flashtux.org

Pré-requisitos
==============

Para instalar o Weechat, vais precisar de ter :

  * Um sistema Gnu/Linux (com um compilador e outros utilitários associados aos pacotes de código fonte)

  * Direitos de "root" (para instalar)

  * Consoante a interface escolhida, uma das seguintes bibliotecas :

       - Curses: a biblioteca ncurses,

       - Gtk: *** interface não desenvolvida ***,

       - Qt: *** interface não desenvolvida ***,

Instalação
**********

Binários
========

Os pacotes binários estáo disponíveis para as seguintes distribuições :

  * Debian (ou compatível)

     Instalação : dpkg -i /chemin/weechat_x.y.z-1_i386.deb

  * Mandrake/Redhat (ou outra distro compatível com RPMs)

     Instalação : rpm -i /chemin/weechat-x.y.z-1.i386.rpm

  * Gentoo

     Instalação : emerge weechat

  * *BSD (non disponible !)

  * Slackware (não disponível !)

  * Windows (não disponível !)

Onde x.y.z é a versão (por exemplo 0.0.1)

Código Fonte
============

Escreve simplesmente numa consola ou num terminal :

./configure

make

Nota: Para compilar certas interfaces, podes passar parâmetros ao ./configure, escreve ./configure --help para veres as opções.

Obter os direitos do root e instalar o Weechat :

su

(escreve aqui a palavra-passe do superutilizador)

make install

Código Fonte via CVS
====================

Atenção: o código fonte CVS está reservado aos utilizadores avançados : o WeeChat pode não compilar ou ficar instável.

Considera-te avisado !

Para sacares o código fonte via CVS, escreve estes comandos :

cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/weechat login

cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/weechat co weechat

(quando te pedirem a palavra-passe, primen simplesmente Enter)

Executa o script :

./autogen.sh

Segue agora as instruções para compilar o código fonte - see Codigo Fonte.

Utilização
**********

Invocar o WeeChat
=================

Parâmetros de linha de comandos
-------------------------------

-c, --config
     Mostrar da lima dos config da exposição (lista das opções)

-h, --help
     Mostrar a ajuda

-l, --license
     Mostrar a licença do WeeChat

-v, --version
     Mostrar a versão do WeeChat

Invocar o WeeChat
-----------------

Escreve simplesmente este comando para invoceres o WeeChat :

weechat-curses (para a interface em Curses)

ou weechat-gtk (para a interface em Gtk)

ou weechat-qt (para a interface em Qt)

Logo que lançares o WeeChat pela primeira vez, um ficheiro de configuração por defeito é criado, com as configurações por defeito.

O ficheiro de configuração por defeito é : ~/.weechat/weechat.rc

Podes editar esse ficheiro para configurar o WeeChat à tua maneira, man também podes modificar os parâmetros dentro do WeeChat utilizando o comando /set - see Comandos do WeeChat.

Recursos de teclado
===================

Seta esquerda / Seta direita
     Ir um caractere para traz / para a frente na linha de comando

Ctrl + Seta esquerda / Ctrl + Seta Direita
     Ir uma palavra para traz / para a frente na linha de comando

Home / Ctrl + A
     Ir para o início da linha de comando

End / Ctrl + E
     Ir para o fim da linha de comando

Backspace / Delete
     Apagar o caractere anterior / seguinte na linha de comando

Ctrl + Backspace / Ctrl + W
     Apagar a palavra anterior na linha de comando

Tab
     Completar o comando ou o nick (Tab novamente : encontrar a próxima sugestão)

Qualquer caractere
     Inserir o caractere na linha de comando, no sítio do cursor

Enter
     Executa o comando ou envia a mensagem

Seta para cima / Seta para baixo
     Repetir os ultimos comandos/mensagens

PageUp / PageDown
     Navegar no histórico da janela

F5 / F6
     Comute ao amortecedor anterior / seguinte

F7 / F8
     Comute ao janela anterior / seguinte

F10
     Apagar a última mensagem da barra do info

F11 / F12
     Scroll nicklist

Ctrl + L
     Redesenhe a janela inteira

Alt + Seta da esquerda / Alt + Seta da direita
     Identico a F5 / F6

Alt + A
     Comute ao amortecedor seguinte com atividade (com prioridade:  destaque, mensagem, outra)

Alt + D
     Exposição DCC atual

Alt + R
     Hotlist desobstruído (notificação da atividade em outros amortecedores)

Alt + S
     Comute ao amortecedor do servidor

Alt + X
     Comute à primeira canaleta do servidor seguinte (ou do amortecedor do servidor se nenhuma canaleta for aberta)

Alt + dígito (1-9)
     Comute ao amortecedor pelo número

Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
     Scroll nicklist

Comandos do WeeChat
===================

NÃO ESCRITO !

FIFO pipe
=========

You can remote control WeeChat, by sending commands or text to a FIFO pipe (you have to enable option "irc_fifo_pipe", it is disabled by default).

The FIFO pipe is located in ~/.weechat/ and is called "weechat_fifo_xxxxx" (where xxxxx is the process ID (PID) of running WeeChat).

So if many WeeChat are running, you have many FIFO pipe, one for each session.

The syntax for the FIFO pipe commands/text is:

server,channel *text or command here

where server and channel are optional, but if channel is here, server should be too.

Some examples:

* change your nick on freenode to "mynick|out":
     echo "freenode */nick mynick|out" >~/.weechat/weechat_fifo_12345

* display text on #weechat channel:
     echo "freenode,#weechat *hello everybody!" >~/.weechat/weechat_fifo_12345

* display text on current channel (buffer displayed by WeeChat):
     echo "*hello!" >~/.weechat/weechat_fifo_12345

     Warning: this is dangerous and you should not do that except if you know what you do!

* send 2 commands to unload/reload Perl scripts (you have to separate them with \n):
     echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345

You can write a script to send command to all running WeeChat at same time, for example:

 #!/bin/sh
 if [ $# -eq 1 ]; then
     for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do
         echo -e "$1" >$fifo
     done
 fi
If the script is called "auto_weechat_command", you can run it with:

./auto_weechat_command "freenode,#weechat *hello"

Extenções
*********

Scripts Perl
============

Carregar/Descarregar Scripts Perl
---------------------------------

Os Scripts Perl são carregados e descarregados com o comando /perl. (escreve /help perl dentro do WeeChat para obteres ajuda acerca do comando).

Exemplos:

  * Carregar um Script Perl: /perl load /tmp/sample.pl

  * Descarregar todos os Scripts Perl: /perl unload

  * Listar todos os Scripts Perl: /perl

Interface WeeChat / Perl
------------------------

  * weechat::register ( nome, versão, função_de_shutdown, descrição );

     Esta é a primeira função a invocar num Script Perl.

     Todos os Scripts Perl para o Weechat devem invocar esta função.

     Argumentos:

       - nome: nome único que indentifique o script (cada Script Perl deve ter um único nome)

       - versão: versão do script

       - função_de_shutdown: função Perl invocada quando o script é descarregado (parâmetro opcional, se deixado em branco significa que nada deve ser chamado)

       - descrição: breve descrição do script.

     Exemplo:

     weechat::register ("sample", "1.0", "sample_end", "Sample script!");

  * weechat::print ( mensagem, [canal, [servidor]] );

     Imprimne uma mensagem na canal.

     Argumentos:

       - mensagem: mensagem a mostrar

       - canal: nome da canal

       - servidor: nome interno da servidor

     Exemplo:

     weechat::print ("mensagem");

     weechat::print ("mensagem", "#weechat");

     weechat::print ("mensagem", "#weechat", "freenode");

  * weechat::print_infobar ( atrasa, mensagem );

     Imprimne uma mensagem na barra do info.

     Argumentos:

       - atrasa: depois que isto atrasa (nos segundos), a mensagem estará apagada (se 0, mensagem não forem apagados).

       - mensagem: mensagem a mostrar

     Exemplo:

     weechat::print_infobar (5, "mensagem");

  * weechat::add_message_handler ( nome, função );

     Anexa uma função Perl a uma mensagem de IRC.

     A função será invocada de cada vez que a mensagem IRC for recebida.

     Argumentos:

       - nome: nome da mensagem IRC
          Para conheceres uma lista de mensagens de IRC, por favor lê o RFC 1459 e/ou o 2812:

          RFC 1459: ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt

          RFC 2812: ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt

       - função: função Perl invocada quando a mensagem é recebida

     Exemplo:

     weechat::add_message_handler ("privmsg", my_function);

     sub my_function

     {

         ($null, $channel, $message) = split ":",@_[0],3;

         ($hostmask, $null, $channel) = split " ", $channel;

         weechat::print ("host=$hostmask, chan=$channel, msg=$message\n");

     }

  * weechat::add_command_handler ( nome, função );

     Cria um novo comando do Weechat, ligado a uma função Perl.

     A função será chamada quando o utilizador a invocar utilizando /nome

     Argumentos:

       - nome: nome do novo comando
          Este nome pode pertencer a um comando já existente, o qual será sobreposto pela função Perl. Tem cuidado quando fizeres isto: os comandos originais não estarão acessiveis antes de teres descarregado o Script Perl.

       - função: função Perl ligada ao comando

     Exemplo:

     weechat::add_command_handler ("command", my_command);

     sub my_command

     {

         weechat::print("Argumentos: ".@_[0]);

         return 0;

     }

  * weechat::command ( command, [channel, [server]] );

     Execute a command or send a message to a channel.

     Arguments:

       - command: command to execute (or message to send in a channel)

       - channel: name of channel

       - server: internal name of server

     Examples:

     weechat::command ("hello world!");

     weechat::command ("/kick toto please leave this chan", "#weechat");

     weechat::command ("/nick newnick", "", "freenode");

  * weechat::get_info ( nome, [servidor] );

     Comece o vário info sobre WeeChat, servidor ou usuário.

     Argumentos:

       - nome: nome do info a recuperar:

       - servidor: nome interno da servidor

            - 0 ou version: comece a versão de WeeChat

            - 1 ou nick: comece o nickname

            - 2 ou channel: comece o nome da canal

            - 3 ou server: comece o nome do servidor

            - 4 ou weechatdir: comece a WeeChat o diretório home

            - 5 ou away: comece a bandeira ausente para o servidor

     Exemplos:

     $version = get_info("version");

     $nick = get_info("nick", "freenode");

Scripts Python
==============

Carregar/Descarregar Scripts Python
-----------------------------------

Os Scripts Python são carregados e descarregados com o comando /python. (escreve /help python dentro do WeeChat para obteres ajuda acerca do comando).

Exemplos:

  * Carregar um Script Python: /python load /tmp/sample.py

  * Descarregar todos os Scripts Python: /python unload

  * Listar todos os Scripts Python: /python

Interface WeeChat / Python
--------------------------

  * weechat.register ( nome, versão, função_de_shutdown, descrição );

     Esta é a primeira função a invocar num Script Python.

     Todos os Scripts Python para o Weechat devem invocar esta função.

     Argumentos:

       - nome: nome único que indentifique o script (cada Script Python deve ter um único nome)

       - versão: versão do script

       - função_de_shutdown: função Python invocada quando o script é descarregado (parâmetro opcional, se deixado em branco significa que nada deve ser chamado)

       - descrição: breve descrição do script.

     Exemplo:

     weechat.register ("sample", "1.0", "sample_end", "Sample script!");

  * weechat.prnt ( mensagem, [canal, [servidor]] );

     Imprimne uma mensagem na canal.

     Argumentos:

       - mensagem: mensagem a mostrar

       - canal: nome da canal

       - servidor: nome interno da servidor

     Exemplo:

     weechat.prnt ("mensagem");

     weechat.prnt ("mensagem", "#weechat");

     weechat.prnt ("mensagem", "#weechat", "freenode");

  * weechat.print_infobar ( atrasa, mensagem );

     Imprimne uma mensagem na barra do info.

     Argumentos:

       - atrasa: depois que isto atrasa (nos segundos), a mensagem estará apagada (se 0, mensagem não forem apagados).

       - mensagem: mensagem a mostrar

     Exemplo:

     weechat.print_infobar (5, "mensagem");

  * weechat.add_message_handler ( nome, função );

     Anexa uma função Python a uma mensagem de IRC.

     A função será invocada de cada vez que a mensagem IRC for recebida.

     Argumentos:

       - nome: nome da mensagem IRC
          Para conheceres uma lista de mensagens de IRC, por favor lê o RFC 1459 e/ou o 2812:

          RFC 1459: ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt

          RFC 2812: ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt

       - função: função Python invocada quando a mensagem é recebida

     Exemplo:

     weechat.add_message_handler ("privmsg", my_function);

     sub my_function

     {

         ($null, $channel, $message) = split ":",@_[0],3;

         ($hostmask, $null, $channel) = split " ", $channel;

         weechat.prnt ("host=$hostmask, chan=$channel, msg=$message\n");

     }

  * weechat.add_command_handler ( nome, função );

     Cria um novo comando do Weechat, ligado a uma função Python.

     A função será chamada quando o utilizador a invocar utilizando /nome

     Argumentos:

       - nome: nome do novo comando
          Este nome pode pertencer a um comando já existente, o qual será sobreposto pela função Python. Tem cuidado quando fizeres isto: os comandos originais não estarão acessiveis antes de teres descarregado o Script Python.

       - função: função Python ligada ao comando

     Exemplo:

     weechat.add_command_handler ("command", my_command);

     sub my_command

     {

         weechat.prnt("Argumentos: ".@_[0]);

         return 0;

     }

  * weechat.command ( command, [channel, [server]] );

     Execute a command or send a message to a channel.

     Arguments:

       - command: command to execute (or message to send in a channel)

       - channel: name of channel

       - server: internal name of server

     Examples:

     weechat.command ("hello world!");

     weechat.command ("/kick toto please leave this chan", "#weechat");

     weechat.command ("/nick newnick", "", "freenode");

  * weechat.get_info ( nome, [servidor] );

     Comece o vário info sobre WeeChat, servidor ou usuário.

     Argumentos:

       - nome: nome do info a recuperar:

       - servidor: nome interno da servidor

            - 0 ou version: comece a versão de WeeChat

            - 1 ou nick: comece o nickname

            - 2 ou channel: comece o nome da canal

            - 3 ou server: comece o nome do servidor

            - 4 ou weechatdir: comece a WeeChat o diretório home

            - 5 ou away: comece a bandeira ausente para o servidor

     Exemplos:

     $version = weechat.get_info("version");

     $nick = weechat.get_info("nick", "freenode");

Scripts Ruby
============

NÃO DESENVOLVIDO!

Autores / Suporte
*****************

Autores
=======

O WeeChat é desenvolvido por :

  * FlashCode <flashcode AT flashtux.org>

Obter Suporte
=============

Antes de pedires suporte, agradecemos se leres toda a documentação e a FAQ.

(a documentação é este documento que estás a ler, se não leste tudo até aqui, está na hora de começares do início !)

  * Suporte por IRC:

     - servidor : irc.freenode.net

     - canal : #weechat

  * Forum do WeeChat : http://forums.flashtux.org

  * Suporte por lista de correio-e :

     - para te inscreveres/desinscreveres :
     http://mail.nongnu.org/mailman/listinfo/weechat-support.

     - para enviares uma mensagem para a lista :
     weechat-support@nongnu.org.

     Os arquivos da lista estão aqui :

     http://mail.nongnu.org/archive/html/weechat-support

  * Para mais detalhes, vê também a página de suporte do WeeChat :

     http://weechat.flashtux.org/support.php