Introducción
************

Descripción
===========

WeeChat (Wee Enhanced Environment for Chat) es un cliente de IRC libre, rápido y de pequeño tamaño, diseñado para diferentes sistemas operativos.

Las características principales son las siguientes:

  - conexión multi-servidores (con SSL, IPv6, proxy)

  - múltiples interfaces: Curses, wxWidgets, Gtk y Qt

  - pequeño, rápido y ligero.

  - parametrizable y extensible mediante guiones (scripts)

  - conforme a las RFCs 1459, 2810, 2811, 2812, y 2813

  - multi-plataforma (Gnu/Linux, *BSD, MacOS X, Windows y otros sistemas operativos)

  - 100% GPL, con Licencia Libre

La página Web de WeeChat está aquí (en francés):

http://weechat.flashtux.org

Requisitos
==========

Los requisitos para instalar WeeChat son:

  * Un sistema operativo GNU/Linux (con compilador y herramientas asociadas para paquetes de código fuente)

  * Acceso a la cuenta "root" (para instalar WeeChat)

  * Según el interfaz, una de las bibliotecas siguientes:

       - Curses: la librería ncurses,

       - Gtk: *** interfaz no desarrollada por el momento ***,

       - Qt: *** interfaz no desarrollada por el momento ***,

Instalación
***********

Paquetes binarios
=================

Los paquetes binarios están disponibles para las siguientes distribuciones:

  * Debian (o compatible con Debian)

     Para instalar WeeChat: apt-get install weechat-curses

  * Mandrake/Redhat (o cualquier distribución compatible con los paquetes RPM)

     Para instalar WeeChat: rpm -i /direccion/weechat-x.y.z-1.i386.rpm

  * Gentoo

     Para instalar WeeChat: emerge -pf weechat && emerge weechat

  * BSD (no disponible !)

  * Slackware (no disponible!)

  * Windows (no disponible!)

donde x.y.z es la versión de WeeChat (por ejemplo 0.0.1)

Paquetes de fuentes
===================

Escribe en un terminal o una consola:

./configure

make

Nota: si quieres construir WeeChat únicamente para ciertas interfaces, puedes añadir Parámetros a ./configure, escribe ./configure --help para obtener ayuda sobre estas opciones.

Adquiere los derechos de root e instala WeeChat:

su

(introduce la contraseña de root)

make install

CVS
===

Atención: Las fuentes CVS están reservadas para usuarios con experiencia: Es posible que WeeChat no se instale o que se sea bastante inestable. ¡Ya te he avisado!

Para recuperar las fuentes CVS, escribe las líneas siguientes:

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

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

(Si te pregunta una contraseña, simplemente pulsa la tecla Entrar)

Ejecuta el script:

./autogen.sh

Luego, lee las instructiones para Paquetes de fuentes - see Paquetes de fuentes.

Uso
***

Iniciar WeeChat
===============

Parámetros de línea de comandos
-------------------------------

-a, --no-connect
     Disable auto-connect to servers at startup

-c, --config
     Obtener la ayuda del fichero de configuración (lista de opciones)

-f, --key-functions
     Display WeeChat internal functions for keys

-h, --help
     Obtener la ayuda

-i, --irc-commands
     Display IRC commands list

-k, --keys
     Display WeeChat default keys

-l, --license
     Obtener la licencia de WeeChat

-p, --no-plugin
     Don't load any plugin at startup

-v, --version
     Obtener la versión de WeeChat

-w, --weechat-commands
     Display WeeChat commands list

Lanzar WeeChat
--------------

Para ejecutar WeeChat, basta escribir la línea siguiente:

weechat-curses (para el interfaz con Curses)

o weechat-wxwidgets (para el interfaz con wxWidgets)

o weechat-gtk (para el interfaz con Gtk)

o weechat-qt (para el interfaz con Qt)

Cuando se ejecuta WeeChat por primera vez, un fichero de configuración se crea con las opciones por defecto;

El fichero de configuración por defecto está en: ~/.weechat/weechat.rc

Puedes editarlo para configurar WeeChat con las opciones deseadas, o también puedes modificar los parámetros directamente en WeeChat, con la línea /set - see Comandos WeeChat.

Ficheros de configuración
=========================

Enumeración de las opciones del fichero de configuración:

look_set_title
     Define el título de la ventana (el terminal para la interfaz Curses) con el nombre y la versión

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_startup_logo
     Mostrar el logotipo de WeeChat en el arranque

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_startup_version
     Mostrar la versión de Weechat en el arranque

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_weechat_slogan
     Eslógan de WeeChat (si está vacío, el eslógan no será utilizado)

     Typo: cadena (cualquier cadena), valor por defecto: 'the geekest IRC client!'

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

     Typo: cadena (cualquier cadena), valor por defecto: 'ISO-8859-1'

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

     Typo: cadena (cualquier cadena), valor por defecto: 'UTF-8'

look_charset_encode
     Charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 (if empty, messages are not converted)

     Typo: cadena (cualquier cadena), valor por defecto: ''

look_charset_internal
     Forces internal WeeChat charset (should be empty in most cases, that means detected charset is used)

     Typo: cadena (cualquier cadena), valor por defecto: ''

look_one_server_buffer
     Use same buffer for all servers

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

look_buffer_timestamp
     Fecha y hora para las búfers

     Typo: cadena (cualquier cadena), valor por defecto: '[%H:%M:%S]'

look_color_nicks
     Mostrar nombres de usuario con colores diferentes

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_color_nicks_number
     Number of colors to use for nicks colors

     Typo: entero (valores: entre 1 y 10), valor por defecto: 10

look_color_actions
     Mostrar acciones con colores diferentes

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_nicklist
     Mostrar ventana de usuarios (para las ventanas de canal)

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_nicklist_position
     Posición de la ventana de usuarios (arriba (top), izquierda (left), derecha (right, por defecto), abajo (bottom))

     Typo: cadena (valores: 'left', 'right', 'top', 'bottom'), valor por defecto: 'right'

look_nicklist_min_size
     Tamaño mínimo para la ventana de usuarios (ancho o alto, dependiendo de look_nicklist_position (0 = sin tamaño mínimo))

     Typo: entero (valores: entre 0 y 100), valor por defecto: 0

look_nicklist_max_size
     Tamaño máximo para la ventana de usuarios (ancho o alto, dependiendo de look_nicklist_position (0 = sin tamaño máximo, si min == max y > 0, entonces se fija el tamaño))

     Typo: entero (valores: entre 0 y 100), valor por defecto: 0

look_no_nickname
     Texto a mostrar en lugar del nick cuando no se está conectado

     Typo: cadena (cualquier cadena), valor por defecto: '-cmd-'

look_nickmode
     Mostrar modo del usuario ((half)op/voice) antes de cada usuario

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_nickmode_empty
     Mostrar un espacio si el modo de usuario no es (half)op/voice

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

look_nick_completor
     La cadena mostrada tras la finalización de los nombres de usuario

     Typo: cadena (cualquier cadena), valor por defecto: ':'

look_nick_completion_ignore
     Chars ignored for nick completion

     Typo: cadena (cualquier cadena), valor por defecto: '[]-'

look_infobar
     Activa la barra de información

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_infobar_timestamp
     Fecha y hora para las conversaciones guardadas

     Typo: cadena (cualquier cadena), valor por defecto: '%B, %A %d %Y'

