weechat/doc/weechat_doc_pt.texi

3027 lines
85 KiB
Plaintext

\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename weechat_doc_pt.info
@settitle WeeChat - Um cliente de IRC rapido, leve e extencivel
@c %**end of header
@c WeeChat documentation (vers@~ao partuguesa)
@c
@c Copyright (c) 2005 by FlashCode <flashcode@flashtux.org>
@c
@c This manual is free software; you can redistribute it and/or modify
@c it under the terms of the GNU General Public License as published by
@c the Free Software Foundation; either version 2 of the License, or
@c (at your option) any later version.
@c
@c This manual is distributed in the hope that it will be useful,
@c but WITHOUT ANY WARRANTY; without even the implied warranty of
@c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@c GNU General Public License for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with this program; if not, write to the Free Software
@c Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@c pdf : texi2pdf weechat_doc_pt.texi
@c html: makeinfo --html --no-split --number-sections weechat_doc_pt.texi
@c tex
@c \overfullrule=0pt
@c end tex
@documentlanguage pt
@documentencoding ISO-8859-1
@titlepage
@title WeeChat - Guia do Utilizador
@subtitle Cliente de IRC rapido, leve e extencivel
@subtitle Documenta@,{c}@~ao do WeeChat v0.1.6-cvs - 28 de outubro de 2005
@author FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>
@page
Este manual documenta o cliente de IRC WeeChat, ele faz parte do WeeChat.@*
@*
A ultima versão deste documento pode ser descarregada de :@*
@uref{http://weechat.flashtux.org/doc.php}@*
@*
Copyright @copyright{} 2005 FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@*
@*
Este documento pode ser utilizado sobre os termos da Licen@,{c}a P@'ublica geral GNU (GNU General Public
License) vers@~ao 2 ou superior.
@end titlepage
@everyheading @thischapter @| @|
@everyfooting @thistitle @| @| Pagina @thispage
@contents
@node Top, Introducao, (dir), (dir)
@menu
* Introducao:: Descri@,{c}@~ao do WeeChat
* Instalacao:: Instala@,{c}@~ao do WeeChat
* Utilizacao:: Utiliza@,{c}@~ao do WeeChat
* Plugins:: WeeChat plugins
* Autores/Suporte:: Contactar os autores e obter suporte
@end menu
@c ******************************* Introducao *******************************
@node Introducao, Instalacao, Top, Top
@chapter Introdu@,{c}@~ao
@menu
* Descricao::
* Pre-requisitos::
@end menu
@node Descricao, Pre-requisitos, Introducao, Introducao
@section Descri@,{c}@~ao
O WeeChat (Wee Enhanced Environment for Chat) @'e um cliente de IRC livre, r@'apido e leve,
concebido para funcionar em diversos sistemas operativos.@*
@*
As suas caracter@'isticas prinicpais s@~ao as seguintes :
@itemize @minus
@item
liga@,{c}@~ao a m@'ultiplos servidores (com SSL, IPv6, proxy)
@item
v@'arias interfaces : Curses, wxWidgets, Gtk e Qt
@item
pequeno r@'apido e leve
@item
configuravel e extenc@'ivel com scripts
@item
compat@'ivel com RFCs 1459, 2810, 2811, 2812, e 2813
@item
multiplataforma (Gnu/Linux, *BSD, MacOS X, Windows e outros)
@item
100% GPL, Software Livre
@end itemize
@*
A p@'agina Web do Weechat @'e aqui :@*
@uref{http://weechat.flashtux.org}@*
@node Pre-requisitos, ,Descricao, Introducao
@section Pr@'e-requisitos
Para instalar o Weechat, vais @b{precisar} de ter :@*
@itemize @bullet
@item
Um sistema Gnu/Linux (com um compilador e outros utilit@'arios associados aos pacotes de c@'odigo fonte)
@item
Direitos de "root" (para instalar)
@item
Consoante a interface escolhida, uma das seguintes bibliotecas :
@itemize @minus
@item
Curses: a biblioteca ncurses,
@item
Gtk: *** interface n@~ao desenvolvida ***,
@item
Qt: *** interface n@~ao desenvolvida ***,
@end itemize
@end itemize
@c ******************************* Instalacao *******************************
@node Instalacao, Utilizacao, Introducao, Top
@chapter Instala@,{c}@~ao
@menu
* Binarios::
* Codigo Fonte::
* Codigo Fonte via CVS::
@end menu
@node Binarios, Codigo Fonte, Instalacao, Instalacao
@section Bin@'arios
Os pacotes bin@'arios est@'ao dispon@'iveis para as seguintes distribui@,{c}@~oes :
@itemize @bullet
@item
Debian (ou compat@'ivel)@*
Instala@,{c}@~ao : @kbd{apt-get install weechat-curses}
@item
Mandrake/Redhat (ou outra distro compat@'ivel com RPMs)@*
Instala@,{c}@~ao : @kbd{rpm -i /chemin/weechat-x.y.z-1.i386.rpm}
@item
Gentoo@*
Instala@,{c}@~ao : @kbd{emerge weechat}
@item
*BSD (non disponible !)
@item
Slackware (n@~ao dispon@'ivel !)
@item
Windows (n@~ao dispon@'ivel !)
@end itemize
Onde x.y.z @'e a vers@~ao (por exemplo 0.0.1)
@*
@node Codigo Fonte, Codigo Fonte via CVS, Binarios, Instalacao
@section C@'odigo Fonte
Escreve simplesmente numa consola ou num terminal :@*
@kbd{./configure}@*
@kbd{make}@*
Nota: Para compilar certas interfaces, podes passar par@^ametros
ao ./configure, escreve @kbd{./configure --help} para veres as op@,{c}@~oes.@*
Obter os direitos do root e instalar o Weechat :@*
@kbd{su}@*
(escreve aqui a palavra-passe do superutilizador)@*
@kbd{make install}@*
@node Codigo Fonte via CVS, , Codigo Fonte, Instalacao
@section C@'odigo Fonte via CVS
Aten@,{c}@~ao: o c@'odigo fonte CVS est@'a reservado aos utilizadores avan@,{c}ados : o WeeChat pode n@~ao compilar ou ficar inst@'avel.@*
Considera-te avisado !@*
Para sacares o c@'odigo fonte via CVS, escreve estes comandos :@*
@kbd{cvs -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat login}@*
@kbd{cvs -z3 -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat co weechat}@*
(quando te pedirem a palavra-passe, primen simplesmente Enter)@*
Executa o script :@*
@kbd{./autogen.sh}@*
Segue agora as instru@,{c}@~oes para compilar o c@'odigo fonte - @xref{Codigo Fonte}.
@c ******************************* Utilizacao ********************************
@node Utilizacao, Plugins, Instalacao, Top
@chapter Utiliza@,{c}@~ao
@menu
* Invocar o WeeChat::
* Config file::
* Recursos de teclado::
* Comandos do WeeChat::
* FIFO pipe::
@end menu
@node Invocar o WeeChat, Config file, Utilizacao, Utilizacao
@section Invocar o WeeChat
@subsection Par@^ametros de linha de comandos
@table @code
@item -c, --config
Mostrar da lima dos config da exposi@,{c}@~ao (lista das op@,{c}@~oes)
@item -f, --key-functions
Display WeeChat internal functions for keys@*
@item -h, --help
Mostrar a ajuda@*
@item -i, --irc-commands
Display IRC commands list@*
@item -l, --license
Mostrar a licen@,{c}a do WeeChat@*
@item -v, --version
Mostrar a vers@~ao do WeeChat@*
@item -w, --weechat-commands
Display WeeChat commands list@*
@end table
@subsection Invocar o WeeChat
Escreve simplesmente este comando para invoceres o WeeChat :@*
@kbd{weechat-curses} (para a interface em Curses)@*
ou @kbd{weechat-wxwidgets} (para a interface em wxWidgets)@*
ou @kbd{weechat-gtk} (para a interface em Gtk)@*
ou @kbd{weechat-qt} (para a interface em Qt)@*
Logo que lan@,{c}ares o WeeChat pela primeira vez, um ficheiro de configura@,{c}@~ao
por defeito @'e criado, com as configura@,{c}@~oes por defeito.@*
O ficheiro de configura@,{c}@~ao por defeito @'e : ~/.weechat/weechat.rc@*
Podes editar esse ficheiro para configurar o WeeChat @`a tua maneira, man tamb@'em podes modificar os par@^ametros dentro do WeeChat utilizando o comando @kbd{/set} - @xref{Comandos do WeeChat}.
@node Config file, Recursos de teclado, Invocar o WeeChat, Utilizacao
@section Config file
List of options for config file:@*
@table @kbd
@item look_set_title
Set title for window (terminal for Curses GUI) with name & version@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_startup_logo
Display WeeChat logo at startup@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_startup_version
Display WeeChat version at startup@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_weechat_slogan
WeeChat slogan (if empty, slogan is not used)@*
Type: string (any string), default value: 'the geekest IRC client!'@*
@item look_charset_decode_iso
ISO charset for decoding messages from server (used only if locale is UTF-8) (if empty, messages are not converted if locale is UTF-8@*
Type: string (any string), default value: 'ISO-8859-1'@*
@item look_charset_decode_utf
UTF charset for decoding messages from server (used only if locale is not UTF-8) (if empty, messages are not converted if locale is not UTF-8@*
Type: string (any string), default value: 'UTF-8'@*
@item look_charset_encode
Charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 (if empty, messages are not converted)@*
Type: string (any string), default value: ''@*
@item look_charset_internal
Forces internal WeeChat charset (should be empty in most cases, that means detected charset is used)@*
Type: string (any string), default value: ''@*
@item look_buffer_timestamp
Timestamp for buffers@*
Type: string (any string), default value: '[%H:%M:%S]'@*
@item look_color_nicks
Display nick names with different colors@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_color_nicks_number
Number of colors to use for nicks colors@*
Type: integer (values: between 1 and 10), default value: 10@*
@item look_color_actions
Display actions with different colors@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_remove_colors_from_msgs
Remove colors from incoming messages@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nicklist
Display nicklist window (for channel windows)@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nicklist_position
Nicklist position (top, left, right (default), bottom)@*
Type: string (values: 'left', 'right', 'top', 'bottom'), default value: 'right'@*
@item look_nicklist_min_size
Min size for nicklist (width or height, depending on look_nicklist_position (0 = no min size))@*
Type: integer (values: between 0 and 100), default value: 0@*
@item look_nicklist_max_size
Max size for nicklist (width or height, depending on look_nicklist_position (0 = no max size; if min == max and > 0, then size is fixed))@*
Type: integer (values: between 0 and 100), default value: 0@*
@item look_no_nickname
Text to display instead of nick when not connected@*
Type: string (any string), default value: '-cmd-'@*
@item look_nickmode
Display nick mode ((half)op/voice) before each nick@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_nickmode_empty
Display space if nick mode is not (half)op/voice@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item look_nick_completor
The string inserted after nick completion@*
Type: string (any string), default value: ':'@*
@item look_nick_completion_ignore
Chars ignored for nick completion@*
Type: string (any string), default value: '[]-'@*
@item look_infobar
Enable info bar@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_infobar_timestamp
Timestamp for time in infobar@*
Type: string (any string), default value: '%B, %A %d %Y'@*
@item look_infobar_seconds
Display seconds in infobar time@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_infobar_delay_highlight
Delay (in seconds) for highlight messages in infobar (0 = disable highlight notifications in infobar)@*
Type: integer (values: between 0 and 2147483647), default value: 7@*
@item look_hotlist_names_count
Max number of names in hotlist (0 = no name displayed, only buffer numbers)@*
Type: integer (values: between 0 and 32), default value: 3@*
@item look_hotlist_names_level
Level for displaying names in hotlist (combination of: 1=join/part, 2=message, 4=private, 8=highlight, for example: 12=private+highlight)@*
Type: integer (values: between 1 and 15), default value: 12@*
@item look_hotlist_names_length
Max length of names in hotlist (0 = no limit)@*
Type: integer (values: between 0 and 32), default value: 0@*
@item look_day_change
Display special message when day changes@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item look_day_change_timestamp
Timestamp for date displayed when day changed@*
Type: string (any string), default value: '%a, %d %b %Y'@*
@item col_title
Color for title bar@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_title_bg
Background for title bar@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_chat
Color for chat text@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_time
Color for time in chat window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_time_sep
Color for time separator (chat window)@*
Type: color (Curses or Gtk color), default value: 'brown'@*
@item col_chat_prefix1
Color for 1st and 3rd char of prefix@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_chat_prefix2
Color for middle char of prefix@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_chat_join
Color for join arrow (prefix)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_chat_part
Color for part/quit arrow (prefix)@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_chat_nick
Color for nicks in actions (chat window)@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_chat_host
Color for hostnames (chat window)@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_chat_channel
Color for channel names in actions (chat window)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_chat_dark
Color for dark separators (chat window)@*
Type: color (Curses or Gtk color), default value: 'green'@*
@item col_chat_highlight
Color for highlighted nick (chat window)@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_chat_bg
Background for chat window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status
Color for status bar@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status_delimiters
Color for status bar delimiters@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_status_channel
Color for current channel in status bar@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_status_data_msg
Color for window with new messages (status bar)@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_status_private
Color for window with private message (status bar)@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_status_highlight
Color for window with highlight (status bar)@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_status_data_other
Color for window with new data (not messages) (status bar)@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_status_more
Color for window with new data (status bar)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_status_bg
Background for status window@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_infobar
Color for info bar text@*
Type: color (Curses or Gtk color), default value: 'black'@*
@item col_infobar_delimiters
Color for infobar delimiters@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_infobar_highlight
Color for info bar highlight notification@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_infobar_bg
Background for info bar window@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_input
Color for input text@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_input_channel
Color for input text (channel name)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_input_nick
Color for input text (nick name)@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_input_delimiters
Color for input text (delimiters)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_input_bg
Background for input window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick
Color for nicknames@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_away
Color for away nicknames@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_nick_chanowner
Color for chan owner symbol (specific to unrealircd)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_chanadmin
Color for chan admin symbol (specific to unrealircd)@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_op
Color for operator symbol@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_halfop
Color for half-operator symbol@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_voice
Color for voice symbol@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_nick_more
Color for '+' when scrolling nicks@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_sep
Color for nick separator@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_nick_self
Color for local nick@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_nick_color1
Color for nick@*
Type: color (Curses or Gtk color), default value: 'cyan'@*
@item col_nick_color2
Color for nick@*
Type: color (Curses or Gtk color), default value: 'magenta'@*
@item col_nick_color3
Color for nick@*
Type: color (Curses or Gtk color), default value: 'green'@*
@item col_nick_color4
Color for nick@*
Type: color (Curses or Gtk color), default value: 'brown'@*
@item col_nick_color5
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightblue'@*
@item col_nick_color6
Color for nick@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_color7
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_nick_color8
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightmagenta'@*
@item col_nick_color9
Color for nick@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_nick_color10
Color for nick@*
Type: color (Curses or Gtk color), default value: 'blue'@*
@item col_nick_private
Color for other nick in private window@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_nick_bg
Background for nicknames@*
Type: color (Curses or Gtk color), default value: 'default'@*
@item col_chat_dcc_selected
Color for selected DCC (chat window)@*
Type: color (Curses or Gtk color), default value: 'white'@*
@item col_dcc_waiting
Color for "waiting" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightcyan'@*
@item col_dcc_connecting
Color for "connecting" dcc status@*
Type: color (Curses or Gtk color), default value: 'yellow'@*
@item col_dcc_active
Color for "active" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightblue'@*
@item col_dcc_done
Color for "done" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightgreen'@*
@item col_dcc_failed
Color for "failed" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item col_dcc_aborted
Color for "aborted" dcc status@*
Type: color (Curses or Gtk color), default value: 'lightred'@*
@item history_max_lines
Maximum number of lines in history for one server/channel/private window (0 = unlimited)@*
Type: integer (values: between 0 and 2147483647), default value: 4096@*
@item history_max_commands
Maximum number of user commands in history (0 = unlimited)@*
Type: integer (values: between 0 and 2147483647), default value: 100@*
@item log_auto_server
Automatically log server messages@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_auto_channel
Automatically log channel chats@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_auto_private
Automatically log private chats@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_plugin_msg
Log messages from plugins (scripts)@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item log_path
Path for WeeChat log files@*
Type: string (any string), default value: '~/.weechat/logs/'@*
@item log_timestamp
Timestamp for log (see man strftime for date/time specifiers)@*
Type: string (any string), default value: '%Y %b %d %H:%M:%S'@*
@item log_hide_nickserv_pwd
Hide password displayed by nickserv@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item irc_display_away
Display message to all channels when (un)marking as away@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item irc_default_msg_away
Default message when away@*
Type: string (any string), default value: 'away'@*
@item irc_default_msg_part
Default part message (leaving channel)@*
Type: string (any string), default value: 'WeeChat %v'@*
@item irc_default_msg_quit
Default quit message ('%v' will be replaced by WeeChat version in string)@*
Type: string (any string), default value: 'WeeChat %v'@*
@item irc_notice_as_pv
Display notices as private messages@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item irc_away_check
Interval between two checks for away (in minutes, 0 = never check)@*
Type: integer (values: between 0 and 2147483647), default value: 0@*
@item irc_lag_check
Interval between two checks for lag (in seconds)@*
Type: integer (values: between 30 and 2147483647), default value: 60@*
@item irc_lag_min_show
Minimum lag to show (in seconds)@*
Type: integer (values: between 0 and 2147483647), default value: 1@*
@item irc_lag_disconnect
Disconnect after important lag (in minutes, 0 = never disconnect)@*
Type: integer (values: between 0 and 2147483647), default value: 5@*
@item irc_fifo_pipe
Create a FIFO pipe for remote control@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item irc_highlight
Comma separated list of words to highlight (case insensitive comparison, words may begin or end with "*" for partial match)@*
Type: string (any string), default value: ''@*
@item dcc_auto_accept_files
Automatically accept incoming dcc files@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item dcc_auto_accept_chats
Automatically accept dcc chats (use carefully!)@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item dcc_timeout
Timeout for dcc request (in seconds)@*
Type: integer (values: between 1 and 2147483647), default value: 300@*
@item dcc_blocksize
Block size for dcc packets in bytes (default: 65536)@*
Type: integer (values: between 1024 and 102400), default value: 65536@*
@item dcc_port_range
Restricts outgoing dcc to use only ports in the given range (useful for NAT) (syntax: a single port, ie. 5000 or a port range, ie. 5000-5015, empty value means any port)@*
Type: string (any string), default value: ''@*
@item dcc_own_ip
IP or DNS address used for outgoing dcc (if empty, local interface IP is used)@*
Type: string (any string), default value: ''@*
@item dcc_download_path
Path for writing incoming files with dcc (default: user home)@*
Type: string (any string), default value: '~'@*
@item dcc_upload_path
Path for reading files when sending thru dcc (when no path is specified)@*
Type: string (any string), default value: '~'@*
@item dcc_convert_spaces
Convert spaces to underscores when sending files@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item dcc_auto_rename
Rename incoming files if already exists (add '.1', '.2', ...)@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item dcc_auto_resume
Automatically resume dcc transfer if connection with remote host is loosed@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item proxy_use
Use a proxy server to connect to irc server@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item proxy_type
Proxy type (http (default), socks4, socks5)@*
Type: string (values: 'http', 'socks4', 'socks5'), default value: 'http'@*
@item proxy_ipv6
Connect to proxy in ipv6@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item proxy_address
Proxy server address (IP or hostname)@*
Type: string (any string), default value: ''@*
@item proxy_port
Port for connecting to proxy server@*
Type: integer (values: between 0 and 65535), default value: 3128@*
@item proxy_username
Username for proxy server@*
Type: string (any string), default value: ''@*
@item proxy_password
Password for proxy server@*
Type: string (any string), default value: ''@*
@item plugins_path
Path for searching plugins@*
Type: string (any string), default value: '~/.weechat/plugins'@*
@item plugins_autoload
Comma separated list of plugins to load automatically at startup, "*" means all plugins found (names may be partial, for example "perl" is ok for "libperl.so")@*
Type: string (any string), default value: '*'@*
@item plugins_extension
Standard plugins extension in filename, used for autoload (if empty, then all files are loaded when autoload is "*")@*
Type: string (any string), default value: '.so'@*
@item server_name
Name associated to IRC server (for display only)@*
Type: string (any string), default value: ''@*
@item server_autoconnect
Automatically connect to server when WeeChat is starting@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_autoreconnect
Automatically reconnect to server when disconnected@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_autoreconnect_delay
Delay (in seconds) before trying again to reconnect to server@*
Type: integer (values: between 0 and 65535), default value: 30@*
@item server_address
IP address or hostname of IRC server@*
Type: string (any string), default value: ''@*
@item server_port
Port for connecting to server@*
Type: integer (values: between 0 and 65535), default value: 6667@*
@item server_ipv6
Use IPv6 protocol for server communication@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item server_ssl
Use SSL for server communication@*
Type: boolean (values: 'on' or 'off'), default value: 'off'@*
@item server_password
Password for IRC server@*
Type: string (any string), default value: ''@*
@item server_nick1
Nickname to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_nick2
Alternate nickname to use on IRC server (if nickname is already used)@*
Type: string (any string), default value: ''@*
@item server_nick3
2nd alternate nickname to use on IRC server (if alternate nickname is already used)@*
Type: string (any string), default value: ''@*
@item server_username
User name to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_realname
Real name to use on IRC server@*
Type: string (any string), default value: ''@*
@item server_command
First command to run when connected to server@*
Type: string (any string), default value: ''@*
@item server_command_delay
Delay (in seconds) after command was executed (example: give some time for authentication)@*
Type: integer (values: between 0 and 5), default value: 0@*
@item server_autojoin
Comma separated list of channels to join when connected to server (example: "#chan1,#chan2,#chan3 key1,key2")@*
Type: string (any string), default value: ''@*
@item server_autorejoin
Automatically rejoin channels when kicked@*
Type: boolean (values: 'on' or 'off'), default value: 'on'@*
@item server_notify_levels
Comma separated list of notify levels for channels of this server (format: #channel:1,..)@*
Type: string (any string), default value: ''@*
@end table
Colors for Curses GUI are:@*
@itemize @minus
@item
@kbd{default}: default color (transparent for background)
@item
@kbd{black}: black
@item
@kbd{red}: dark red
@item
@kbd{lightred}: light red
@item
@kbd{green}: dark green
@item
@kbd{lightgreen}: light green
@item
@kbd{brown}: brown
@item
@kbd{yellow}: yellow
@item
@kbd{blue}: dark blue
@item
@kbd{lightblue}: light blue
@item
@kbd{magenta}: dark magenta
@item
@kbd{lightmagenta}: light magenta
@item
@kbd{cyan}: dark cyan
@item
@kbd{lightcyan}: light cyan
@item
@kbd{white}: white
@end itemize
@node Recursos de teclado, Comandos do WeeChat, Config file, Utilizacao
@section Recursos de teclado
@table @kbd
@item Seta esquerda / Seta direita
Ir um caractere para traz / para a frente na linha de comando@*
@*
@item Ctrl + Seta esquerda / Ctrl + Seta Direita
Ir uma palavra para traz / para a frente na linha de comando@*
@*
@item Home / Ctrl + A
Ir para o in@'icio da linha de comando@*
@*
@item End / Ctrl + E
Ir para o fim da linha de comando@*
@*
@item Ctrl + K
Delete until end of line@*
@*
@item Ctrl + L
Redesenhe a janela inteira@*
@*
@item Ctrl + U
Delete until beginning of line@*
@*
@item Ctrl + W
Apagar a palavra anterior na linha de comando
@*
@item Backspace / Delete
Apagar o caractere anterior / seguinte na linha de comando@*
@*
@item Tab
Completar o comando ou o nick (@kbd{Tab} novamente : encontrar a pr@'oxima sugest@~ao)@*
@*
@item Qualquer caractere
Inserir o caractere na linha de comando, no s@'itio do cursor@*
@*
@item Enter
Executa o comando ou envia a mensagem@*
@*
@item Seta para cima / Seta para baixo
Repetir os ultimos comandos/mensagens@*
@*
@item Ctrl + up arrow / Ctrl + down arrow
Call again last commands/messages in global history@*
@*
@item PageUp / PageDown
Navegar no hist@'orico da janela@*
@*
@item F5 / F6
Comute ao amortecedor anterior / seguinte@*
@*
@item F7 / F8
Comute ao janela anterior / seguinte@*
@*
@item F10
Apagar a @'ultima mensagem da barra do info@*
@*
@item F11 / F12
Scroll nicklist@*
@*
@item Alt + Seta da esquerda / Alt + Seta da direita
Identico a F5 / F6@*
@*
@item Alt + A
Comute ao amortecedor seguinte com atividade (com prioridade: destaque, mensagem, outra)@*
@*
@item Alt + B
Go to previous word@*
@*
@item Alt + D
Delete next word@*
@*
@item Alt + F
Go to next word@*
@*
@item Alt + H
Hotlist desobstru@'ido (notifica@,{c}@~ao da atividade em outros amortecedores)@*
@*
@item Alt + J then Alt + D
Exposi@,{c}@~ao DCC atual@*
@*
@item Alt + J then Alt + L
Switch to last buffer@*
@*
@item Alt + J then Alt + S
Comute ao amortecedor do servidor@*
@*
@item Alt + J then Alt + X
Comute @`a primeira canaleta do servidor seguinte (ou do amortecedor do servidor se nenhuma canaleta for aberta)@*
@*
@item Alt + d@'igito (1-9)
Comute ao amortecedor pelo n@'umero@*
@*
@item Alt + J then number (01-99)
Comute ao amortecedor pelo n@'umero@*
@*
@item Alt + K
Grab a key
@*
@item Alt + R
Delete entire line@*
@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
@end table
@node Comandos do WeeChat, FIFO pipe, Recursos de teclado, Utilizacao
@section Comandos do WeeChat
WeeChat internal commands:@*
@table @kbd
@item alias [alias_name [command [arguments]]
@*
create an alias for a command@*
@*
alias_name: name of alias@*
command: command name (WeeChat or IRC command, without first '/')@*
arguments: arguments for command@*
@*
@item buffer [action | number]
@*
manage buffers@*
@*
action: action to do:@*
move: move buffer in the list (may be relative, for example -1)@*
close: close buffer (for channel: same as /part without part message)@*
list: list opened buffers (no parameter implies this list)@*
notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)@*
number: jump to buffer by number@*
@*
@item clear [-all]
@*
clear window(s)@*
@*
-all: clear all windows@*
@*
@item connect [servername]
@*
connect to a server@*
@*
servername: server name to connect@*
@*
@item disconnect [servername]
@*
disconnect from a server@*
@*
servername: server name to disconnect@*
@*
@item debug dump
@*
print debug messages@*
@*
dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)@*
@*
@item help [command]
@*
display help about commands@*
@*
command: name of a WeeChat or IRC command@*
@*
@item ignore [mask [[type | command] [channel [server]]]]
@*
ignore IRC messages and/or hosts@*
@*
mask: nick or host mask to ignore@*
type: type of message to ignore (action, ctcp, dcc, pv)@*
command: IRC command@*
channel: name of channel for ignore@*
server: name of server for ignore@*
@*
For each argument, '*' means all.@*
Without argument, /ignore command lists all defined ignore.@*
@*
@item key [key function/command] [unbind key] [functions] [reset -yes]
@*
bind/unbind keys@*
@*
key: bind this key to an internal function or a command (beginning by "/")@*
unbind: unbind a key (if "all", default bindings are restored)@*
functions: list internal functions for key bindings@*
reset: restore bindings to the default values and delete ALL personal binding (use carefully!)@*
@*
@item plugin [load filename] | [autoload] | [reload] | [unload]
@*
list/load/unload plugins@*
@*
filename: WeeChat plugin (file) to load@*
@*
Without argument, /plugin command lists all loaded plugins.@*
@*
@item server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername]
@*
list, add or remove servers@*
@*
servername: server name, for internal & display use@*
hostname: name or IP address of server@*
port: port for server (integer)@*
ipv6: use IPv6 protocol@*
ssl: use SSL protocol@*
password: password for server@*
nick1: first nick for server@*
nick2: alternate nick for server@*
nick3: second alternate nick for server@*
username: user name@*
realname: real name of user@*
@*
@item save [file]
@*
save config to disk@*
@*
file: filename for writing config@*
@*
@item set [option [ = value]]
@*
set config parameters@*
@*
option: name of an option (if name is full and no value is given, then help is displayed on option)@*
value: value for option@*
@*
@item unalias alias_name
@*
remove an alias@*
@*
alias_name: name of alias to remove@*
@*
@item unignore [number | [mask [[type | command] [channel [server]]]]]
@*
unignore IRC messages and/or hosts@*
@*
number: # of ignore to unignore (number is displayed by list of ignore)@*
mask: nick or host mask to unignore@*
type: type of message to unignore (action, ctcp, dcc, pv)@*
command: IRC command@*
channel: name of channel for unignore@*
server: name of server for unignore@*
@*
For each argument, '*' means all.@*
Without argument, /unignore command lists all defined ignore.@*
@*
@item window [list | -1 | +1 | b# | splith | splitv | [merge [down | up | left | right | all]]]
@*
manage windows@*
@*
list: list opened windows (no parameter implies this list)@*
-1: jump to previous window@*
+1: jump to next window@*
b#: jump to next window displaying buffer number #@*
splith: split current window horizontally@*
splitv: split current window vertically@*
merge: merge window with another@*
@*
@end table
IRC commands:@*
@table @kbd
@item admin [target]
@*
find information about the administrator of the server@*
@*
target: server@*
@*
@item ame message
@*
send a CTCP action to all channels of all connected servers@*
@*
message: message to send@*
@*
@item amsg text
@*
send message to all channels of all connected servers@*
@*
text: text to send@*
@*
@item away [-all] [message]
@*
toggle away status@*
@*
-all: toggle away status on all connected servers@*
message: message for away (if no message is given, away status is removed)@*
@*
@item ban [channel] [nickname [nickname ...]]
@*
bans nicks or hosts@*
@*
channel: channel for ban@*
nickname: user or host to ban@*
@*
@item ctcp nickname type [arguments]
@*
send a CTCP message (Client-To-Client Protocol)@*
@*
nickname: user to send CTCP to@*
type: CTCP type (examples: "version", "ping", ..)@*
arguments: arguments for CTCP@*
@*
@item dcc action [nickname [file]]
@*
starts DCC (file or chat) or close chat@*
@*
action: 'send' (file) or 'chat' or 'close' (chat)@*
nickname: nickname to send file or chat@*
file: filename (on local host)@*
@*
@item dehalfop [nickname [nickname]]
@*
removes half channel operator status from nickname(s)@*
@*
@item deop [nickname [nickname]]
@*
removes channel operator status from nickname(s)@*
@*
@item devoice [nickname [nickname]]
@*
removes voice from nickname(s)@*
@*
@item die
@*
shutdown the server@*
@*
@item halfop [nickname [nickname]]
@*
gives half channel operator status to nickname(s)@*
@*
@item info [target]
@*
get information describing the server@*
@*
target: server name@*
@*
@item invite nickname channel
@*
invite a nick on a channel@*
@*
nickname: nick to invite@*
channel: channel to invite@*
@*
@item ison nickname [nickname ...]
@*
check if a nickname is currently on IRC@*
@*
nickname: nickname@*
@*
@item join channel[,channel] [key[,key]]
@*
join a channel@*
@*
channel: channel name to join@*
key: key to join the channel@*
@*
@item kick [channel] nickname [comment]
@*
forcibly remove a user from a channel@*
@*
channel: channel where user is@*
nickname: nickname to kick@*
comment: comment for kick@*
@*
@item kickban [channel] nickname [comment]
@*
kicks and bans a nick from a channel@*
@*
channel: channel where user is@*
nickname: nickname to kick and ban@*
comment: comment for kick@*
@*
@item kill nickname comment
@*
close client-server connection@*
@*
nickname: nickname@*
comment: comment for kill@*
@*
@item links [[server] server_mask]
@*
list all servernames which are known by the server answering the query@*
@*
server: this server should answer the query@*
server_mask: list of servers must match this mask@*
@*
@item list [channel[,channel] [server]]
@*
list channels and their topic@*
@*
channel: channel to list@*
server: server name@*
@*
@item lusers [mask [target]]
@*
get statistics about the size of the IRC network@*
@*
mask: servers matching the mask only@*
target: server for forwarding request@*
@*
@item me message
@*
send a CTCP action to the current channel@*
@*
message: message to send@*
@*
@item mode @{ channel @{[+|-]|o|p|s|i|t|n|b|v@} [limit] [user] [ban mask] @} | @{ nickname @{[+|-]|i|w|s|o@} @}
@*
change channel or user mode@*
@*
channel modes:@*
channel: channel name to modify@*
o: give/take channel operator privileges@*
p: private channel flag@*
s: secret channel flag@*
i: invite-only channel flag@*
t: topic settable by channel operator only flag@*
n: no messages to channel from clients on the outside@*
m: moderated channel@*
l: set the user limit to channel@*
b: set a ban mask to keep users out@*
e: set exception mask@*
v: give/take the ability to speak on a moderated channel@*
k: set a channel key (password)@*
user modes:@*
nickname: nickname to modify@*
i: mark a user as invisible@*
s: mark a user for receive server notices@*
w: user receives wallops@*
o: operator flag@*
@*
@item motd [target]
@*
get the "Message Of The Day"@*
@*
target: server name@*
@*
@item msg receiver[,receiver] text
@*
send message to a nick or channel@*
@*
receiver: nick or channel (may be mask, '*' = current channel)@*
text: text to send@*
@*
@item names [channel[,channel]]
@*
list nicknames on channels@*
@*
channel: channel name@*
@*
@item nick [-all] nickname
@*
change current nickname@*
@*
-all: set new nickname for all connected servers@*
nickname: new nickname@*
@*
@item notice nickname text
@*
send notice message to user@*
@*
nickname: user to send notice to@*
text: text to send@*
@*
@item op nickname [nickname]
@*
gives channel operator status to nickname(s)@*
@*
@item oper user password
@*
get operator privileges@*
@*
user/password: used to get privileges on current IRC server@*
@*
@item part [channel[,channel]] [part_message]
@*
leave a channel@*
@*
channel: channel name to leave@*
part_message: part message (displayed to other users)@*
@*
@item ping server1 [server2]
@*
ping server@*
@*
server1: server to ping@*
server2: forward ping to this server@*
@*
@item pong daemon [daemon2]
@*
answer to a ping message@*
@*
daemon: daemon who has responded to Ping message@*
daemon2: forward message to this daemon@*
@*
@item query nickname [text]
@*
send a private message to a nick@*
@*
nickname: nickname for private conversation@*
text: text to send@*
@*
@item quit [quit_message]
@*
close all connections & quit@*
@*
quit_message: quit message (displayed to other users)@*
@*
@item quote data
@*
send raw data to server without parsing@*
@*
data: raw data to send@*
@*
@item rehash
@*
tell the server to reload its config file@*
@*
@item restart
@*
tell the server to restart itself@*
@*
@item service nickname reserved distribution type reserved info
@*
register a new service@*
@*
distribution: visibility of service@*
type: reserved for future usage@*
@*
@item servlist [mask [type]]
@*
list services currently connected to the network@*
@*
mask: list only services matching this mask@*
type: list only services of this type@*
@*
@item squery service text
@*
deliver a message to a service@*
@*
service: name of service@*
text: text to send@*
@*
@item squit server comment
@*
disconnect server links@*
@*
server: server name@*
comment: comment for quit@*
@*
@item stats [query [server]]
@*
query statistics about server@*
@*
query: c/h/i/k/l/m/o/y/u (see RFC1459)@*
server: server name@*
@*
@item summon user [target [channel]]
@*
give users who are on a host running an IRC server a message asking them to please join IRC@*
@*
user: username@*
target: server name@*
channel: channel name@*
@*
@item time [target]
@*
query local time from server@*
@*
target: query time from specified server@*
@*
@item topic [channel] [topic]
@*
get/set channel topic@*
@*
channel: channel name@*
topic: new topic for channel (if topic is "-delete" then topic is deleted)@*
@*
@item trace [target]
@*
find the route to specific server@*
@*
target: server@*
@*
@item unban [channel] nickname [nickname ...]
@*
unbans nicks or hosts@*
@*
channel: channel for unban@*
nickname: user or host to unban@*
@*
@item userhost nickname [nickname ...]
@*
return a list of information about nicknames@*
@*
nickname: nickname@*
@*
@item users [target]
@*
list of users logged into the server@*
@*
target: server@*
@*
@item version [server | nickname]
@*
gives the version info of nick or server (current or specified)@*
@*
server: server name@*
nickname: nickname@*
@*
@item voice [nickname [nickname]]
@*
gives voice to nickname(s)@*
@*
@item wallops text
@*
send a message to all currently connected users who have set the 'w' user mode for themselves@*
@*
text to send@*
@*
@item who [mask ["o"]]
@*
generate a query which returns a list of information@*
@*
mask: only information which match this mask@*
o: only operators are returned according to the mask supplied@*
@*
@item whois [server] nickname[,nickname]
@*
query information about user(s)@*
@*
server: server name@*
nickname: nickname (may be a mask)@*
@*
@item whowas nickname [,nickname [,nickname ...]] [count [target]]
@*
ask for information about a nickname which no longer exists@*
@*
nickname: nickname to search@*
count: number of replies to return (full search if negative number)@*
target: reply should match this mask@*
@*
@end table
Internal functions for keys:@*
@table @kbd
@item return
terminate line@*
@item tab
complete word@*
@item backspace
delete previous char@*
@item delete
delete next char@*
@item delete_end_line
delete until end of line@*
@item delete_beginning_line
delete until beginning of line@*
@item delete_line
delete entire line@*
@item delete_previous_word
delete previous word@*
@item delete_next_word
delete next word@*
@item clipboard_paste
paste current clipboard content@*
@item transpose_chars
transpose chars@*
@item home
go to beginning of line@*
@item end
go to end of line@*
@item left
move one char left@*
@item previous_word
move to previous word@*
@item right
move one char right@*
@item next_word
move to next word@*
@item up
call previous command in history@*
@item up_global
call previous command in global history@*
@item down
call next command in history@*
@item down_global
call next command in global history@*
@item page_up
scroll one page up@*
@item page_down
scroll one page down@*
@item infobar_clear
clear infobar@*
@item nick_page_up
scroll nicklist one page up@*
@item nick_page_down
scroll nicklist one page down@*
@item nick_beginning
display beginning of nicklist@*
@item nick_end
display end of nicklist@*
@item refresh
refresh screen@*
@item jump_smart
jump to buffer with activity@*
@item jump_dcc
jump to DCC buffer@*
@item jump_last_buffer
jump to last buffer@*
@item jump_server
jump to server buffer@*
@item jump_next_server
jump to next server@*
@item hotlist_clear
clear hotlist@*
@item grab_key
grab a key@*
@end table
@node FIFO pipe, , Comandos do WeeChat, Utilizacao
@section 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:@*
@command{server,channel *text or command here}@*
where server and channel are optional, but if channel is here, server should be too.@*
@*
Some examples:
@table @asis
@item @bullet{} change your nick on freenode to "mynick|out":
@*
@command{echo "freenode */nick mynick|out" >~/.weechat/weechat_fifo_12345}
@*
@item @bullet{} display text on #weechat channel:
@*
@command{echo "freenode,#weechat *hello everybody!" >~/.weechat/weechat_fifo_12345}
@*
@item @bullet{} display text on current channel (buffer displayed by WeeChat):
@*
@command{echo "*hello!" >~/.weechat/weechat_fifo_12345}
@*
@b{Warning:} this is dangerous and you should not do that except if you know what you do!
@*
@item @bullet{} send 2 commands to unload/reload Perl scripts (you have to separate them with \n):
@*
@command{echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345}
@end table
@*
You can write a script to send command to all running WeeChat at same time, for example:@*
@verbatim
#!/bin/sh
if [ $# -eq 1 ]; then
for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do
echo -e "$1" >$fifo
done
fi
@end verbatim
@*
If the script is called "auto_weechat_command", you can run it with:@*
@command{./auto_weechat_command "freenode,#weechat *hello"}
@c ********************************* Plugins **********************************
@node Plugins, Autores/Suporte, Utilizacao, Top
@chapter Plugins
@menu
* Plugins in WeeChat::
* Write a plugin::
* Plugin example::
* Scripts plugins::
@end menu
@node Plugins in WeeChat, Write a plugin, Plugins, Plugins
@section Plugins in WeeChat
A plugin is a C program which can call WeeChat functions defined in an
interface.@*
@*
This C program does not need WeeChat sources to compile and can be
dynamically loaded into WeeChat with command @command{/plugin}.@*
@*
The plugin has to be a dynamic library, for dynamic loading by
operating system.
Under GNU/Linux, the file has ``.so'' extension, ``.dll'' under
Windows.
@node Write a plugin, Plugin example, Plugins in WeeChat, Plugins
@section Write a plugin
@subsection Base rules
The plugin should include ``weechat-plugin.h'' file (available in
WeeChat source code).@*
This file defines structures and types used to communicate with WeeChat.@*
@*
The plugin must have some variables and functions (mandatory, without
them the plugin can't load):@*
@itemize @bullet
@item variables for plugin description:
@itemize @minus
@item plugin_name[]: plugin name
@item plugin_version[]: plugin version
@item plugin_description[]: short description of plugin
@end itemize
@item functions for init and end of plugin:
@itemize @minus
@item weechat_plugin_init: function called when plugin is loaded,
must return PLUGIN_RC_OK (0) if successful, PLUGIN_RC_KO (-1) if error
@item weechat_plugin_end: function called when plugin is unloaded
@end itemize
@end itemize
@subsection API functions
The plugin can call some functions defined in t_weechat_plugin
structure.@*
@*
These functions are detailed below:@*
@itemize @bullet
@item
@command{int ascii_strcasecmp (t_weechat_plugin *plugin,
char *string1, char *string2)}@*
@*
Locale and case independent string comparison.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{string1}: first string for comparison
@item @option{string2}: second string for comparison
@end itemize
@*
@emph{Return value:}@*
@*
Difference between two strings: negative if chaine1 < chaine2,
nul if chaine1 == chaine 2, positive if chaine1 > chaine2@*
@*
@emph{Example:}@*
@*
@code{if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...}@*
@*
@item
@command{int ascii_strncasecmp (t_weechat_plugin *plugin,
char *string1, char *string2, int max)}@*
@*
Locale and case independent string comparison, for ``max'' chars.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{string1}: first string for comparison
@item @option{string2}: second string for comparison
@item @option{max}: max number of chars for comparison
@end itemize
@*
@emph{Return value:}@*
@*
Difference between two strings: negative if chaine1 < chaine2,
nul if chaine1 == chaine 2, positive if chaine1 > chaine2@*
@*
@emph{Example:}@*
@*
@code{if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...}@*
@*
@item
@command{char **explode_string (t_weechat_plugin *plugin,
char *string, char *separators, int num_items_max, int *num_items)}@*
@*
Explode a string according to one or more delimiter(s).@*
@emph{Param@`etres :}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{string}: string to explode
@item @option{separators}: delimiters used for explosion
@item @option{num_items_max}: maximum number of items created (0 means
no limit)
@item @option{num_items}: pointer to int which will contain number of
items created
@end itemize
@*
@emph{Return value:}@*
@*
Array of strings, NULL if problem.@*
Note: the result has to be free by a call to ``free_exploded_string''
function after use.@*
@*
@emph{Example:}@*
@*
@code{char *argv;}@*
@code{int argc;}@*
@code{argv = plugin->explode_string (plugin, string, " ", 0, &argc);}@*
@code{...}@*
@code{if (argv != NULL)}@*
@code{plugin->free_exploded_string (plugin, argv);}@*
@*
@item
@command{char **free_exploded_string (t_weechat_plugin *plugin,
char **string)}@*
@*
Free memory used by a string explosion.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{string}: string exploded by ``explode_string'' function
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example:}@*
@*
@code{char *argv;}@*
@code{int argc;}@*
@code{argv = plugin->explode_string (plugin, string, " ", 0, &argc);}@*
@code{...}@*
@code{if (argv != NULL)}@*
@code{plugin->free_exploded_string (plugin, argv);}@*
@*
@item
@command{void exec_on_files (t_weechat_plugin *plugin, char *directory,
int (*callback)(t_weechat_plugin *, char *))}@*
@*
Execute a function on all files of a directory.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{directory}: directory for searching files
@item @option{callback}: function called for each file found
@end itemize
@*
@emph{Return value:}@*
@*
Aucune.@*
@*
@emph{Exemple :}@*
@*
@code{int callback (t_weechat_plugin *plugin, char *file)}@*
@code{@{}@*
@code{@ @ @ @ plugin->printf_server (plugin, "file: %s", file);}@*
@code{@ @ @ @ return 1;}@*
@code{@}}@*
@code{}@*
@code{...}@*
@code{plugin->exec_on_files (plugin, "/tmp", &callback);}@*
@*
@item
@command{void printf (t_weechat_plugin *plugin,
char *server, char *channel, char *message, ...)}@*
@*
Display a message on a WeeChat buffer, identified by server and
channel (both may be NULL for current buffer).@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{server}: name of server to find buffer for message
display (may be NULL)
@item @option{channel}: name of channel to find buffer for message
display (may be NULL)
@item @option{message}: message
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Examples:}@*
@*
@code{plugin->printf (NULL, NULL, "hello");}@*
@code{plugin->printf (NULL, "#weechat", "hello");}@*
@code{plugin->printf ("freenode", "#weechat", "hello");}@*
@*
@item
@command{void printf_server (t_weechat_plugin *plugin,
char *message, ...)}@*
@*
Display a message on server buffer.@*
@emph{Param@`etres :}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{message}: message
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example:}@*
@*
@code{plugin->printf_server ("hello");}@*
@*
@item
@command{void printf_infobar (t_weechat_plugin *plugin,
int time, char *message, ...)}@*
@*
Display a message in infobar for a specified time.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{time}: time in seconds for displaying message (0 means
never erased)
@item @option{message}: message
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example:}@*
@*
@code{plugin->printf_infobar (5, "hello");}@*
@*
@item
@command{t_plugin_handler *msg_handler_add (t_weechat_plugin
*plugin, char *message, t_plugin_handler_func *handler_func,
char *handler_args, void *handler_pointer)}@*
@*
Add an IRC message handler, called when an IRC message is received.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{message}: IRC message (for example: ``PRIVMSG'')
@item @option{handler_func}: function called when message is received
@item @option{handler_args}: arguments given to function when called
@item @option{handler_pointer}: pointer given to function when called
@end itemize
@*
@emph{Return value:}@*
@*
Pointer to new message handler.@*
@*
@emph{Example:}@*
@*
@code{int msg_kick (t_weechat_plugin *plugin, char *server,
char *command, char *arguments, char *handler_args,
void *handler_pointer)}@*
@code{@{}@*
@code{@ @ @ @ plugin->printf (plugin, server, NULL, "KICK received");}@*
@code{@ @ @ @ return PLUGIN_RC_OK;}@*
@code{@}}@*
@code{...}@*
@code{plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);}@*
@*
@emph{Notes:}@*
@*
Function called when message is received has to return one of these values:@*
@itemize @minus
@item @option{PLUGIN_RC_KO or -1}: function failed
@item @option{PLUGIN_RC_OK or 0}: function successfully completed
@item @option{PLUGIN_RC_OK_IGNORE_WEECHAT or 1}: message will not be sent to
WeeChat
@item @option{PLUGIN_RC_OK_IGNORE_PLUGINS or 2}: message will not be sent to
other plugins
@item @option{PLUGIN_RC_OK_IGNORE_ALL or 3}: message will not be sent to
WeeChat neither other plugins
@end itemize
@*
@item
@command{t_plugin_handler *cmd_handler_add (t_weechat_plugin
*plugin, char *command, char *description, char *arguments,
char *arguments_description, t_plugin_handler_func *handler_func,
char *handler_args, void *handler_pointer)}@*
@*
Add a WeeChat command handler, called when user uses command
(for example /command).@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{command}: the new command
@item @option{description}: command description (displayed by /help
command)
@item @option{arguments}: short description of command arguments
(displayed by /help command)
@item @option{arguments_description}: long description of command
arguments (displayed by /help command)
@item @option{handler_func}: function called when comand is executed
@item @option{handler_args}: arguments given to function when called
@item @option{handler_pointer}: pointer given to function when called
@end itemize
@*
@emph{Return value:}@*
@*
Pointer to new command handler.@*
@*
@emph{Example:}@*
@*
@code{int cmd_test (t_weechat_plugin *plugin, char *server,
char *command, char *arguments, char *handler_args,
void *handler_pointer)}@*
@code{@{}@*
@code{@ @ @ @ plugin->printf (plugin, server, NULL, "test command,
file: %s", (arguments) ? arguments : "none");}@*
@code{@ @ @ @ return PLUGIN_RC_OK;}@*
@code{@}}@*
@code{...}@*
@code{plugin->cmd_handler_add (plugin, "test", "Test command",
"[file]", "file: a file name", &cmd_test, NULL, NULL);}@*
@*
@emph{Notes:}@*
@*
Function called when message is received has to return one of these values:@*
@itemize @minus
@item @option{PLUGIN_RC_KO or -1}: function failed
@item @option{PLUGIN_RC_OK or 0}: function successfully completed
@end itemize
@*
@item
@command{void handler_remove (t_weechat_plugin *plugin,
t_plugin_handler *handler)}@*
@*
Remove a command handler.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{handler}: handler to remove
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example:}@*
@*
@code{plugin->handler_remove (plugin, my_handler);}@*
@*
@item
@command{void handler_remove_all (t_weechat_plugin *plugin)}@*
@*
Remove all handlers for a plugin.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example :}@*
@*
@code{plugin->handler_remove_all (plugin);}@*
@*
@item
@command{void exec_command (t_weechat_plugin
*plugin, char *server, char *channel, char *command)}@*
@*
Execute a WeeChat command (or send a message to a channel).@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{server}: name of server for executing command (may be
NULL)
@item @option{channel}: name of channel for executing command (may be
NULL)
@item @option{command}: command
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Examples:}@*
@*
@code{plugin->exec_command (plugin, NULL, NULL, "/help nick");}@*
@code{plugin->exec_command (plugin, "freenode", "#weechat", "hello");}@*
@*
@item
@command{char *get_info (t_weechat_plugin
*plugin, char *info, char *server, char *channel)}@*
@*
Return an info about WeeChat or a channel.@*
@emph{Param@`etres :}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{info}: name of info to read:
@itemize @minus
@item @option{version}: get WeeChat's version
@item @option{nick}: get nick
@item @option{channel}: get channel name
@item @option{server}: get server name
@item @option{away}: get ``away'' flag
@item @option{weechat_dir}: get WeeChat home dir
@item @option{weechat_libdir}: get WeeChat system lib dir
@item @option{weechat_sharedir}: get WeeChat system share dir
@end itemize
@item @option{server}: name of server for reading info (if needed)
@item @option{channel}: name of channel for reading info (if needed)
@end itemize
@*
@emph{Return value:}@*
@*
Information asked, NULL if not found.@*
Note: result has to be free by a call to ``free'' function after
use.@*
@*
@emph{Examples:}@*
@*
@code{char *version = plugin->get_info (plugin, "version", NULL, NULL);}@*
@code{char *nick = plugin->get_info (plugin, "nick", "freenode", NULL);}@*
@*
@item
@command{t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin)}@*
@*
Returns list of DCC currently active or finished.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@end itemize
@*
@emph{Return value:}@*
@*
Chained list of DCC.@*
Note: result has to be free by a call to ``free_dcc_info'' function
after use.@*
@*
@emph{Example:}@*
@*
@code{t_plugin_dcc_info *dcc_info = plugin->get_dcc_info (plugin);}@*
@code{for (ptr_dcc = dcc_info; ptr_dcc; ptr_dcc =
ptr_dcc->next_dcc)}@*
@code{@{}@*
@code{@ @ @ @ plugin->printf_server (plugin, "DCC type=%d, with: %s",
ptr_dcc->type, ptr_dcc->nick);}@*
@code{@}}@*
@*
@item
@command{void free_dcc_info (t_weechat_plugin *plugin,
t_plugin_dcc_info *dcc_info)}@*
@*
Free memory used by a DCC list.@*
@emph{Param@`etres :}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{dcc_info}: pointer to DCC list returned by
``get_dcc_info'' function
@end itemize
@*
@emph{Return value:}@*
@*
None.@*
@*
@emph{Example:}@*
@*
@code{plugin->free_dcc_info (plugin, dcc_info);}@*
@*
@item
@command{char *get_config (t_weechat_plugin
*plugin, char *option)}@*
@*
Return value of a WeeChat config option.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{option}: name of option to read
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, NULL if not found.@*
Note: result has to be free by a call to ``free'' function after
use.@*
@*
@emph{Examples:}@*
@*
@code{char *value1 = plugin->get_config (plugin, "look_nicklist");}@*
@code{char *value2 = plugin->get_config (plugin, "freenode.server_autojoin");}@*
@*
@item
@command{int set_config (t_weechat_plugin
*plugin, char *option, char *value)}@*
@*
Update value of a WeeChat config option.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{option}: name of option to update
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if option was updated successfully, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{plugin->set_config (plugin, "look_nicklist", "off");}@*
@*
@item
@command{char *get_plugin_config (t_weechat_plugin
*plugin, char *option)}@*
@*
Return value of a plugin option.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{option}: name of option to read
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, NULL if not found.@*
Note: result has to be free by a call to ``free'' function after
use.@*
@*
@emph{Example:}@*
@*
@code{char *value = plugin->get_plugin_config (plugin, "my_var");}@*
@*
@item
@command{int set_plugin_config (t_weechat_plugin
*plugin, char *option, char *value)}@*
@*
Update value of a plugin option.@*
@emph{Arguments:}
@itemize @minus
@item @option{plugin}: pointer to plugin structure
@item @option{option}: name of option to update
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if option was updated successfully, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{plugin->set_plugin_config (plugin, "my_var", "value");}@*
@*
@end itemize
@subsection Compile plugin
Compile does not need WeeChat sources, only file
``weechat-plugin.h''.@*
To compile a plugin which has one file ``toto.c'' (sous GNU/Linux):@*
@*
gcc -fPIC -Wall -c toto.c@*
gcc -shared -fPIC -o libtoto.so toto.o
@subsection Load plugin under WeeChat
Copy ``libtoto.so'' file into general plugins dir (for example
/usr/local/lib/weechat/plugins) or into user's plugins dir (for
example /home/xxxxx/.weechat/plugins).@*
@*
Under WeeChat:@*
@command{/plugin load toto}
@node Plugin example, Scripts plugins, Write a plugin, Plugins
@section Plugin example
Full example of plugin, which adds a /double command, which displays
two times arguments on current channel (ok that's not very useful, but
that's just an example!):@*
@verbatim
#include <stdlib.h>
#include "weechat-plugin.h"
char plugin_name[] = "Toto";
char plugin_version[] = "0.1";
char plugin_description[] = "Test plugin for WeeChat";
/* "/hello" command handler */
int toto_cmd_double (t_weechat_plugin *plugin, char *server,
char *command, char *arguments,
char *handler_args, void *handler_pointer)
{
if (arguments && arguments[0] && (arguments[0] != '/'))
{
plugin->exec_command (plugin, NULL, NULL, arguments);
plugin->exec_command (plugin, NULL, NULL, arguments);
}
return PLUGIN_RC_OK;
}
int weechat_plugin_init (t_weechat_plugin *plugin)
{
plugin->cmd_handler_add (plugin, "double",
"Display two times a message",
"msg",
"msg: message",
&toto_cmd_double,
NULL, NULL);
return PLUGIN_RC_OK;
}
void weechat_plugin_end (t_weechat_plugin *plugin)
{
/* nothing done here */
}
@end verbatim
@node Scripts plugins, , Plugin example, Plugins
@section Scripts plugins
Three plugins are provided with WeeChat to load scripts: Perl,
Python and Ruby.
@subsection Perl scripts
@subsubsection Carregar/Descarregar Scripts Perl
Os Scripts Perl s@~ao carregados e descarregados com o comando @command{/perl}.
(escreve @kbd{/help perl} dentro do WeeChat para obteres ajuda acerca do comando).@*
@emph{Exemplos:}@*
@itemize @bullet
@item
Carregar um Script Perl: @kbd{/perl load /tmp/sample.pl}@*
@item
Descarregar todos os Scripts Perl: @kbd{/perl unload}@*
@item
Listar todos os Scripts Perl: @kbd{/perl}@*
@end itemize
@subsubsection Interface WeeChat / Perl
@itemize @bullet
@item
@command{weechat::register ( nome, vers@~ao, fun@,{c}@~ao_de_shutdown, descri@,{c}@~ao );}@*
@*
Esta @'e a primeira fun@,{c}@~ao a invocar num Script Perl.@*
Todos os Scripts Perl para o Weechat devem invocar esta fun@,{c}@~ao.@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome @'unico que indentifique o script (cada Script Perl deve ter um @'unico nome)
@item @option{vers@~ao}: vers@~ao do script
@item @option{fun@,{c}@~ao_de_shutdown}: fun@,{c}@~ao Perl invocada quando o script é descarregado (par@^ametro opcional, se deixado em branco significa que nada deve ser chamado)
@item @option{descri@,{c}@~ao}: breve descri@,{c}@~ao do script.
@end itemize
@*
@emph{Return value:}@*
@*
1 if script was registered, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat::register ("sample", "1.0", "sample_end", "Sample script!");}@*
@*
@item
@command{weechat::print ( mensagem, [canal, [servidor]] );}@*
@*
Imprimne uma mensagem na canal.@*
@emph{Argumentos:}
@itemize @minus
@item @option{mensagem}: mensagem a mostrar
@item @option{canal}: nome da canal
@item @option{servidor}: nome interno da servidor
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Exemplos:}@*
@*
@code{weechat::print ("mensagem");}@*
@code{weechat::print ("mensagem", "#weechat");}@*
@code{weechat::print ("mensagem", "#weechat", "freenode");}@*
@*
@item
@command{weechat::print_infobar ( atrasa, mensagem );}@*
@*
Imprimne uma mensagem na barra do info.@*
@emph{Argumentos:}
@itemize @minus
@item @option{atrasa}: depois que isto atrasa (nos segundos), a mensagem estar@'a apagada
(se 0, mensagem n@~ao forem apagados).
@item @option{mensagem}: mensagem a mostrar
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat::print_infobar (5, "mensagem");}@*
@*
@item
@command{weechat::add_message_handler ( nome, fun@,{c}@~ao );}@*
@*
Anexa uma fun@,{c}@~ao Perl a uma mensagem de IRC.@*
A fun@,{c}@~ao ser@'a invocada de cada vez que a mensagem IRC for recebida.@*
@emph{Argumentos:}
@itemize @minus
@item @option{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: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@*
RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt}
@item @option{fun@,{c}@~ao}: fun@,{c}@~ao Perl invocada quando a mensagem é recebida
@end itemize
@*
@emph{Return value:}@*
@*
1 if Perl function was attached, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat::add_message_handler ("privmsg", my_function);}@*
@code{sub my_function}@*
@code{@{ }@*
@code{@ @ @ @ ($null, $channel, $message) = split ":",@@_[0],3;}@*
@code{@ @ @ @ ($hostmask, $null, $channel) = split " ", $channel;}@*
@code{@ @ @ @ weechat::print ("host=$hostmask, chan=$channel, msg=$message\n");}@*
@code{@ @ @ @ return 0;}@*
@code{@} }@*
@*
@emph{Notes:}@*
@*
Function called when message is received has to return one of these values:@*
@itemize @minus
@item @option{-1}: function failed
@item @option{0}: function successfully completed
@item @option{1}: message will not be sent to WeeChat
@item @option{2}: message will not be sent to other plugins
@item @option{3}: message will not be sent to WeeChat neither other plugins
@end itemize
@*
@item
@command{weechat::add_command_handler ( nome, fun@,{c}@~ao );}@*
@*
Cria um novo comando do Weechat, ligado a uma fun@,{c}@~ao Perl.@*
A fun@,{c}@~ao ser@'a chamada quando o utilizador a invocar utilizando @command{/nome}@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome do novo comando@*
Este nome pode pertencer a um comando já existente, o qual ser@'a sobreposto pela fun@,{c}@~ao Perl. Tem cuidado quando fizeres isto: os comandos originais não estar@~ao acessiveis antes de teres descarregado o Script Perl.
@item @option{fun@,{c}@~ao}: fun@,{c}@~ao Perl ligada ao comando
@item @option{description}: command description (displayed by /help
command)
@item @option{arguments}: short description of command arguments
(displayed by /help command)
@item @option{arguments_description}: long description of command
arguments (displayed by /help command)
@end itemize
@*
@emph{Return value:}@*
@*
1 if Perl function was attached, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat::add_command_handler ("command", my_command);}@*
@code{sub my_command}@*
@code{@{ }@*
@code{@ @ @ @ weechat::print("Argumentos: ".@@_[0]);}@*
@code{@ @ @ @ return 0;}@*
@code{@} }@*
@*
@emph{Notes:}@*
@*
Function called when command is executed has to return one of these values:@*
@itemize @minus
@item @option{-1}: function failed
@item @option{0}: function successfully completed
@end itemize
@*
@item
@command{weechat::remove_handler ( name, function );}@*
@*
Remove a message or command handler.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of IRC message or command handler
@item @option{function}: Perl function
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{weechat::remove_handler ("command", my_command);}@*
@*
@item
@command{weechat::command ( command, [channel, [server]] );}@*
@*
Execute a command or send a message to a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{command}: command to execute (or message to send in a channel)
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Examples:}@*
@*
@code{weechat::command ("hello world!");}@*
@code{weechat::command ("/kick toto please leave this chan", "#weechat");}@*
@code{weechat::command ("/nick newnick", "", "freenode");}@*
@*
@item
@command{weechat::get_info ( nome, [servidor, [canal] ] );}@*
@*
Comece o v@'ario info sobre WeeChat, servidor ou usu@'ario.@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome do info a recuperar:
@itemize @minus
@item @option{version}: comece a vers@~ao de WeeChat
@item @option{nick}: comece o nickname
@item @option{channel}: comece o nome da canal
@item @option{server}: comece o nome do servidor
@item @option{away}: get ``away'' flag
@item @option{weechat_dir}: get WeeChat home dir
@item @option{weechat_libdir}: get WeeChat system lib dir
@item @option{weechat_sharedir}: get WeeChat system share dir
@end itemize
@item @option{servidor}: nome interno da servidor
@item @option{canal}: nome da canal
@end itemize
@*
@emph{Return value:}@*
@*
Asked info, empty if error occured or info was not found.@*
@*
@emph{Exemplos:}@*
@*
@code{$version = get_info("version");}@*
@code{$nick = get_info("nick", "freenode");}@*
@*
@item
@command{weechat::get_dcc_info ( );}@*
@*
Get DCC list.@*
Returned array has following fields:
@itemize @minus
@item server: IRC server
@item channel: IRC channel
@item type: DCC type:
@itemize @minus
@item 0: chat (received)
@item 1: chat (sent)
@item 2: file (receiving)
@item 3: file (sending)
@end itemize
@item status: DCC status:
@itemize @minus
@item 0: waiting
@item 1: connecting
@item 2: active
@item 3: done
@item 4: failed
@item 5: aborted
@end itemize
@item start_time: date/time of DCC creation
@item start_transfer: date/time of transfer start
@item addr: remote address
@item port: port used for DCC
@item nick: remote nick
@item filename: filename
@item local_filename: local filename
@item size: file size
@item pos: current position in file
@item start_resume: restart position after interruption
@item bytes_per_sec: bytes sent/received per second
@end itemize
@*
@emph{Return value:}@*
@*
DCC list, 0 if error occured.@*
@*
@item
@command{weechat::get_config ( option );}@*
@*
Get WeeChat config option value.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, empty if error occured or option was not found.@*
@*
@emph{Examples:}@*
@*
@code{$value1 = weechat::get_config ("look_nicklist");}@*
@code{$value2 = weechat::get_config ("freenode.server_autojoin");}@*
@*
@item
@command{weechat::set_config ( option, value );}@*
@*
Get WeeChat config option value.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Examples:}@*
@*
@code{weechat::set_config ("look_nicklist", "off");}@*
@code{weechat::set_config ("freenode.server_autojoin"", "#weechat");}@*
@*
@item
@command{weechat::get_plugin_config ( option );}@*
@*
Return value of a plugin option.@*
Option is read from file ~/.weechat/plugins.rc and is like:@*
@code{plugin.script.option=value}@*
Note: plugin and script names are automatically added.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, empty if error occured or option was not found.@*
@*
@emph{Example:}@*
@*
@code{$value = weechat::get_plugin_config ("my_var");}@*
@*
@item
@command{weechat::set_plugin_config ( option, value );}@*
@*
Update value of a plugin option.@*
Option is written in file ~/.weechat/plugins.rc and is like:@*
@code{plugin.script.option=value}@*
Note: plugin and script names are automatically added.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{weechat::set_plugin_config ("my_var", "value");}@*
@*
@end itemize
@subsection Python scripts
@subsubsection Carregar/Descarregar Scripts Python
Os Scripts Python s@~ao carregados e descarregados com o comando @command{/python}.
(escreve @kbd{/help python} dentro do WeeChat para obteres ajuda acerca do comando).@*
@emph{Exemplos:}@*
@itemize @bullet
@item
Carregar um Script Python: @kbd{/python load /tmp/sample.py}@*
@item
Descarregar todos os Scripts Python: @kbd{/python unload}@*
@item
Listar todos os Scripts Python: @kbd{/python}@*
@end itemize
@subsubsection Interface WeeChat / Python
@itemize @bullet
@item
@command{weechat.register ( nome, vers@~ao, fun@,{c}@~ao_de_shutdown, descri@,{c}@~ao );}@*
@*
Esta @'e a primeira fun@,{c}@~ao a invocar num Script Python.@*
Todos os Scripts Python para o Weechat devem invocar esta fun@,{c}@~ao.@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome @'unico que indentifique o script (cada Script Python deve ter um @'unico nome)
@item @option{vers@~ao}: vers@~ao do script
@item @option{fun@,{c}@~ao_de_shutdown}: fun@,{c}@~ao Python invocada quando o script é descarregado (par@^ametro opcional, se deixado em branco significa que nada deve ser chamado)
@item @option{descri@,{c}@~ao}: breve descri@,{c}@~ao do script.
@end itemize
@*
@emph{Return value:}@*
@*
1 if script was registered, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat.register ("sample", "1.0", "sample_end", "Sample script!")}@*
@*
@item
@command{weechat.prnt ( mensagem, [canal, [servidor]] )}@*
@*
Imprimne uma mensagem na canal.@*
@emph{Argumentos:}
@itemize @minus
@item @option{mensagem}: mensagem a mostrar
@item @option{canal}: nome da canal
@item @option{servidor}: nome interno da servidor
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Exemplos:}@*
@*
@code{weechat.prnt ("mensagem")}@*
@code{weechat.prnt ("mensagem", "#weechat")}@*
@code{weechat.prnt ("mensagem", "#weechat", "freenode")}@*
@*
@item
@command{weechat.print_infobar ( atrasa, mensagem )}@*
@*
Imprimne uma mensagem na barra do info.@*
@emph{Argumentos:}
@itemize @minus
@item @option{atrasa}: depois que isto atrasa (nos segundos), a mensagem estar@'a apagada
(se 0, mensagem n@~ao forem apagados).
@item @option{mensagem}: mensagem a mostrar
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat.print_infobar (5, "mensagem")}@*
@*
@item
@command{weechat.add_message_handler ( nome, fun@,{c}@~ao )}@*
@*
Anexa uma fun@,{c}@~ao Python a uma mensagem de IRC.@*
A fun@,{c}@~ao ser@'a invocada de cada vez que a mensagem IRC for recebida.@*
@emph{Argumentos:}
@itemize @minus
@item @option{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: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@*
RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt}
@item @option{fun@,{c}@~ao}: fun@,{c}@~ao Python invocada quando a mensagem é recebida
@end itemize
@*
@emph{Return value:}@*
@*
1 if Python function was attached, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat.add_message_handler ("privmsg", my_function)}@*
@code{def my_function(server, args):}@*
@code{@ @ @ @ weechat.prnt("server="+server)}@*
@code{@ @ @ @ null, channel, message = string.split(args, ":", 2)}@*
@code{@ @ @ @ hostmask, null, channel = string.split(string.strip(channel), " ", 2)}@*
@code{@ @ @ @ weechat.prnt("host="+hostmask+", chan="+channel+", msg="+message)}@*
@code{@ @ @ @ return 0}@*
@*
@emph{Notes:}@*
@*
Function called when message is received has to return one of these values:@*
@itemize @minus
@item @option{-1}: function failed
@item @option{0}: function successfully completed
@item @option{1}: message will not be sent to WeeChat
@item @option{2}: message will not be sent to other plugins
@item @option{3}: message will not be sent to WeeChat neither other plugins
@end itemize
@*
@item
@command{weechat.add_command_handler ( nome, fun@,{c}@~ao )}@*
@*
Cria um novo comando do Weechat, ligado a uma fun@,{c}@~ao Python.@*
A fun@,{c}@~ao ser@'a chamada quando o utilizador a invocar utilizando @command{/nome}@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome do novo comando@*
Este nome pode pertencer a um comando já existente, o qual ser@'a sobreposto pela fun@,{c}@~ao Python. Tem cuidado quando fizeres isto: os comandos originais não estar@~ao acessiveis antes de teres descarregado o Script Python.
@item @option{fun@,{c}@~ao}: fun@,{c}@~ao Python ligada ao comando
@item @option{description}: command description (displayed by /help
command)
@item @option{arguments}: short description of command arguments
(displayed by /help command)
@item @option{arguments_description}: long description of command
arguments (displayed by /help command)
@end itemize
@*
@emph{Return value:}@*
@*
1 if Python function was attached, 0 if error occured.@*
@*
@emph{Exemplo:}@*
@*
@code{weechat.add_command_handler ("command", my_command)}@*
@code{def my_command(server, args):}@*
@code{@ @ @ @ weechat.prnt("Servidor:"+server+" Argumentos:"+args)}@*
@*
@emph{Notes:}@*
@*
Function called when command is executed has to return one of these values:@*
@itemize @minus
@item @option{-1}: function failed
@item @option{0}: function successfully completed
@end itemize
@*
@item
@command{weechat.remove_handler ( name, function );}@*
@*
Remove a message or command handler.@*
@emph{Arguments:}
@itemize @minus
@item @option{name}: name of IRC message or command handler
@item @option{function}: Python function
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{weechat.remove_handler ("command", my_command);}@*
@*
@item
@command{weechat.command ( command, [channel, [server]] )}@*
@*
Execute a command or send a message to a channel.@*
@emph{Arguments:}
@itemize @minus
@item @option{command}: command to execute (or message to send in a channel)
@item @option{channel}: name of channel
@item @option{server}: internal name of server
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Examples:}@*
@*
@code{weechat.command ("hello world!")}@*
@code{weechat.command ("/kick toto please leave this chan", "#weechat")}@*
@code{weechat.command ("/nick newnick", "", "freenode")}@*
@*
@item
@command{weechat.get_info ( nome, [servidor] )}@*
@*
Comece o v@'ario info sobre WeeChat, servidor ou usu@'ario.@*
@emph{Argumentos:}
@itemize @minus
@item @option{nome}: nome do info a recuperar:
@itemize @minus
@item @option{version}: comece a vers@~ao de WeeChat
@item @option{nick}: comece o nickname
@item @option{channel}: comece o nome da canal
@item @option{server}: comece o nome do servidor
@item @option{away}: get ``away'' flag
@item @option{weechat_dir}: get WeeChat home dir
@item @option{weechat_libdir}: get WeeChat system lib dir
@item @option{weechat_sharedir}: get WeeChat system share dir
@end itemize
@item @option{servidor}: nome interno da servidor
@end itemize
@*
@emph{Return value:}@*
@*
Asked info, empty if error occured or info was not found.@*
@*
@emph{Exemplos:}@*
@*
@code{$version = weechat.get_info("version")}@*
@code{$nick = weechat.get_info("nick", "freenode")}@*
@*
@item
@command{weechat::get_dcc_info ( );}@*
@*
Get DCC list.@*
Returned array has following fields:
@itemize @minus
@item server: IRC server
@item channel: IRC channel
@item type: DCC type:
@itemize @minus
@item 0: chat (received)
@item 1: chat (sent)
@item 2: file (receiving)
@item 3: file (sending)
@end itemize
@item status: DCC status:
@itemize @minus
@item 0: waiting
@item 1: connecting
@item 2: active
@item 3: done
@item 4: failed
@item 5: aborted
@end itemize
@item start_time: date/time of DCC creation
@item start_transfer: date/time of transfer start
@item addr: remote address
@item port: port used for DCC
@item nick: remote nick
@item filename: filename
@item local_filename: local filename
@item size: file size
@item pos: current position in file
@item start_resume: restart position after interruption
@item bytes_per_sec: bytes sent/received per second
@end itemize
@*
@emph{Return value:}@*
@*
DCC list, 0 if error occured.@*
@*
@item
@command{weechat.get_config ( option );}@*
@*
Get WeeChat config option value.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, empty if error occured or option was not found.@*
@*
@emph{Examples:}@*
@*
@code{$value1 = weechat.get_config ("look_nicklist");}@*
@code{$value2 = weechat.get_config ("freenode.server_autojoin");}@*
@*
@item
@command{weechat.set_config ( option, value );}@*
@*
Get WeeChat config option value.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Examples:}@*
@*
@code{weechat.set_config ("look_nicklist", "off");}@*
@code{weechat.set_config ("freenode.server_autojoin"", "#weechat");}@*
@*
@item
@command{weechat.get_plugin_config ( option );}@*
@*
Return value of a plugin option.@*
Option is read from file ~/.weechat/plugins.rc and is like:@*
@code{plugin.script.option=value}@*
Note: plugin and script names are automatically added.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@end itemize
@*
@emph{Return value:}@*
@*
Value of option, empty if error occured or option was not found.@*
@*
@emph{Example:}@*
@*
@code{$value = weechat.get_plugin_config ("my_var");}@*
@*
@item
@command{weechat.set_plugin_config ( option, value );}@*
@*
Update value of a plugin option.@*
Option is written in file ~/.weechat/plugins.rc and is like:@*
@code{plugin.script.option=value}@*
Note: plugin and script names are automatically added.@*
@emph{Arguments:}
@itemize @minus
@item @option{option}: name of option
@item @option{value}: new value for option
@end itemize
@*
@emph{Return value:}@*
@*
1 if successful, 0 if error occured.@*
@*
@emph{Example:}@*
@*
@code{weechat.set_plugin_config ("my_var", "value");}@*
@*
@end itemize
@subsection Ruby scripts
N@~AO DESENVOLVIDO!
@c **************************** Autores/Suporte *****************************
@node Autores/Suporte, , Plugins, Top
@chapter Autores / Suporte
@ifhtml
@menu
* Autores::
* Obter Suporte::
* Copyright::
@end menu
@end ifhtml
@ifnothtml
@menu
* Autores::
* Obter Suporte::
@end menu
@end ifnothtml
@node Autores, Obter Suporte, Autores/Suporte, Autores/Suporte
@section Autores
O WeeChat @'e desenvolvido por :@*
@itemize @bullet
@item
FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>
@end itemize
@ifhtml
@node Obter Suporte, Copyright, Autores, Autores/Suporte
@end ifhtml
@ifnothtml
@node Obter Suporte, , Autores, Autores/Suporte
@end ifnothtml
@section Obter Suporte
Antes de pedires suporte, agradecemos se leres toda a documenta@,{c}@~ao e a FAQ.@*
(a documenta@,{c}@~ao @'e este documento que est@'as a ler, se n@~ao leste tudo at@'e aqui, est@'a na hora de come@,{c}ares do in@'icio !)@*
@itemize @bullet
@item
Suporte por IRC:@*
- servidor : @b{irc.freenode.net}@*
- canal : @b{#weechat}@*@*
@item
Forum do WeeChat : @uref{http://forums.flashtux.org}@*@*
@item
Suporte por lista de correio-e :@*
- para te inscreveres/desinscreveres :@*@uref{http://mail.nongnu.org/mailman/listinfo/weechat-support}.@*
- para enviares uma mensagem para a lista :@*@email{weechat-support@@nongnu.org}.@*
Os arquivos da lista est@~ao aqui :@*
@uref{http://mail.nongnu.org/archive/html/weechat-support}@*@*
@item
Para mais detalhes, v@^e tamb@'em a p@'agina de suporte do WeeChat :@*
@uref{http://weechat.flashtux.org/support.php}
@end itemize
@ifhtml
@node Copyright, , Obter Suporte, Autores/Suporte
@section Copyright
Este manual documenta o cliente de IRC WeeChat, Ele faz parte do WeeChat.@*
Copyright @copyright{} 2005 FlashCode
<@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@*
Tradu@,{c}@~ao portuguesa de Jo@~ao Jer@'onimo <@email{j_j_b_o@@sapo.pt, j_j_b_o AT sapo.pt}>@*
@*
A utiliza@,{c}@~ao deste documento @'e regida pela GNU General Public
License vers@~ao 2 ou posterior.@*
@end ifhtml
@bye