look_infobar_seconds
     Mostrar segundos en la hora de la barra de herramientas

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_infobar_delay_highlight
     Retraso (en segundos) para la notificación de mensajes en la barra de información (0 = desactivar las notificaciones en la barra de información)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 7

look_hotlist_names_count
     Max number of names in hotlist (0 = no name displayed, only buffer numbers)

     Typo: entero (valores: entre 0 y 32), valor por defecto: 3

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)

     Typo: entero (valores: entre 1 y 15), valor por defecto: 12

look_hotlist_names_length
     Max length of names in hotlist (0 = no limit)

     Typo: entero (valores: entre 0 y 32), valor por defecto: 0

look_day_change
     Display special message when day changes

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

look_day_change_timestamp
     Timestamp for date displayed when day changed

     Typo: cadena (cualquier cadena), valor por defecto: '%a, %d %b %Y'

col_title
     Color para la barra de título

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_title_bg
     Color de fondo para la barra de título

     Typo: color (color Curses ó Gtk), valor por defecto: 'blue'

col_chat
     Color para el texto de conversación

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_chat_time
     Color para la hora en la ventana de conversación

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_chat_time_sep
     Color para el separador de la hora (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'brown'

col_chat_prefix1
     Color para el primer o tercer carácter de prefijo

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightcyan'

col_chat_prefix2
     Color para el carácter de en medio del prefijo

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_chat_server
     Color for server name

     Typo: color (color Curses ó Gtk), valor por defecto: 'brown'

col_chat_join
     Color for join arrow (prefix)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_chat_part
     Color for part/quit arrow (prefix)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightred'

col_chat_nick
     Color para los nombres de usuario en las acciones (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightcyan'

col_chat_host
     Color para los nombres de máquina (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_chat_channel
     Color para los nombres de canal en las acciones (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_chat_dark
     Color para los separadores oscuros (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'green'

col_chat_highlight
     Color para el alias subrayado (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'yellow'

col_chat_bg
     Color de fondo para la ventana de conversación

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_status
     Color para la barra de estado

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_status_delimiters
     Color para los delimitadores de la barra de estado

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_status_channel
     Color for current channel in status bar

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_status_data_msg
     Color para una ventana con mensajes nuevos (barra de estado)

     Typo: color (color Curses ó Gtk), valor por defecto: 'yellow'

col_status_private
     Color for window with private message (status bar)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightmagenta'

col_status_highlight
     Color para una ventana con resaltado (barra de estado)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightred'

col_status_data_other
     Color para una ventana con nuevos datos (no mensajes) (barra de estado)

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_status_more
     Color para una ventana con nuevos datos (barra de estado)

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_status_bg
     Color de fondo para la ventana de estado

     Typo: color (color Curses ó Gtk), valor por defecto: 'blue'

col_infobar
     Color para el texto de la barra de información

     Typo: color (color Curses ó Gtk), valor por defecto: 'black'

col_infobar_delimiters
     Color para los delimitadores de la barra de información

     Typo: color (color Curses ó Gtk), valor por defecto: 'blue'

col_infobar_highlight
     Color para la notificación en la barra de información

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_infobar_bg
     Color de fondo para la ventana de la barra de información

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_input
     Color para el texto de entrada

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_input_channel
     Color para el texto de entrada (nombre de canal)

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_input_nick
     Color para el texto de entrada (alias)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightcyan'

col_input_delimiters
     Color for input text (delimiters)

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_input_bg
     Color de fondo para la ventana de entrada

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_nick
     Color para los nombres de usuario

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_nick_away
     Color para los usuarios ausentes

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_nick_chanowner
     Color para el símbolo de propietario de canal (especificado en unrealircd)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_nick_chanadmin
     Color para el símbolo de administrador de canal (especificado en unrealircd)

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_nick_op
     Color para el símbolo de operador

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_nick_halfop
     Color para el símbolo de semi-operador

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightmagenta'

col_nick_voice
     Color para el símbolo de voz

     Typo: color (color Curses ó Gtk), valor por defecto: 'yellow'

col_nick_more
     Color para '+' al desplazar nicks

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightmagenta'

col_nick_sep
     Color para el separador de alias

     Typo: color (color Curses ó Gtk), valor por defecto: 'blue'

col_nick_self
     Color para el alias local

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_nick_color1
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'cyan'

col_nick_color2
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'magenta'

col_nick_color3
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'green'

col_nick_color4
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'brown'

col_nick_color5
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightblue'

col_nick_color6
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_nick_color7
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightcyan'

col_nick_color8
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightmagenta'

col_nick_color9
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_nick_color10
     Color for nick

     Typo: color (color Curses ó Gtk), valor por defecto: 'blue'

col_nick_private
     Color para el otro alias en la ventana privada

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_nick_bg
     Color de fondo para los nombres de usuario

     Typo: color (color Curses ó Gtk), valor por defecto: 'default'

col_chat_dcc_selected
     Color para el DCC seleccionado (ventana de conversación)

     Typo: color (color Curses ó Gtk), valor por defecto: 'white'

col_dcc_waiting
     Color para el estado dcc "esperando"

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightcyan'

col_dcc_connecting
     Color para el estado dcc "conectando"

     Typo: color (color Curses ó Gtk), valor por defecto: 'yellow'

col_dcc_active
     Color para el estado dcc "activo"

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightblue'

col_dcc_done
     Color para el estado dcc "terminado"

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightgreen'

col_dcc_failed
     Color para el estado dcc "fallo"

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightred'

col_dcc_aborted
     Color para el estado dcc "abortado"

     Typo: color (color Curses ó Gtk), valor por defecto: 'lightred'

history_max_lines
     Número máximo de líneas en el histórico para un servidor/canal/privado (0 = ilimitado)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 4096

history_max_commands
     Número máximo de comandos de usuario en el histórico (0 = ilimitado)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 100

log_auto_server
     Registrar automáticamente los mensajes de servidor

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

log_auto_channel
     Registrar automáticamente las conversaciones de canal

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

log_auto_private
     Registrar automáticamente las conversaciones privadas

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

log_plugin_msg
     Registrar mensajes de plugins (scripts)

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

log_path
     Ruta para los archivos de registro (logs) de WeeChat

     Typo: cadena (cualquier cadena), valor por defecto: '~/.weechat/logs/'

log_timestamp
     Fecha y hora para los registros (ver man strftime para el formato de fecha/hora)

     Typo: cadena (cualquier cadena), valor por defecto: '%Y %b %d %H:%M:%S'

log_hide_nickserv_pwd
     Ocultar contraseña mostrada por nickserv

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

irc_display_away
     Mostrar mensaje en todos los canales cuando se vuelva del estado ausente

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

irc_default_msg_away
     Mensaje por defecto para el estado ausente

     Typo: cadena (cualquier cadena), valor por defecto: 'away'

irc_default_msg_part
     Mensaje por defecto de salida (saliendo de un canal)

     Typo: cadena (cualquier cadena), valor por defecto: 'WeeChat %v'

irc_default_msg_quit
     Mensaje de fin por defecto ('%v' será reemplazado por la versión de WeeChat en la cadena)

     Typo: cadena (cualquier cadena), valor por defecto: 'WeeChat %v'

irc_notice_as_pv
     Display notices as private messages

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

irc_away_check
     Intervalo entre dos comprobaciones de ausencia (en minutos, 0 = no comprobar)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 0

irc_lag_check
     Intervalo entre dos medidas de lag (en segundos)

     Typo: entero (valores: entre 30 y 2147483647), valor por defecto: 60

irc_lag_min_show
     Lag mínimo a mostrar (en segundos)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 1

irc_lag_disconnect
     Desconexión tras un lag importante (en minutos, 0 = no desconectar nunca)

     Typo: entero (valores: entre 0 y 2147483647), valor por defecto: 5

irc_fifo_pipe
     Crea una tubería FIFO para control remoto

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

irc_highlight
     Comma separated list of words to highlight (case insensitive comparison, words may begin or end with "*" for partial match)

     Typo: cadena (cualquier cadena), valor por defecto: ''

irc_colors_receive
     When off, colors codes are ignored in incoming messages

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

irc_colors_send
     Allow user to send colors with special codes (%B=bold, %Cxx,yy=color, %U=underline, %R=reverse)

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

dcc_auto_accept_files
     Aceptar automáticamente los ficheros dcc entrantes

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

dcc_auto_accept_chats
     Aceptar automáticamente las peticiones de conversación dcc (¡utilizar con precaución!)

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

dcc_timeout
     Tiempo de espera para la petición dcc (en segundos)

     Typo: entero (valores: entre 1 y 2147483647), valor por defecto: 300

dcc_blocksize
     Tamaño de bloque para los paquetes dcc en bytes (por defecto: 65536)

     Typo: entero (valores: entre 1024 y 102400), valor por defecto: 65536

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)

     Typo: cadena (cualquier cadena), valor por defecto: ''

dcc_own_ip
     IP or DNS address used for outgoing dcc (if empty, local interface IP is used)

     Typo: cadena (cualquier cadena), valor por defecto: ''

dcc_download_path
     Ruta para los ficheros recibidos con dcc (por defecto: directorio home del usuario)

     Typo: cadena (cualquier cadena), valor por defecto: '~'

dcc_upload_path
     Ruta para la lectura de ficheros cuando se envían a través de dcc (cuando no se especifica una ruta)

     Typo: cadena (cualquier cadena), valor por defecto: '~'

dcc_convert_spaces
     Convertir los espacios a subrayados cuando se envían los ficheros

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

dcc_auto_rename
     Renombrar los ficheros recibidos si ya existen (añadir '.1', '.2', ...)

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

dcc_auto_resume
     Continuar automáticamente la transferencia dcc si se ha perdido la conexión con la máquina remota

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

proxy_use
     Utilizar un proxy para conectarse al servidor irc

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

proxy_type
     Tipo de proxy(http (por defecto), socks4, socks5)

     Typo: cadena (valores: 'http', 'socks4', 'socks5'), valor por defecto: 'http'

proxy_ipv6
     Conectar al proxy en ipv6

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

proxy_address
     Dirección del servidor proxy (IP o nombre de máquina)

     Typo: cadena (cualquier cadena), valor por defecto: ''

proxy_port
     Puerto para conectarse al servidor proxy

     Typo: entero (valores: entre 0 y 65535), valor por defecto: 3128

proxy_username
     Nombre de usuario para el servidor proxy

     Typo: cadena (cualquier cadena), valor por defecto: ''

proxy_password
     Contraseña para el servidor proxy

     Typo: cadena (cualquier cadena), valor por defecto: ''

plugins_path
     Path for searching plugins

     Typo: cadena (cualquier cadena), valor por defecto: '~/.weechat/plugins'

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")

     Typo: cadena (cualquier cadena), valor por defecto: '*'

plugins_extension
     Standard plugins extension in filename, used for autoload (if empty, then all files are loaded when autoload is "*")

     Typo: cadena (cualquier cadena), valor por defecto: '.so'

server_name
     Nombre asociado al servidor IRC (para mostrar solamente)

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_autoconnect
     Conexión automática al servidor cuando WeeChat esté arrancando

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

server_autoreconnect
     Reconexión automática al servidor tras una desconexión

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

server_autoreconnect_delay
     Espera (en segundos) antes de intentar de nuevo una reconexión al servidor

     Typo: entero (valores: entre 0 y 65535), valor por defecto: 30

server_address
     Dirección IP o nombre de máquina del servidor IRC

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_port
     Puerto para conectarse al servidor

     Typo: entero (valores: entre 0 y 65535), valor por defecto: 6667

server_ipv6
     Usar el protocolo IPv6 para la comunicación del servidor

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

server_ssl
     Usar SSL para la comunicación del servidor

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'off'

server_password
     Contraseña para el servidor IRC

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_nick1
     Nombre de usuario a utilizar en el servidor IRC

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_nick2
     Nombre de usuario alternativo para el servidor IRC (si el nombre de usuario ya está en uso)

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_nick3
     Segundo nombre de usuario alternativo a utilizar en el servidor IRC (si el nombre de usuario alternativo ya está en uso)

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_username
     Nombre de usuario para el servidor IRC

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_realname
     Nombre real para el servidor IRC

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_command
     Primer comando a ejecutar cuando se conecte a un servidor

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_command_delay
     Espera (en segundos) después de que el comando sea ejecutado (ejemplo: dar algo de tiempo para la autenticación)

     Typo: entero (valores: entre 0 y 5), valor por defecto: 0

server_autojoin
     Lista de canales (separados por comas) a unirse cuando se conecte a un servidor (ejemplo: "#chan1,#chan2,#chan3 key1,key2")

     Typo: cadena (cualquier cadena), valor por defecto: ''

server_autorejoin
     Unirse de nuevo automáticamente a los canales cuando sea expulsado

     Typo: booleano (valores: 'on' u 'off'), valor por defecto: 'on'

server_notify_levels
     Lista separada por comas de niveles de notificación para canales de este servidor (formato: #canal:1,...)

     Typo: cadena (cualquier cadena), valor por defecto: ''

Los colores para el interfaz Curses son:

  - default: color por defecto (con transparencia para el fondo)

  - black: negro

  - red: rojo oscuro

  - lightred: rojo claro

  - green: verde oscuro

  - lightgreen: verde claro

  - brown: marrón

  - yellow: amarillo

  - blue: azul oscuro

  - lightblue: azul claro

  - magenta: violeta oscuro

  - lightmagenta: violeta claro

  - cyan: cyan oscuro

  - lightcyan: cyan claro

  - white: blanco

Atajos de teclado
=================

Flecha izquierda / Flecha derecha
     Ir a la letra anterior / siguiente en la línea de comandos

Ctrl + flecha izquierda / Ctrl + flecha derecha
     Ir a la palabra anterior / siguiente en la línea de comandos

Inicio / Ctrl + A
     Ir al inicio de la línea de comandos

Fin / Ctrl + E
     Ir al final de la línea de comandos

Ctrl + K
     Delete until end of line

Ctrl + L
     Refrescar toda la ventana

Ctrl + U
     Delete until beginning of line

Ctrl + W
     Borrar la palabra anterior en la línea de comandos

Backspace / Supr
     Borrar el caracter anterior / siguiente en la línea de comandos

Tab
     Completar el comando o el seudónimo (Tab de nuevo: encontrar la próxima autocompletación)

Cualquier caracter
     Añadir la letra en la posición del cursor en la línea de comandos

Entrar
     Ejecutar la línea de comandos o enviar el mensaje

Flecha de arriba / Flecha de abajo
     Mostrar los últimos comandos/mensajes

Ctrl + up arrow / Ctrl + down arrow
     Call again last commands/messages in global history

PageUp / PageDown
     Obtener el histórico de la memoria temporal (buffer)

F5 / F6
     Ir a la memoria temporal anterior / siguiente

F7 / F8
     Ir a la ventana anterior / siguiente

F10
     Borrar el último mensaje en la barra de informaciones

F11 / F12
     Scroll nicklist

Alt + flecha izquierda / Alt + flecha derecha
     Como F5 / F6

Alt + A
     Ir a la memoria temporal donde hay actividad (con el orden de prioridad siguiente: resaltado, mensaje, otros)

Alt + B
     Go to previous word

Alt + D
     Delete next word

Alt + F
     Go to next word

Alt + H
     Borrar la 'hotlist' (notificación de actividad en otras memorias temporales)

Alt + J then Alt + D
     Obtener la lista de DCC actual

Alt + J then Alt + L
     Switch to last buffer

Alt + J then Alt + S
     Ir a la memoria temporal del servidor

Alt + J then Alt + X
     Ir al primer canal del servidor siguiente (o a la memoria temporal del servidor si ningún canal está abierto)

Alt + (1-9)
     Saltar a la memoria temporal con ese número

Alt + J then number (01-99)
     Saltar a la memoria temporal con ese número

Alt + K
     Grab a key

Alt + R
     Delete entire line

Alt + S
     Switch server on servers buffer

     (if option ``look_one_server_buffer'' is enabled)

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

Comandos WeeChat
================

Comandos internos WeeChat:

alias  [nombre_alias [comando [argumentos]]
     crear un alias para un comando

     nombre_alias: nombre del seudónimo

     comando: nombre del comando (comando WeeChat ó IRC, sin el primer '/')

     argumentos: parámetros para el comando

buffer  [acción | número]
     gestionar los búfers

     acción: acción a efectuar:

     move: desplaza el búfer en la lista (puede ser relativo, por ejemplo, -1)

     close: cierra el búfer (para un canal equivale a /part sin el mensaje de fin)

     list: lista los búfers abiertos (si no hay parámetros se supone esta lista)

     notify: fija el nivel de notificación (0=nunca, 1=highlight, 2=1+msg, 3=2+join/part)

     número: saltar al búfer por número

clear  [-all]
     limpiar la(s) ventana(s)

     -all: limpiar todas las ventanas

connect  [nombre_del_servidor]
     conectarse a un servidor

     nombre_del_servidor: nombre del servidor al que conectarse

disconnect  [nombre_del_servidor]
     desconectarse de un servidor

     nombre_del_servidor: nombre del servidor del que desconectarse

debug  dump
     imprime mensajes de depuración

     volcado: almacena un volcado de memoria en el archivo de registro de Weechat (se escribe el mismo volcado cuando Weechat se cuelga)

help  [comando]
     mostrar ayuda sobre los comandos

     comando: nombre de un comando de Weechat ó de IRC

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.

key  [clave función/comando] [desatar clave] [funciones] [reset -yes]
     atar/desatar claves

     clave: ata esta clave a una función interna o a un comando (comenzando por "/ ")

     desatar: desata una clave(si "all", se restauran los anclajes por defecto)

     funciones: lista funciones internas para el anclaje de claves

     reset: restaura anclajes a los valores por defecto y elimina todos los anclajes personales (usar cuidadosamente)

plugin  [load fichero] | [autoload] | [reload] | [unload]
     list/load/unload plugins

     filename: WeeChat plugin (file) to load

     Without argument, /plugin command lists all loaded plugins.

server  [nombre_de_servidor] | [nombre_de_servidor nombre/IP puerto [-auto | -noauto] [-ipv6] [-ssl] [-pwd contraseña] [-nicks alias1 alias2 alias3] [-username nombre de usuario] [-realname nombre_real] [-command comando] [-autojoin canal[,canal]] ] | [del nombre_de_servidor]
     lista, añade o elimina servidores

     nombre_de_servidor: nombre del servidor, para uso interno y para mostrar

     nombre_de_anfitrión: nombre o dirección IP del servidor

     puerto: puerto para el servidor (número entero)

     ipv6: utilizar protocolo IPv6

     ssl: utilizar protocolo SSL

     contraseña: contraseña para el servidor

     alias1: primer alias para el servidor

     alias2: alias alternativo para el servidor

     alias3: segundo alias alternativo para el servidor

     nombre_de_usuario: nombre de usuario

     nombre_real: nombre real del usuario

save  [archivo]
     guardar configuración a disco

     archivo: fichero en el que guardar la configuración

set  [opción [ = valor]]
     modificar parámetros de configuración

     option: name of an option (if name is full and no value is given, then help is displayed on option)

     value: value for option

unalias  alias
     eliminar un alias

     alias: nombre del alias a suprimir

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.

window  [list | -1 | +1 | b# | splith | splitv | [merge [down | up | left | right | all]]]
     gestión de ventanas

     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

Comandos IRC:

admin  [target]
     encontrar información sobre el administrador del servidor

     target: servidor objetivo

ame  mensaje
     send a CTCP action to all channels of all connected servers

     mensaje: mensaje a enviar

amsg  texto
     send message to all channels of all connected servers

     texto: texto a enviar

away  [-all] [mensaje]
     revertir el estado ausente

     -all: revertir el estado ausente en todos los servidores conectados

     mensaje: mensaje para el estado ausente (si no se da ningún mensaje, se elimina el estado ausente)

ban  [canal] [usariio [usuario ...]]
     banea usuarios o máquinas

     canal: canal en el que banear

     usuario: nombre de usuario o máquina a banear

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

dcc  acción [usuario [fichero]]
     empieza DCC (archivo ó charla) ó cerrar charla

     acción: 'send' (envío de archivo) ó 'chat' (charla) ó 'close' (cerrar charla)

     usuario: nombre de usuario a quien enviar el archivo o la charla

     fichero: nombre del fichero (en la máquina local)

dehalfop  [pseudo [pseudo]]
     elimina el estado de media operador de canal a/a los usuario(s)

deop  [pseudo [pseudo]]
     elimina el estado de operador de canal a/a los usuario(s)

devoice  [pseudo [pseudo]]
     elimina la voz a/a los usuario(s)

die
     cerrar el servidor

halfop  [pseudo [pseudo]]
     dar el estado de media operador de canal a/a los usuario(s)

info  [target]
     obtener información describiendo al servidor

     objetivo: nombre del servidor

invite  usuario canal
     invitar a un usuario a un canal

     nickname: usuario a invitar

     channel: canal para la invitación

ison  usuario [usuario ...]
     comprobar si un usuario está actualmente en el IRC

     usuario: usuario

join  canal[,canal] [clave[,clave]]
     unirse a un canal

     canal: nombre del canal al que unirse

     clave: clave para unirse al canal

kick  [canal] usuario [comentario]
     expulsar forzosamente a un usuario de un canal

     canal: canal en el que está el usuario

     usuario: usuario a expulsar

     comentario: comentario para la expulsión

kickban  [canal] usuario [comentario]
     expulsa y banea a un usuario de un canal

     canal: canal donde está el usuario

     usuario: nombre de usuario a expulsar y banear

     comentario: comentario para la expulsión

kill  usuario comentario
     cerrar la conexión cliente-servidor

     usuario: usuario

     comentario: comentario para la muerte

links  [[servidor] máscara_servidor]
     listar todos los nombres de servidor conocidos por el servidor que responde a la consulta

     servidor: este servidor debería responder a la consulta

     máscara_servidor: listado de servidores que deben coincidir con esta máscara

list  [canal[,canal] [servidor]]
     listar canales y sus temas

     canal: canal a listar

     servidor: nombre del servidor

lusers  [máscara [objetivo]]
     obtener estadísticas sobre el tamaño de la red IRC

     máscara: servidores que coinciden sólo con la máscara

     objetivo: servidor al que remitir la consulta

me  mensaje
     enviar una acción CTCP al canal actual

     mensaje: mensaje a enviar

mode  { canal {[+|-]|o|p|s|i|t|n|b|v} [limitar] [usuario] [máscara de baneo] } | { usuario {[+|-]|i|w|s|o} }
     cambiar modo del canal o del usuario

     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

motd  [target]
     obtener el mensaje del día

     objetivo: nombre del servidor

msg  destinatario[,destinatario] texto
     enviar un mensaje a un usuario o canal

     destinatario: usuario o canal (puede que sea una máscara, '*' = canal actual)

     texto: texto a enviar

names  [canal[,canal]]
     listar usuarios en canales

     canal: nombre del canal

nick  [-all] usuarios
     cambiar el nombre de usuario actual

     -all: establece el nuevo nombre de usuario para todos los servidores conectados

     nickname: nuevo nombre de usuario

notice  usuario texto
     enviar mensaje de aviso a usuario

     usuario: usuario destinatario del aviso

     texto: texto a enviar

op  pseudo [pseudo]
     dar el estado de operador de canal a/a los usuario(s)

oper  contraseña de usuario
     obtener el estado de operador

     usuario/contraseña: usado para obtener los privilegios en el servidor IRC actual

part  [canal[,canal]] [mensaje_de_salida]
     abandonar un canal

     canal: canal a abandonar

     mensaje de salida: mensaje de partida (mostrado al resto de usuarios)

ping  servidor1 [servidor2]
     hacer ping a un servidor

     servidor1: servidor al que hacer ping

     servidor2: remitir el ping a este servidor

pong  demonio [demonio2]
     contestar a un mensaje de ping

     demonio: demonio que ha contestado al mensaje Ping

     démon2: remitir el mensaje a este demonio

query  usuario [texto]
     enviar un mensaje privado a un usuario

     usuario: usuario para conversación privada

     texto: texto a enviar

quit  [mensaje_de_salida]
     cerrar todas las conexiones y salir

     mensaje_de_salida: mensaje de partida (mostrado al resto de usuarios)

quote  datos
     enviar datos en sucio al servidor sin analizar

     datos: datos en sucio a enviar

rehash
     pedir al servidor que recarque su archivo de configuración

restart
     pedir al servidor que se reinicie

service  usuario reservado distribución tipo reservado info
     registrar un nuevo servicio

     distribución: visibilidad del servicio

     tipo: reservado para una futura utilización

servlist  [máscara [tipo]]
     listar servicios conectados actualmente a la red

     máscara: listar sólo aquellos servicios que concuerdan con esta máscara

     tipo: listar sólo servicios de este tipo

squery  servicio texto
     enviar un mensaje a un servicio

     servicio: nombre del servicio

     texto: texto a enviar

squit  comentario de servidor
     desconectar los enlaces de servidor

     servidor: nombre del servidor

     comentario: comentario para salir

stats  [consulta [servidor]]
     pedir estadísticas sobre el servidor

     consulta: c/h/i/k/l/m/o/y/u (ver la RFC1459)

     servidor: nombre del servidor

summon  usuario [destinatario [canal]]
     enviar a los usuarios que están en una máquina local ejecutando un servidor IRC un mensaje pidiéndoles que se unan al IRC

     usuario: nombre de usuario

     destinatario: nombre del servidor

     canal: nombre del canal

time  [target]
     pedir la hora local del servidor

     destinatario: pedir la hora de ese servidor

topic  [canal] [tema]
     obtener/establecer el tema de un canal

     canal: nombre del canal

     tema: nuevo tema para el canal (si el tema es "-delete" entonces se elimina el tema actual)

trace  [target]
     encontrar la ruta hacia el servidor especificado

     target: servidor objetivo

unban  [canal] usuario [usuario ...]
     desbanea usuarios o máquinas

     canal: canal en el que desbanear (quitar la prohibición)

     usuario: usuario o máquina a desbanear

userhost  usuario [usuario ...]
     devuelve una lista de información sobre usuarios

     usuario: usuario

users  [target]
     lista de usuarios conectados al servidor

     target: servidor objetivo

version  [servidor | usuario]
     da la información de versión del usuario o servidor (actual o especificado)

     servidor: nombre de servidor

     usuario: usuario

voice  [pseudo [pseudo]]
     da voz a/a los usuario(s)

wallops  texto
     enviar un mensaje a todos los usuarios conectados que tengan activo el modo de usuario w para ellos mismos

     texto a enviar

who  [máscara ["o"]]
     genera una consulta que devuelve una lista de información

     máscara: sólo información que concuerde con esta máscara

     o: sólo son devueltos operadores de acuerdo con la máscara proporcionada

whois  [servidor] usuario[,usuario]
     pedir información sobre el/los usuario(s)

     servidor: nombre del servidor

     usuario: nombre de usuario (puede que sea una máscara)

whowas  usuario [,usuario [,usuario ...]] [número [destinatario]]
     pedir información sobre un usuario que ya no existe

     usuario: nombre de usuario a buscar

     número: número de respuestas a devolver (búsqueda completa si el número es negativo)

     destinatario: la respuesta debería concordar con esta máscara

Internal functions for keys:

return
     terminar línea

tab
     completar palabra

backspace
     borrar el carácter anterior

delete
     borrar el carácter siguiente

delete_end_line
     borrar hasta fin de línea

delete_beginning_line
     borrar hasta principio de línea

delete_line
     borrar línea entera

delete_previous_word
     borrar la palabra anterior

delete_next_word
     borrar la palabra siguiente

clipboard_paste
     paste current clipboard content

transpose_chars
     transpose chars

home
     ir al principio de línea

end
     ir al final de línea

left
     mover un carácter a la izquierda

previous_word
     mover a la palabra anterior

right
     mover un carácter a la derecha

next_word
     mover a la palabra siguiente

up
     llamar al comando anterior en el historial

up_global
     call previous command in global history

down
     llamar al comando siguiente en el historial

down_global
     call next command in global history

page_up
     desplazarse una página hacia arriba

page_down
     desplazarse una página hacia abajo

infobar_clear
     limpiar barra de información

nick_page_up
     desplazar la lista de nicks una página hacia arriba

nick_page_down
     desplazar la lista de nicks una página hacia abajo

nick_beginning
     mostrar el principio de la lista de nicks

nick_end
     mostrar el final de la lista de nicks

refresh
     recargar la pantalla

jump_smart
     saltar al búfer con actividad

jump_dcc
     saltar al búfer DCC

jump_last_buffer
     jump to last buffer

jump_server
     saltar al búfer servidor

jump_next_server
     saltar al servidor siguiente

hotlist_clear
     limpiar hotlist

grab_key
     grab a key

Canal FIFO
==========

Puedes controlar WeeChat a distantia, enviando comandos o texto a un canal FIFO (debes activar la opción "irc_fifo_pipe" que está desactivada por defecto).

El canal FIFO está dentro del directorio ~/.weechat/ y se llama "weechat_fifo_xxxxx" (donde xxxxx es el ID del proceso (PID) de WeeChat).

Entonces si tienes varios WeeChat que se están ejecutando, tendrás varios canales FIFO, uno por cada sesión.

La sintaxis para enviar comandos o texto dentro del canal FIFO es la siguiente:

servidor,canal *texto o comando aquí

donde el serviros y el canal son opcionales pero si precisa el canal, debes precisar también el servidor.

Algunos ejemplos:

* cambiar el seudónimo en freenode por "mynick|out":
     echo "freenode */nick mynick|out" >~/.weechat/weechat_fifo_12345

* escribir texto en el canal #weechat:
     echo "freenode,#weechat *¡Hola a todos!" >~/.weechat/weechat_fifo_12345

* escribir texto en el canal corriente (el que se puede visualizar en WeeChat actualmente)
     echo "*¡Hola!" >~/.weechat/weechat_fifo_12345 Advertencia: esto es peligroso y no deberías hacerlo.. salvo si lo que estás haciendo.

* enviar dos comandos para descargar y recargar los scripts Perl (tienes que separarlos con un \n):
     echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345

Puedes escribir un script que envia los comandos a todos los programas WeeChat que se están ejecutando de momento. Por ejemplo:

 #!/bin/sh
 if [ $# -eq 1 ]; then
     for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do
         echo -e "$1" >$fifo
     done
 fi
Si el script se llama "auto_weechat_command", puedes ejecutarlo hací:

./auto_weechat_command "freenode,#weechat *Hola"

Plugins
*******

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 /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.

Write a plugin
==============

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):

  * variables for plugin description:

       - plugin_name[]: plugin name

       - plugin_version[]: plugin version

       - plugin_description[]: short description of plugin

  * functions for init and end of plugin:

       - weechat_plugin_init: function called when plugin is loaded, must return PLUGIN_RC_OK (0) if successful, PLUGIN_RC_KO (-1) if error

       - weechat_plugin_end: function called when plugin is unloaded

API functions
-------------

The plugin can call some functions defined in t_weechat_plugin structure.

These functions are detailed below:

  * int ascii_strcasecmp (t_weechat_plugin *plugin,
     char *string1, char *string2)

     Locale and case independent string comparison.

     Arguments:

       - plugin: pointer to plugin structure

       - string1: first string for comparison

       - string2: second string for comparison

     Return value:

     Difference between two strings: negative if chaine1 < chaine2, nul if chaine1 == chaine 2, positive if chaine1 > chaine2

     Example:

     if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...

  * int ascii_strncasecmp (t_weechat_plugin *plugin,
     char *string1, char *string2, int max)

     Locale and case independent string comparison, for ``max'' chars.

     Arguments:

       - plugin: pointer to plugin structure

       - string1: first string for comparison

       - string2: second string for comparison

       - max: max number of chars for comparison

     Return value:

     Difference between two strings: negative if chaine1 < chaine2, nul if chaine1 == chaine 2, positive if chaine1 > chaine2

     Example:

     if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...

  * 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).

     Paramètres :

       - plugin: pointer to plugin structure

       - string: string to explode

       - separators: delimiters used for explosion

       - num_items_max: maximum number of items created (0 means no limit)

       - num_items: pointer to int which will contain number of items created

     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.

     Example:

     char *argv;

     int argc;

     argv = plugin->explode_string (plugin, string, " ", 0, &argc);

     ...

     if (argv != NULL)

     plugin->free_exploded_string (plugin, argv);

  * char **free_exploded_string (t_weechat_plugin *plugin,
     char **string)

     Free memory used by a string explosion.

     Arguments:

       - plugin: pointer to plugin structure

       - string: string exploded by ``explode_string'' function

     Return value:

     None.

     Example:

     char *argv;

     int argc;

     argv = plugin->explode_string (plugin, string, " ", 0, &argc);

     ...

     if (argv != NULL)

     plugin->free_exploded_string (plugin, argv);

  * 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.

     Arguments:

       - plugin: pointer to plugin structure

       - directory: directory for searching files

       - callback: function called for each file found

     Return value:

     Aucune.

     Exemple :

     int callback (t_weechat_plugin *plugin, char *file)

     {

         plugin->printf_server (plugin, "file: %s", file);

         return 1;

     }

     ...

     plugin->exec_on_files (plugin, "/tmp", &callback);

  * 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).

     Arguments:

       - plugin: pointer to plugin structure

       - server: name of server to find buffer for message display (may be NULL)

       - channel: name of channel to find buffer for message display (may be NULL)

       - message: message

     Return value:

     None.

     Examples:

     plugin->printf (NULL, NULL, "hello");

     plugin->printf (NULL, "#weechat", "hello");

     plugin->printf ("freenode", "#weechat", "hello");

  * void printf_server (t_weechat_plugin *plugin,
     char *message, ...)

     Display a message on server buffer.

     Paramètres :

       - plugin: pointer to plugin structure

       - message: message

     Return value:

     None.

     Example:

     plugin->printf_server ("hello");

  * void printf_infobar (t_weechat_plugin *plugin,
     int time, char *message, ...)

     Display a message in infobar for a specified time.

     Arguments:

       - plugin: pointer to plugin structure

       - time: time in seconds for displaying message (0 means never erased)

       - message: message

     Return value:

     None.

     Example:

     plugin->printf_infobar (5, "hello");

  * 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.

     Arguments:

       - plugin: pointer to plugin structure

       - message: IRC message (for example: ``PRIVMSG'')

       - handler_func: function called when message is received

       - handler_args: arguments given to function when called

       - handler_pointer: pointer given to function when called

     Return value:

     Pointer to new message handler.

     Example:

     int msg_kick (t_weechat_plugin *plugin, char *server,
     char *command, char *arguments, char *handler_args,
     void *handler_pointer)

     {

         plugin->printf (plugin, server, NULL, "KICK received");

         return PLUGIN_RC_OK;

     }

     ...

     plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);

     Notes:

     Function called when message is received has to return one of these values (prefixed by ``weechat::'' for Perl and ``weechat.'' for Python):

       - PLUGIN_RC_KO: function failed

       - PLUGIN_RC_OK: function successfully completed

       - PLUGIN_RC_OK_IGNORE_WEECHAT: message will not be sent to WeeChat

       - PLUGIN_RC_OK_IGNORE_PLUGINS: message will not be sent to other plugins

       - PLUGIN_RC_OK_IGNORE_ALL: message will not be sent to WeeChat neither other plugins

  * 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).

     Arguments:

       - plugin: pointer to plugin structure

       - command: the new command

       - description: command description (displayed by /help command)

       - arguments: short description of command arguments (displayed by /help command)

       - arguments_description: long description of command arguments (displayed by /help command)

       - handler_func: function called when comand is executed

       - handler_args: arguments given to function when called

       - handler_pointer: pointer given to function when called

     Return value:

     Pointer to new command handler.

     Example:

     int cmd_test (t_weechat_plugin *plugin, char *server,
     char *command, char *arguments, char *handler_args,
     void *handler_pointer)

     {

         plugin->printf (plugin, server, NULL, "test command,
     file: %s", (arguments) ? arguments : "none");

         return PLUGIN_RC_OK;

     }

     ...

     plugin->cmd_handler_add (plugin, "test", "Test command",
     "[file]", "file: a file name", &cmd_test, NULL, NULL);

     Notes:

     Function called when message is received has to return one of these values (prefixed by ``weechat::'' for Perl and ``weechat.'' for Python):

       - PLUGIN_RC_KO: function failed

       - PLUGIN_RC_OK: function successfully completed

  * void handler_remove (t_weechat_plugin *plugin,
     t_plugin_handler *handler)

     Remove a handler.

     Arguments:

       - plugin: pointer to plugin structure

       - handler: handler to remove

     Return value:

     None.

     Example:

     plugin->handler_remove (plugin, my_handler);

  * void handler_remove_all (t_weechat_plugin *plugin)

     Remove all handlers for a plugin.

     Arguments:

       - plugin: pointer to plugin structure

     Return value:

     None.

     Example :

     plugin->handler_remove_all (plugin);

  * void exec_command (t_weechat_plugin
     *plugin, char *server, char *channel, char *command)

     Execute a WeeChat command (or send a message to a channel).

     Arguments:

       - plugin: pointer to plugin structure

       - server: name of server for executing command (may be NULL)

       - channel: name of channel for executing command (may be NULL)

       - command: command

     Return value:

     None.

     Examples:

     plugin->exec_command (plugin, NULL, NULL, "/help nick");

     plugin->exec_command (plugin, "freenode", "#weechat", "hello");

  * char *get_info (t_weechat_plugin
     *plugin, char *info, char *server, char *channel)

     Return an info about WeeChat or a channel.

     Paramètres :

       - plugin: pointer to plugin structure

       - info: name of info to read:

            - version: get WeeChat's version

            - nick: get nick

            - channel: get channel name

            - server: get server name

            - away: get ``away'' flag

            - weechat_dir: get WeeChat home dir

            - weechat_libdir: get WeeChat system lib dir

            - weechat_sharedir: get WeeChat system share dir

       - server: name of server for reading info (if needed)

       - channel: name of channel for reading info (if needed)

     Return value:

     Information asked, NULL if not found.

     Note: result has to be free by a call to ``free'' function after use.

     Examples:

     char *version = plugin->get_info (plugin, "version", NULL, NULL);

     char *nick = plugin->get_info (plugin, "nick", "freenode", NULL);

  * t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin)

     Returns list of DCC currently active or finished.

     Arguments:

       - plugin: pointer to plugin structure

     Return value:

     Chained list of DCC.

     Note: result has to be free by a call to ``free_dcc_info'' function after use.

     Example:

     t_plugin_dcc_info *dcc_info = plugin->get_dcc_info (plugin);

     for (ptr_dcc = dcc_info; ptr_dcc; ptr_dcc =
     ptr_dcc->next_dcc)

     {

         plugin->printf_server (plugin, "DCC type=%d, with: %s",
     ptr_dcc->type, ptr_dcc->nick);

     }

  * void free_dcc_info (t_weechat_plugin *plugin,
     t_plugin_dcc_info *dcc_info)

     Free memory used by a DCC list.

     Paramètres :

       - plugin: pointer to plugin structure

       - dcc_info: pointer to DCC list returned by ``get_dcc_info'' function

     Return value:

     None.

     Example:

     plugin->free_dcc_info (plugin, dcc_info);

  * char *get_config (t_weechat_plugin
     *plugin, char *option)

     Return value of a WeeChat config option.

     Arguments:

       - plugin: pointer to plugin structure

       - option: name of option to read

     Return value:

     Value of option, NULL if not found.

     Note: result has to be free by a call to ``free'' function after use.

     Examples:

     char *value1 = plugin->get_config (plugin, "look_nicklist");

     char *value2 = plugin->get_config (plugin, "freenode.server_autojoin");

  * int set_config (t_weechat_plugin
     *plugin, char *option, char *value)

     Update value of a WeeChat config option.

     Arguments:

       - plugin: pointer to plugin structure

       - option: name of option to update

       - value: new value for option

     Return value:

     1 if option was updated successfully, 0 if error occured.

     Example:

     plugin->set_config (plugin, "look_nicklist", "off");

  * char *get_plugin_config (t_weechat_plugin
     *plugin, char *option)

     Return value of a plugin option.

     Arguments:

       - plugin: pointer to plugin structure

       - option: name of option to read

     Return value:

     Value of option, NULL if not found.

     Note: result has to be free by a call to ``free'' function after use.

     Example:

     char *value = plugin->get_plugin_config (plugin, "my_var");

  * int set_plugin_config (t_weechat_plugin
     *plugin, char *option, char *value)

     Update value of a plugin option.

     Arguments:

       - plugin: pointer to plugin structure

       - option: name of option to update

       - value: new value for option

     Return value:

     1 if option was updated successfully, 0 if error occured.

     Example:

     plugin->set_plugin_config (plugin, "my_var", "value");

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

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:

/plugin load toto

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!):

#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 */
}

Scripts plugins
===============

Three plugins are provided with WeeChat to load scripts: Perl, Python and Ruby.

Load/unload scripts
-------------------

Perl scripts are loaded and unloaded with /perl, /python and /ruby commands. (type /help within WeeChat to get help about commands).

Examples:

  * Load a Perl script: /perl load /tmp/sample.pl

  * Unload all Perl scripts: /perl unload

  * List all Perl scripts: /perl

  * Load a Python script: /python load /tmp/sample.py

  * Unload all Python scripts: /python unload

  * List all Python scripts: /python

WeeChat / Scripts API
---------------------

  * Perl: weechat::register ( name, version, shutdown_function,
     description );

     Python: weechat.register ( name, version, shutdown_function,
     description )

     This is first function to call in script.

     All scripts for WeeChat should call this function.

     Arguments:

       - name: unique name to identify script (each script must have unique name)

       - version: script's version

       - shutdown_function: function called when script is unloaded (optional parameter, empty string means nothing is called at the end)

       - description: short description of script.

     Return value:

     1 if script was registered, 0 if error occured.

     Perl example:

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

     Python example:

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

  * Perl: weechat::print ( message, [channel, [server]] );

     Python: weechat.prnt ( message, [channel, [server]] )

     Print message in a channel.

     Arguments:

       - message: message to display

       - channel: name of channel

       - server: internal name of server

     Return value:

     1 if successful, 0 if error occured.

     Perl examples:

     weechat::print ("message");

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

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

     Python examples:

     weechat.prnt ("message")

     weechat.prnt ("message", "#weechat")

     weechat.prnt ("message", "#weechat", "freenode")

  * Perl: weechat::print_infobar ( delay, message );

     Python: weechat.print_infobar ( delay, message )

     Print message in infobar.

     Arguments:

       - delay: after this delay (in seconds), message will be erased (if 0, message will not be erased).

       - message: message to display

     Return value:

     1 if successful, 0 if error occured.

     Perl example:

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

     Python example:

     weechat.print_infobar (5, "message")

  * Perl: weechat::add_message_handler ( name, function );

     Python: weechat.add_message_handler ( name, function )

     Attach a script function to an IRC message.

     Function will be called each time IRC message will be received.

     Arguments:

       - name: name of IRC message
          To know list of IRC messages, please refer to RFC 1459 and/or 2812:

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

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

       - function: function called when message is received

     Return value:

     1 if function was attached, 0 if error occured.

     Perl example:

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

     sub my_function

     {

         weechat::print ("server=$_[0]\n");

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

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

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

         return 0;

     }

     Python example:

     weechat.add_message_handler ("privmsg", my_function)

     def my_function(server, args):

         weechat.prnt("server="+server)

         null, channel, message = string.split(args, ":", 2)

         hostmask, null, channel = string.split(string.strip(channel), " ", 2)

         weechat.prnt("host="+hostmask+", channel="+channel+", message="+message)

         return 0

     Notes:

     Function called when message is received has to return one of these values (prefixed by ``weechat::'' for Perl and ``weechat.'' for Python):

       - PLUGIN_RC_KO: function failed

       - PLUGIN_RC_OK: function successfully completed

       - PLUGIN_RC_OK_IGNORE_WEECHAT: message will not be sent to WeeChat

       - PLUGIN_RC_OK_IGNORE_PLUGINS: message will not be sent to other plugins

       - PLUGIN_RC_OK_IGNORE_ALL: message will not be sent to WeeChat neither other plugins

  * Perl: weechat::add_command_handler ( name, function );

     Python: weechat.add_command_handler ( name, function )

     Create new WeeChat command, linked with script function.

     Function will be called when user will launch command with /name.

     Arguments:

       - name: name of new command
          This name may be existing command, so that the command is overrided by script function. Be careful when overriding WeeChat commands, they'll not be available until your script will be unloaded.

       - function: function linked with command

       - description: command description (displayed by /help command)

       - arguments: short description of command arguments (displayed by /help command)

       - arguments_description: long description of command arguments (displayed by /help command)

     Return value:

     1 if function was attached, 0 if error occured.

     Perl example:

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

     sub my_command

     {

         weechat::print("Server: $_[0], arguments: $_[1]\n");

         return 0;

     }

     Python example:

     weechat.add_command_handler ("command", my_command)

     def my_command(server, args):

         weechat.prnt("server:"+server+" arguments:"+args)

         return 0

     Notes:

     Function called when command is executed has to return one of these values (prefixed by ``weechat::'' for Perl and ``weechat.'' for Python):

       - PLUGIN_RC_KO: function failed

       - PLUGIN_RC_OK: function successfully completed

  * Perl: weechat::remove_handler ( name, function );

     Python: weechat.remove_handler ( name, function )

     Remove a message or command handler.

     Arguments:

       - name: name of IRC message or command handler

       - function: function

     Return value:

     1 if successful, 0 if error occured.

     Perl example:

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

     Python example:

     weechat.remove_handler ("command", my_command)

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

     Python: 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

     Return value:

     1 if successful, 0 if error occured.

     Perl examples:

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

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

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

     Python examples:

     weechat.command ("hello world!")

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

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

  * Perl: weechat::get_info ( name, [server, [channel] ] );

     Python: weechat.get_info ( name, [server, [channel] ] )

     Get various info about WeeChat, server or user.

     Arguments:

       - name: name of info to retrieve:

            - version: get WeeChat version

            - nick: get nickname

            - channel: get channel name

            - server: get server name

            - away: get ``away'' flag

            - weechat_dir: get WeeChat home dir

            - weechat_libdir: get WeeChat system lib dir

            - weechat_sharedir: get WeeChat system share dir

       - server: internal name of server

       - channel: channel name

     Return value:

     Asked info, empty if error occured or info was not found.

     Perl examples:

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

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

     Python examples:

     $version = weechat.get_info("version")

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

  * Perl: weechat::get_dcc_info ( );

     Python: weechat.get_dcc_info ( );

     Get DCC list.

     Returned array has following fields:

       - server: IRC server

       - channel: IRC channel

       - type: DCC type:

            - 0: chat (received)

            - 1: chat (sent)

            - 2: file (receiving)

            - 3: file (sending)

       - status: DCC status:

            - 0: waiting

            - 1: connecting

            - 2: active

            - 3: done

            - 4: failed

            - 5: aborted

       - start_time: date/time of DCC creation

       - start_transfer: date/time of transfer start

       - addr: remote address

       - port: port used for DCC

       - nick: remote nick

       - filename: filename

       - local_filename: local filename

       - size: file size

       - pos: current position in file

       - start_resume: restart position after interruption

       - bytes_per_sec: bytes sent/received per second

     Return value:

     DCC list, 0 if error occured.

  * Perl: weechat::get_config ( option );

     Python: weechat.get_config ( option )

     Get WeeChat config option value.

     Arguments:

       - option: name of option

     Return value:

     Value of option, empty if error occured or option was not found.

     Perl examples:

     $value1 = weechat::get_config ("look_nicklist");

     $value2 = weechat::get_config ("freenode.server_autojoin");

     Python examples:

     $value1 = weechat.get_config ("look_nicklist")

     $value2 = weechat.get_config ("freenode.server_autojoin")

  * Perl: weechat::set_config ( option, value );

     Python: weechat.set_config ( option, value )

     Get WeeChat config option value.

     Arguments:

       - option: name of option

       - value: new value for option

     Return value:

     1 if successful, 0 if error occured.

     Perl examples:

     weechat::set_config ("look_nicklist", "off");

     weechat::set_config ("freenode.server_autojoin"",
     "#weechat");

     Python examples:

     weechat.set_config ("look_nicklist", "off")

     weechat.set_config ("freenode.server_autojoin"", "#weechat")

  * Perl: weechat::get_plugin_config ( option );

     Python: weechat.get_plugin_config ( option )

     Return value of a plugin option.

     Option is read from file ~/.weechat/plugins.rc and is like:

     plugin.script.option=value

     Note: plugin and script names are automatically added.

     Arguments:

       - option: name of option

     Return value:

     Value of option, empty if error occured or option was not found.

     Perl example:

     $value = weechat::get_plugin_config ("my_var");

     Python example:

     $value = weechat.get_plugin_config ("my_var")

  * Perl: weechat::set_plugin_config ( option, value );

     Python: weechat.set_plugin_config ( option, value )

     Update value of a plugin option.

     Option is written in file ~/.weechat/plugins.rc and is like:

     plugin.script.option=value

     Note: plugin and script names are automatically added.

     Arguments:

       - option: name of option

       - value: new value for option

     Return value:

     1 if successful, 0 if error occured.

     Perl example:

     weechat::set_plugin_config ("my_var", "value");

     Python example:

     weechat.set_plugin_config ("my_var", "value")

Autores / Soporte
*****************

Autores
=======

WeeChat está desarollado por:

  * FlashCode <flashcode AT flashtux.org>

Obtener soporte/ayuda
=====================

Antes de pedir ayuda al soporte, por favor lee la documentación y las FAQ de WeeChat.

(La documentación es el documento que estás leyendo, si no has leido todo hasta aquí, puedes hacerlo ahora ...)

  * Soporte por IRC:

     - servidor: irc.freenode.net

     - canal: #weechat

  * Foro WeeChat: http://forums.flashtux.org

  * Soporte mediante listas de difusión:

     - para apuntarse:
     http://mail.nongnu.org/mailman/listinfo/weechat-support.

     - para enviar un correo a la lista:
     weechat-support@nongnu.org.

     Los archivos de la lista están aquí:

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

  * Ver la página de soporte para WeeChat para más detalles:

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