From af12f3e99cf9b05f6eb31e326f1a569bf8b8b002 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 24 Feb 2008 10:45:55 +0100 Subject: XML doc files (weechat.XX.xml) splitted in many XML files --- doc/en/weechat.en.xml | 8069 +------------------------------------------------ 1 file changed, 16 insertions(+), 8053 deletions(-) (limited to 'doc/en/weechat.en.xml') diff --git a/doc/en/weechat.en.xml b/doc/en/weechat.en.xml index d5985f546..d2e8102a0 100644 --- a/doc/en/weechat.en.xml +++ b/doc/en/weechat.en.xml @@ -24,11 +24,22 @@ along with this program. If not, see . + + + + + + + + + + ]> @@ -85,8062 +96,14 @@ along with this program. If not, see . - - - - Introduction - - - This chapter describes WeeChat and pre-requisites for its installation. - - -
- Description - - - WeeChat (Wee Enhanced Environment for Chat) is a free chat client, - fast and light, designed for many operating systems. - - - - Main features are: - - - - multi-servers connection (with SSL, IPv6, proxy) - - - - - many GUI: Curses, wxWidgets, Gtk and Qt - - - - - small, fast and light - - - - - customizable and extensible with plugins and scripts - - - - - compliant with RFCs - 1459, - 2810, - 2811, - 2812 and - 2813 - - - - - multi-platform (GNU/Linux, *BSD, MacOS X, Windows and other) - - - - - 100% GPL, free software - - - - - - - WeeChat homepage is here: - - http://weechat.flashtux.org - - - -
- -
- Pre-requisites - - - In order to install WeeChat, you need: - - - - a running GNU/Linux system (with compiler tools for source - package) - - - - - "root" privileges (to install WeeChat) - - - - - according to GUI, one of the following libraries: - - - - Curses: ncurses library - - - - - Gtk: *** GUI not developed *** - - - - - WxWidgets: *** GUI not developed *** - - - - - Qt: *** GUI not developed *** - - - - - - - - -
-
- - - - - Installation - - - This chapter explains how to install WeeChat. - - -
- Binary packages - - - Binary packages are available for these distributions: - - - - Debian (or any Debian compatible distribution): - apt-get install weechat - - - - - Mandriva/RedHat (or any RPM compatible distribution): - - rpm -i /chemin/weechat-x.y.z-1.i386.rpm - - - - - - Gentoo : - emerge weechat - - - - - For other distributions, please look at your manual for - installation instructions. - - -
- -
- Source package - - - All you have to do is to run in a console or a terminal: -$ ./configure -$ make - - - Then get root privileges and install WeeChat: -$ su -(enter root password) -# make install - - -
- -
- GIT sources - - - Warning: GIT sources are for advanced users: it may not compile - or not be stable. You're warned! - - - - To get GIT sources, issue this command: -$ git-clone git://git.sv.gnu.org/weechat.git - - - - Execute this script: - ./autogen.sh - - - - Then follow instructions for source package - (see ) - - -
- -
+ &intro.en.xml; - + &install.en.xml; - - Usage - - - This chapter explains how to run WeeChat, the default key bindings - used, internal and IRC commands, setup file, and FIFO pipe use. - - -
- Running WeeChat - - - Command line arguments: - - - - - Parameter - Description - - - - - -a, --no-connect - - Disable auto-connect to servers at startup - - - - -c, --config - - Display config help (list of options) - - - - -d, --dir <path> - - Set path as home for WeeChat (used for configuration files, - logs, user plugins and scripts). Default value is - "~/.weechat". Please note that directory - is created if not found by WeeChat. - - - - -f, --key-functions - - Display WeeChat internal functions for keys - - - - -h, --help - - Display help - - - - -i, --irc-commands - - Display IRC commands list - - - - -k, --keys - - Display WeeChat default keys - - - - -l, --license - - Display WeeChat license - - - - -p, --no-plugin - - Disable plugins auto-load - - - - -v, --version - - Display WeeChat version - - - - -w, --weechat-commands - - Display WeeChat commands list - - - - - - - - - It is also possible to give URL for one or many IRC servers, as - follow: - irc[6][s]://[pseudo[:mot_passe]@]irc.example.org[:port][/channel][,channel[...] - Example to join #weechat and #toto on - "irc.freenode.net" server, default port (6667), - with "nono" nick: - $ weechat-curses irc://nono@irc.freenode.net/#weechat,#toto - - - - To start WeeChat, issue this command: - - - - for Curses GUI: weechat-curses - - - - - for Gtk GUI: weechat-gtk - - - - - for wxWidgets GUI: weechat-wxwidgets - - - - - for Qt GUI: weechat-qt - - - - - - - When you run WeeChat for the first time, a default configuration - file is created, with default options. - The default configuration file is: - "~/.weechat/weechat.rc" - - - - You can edit this file at your convenience to configure WeeChat - (ONLY if WeeChat is not running), or you can set parameters with - "/set" command in WeeChat - (see ) - - -
- -
- Key bindings - - - - - - - Key - Action - - - - - Left arrow / Ctrl + B - - Go to previous char in command line - - - - Right arrow / Ctrl + F - - Go to next char in command line - - - - Ctrl + left arrow - - Go to previous word in command line - - - - Ctrl + right arrow - - Go to next word in command line - - - - Home / Ctrl + A - - Go to the beginning of command line - - - - Ctrl + C then B - - Insert code for bold text. - - - - Ctrl + C then C - - Insert code for colored text. - - - - Ctrl + C then O - - Insert code for color reset. - - - - Ctrl + C then R - - Insert code for reverse color. - - - - Ctrl + C then U - - Insert code for underlined text. - - - - End / Ctrl + E - - Go to the end of command line - - - - Ctrl + K - - Delete from cursor until end of command line - - - - Ctrl + L - - Redraw whole window - - - - Ctrl + R - - Search for text in buffer history - (two times: search exact text) - - - - Ctrl + S then Ctrl + U - - Set unread marker on all buffers - - - - Ctrl + T - - Transpose chars - - - - Ctrl + U - - Delete from cursor until beginning of command line - - - - Ctrl + W - - Delete previous word of command line - - - - Ctrl + Y - - Paste clipboard content - - - - Backspace / Ctrl + H - - Delete previous char in command line - - - - Delete / Ctrl + D - - Delete next char in command line - - - - Tab / Shift + Tab - - Complete command or nick - (Tab again: find next completion) - - - - Any char - - Insert char at cursor position in command line - - - - Enter / Ctrl + J / Ctrl + M - - Execute command or send message - (in search mode: stop search) - - - - Up arrow / Down arrow - - Call again last commands/messages (in search mode: search - up/down) - - - - Ctrl + up arrow / Ctrl + down arrow - - Call again last commands/messages in global history - (common for all buffers) - - - - PageUp / PageDown - - Scroll up / down one page in buffer history - - - - Alt + PageUp / Alt + PageDown - - Scroll up / down a few lines in buffer history - - - - Alt + Home / Alt + End - - Scroll to top / bottom of buffer - - - - F5 / Alt + left arrow - - Switch to previous buffer - - - - F6 / Alt + right arrow - - Switch to next buffer - - - - F7 - - Switch to previous window - - - - F8 - - Switch to next window - - - - F9 / F10 - - Scroll topic - - - - F11 / F12 - - Scroll nicklist - - - - Alt + F11 / Alt + F12 - - Go to the beginning / the end of nicklist - - - - Alt + A - - Switch to next buffer with activity - (with priority: highlight, message, other) - - - - Alt + B - - Go to previous word in command line - - - - Alt + D - - Delete next word in command line - - - - Alt + F - - Go to next word in command line - - - - Alt + H - - Clear hotlist - (activity notification on other buffers) - - - - Alt + I - - Remove last infobar message - - - - Alt + J then Alt + D - - Display DCC buffer - - - - Alt + J then Alt + L - - Switch to last buffer - - - - Alt + J then Alt + P - - Switch to buffer previously displayed - - - - Alt + J then Alt + R - - Switch to raw IRC data buffer - - - - Alt + J then Alt + S - - Switch to server buffer - - - - Alt + J then Alt + X - - Switch to first channel of next server - (or server buffer if no channel is opened) - - - - Alt + digit (0-9) - - Switch to buffer by number (0 = 10) - - - - Alt + J then number (01-99) - - Switch to buffer by number - - - - Alt + K - - Grab a key and insert its code in command line - - - - Alt + N - - Scroll to next highlight - - - - Alt + P - - Scroll to previous highlight - - - - Alt + R - - Delete entire command line - - - - Alt + S - - Switch servers on servers buffer - (if option "look_one_server_buffer" is enabled) - - - - Alt + U - - Scroll to first unread line in buffer - - - - Alt + W then Alt + arrow - - Switch to window with direction - - - - - - - -
- -
- Command line - - - WeeChat command line (at the bottom of window) lets you send text on - channels and execute WeeChat or IRC commands (see - ). - - - - Commands begin with "/" char, followed by name of command. - For example, to initiate a private chat with "toto": - /query toto - - - - Text sent to a channel is any text that does not begin with "/" char. - For example, to send text "hello" on current - channel: - hello - - - - However, it is possible to start with "/" char, by adding another. - For example, to send text "/query toto" on current - channel: - //query toto - - - - If option for sending IRC colors ("irc_colors_send") - is enabled, you can use color codes and attributes, as follow (press - Ctrl-C then following letter, with optional value): - - - - - Code - Description - - - - - ^Cb - - bold text - - - - ^Ccxx - - text color "xx" - (see colors table below) - - - - ^Ccxx,yy - - text color "xx" - and background "yy" - (see colors table below) - - - - ^Co - - disable color and attributes - - - - ^Cr - - reverse video (revert text color with background) - - - - ^Cu - - underlined text - - - - - - Note: the same code (without number for ^Cc) may be used to stop the - attribute. - - - - Color codes for ^Cc are: - - - - - Code - Color - - - - - 00 - white - - - 01 - black - - - 02 - dark blue - - - 03 - dark green - - - 04 - light red - - - 05 - dark red - - - 06 - magenta - - - 07 - orange - - - 08 - yellow - - - 09 - light green - - - 10 - cyan - - - 11 - light cyan - - - 12 - light blue - - - 13 - light magenta - - - 14 - gray - - - 15 - light gray (white) - - - - - - - - Example: display of "hello everybody!" with - "hello" in light blue bold, and - "everybody" in light red underlined: -^Cc12^Cbhello^Cb^Cc04^Cu everybody^Cu^Cc! - - -
- -
- WeeChat / IRC commands - - - This chapter lists all WeeChat and IRC commands. - - -
- WeeChat commands - - - &weechat_commands.xml; - - -
- -
- Key functions - - - - - - - Function - Description - - - - - &key_functions.xml; - - - - - - -
- -
- IRC commands - - - &irc_commands.xml; - - -
- -
- -
- Configuration file - - - List of options for config file: - - - - - Option - Type - Values - Default - Description - - - - - &config.xml; - - - - - - - - Colors for Curses GUI are: - - - - - Keyword - Color - - - - - default - default color (transparent for background) - - - black - black - - - red - dark red - - - lightred - light red - - - green - dark green - - - lightgreen - light green - - - brown - brown - - - yellow - yellow - - - blue - dark blue - - - lightblue - light blue - - - magenta - dark magenta - - - lightmagenta - light magenta - - - cyan - dark cyan - - - lightcyan - light cyan - - - white - white - - - - - - -
- -
- 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 - pipes, one for each session. - - - - The syntax for the FIFO pipe commands/text is: - server,channel *text or command here - where server and channel are optional, but if channel is here, server - should be too. - - - - Some examples: - - - - nick change on freenode to "mynick|out" : - $ echo 'freenode */nick mynick|out' >~/.weechat/weechat_fifo_12345 - - - - - display text on #weechat channel: - $ echo 'freenode,#weechat *hello everybody!' >~/.weechat/weechat_fifo_12345 - - - - - display text on current channel (buffer displayed by WeeChat): - $ echo '*hello!' >~/.weechat/weechat_fifo_12345 - Warning: this is dangerous and you should - not do that except if you know what you do! - - - - - send two commands to unload/reload Perl scripts (you have to - separate them with "\n"): - $ echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345 - - - - - - - You can write a script to send command to all running WeeChat at same - time, for example: - -#!/bin/sh -if [ $# -eq 1 ]; then - for fifo in ~/.weechat/weechat_fifo_* - do - echo -e "$1" >$fifo - done -fi - - If the script is called "auto_weechat_command", you can run it with: - $ ./auto_weechat_command "freenode,#weechat *hello" - - -
- -
- - - - - Plugins - - - This chapter describes WeeChat plugins interface (API) and - the default scripts plugins (Perl, Python, Ruby, Lua), provided with - WeeChat. - - -
- 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 - - - The plugin has to 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): - - - - - Variable - Description - - - - - char plugin_name[] - plugin name - - - char plugin_version[] - plugin version - - - char plugin_description[] - short description of plugin - - - - - - - - - - Function - Description - - - - - int weechat_plugin_init (t_weechat_plugin *plugin) - - function called when plugin is loaded, must return - PLUGIN_RC_OK if successful, PLUGIN_RC_KO if error - (if error, plugin will NOT be loaded) - - - - void weechat_plugin_end (t_weechat_plugin *plugin) - function called when plugin is unloaded - - - - - - -
- API functions - -
- set_charset - - - Prototype: - - void set_charset (t_weechat_plugin *plugin, char *charset) - - - - Set new plugin charset. - - - Arguments: - - - - : pointer to plugin structure - - - - - : new charset to use - - - - - - Example: - plugin->set_charset (plugin, "ISO-8859-1"); - -
- -
- iconv_to_internal - - - Prototype: - - void iconv_to_internal (t_weechat_plugin *plugin, char *charset, - char *string) - - - - Convert string to WeeChat internal charset (UTF-8). - - - Arguments: - - - - : pointer to plugin structure - - - - - : charset to convert - - - - - : string to convert - - - - - - Return value: converted string. - - - Note: result has to be free by a call to "free" after use. - - - Example: - char *str = plugin->iconv_to_internal (plugin, "ISO-8859-1", "iso string: é à"); - -
- -
- iconv_from_internal - - - Prototype: - - void iconv_from_internal (t_weechat_plugin *plugin, char *charset, - char *string) - - - - Convert string from internal WeeChat charset (UTF-8) to another. - - - Arguments: - - - - : pointer to plugin structure - - - - - : target charset - - - - - : string to convert - - - - - - Return value: converted string. - - - Note: result has to be free by a call to "free" after use. - - - Example: - char *str = plugin->iconv_from_internal (plugin, "ISO-8859-1", "utf-8 string: é à"); - -
- -
- ascii_strcasecmp - - - Prototype: - - int ascii_strcasecmp (t_weechat_plugin *plugin, - char *string1, char *string2) - - - - Locale and case independent string comparison. - - - Arguments: - - - - : pointer to plugin structure - - - - - : first string for comparison - - - - - : second string for comparison - - - - - - Return value: difference between two strings: negative if - string1 < string2, zero if string1 == string2, positive if - string1 > string2 - - - Example: - if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ... - -
- -
- ascii_strncasecmp - - - Prototype: - - int ascii_strncasecmp (t_weechat_plugin *plugin, - char *string1, char *string2, int max) - - - - Locale and case independent string comparison, for "max" chars. - - - Arguments: - - - - : pointer to plugin struct - - - - - : first string for comparison - - - - - : second string for comparison - - - - - : max number of chars for comparison - - - - - - Return value: difference between two strings: negative if - string1 < string2, zero if string1 == string2, positive if - string1 > string2 - - - Example: - if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ... - -
- -
- explode_string - - - Prototype: - - 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). - - - Arguments: - - - - : pointer to plugin struct - - - - - : string to explode - - - - - : delimiters used for explosion - - - - - : maximum number of items - created (0 = no limit) - - - - - : pointer to int which will - contain number of items created - - - - - - Return value: array of strings, NULL if problem. - - - Note: result has to be free by a call to "free_exloded_string" - after use. - - - Example: - -char **argv; -int argc; -argv = plugin->explode_string (plugin, string, " ", 0, &argc); -... -if (argv != NULL) - plugin->free_exploded_string (plugin, argv); - - -
- -
- free_exploded_string - - - Prototype: - - char **free_exploded_string (t_weechat_plugin *plugin, - char **string) - - - - Free memory used by a string explosion. - - - Arguments: - - - - : pointer to plugin structure - - - - - : 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); - - -
- -
- mkdir_home - - - Prototype: - - int mkdir_home (t_weechat_plugin *plugin, char *directory) - - - - Create a directory in WeeChat home. - - - Arguments: - - - - : pointer to plugin structure - - - - - : directory to create - - - - - - Return value: 1 if directory was successfully created, 0 if an - error occurred. - - - Example: - -if (!plugin->mkdir_home (plugin, "temp")) - plugin->print_server(plugin, "Failed to create 'temp' directory in WeeChat home."); - - -
- -
- exec_on_files - - - Prototype: - - 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: - - - - : pointer to plugin structure - - - - - : directory for searching files - - - - - : function called for each file - found - - - - - - Return value: none. - - - Example: - -int callback (t_weechat_plugin *plugin, char *file) -{ - plugin->print_server (plugin, "file: %s", file); - return 1; -} -... -plugin->exec_on_files (plugin, "/tmp", &callback); - - -
- -
- print - - - Prototype: - - void print (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: - - - - : pointer to plugin structure - - - - - : internal name of server to find - buffer for message display (may be NULL) - - - - - : name of channel to find buffer - for message display (may be NULL) - - - - - : message - - - - - - To display colored text, there are following codes: - - - - - Code - Description - - - - - 0x02 - - bold text - - - - 0x03 + "xx" - - text color "xx" - (see for colors) - - - - 0x03 + "xx,yy" - - text color "xx" - and background "yy" - (see for colors) - - - - 0x0F - - disable color and attributes - - - - 0x12 - - reverse video (revert text color with background) - - - - 0x1F - - underlined text - - - - - - Note: the same code (without number for 0x03) may be used to stop - the attribute. - - - Return value: none. - - - Examples: - -plugin->print (plugin, NULL, NULL, "hello"); -plugin->print (plugin, NULL, "#weechat", "hello"); -plugin->print (plugin, "freenode", "#weechat", "hello"); -plugin->print (plugin, NULL, NULL, - "test: \x02 bold \x0F\x03%02d blue \x03%02d green", - plugin->get_irc_color (plugin, "blue"), - plugin->get_irc_color (plugin, "green")); - - -
- -
- print_server - - - Prototype: - - void print_server (t_weechat_plugin *plugin, - char *message, ...) - - - - Display a message on current server buffer. - - - Arguments: - - - - : pointer to plugin structure - - - - - : message - - - - - - To display colored text, see . - - - Return value: none. - - - Example: plugin->print_server (plugin, "hello"); - -
- -
- print_infobar - - - Prototype: - - void print_infobar (t_weechat_plugin *plugin, - int time, char *message, ...) - - - - Display a message in infobar for a specified time. - - - Arguments: - - - - : pointer to plugin structure - - - - - : time (in seconds) for displaying - message (0 = never erased) - - - - - - Return value: none. - - - Example: - -plugin->print_infobar (plugin, 5, "hello"); - - -
- -
- infobar_remove - - - Prototype: - - void infobar_remove (t_weechat_plugin *plugin, int count) - - - - Remove one or more messages in infobar stack. - - - Arguments: - - - - : pointer to plugin structure - - - - - : number of messages to remove - (if argument is <= 0, then all messages are removed) - - - - - - Return value: none. - - - Example: plugin->infobar_remove (1); - -
- -
- log - - - Prototype: - - void log (t_weechat_plugin *plugin, - char *server, char *channel, char *message, ...) - - - - Write a message in log file for a server or a channel. - - - Arguments: - - - - : pointer to plugin structure - - - - - : internal name of server to find - buffer for log (may be NULL) - - - - - : name of channel to find buffer - for log (may be NULL) - - - - - : message - - - - - - Return value: none. - - - Example: - -plugin->log (plugin, "freenode", "#weechat", "test"); - - -
- -
- msg_handler_add - - - Prototype: - - t_plugin_handler *msg_handler_add (t_weechat_plugin - *plugin, char *message, t_plugin_handler_func *function, - char *handler_args, void *handler_pointer) - - - - Add an IRC message handler, called when an IRC message is - received. - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of IRC message ("*" for all - messages). - To know list of IRC messages, please consult - RFCs - 1459 - and - 2812. - Moreover you can use a special name, prefixed by "weechat_" - to catch special events, as written in table below: - - - - - Name - Description - - - - - weechat_pv - private message received - - - weechat_highlight - - message with highlight (on a channel or pv) - - - - weechat_ctcp - - CTCP message received (VERSION, PING, ..) - - - - weechat_dcc - - DCC message received (chat or file) - - - - - - - - - - : function called when message - is received - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *handler_args, void *handler_pointer) - - - - Argument argc is set to 3, following values are set in - argv array: - - - argv[0] = server name - - - argv[1] = IRC message - - - argv[2] = command arguments - - - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - Return value: pointer to new message handler. - - - Note: function called when message is received has to return - one of following values: - - - - 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 - - - - - PLUGIN_RC_OK_WITH_HIGHLIGHT: function - successfully completed and make "highlight" on received - message - - - - - - Example: - -int msg_kick (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - plugin->print (plugin, argv[0], NULL, "KICK received"); - return PLUGIN_RC_OK; -} -... -t_plugin_handler *msg_handler; -msg_handler = plugin->msg_handler_add (plugin, "KICK", - &msg_kick, NULL, NULL); - - -
- -
- cmd_handler_add - - - Prototype: - - t_plugin_handler *cmd_handler_add (t_weechat_plugin - *plugin, char *command, char *description, char *arguments, - char *arguments_description, char *completion_template, - t_plugin_handler_func *fonction, char *handler_args, - void *handler_pointer) - - - - Add a WeeChat command handler, called when user uses command - (for example /command). - - - Arguments: - - - - : pointer to plugin structure - - - - - : the new command name, which - may be an existing command (be careful, replaced command - will not be available until plugin is unloaded) - - - - - : short command description - (displayed by /help command) - - - - - : short description of command - arguments (displayed by /help command) - - - - - : long description - of command arguments (displayed by /help command) - - - - - : template for - completion, like "abc|%w def|%i" - which means "abc" or a WeeChat command for first argument, - "def" or IRC command for second. - An empty string lets WeeChat complete any argument with - a nick from current channel, NULL or "-" disable completion - for all command arguments. - - - Following codes can be used: - - - - - Code - Description - - - - - %- - no completion for argument - - - %* - - repeat last completion for all following arguments - (this code has to be at the end of completion - template, preceded by "|") - - - - %a - alias - - - %A - - alias and commands (WeeChat, IRC and plugins) - - - - %c - current channel - - - %C - all channels (including queries) - - - %f - file name - - - %h - plugins commands - - - %i - IRC commands (sent) - - - %I - IRC commands (received) - - - %k - key functions - - - %m - nick on current server - - - %M - - nicks on current server (on all open channels) - - - - %n - nicks of current channel - - - %N - nicks and hostnames of current channel - - - %o - setup options - - - %O - plugin options - - - %p - default "part" message - - - %q - default "quit" message - - - %s - current server name - - - %S - all servers names - - - %t - topic of current channel - - - %v - setup option value - - - %V - plugin option value - - - %w - WeeChat commands - - - - - - - - - : function called when command - is executed - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *handler_args, void *handler_pointer) - - - - Argument argc is set to 3, following values are set in - argc array: - - - argv[0] = server name - - - argv[1] = command - - - argv[2] = command arguments - - - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - Return value: pointer to new command handler. - - - Note: function called when command is executed has to return - one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - - - Example: - -int cmd_test (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - plugin->print (plugin, argv[0], NULL, - "test command, nick: %s", - (argv[2]) ? argv[2] : "none"); - return PLUGIN_RC_OK; -} -... -t_plugin_handler *cmd_handler; -cmd_handler = plugin->cmd_handler_add (plugin, "test", "Test command", - "[nick]", "nick: nick of channel", - "%n", &cmd_test, NULL, NULL); - - -
- -
- timer_handler_add - - - Prototype: - - t_plugin_handler *timer_handler_add (t_weechat_plugin - *plugin, int interval, t_plugin_handler_func *function, - char *handler_args, void *handler_pointer) - - - - Add a timer handler which periodically calls a function. - - - Arguments: - - - - : pointer to plugin structure - - - - - : interval (in seconds) between - two calls of function. - - - - - : function called - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *handler_args, void *handler_pointer) - - - - Argument argc is set to 0, and argv is set to NULL. - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - Return value: pointer to new timer handler. - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - - - Example: - -int my_timer (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - plugin->print (plugin, NULL, NULL, "my timer"); - return PLUGIN_RC_OK; -} -... -t_plugin_handler *timer_handler; -timer_handler = plugin->timer_handler_add (plugin, 60, &my_timer); - - -
- -
- keyboard_handler_add - - - Prototype: - - t_plugin_handler *keyboard_handler_add (t_weechat_plugin - *plugin, t_plugin_handler_func *function, - char *handler_args, void *handler_pointer) - - - - Add a keyboard handler, called for any key pressed. - - - Arguments: - - - - : pointer to plugin structure - - - - - : function called - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *handler_args, void *handler_pointer) - - - - Argument argc is set to 3, following values are set in - argc array: - - - - argv[0] = key pressed (name of internal function or - '*' followed by a key code) - - - - - argv[1] = command line before key action - - - - - argv[2] = command line after key action - - - - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - Return value: pointer to new message handler. - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - - - Example: - -int my_keyb (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - if (argc == 2) - { - plugin->print (plugin, NULL, NULL, "key pressed: %s", argv[0]); - if (argv[1] && (argv[1][0] == '1')) - plugin->print (plugin, NULL, NULL, "input text changed"); - else - plugin->print (plugin, NULL, NULL, "input text not changed"); - } - return PLUGIN_RC_OK; -} -... -t_plugin_handler *keyb_handler; -keyb_handler = plugin->keyboard_handler_add (plugin, &my_keyb); - - -
- -
- event_handler_add - - - Prototype: - - t_plugin_handler *event_handler_add (t_weechat_plugin - *plugin, char *event, t_plugin_handler_func *function, - char *handler_args, void *handler_pointer) - - - - Add an event handler, called when an event happens. - - - Arguments: - - - - : pointer to plugin structure - - - - - : event (see table below) - - - - - : function called - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *handler_args, void *handler_pointer) - - - - Arguments depend on event (see table below). - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - List of events: - - - - - Event - Description - Arguments - - - - - buffer_open - a buffer was open - - argc = 1, argv = { buffer number } - - - - buffer_close - a buffer was closed - - argc = 1, argv = { buffer number } - - - - buffer_move - a buffer was moved - - argc = 2, argv = { new buffer number, old number } - - - - - - - - Return value: pointer to new event handler. - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - - - Example: - -int my_event (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - plugin->print (plugin, NULL, NULL, "my_event"); - return PLUGIN_RC_OK; -} -... -t_plugin_handler *event_handler; -event_handler = plugin->event_handler_add (plugin, "buffer_open", - &my_event); - - -
- -
- handler_remove - - - Prototype: - - void handler_remove (t_weechat_plugin *plugin, - t_plugin_handler *handler) - - - - Remove a command or message handler. - - - Arguments: - - - - : pointer to plugin structure - - - - - : handler to remove - - - - - - Return value: none. - - - Example: - plugin->handler_remove (plugin, my_handler); - -
- -
- handler_remove_all - - - Prototype: - - void handler_remove_all (t_weechat_plugin *plugin) - - - - Remove all handlers for a plugin. - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: none. - - - Example: - plugin->handler_remove_all (plugin); - -
- -
- modifier_add - - - Prototype: - - t_plugin_modifier *modifier_add (t_weechat_plugin *plugin, - char *type, char *message, t_plugin_modifier_func *function, - char *modifier_args, void *modifier_pointer) - - - - Add a message modifier. - - - Arguments: - - - - : pointer to plugin structure - - - - - : modifier type: - - - - - Type - Description - - - - - irc_in - called for incoming IRC messages - - - irc_user - - called for each user message (or command) (before - WeeChat parses message) - - - - irc_out - - called for outgoing messages, immediately before - sending it to IRC server (this includes messages - sent automatically by WeeChat to server) - - - - - - - - - - : name of IRC message (used only for - types "irc_in" and "irc_out"). - To know list of IRC messages, please consult - RFCs - 1459 - and - 2812. - Moreover, special value "*" means all messages (no filter). - - - - - : function called - - - It uses following prototype: - - int my_function (t_weechat_plugin *plugin, - int argc, char **argv, - char *modifier_args, void *modifier_pointer) - - - - Argument argc is set to 2, following values are set in - argv array: - - - argv[0] = server name - - - argv[1] = message - - - - - - - : arguments given to function - when called - - - - - : pointer given to function - when called - - - - - - Return value: pointer to new message modifier. - - - Note: function has to return modified string, or NULL if no - changes are made to message. - If function returns empty string, then message is dropped and - will not be read at all by WeeChat (be careful when dropping - messages!). - Returned string must have been allocated by malloc() and will - be freed (with call to free()) automatically by WeeChat after use. - - - Example: - -char *adder (t_weechat_plugin *plugin, int argc, char **argv, - char *modifier_args, void *modifier_pointer) -{ - char *string; - string = (char *)malloc (strlen (argv[1]) + 16); - strcpy (string, argv[1]); - strcat (string, "test"); - return string; -} -... -t_plugin_modifier *modifier; -modifier = plugin->modifier_add (plugin, "irc_in", "privmsg", - &adder, NULL, NULL); - - -
- -
- modifier_remove - - - Prototype: - - void modifier_remove (t_weechat_plugin *plugin, - t_plugin_modifier *modifier) - - - - Remove a message modifier. - - - Arguments: - - - - : pointer to plugin structure - - - - - : modifier to remove - - - - - - Return value: none. - - - Example: - plugin->modifier_remove (plugin, my_modifier); - -
- -
- modifier_remove_all - - - Prototype: - - void modifier_remove_all (t_weechat_plugin *plugin) - - - - Remove all modifiers for a plugin. - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: none. - - - Example: - plugin->modifier_remove_all (plugin); - -
- -
- exec_command - - - Prototype: - - 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: - - - - : pointer to plugin structure - - - - - : internal name of server for - executing command (may be NULL) - - - - - : name of channel for executing - command (may be NULL) - - - - - : command - - - - - - Return value: none. - - - Examples: - -plugin->exec_command (plugin, NULL, NULL, "/help nick"); -plugin->exec_command (plugin, "freenode", "#weechat", "hello"); - - -
- -
- get_info - - - Prototype: - - char *get_info (t_weechat_plugin *plugin, - char *info, char *server) - - - - Return an info about WeeChat or a channel. - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of info to read: - - - - - Info - Description - - - - - version - WeeChat's version - - - nick - nick - - - channel - - name of channel (NULL for a server or private) - - - - server - name of server - - - type - - buffer type: 0=standard, 1=DCC, 2=raw IRC data - - - - away - "away" flag - - - inactivity - - number of seconds since last key was pressed - - - - input - - content of command line for current window - - - - input_mask - - content of color mask for command line - - - - input_pos - - cursor position in command line - - - - weechat_dir - - WeeChat home directory - (by default: ~/.weechat/) - - - - weechat_libdir - WeeChat system lib directory - - - weechat_sharedir - WeeChat system share directory - - - - - - - - - : internal name of server 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); -char *nick = plugin->get_info (plugin, "nick", "freenode"); -char *inactivity = plugin->get_info (plugin, "inactivity", NULL); - -plugin->print (plugin, NULL, NULL, - "WeeChat version %s, you are %s on freenode " - "(inactive for %s seconds)", - version, nick, inactivity); - -if (version) - free (version); -if (nick) - free (nick); -if (inactivity) - free (inactivity); - - -
- -
- get_dcc_info - - - Prototype: - - t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin) - - - - Return list of DCC currently active or finished. - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: linked list of DCC. - - - - - Type - Field - Description - - - - - char * - server - IRC server - - - char * - channel - IRC channel - - - int - type - - DCC type: - 0 = chat received, - 1 = chat sent, - 2 = file received, - 3 = file sent - - - - int* - status - - DCC status: - 0 = waiting, - 1 = connecting, - 2 = active, - 3 = finished, - 4 = failed, - 5 = interrupted by user - - - - time_t - start_time - date/time of DCC creation - - - time_t - start_transfer - date/time of DCC transfer start - - - unsigned long - addr - IP address of remote user - - - int - port - port used for DCC - - - char * - nick - remote nick - - - char * - filename - file name - - - char * - local_filename - local file name - - - int - filename_suffix - suffix if renaming file - - - unsigned long - size - file size - - - unsigned long - pos - position in file - - - unsigned long - start_resume - start position after interruption - - - unsigned long - bytes_per_sec - - number of bytes per second since transfer start - - - - t_plugin_dcc_info * - prev_dcc - - pointer to previous DCC info - - - - t_plugin_dcc_info * - next_dcc - - pointer to next DCC info - - - - - - - - - Note: result has to be free by a call to "free_dcc_info" function - after use. - - - Examples: - -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->print_server (plugin, "DCC type=%d, with: %s", - ptr_dcc->type, ptr_dcc->nick); -} -if (dcc_info) - plugin->free_dcc_info (plugin, dcc_info); - - -
- -
- free_dcc_info - - - Prototype: - - void free_dcc_info (t_weechat_plugin *plugin, - t_plugin_dcc_info *dcc_info) - - - - Free memory used by a DCC list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to DCC list returned by - "get_dcc_info" function - - - - - - Return value: none. - - - Example: - plugin->free_dcc_info (plugin, dcc_info); - -
- -
- get_server_info - - - Prototype: - - t_plugin_server_info *get_server_info (t_weechat_plugin *plugin) - - - - Return list of IRC servers (connected or not). - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: linked list of IRC servers. - - - - - Type - Field - Description - - - - - char * - name - server internal name - - - int - autoconnect - 1 if autoconnect at start-up, 0 otherwise - - - int - autoreconnect - - 1 if autoreconnect when disconnected, - 0 otherwise - - - - int - autoreconnect_delay - delay before trying again connection - - - int - command_line - - 1 if server was on command line (so it is temporary), - 0 otherwise - - - - char * - address - server address (host or IP) - - - int - port - port - - - int - ipv6 - IPv6 connection - - - int - ssl - SSL connection - - - char * - password - server password - - - char * - nick1 - first nickname - - - char * - nick2 - alternate nickname - - - char * - nick3 - second alternate nickname - - - char * - username - user name - - - char * - real name - real name - - - char * - command - command run once connected - - - int - command_delay - delay after execution of command - - - char * - autojoin - channels joined automatically - - - int - autorejoin - - 1 if channels are rejoined when kicked, - 0 otherwise - - - - char * - notify_levels - channels notify levels - - - char * - charset_decode_iso - channels charsets for decoding ISO - - - char * - charset_decode_utf - channels charsets for decoding UTF - - - char * - charset_encode - channels charsets for encoding messages - - - int - is_connected - 1 if connected to server, 0 otherwise - - - int - ssl_connected - 1 if connected with SSL, 0 otherwise - - - char * - nick - current nickname - - - int - is_away - 1 if away, 0 otherwise - - - time_t - away_time - time when user is marking as away - - - int - lag - lag (in milliseconds) - - - t_plugin_server_info * - prev_server - pointer to previous server info - - - t_plugin_server_info * - next_server - pointer to next server info - - - - - - - Note: result has to be free by a call to "free_server_info" - function after use. - - - Example: - -t_plugin_server_info *server_info, *ptr_server_info; -server_info = plugin->get_server_info (plugin); -if (server_info) -{ - for (ptr_server_info = server_info; ptr_server_info; - ptr_server_info = ptr_server_info->next_server) - { - plugin->print (plugin, NULL, NULL, - "server: %s, address: %s, port: %d %s", - ptr_server_info->name, - ptr_server_info->address, - ptr_server_info->port, - (ptr_server_info->is_connected) ? "(connected)" : ""); - } - plugin->free_server_info (plugin, server_info); -} - - -
- -
- free_server_info - - - Prototype: - - void free_server_info (t_weechat_plugin *plugin, - t_plugin_server_info *server_info) - - - - Free memory used by server info list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to server list - returned by "get_server_info" function - - - - - - Return value: none. - - - Example: - plugin->free_server_info (plugin, server_info); - -
- -
- get_channel_info - - - Prototype: - - t_plugin_channel_info *get_channel_info (t_weechat_plugin *plugin, - char *server) - - - - Return list of IRC channels for a server. - - - Arguments: - - - - : pointer to plugin structure - - - - - : internal server name - - - - - - Return value: linked list of IRC channels for server. - - - - - Type - Field - Description - - - - - int - type - 0 for a channel, 1 for a private - - - char * - name - name of channel - - - char * - topic - topic of channel - - - char * - modes - channel modes - - - int - limit - user limit - - - char * - key - channel key - - - int - nicks_count - number of nicks on channel - - - t_plugin_channel_info * - prev_channel - pointer to previous channel info - - - t_plugin_channel_info * - next_channel - pointer to next channel info - - - - - - - Note: result has to be free by a call to "free_channel_info" - function after use. - - - Example: - -t_plugin_channel_info *channel_info, *ptr_chan_info; -channel_info = plugin->get_channel_info (plugin, "freenode"); -if (channel_info) -{ - for (ptr_chan_info = channel_info; ptr_chan_info; - ptr_chan_info = ptr_chan_info->next_channel) - { - plugin->print (plugin, NULL, NULL, - " %s (type %d)", - ptr_chan_info->name, - ptr_chan_info->type); - } - plugin->free_channel_info (plugin, channel_info); -} - - -
- -
- free_channel_info - - - Prototype: - - void free_channel_info (t_weechat_plugin *plugin, - t_plugin_channel_info *channel_info) - - - - Free memory used by channel info list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to channel info list - returned by "get_channel_info" function - - - - - - Return value: none. - - - Example: - plugin->free_channel_info (plugin, channel_info); - -
- -
- get_nick_info - - - Prototype: - - t_plugin_nick_info *get_nick_info (t_weechat_plugin *plugin, - char *server, char *channel) - - - - Return list of nicks for a channel. - - - Arguments: - - - - : pointer to plugin structure - - - - - : internal server name - - - - - : channel name - - - - - - Return value: linked list of nicks on channel. - - - - - Type - Field - Description - - - - - char * - nick - nick name - - - char * - host - hostname - - - int - flags - - nick flags, binary "or" between values (1 = channel - owner, 2 = channel admin, 4 = op, 8 = halfop, - 16 = voice, 32 = away) - - - - t_plugin_nick_info * - prev_nick - pointer to previous nick info - - - t_plugin_nick_info * - next_nick - pointer to next nick info - - - - - - - Note: result has to be free by a call to "free_nick_info" - function after use. - - - Example: - -t_plugin_nick_info *nick_info, *ptr_nick_info; -nick_info = plugin->get_nick_info (plugin, "freenode", "#weechat"); -if (nick_info) -{ - for (ptr_nick_info = nick_info; ptr_nick_info; - ptr_nick_info = ptr_nick_info->next_nick) - { - plugin->print (plugin, NULL, NULL, - " %s (flags: %d)", - ptr_nick_info->nick, - ptr_nick_info->flags); - } - plugin->free_nick_info (plugin, nick_info); -} - - -
- -
- free_nick_info - - - Prototype: - - void free_nick_info (t_weechat_plugin *plugin, - t_plugin_nick_info *nick_info) - - - - Free memory used by nick info list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to nick info list - returned by "get_nick_info" function - - - - - - Return value: none. - - - Example: - plugin->free_nick_info (plugin, nick_info); - -
- -
- get_config - - - Prototype: - - char *get_config (t_weechat_plugin *plugin, char *option) - - - - Return value of a WeeChat config option. - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of option to read - - - - - - Return value: option value, 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_set_title"); -char *value2 = plugin->get_config (plugin, "freenode.server_autojoin"); - - -
- -
- set_config - - - Prototype: - - int set_config (t_weechat_plugin *plugin, - char *option, char *value) - - - - Update value of a WeeChat config option. - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of option to update - - - - - : new value for option - - - - - - Return value: 1 if option was successfully updated, 0 if an - error occurred. - - - Example: - -plugin->set_config (plugin, "look_nicklist", "off"); - - -
- -
- get_plugin_config - - - Prototype: - - char *get_plugin_config (t_weechat_plugin *plugin, char *option) - - - - Return value of a plugin option. - Option is read from file "~/.weechat/plugins.rc" - and is like: "plugin.option=value" - (note: plugin name is automatically added). - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of option to read - - - - - - Return value: option value, 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"); - - -
- -
- set_plugin_config - - - Prototype: - - int set_plugin_config (t_weechat_plugin *plugin, - char *option, char *value) - - - - Update value of a plugin option. - Option is written in file "~/.weechat/plugins.rc" - and is like: "plugin.option=value" - (note: plugin name is automatically added). - - - Arguments: - - - - : pointer to plugin structure - - - - - : name of option to update - - - - - : new value for option - - - - - - Return value: 1 if option was successfully updated, 0 if an - error occurred. - - - Example: - -plugin->set_plugin_config (plugin, "my_var", "value"); - - -
- -
- get_irc_color - - - Prototype: - - int get_irc_color (t_weechat_plugin *plugin, - char *color_name) - - - - Get IRC color index with name. - - - Arguments: - - - - : pointer to plugin structure - - - - - : color name - Allowed colors are: - - - - - Color name - Value - - - - - white - 0 - - - black - 1 - - - blue - 2 - - - green - 3 - - - lightred - 4 - - - red - 5 - - - magenta - 6 - - - brown - 7 - - - yellow - 8 - - - lightgreen - 9 - - - cyan - 10 - - - lightcyan - 11 - - - lightblue - 12 - - - lightmagenta - 13 - - - gray - 14 - - - lightgray - 15 - - - - - - - - - - Return value: IRC color index, -1 if color is not found. - - - Example: - -int color_blue = plugin->get_irc_color (plugin, "blue"); /* return 2 */ - - -
- -
- input_color - - - Prototype: - - void input_color (t_weechat_plugin *plugin, - int color, int start, int length) - - - - Add color in input buffer. - - - Arguments: - - - - : pointer to plugin structure - - - - - : color for text (if < 0, then input - buffer is refresh, and there's no change in input buffer - content) - - - - - : start position for color (if < 0, - then mask is reinitialized) - - - - - : length for color (if <= 0, - then mask is reinitialized) - - - - - - Return value: none. - - - Example: - -plugin->input_color (plugin, plugin->get_irc_color (plugin, "blue"), 10, 5); - - -
- -
- get_window_info - - - Prototype: - - t_plugin_window_info *get_window_info (t_weechat_plugin *plugin) - - - - Return list of WeeChat windows. - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: linked list of WeeChat windows. - - - - - Type - Field - Description - - - - - int - win_x - horizontal position of window - - - int - win_y - vertical position of window - - - int - win_width - width of window - - - int - win_height - height of window - - - int - win_width_pct - width % (compared to parent window) - - - int - win_height_pct - height % (compared to parent window) - - - int - num_buffer - number of displayed buffer - - - t_plugin_window_info * - prev_window - pointer to previous window info - - - t_plugin_window_info * - next_window - pointer to next window info - - - - - - - Note: result has to be free by a call to "free_window_info" - function after use. - - - Example: - -t_plugin_window_info *window_info, *ptr_window; - -window_info = plugin->get_window_info (plugin); -if (window_info) -{ - for (ptr_window = window_info; ptr_window; ptr_window = ptr_window->next_window) - { - plugin->print (plugin, NULL, NULL, "--- window info ---"); - plugin->print (plugin, NULL, NULL, "(%d,%d), size: %dx%d, %%size: %d%%x%d%%", - ptr_window->win_x, ptr_window->win_y, - ptr_window->win_width, ptr_window->win_height, - ptr_window->win_width_pct, ptr_window->win_height_pct); - plugin->print (plugin, NULL, NULL, "num_buffer: %d", ptr_window->num_buffer); - } - plugin->free_window_info (plugin, window_info); -} -else - plugin->print (plugin, NULL, NULL, "no window info!"); - - -
- -
- free_window_info - - - Prototype: - - void free_window_info (t_weechat_plugin *plugin, - t_plugin_window_info *window_info) - - - - Free memory used by window info list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to window info list - returned by "get_window_info" function - - - - - - Return value: none. - - - Example: - plugin->free_window_info (plugin, window_info); - -
- -
- get_buffer_info - - - Prototype: - - t_plugin_buffer_info *get_buffer_info (t_weechat_plugin *plugin) - - - - Return list of WeeChat buffers. - - - Arguments: - - - - : pointer to plugin structure - - - - - - Return value: linked list of WeeChat buffers. - - - - - Type - Field - Description - - - - - int - type - buffer type: 0=standard, 1=DCC, 2=raw IRC data - - - int - number - buffer number - - - int - num_displayed - number of windows displaying buffer - - - char * - server_name - server name for buffer (may be NULL) - - - char * - channel_name - channel name for buffer (may be NULL) - - - int - notify_level - notify level for buffer - - - char * - log_filename - log filename (NULL means not logging) - - - t_plugin_buffer_info * - prev_buffer - pointer to previous buffer info - - - t_plugin_buffer_info * - next_buffer - pointer to next buffer info - - - - - - - Note: result has to be free by a call to "free_buffer_info" - function after use. - - - Example: - -t_plugin_buffer_info *buffer_info, *ptr_buffer; - -buffer_info = plugin->get_buffer_info (plugin); -if (buffer_info) -{ - for (ptr_buffer = buffer_info; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) - { - plugin->print (plugin, NULL, NULL, "--- buffer info ---"); - plugin->print (plugin, NULL, NULL, "type: %d", ptr_buffer->type); - plugin->print (plugin, NULL, NULL, "number: %d", ptr_buffer->number); - plugin->print (plugin, NULL, NULL, "num_displayed: %d", ptr_buffer->num_displayed); - plugin->print (plugin, NULL, NULL, "server: %s", ptr_buffer->server_name); - plugin->print (plugin, NULL, NULL, "channel: %s", ptr_buffer->channel_name); - plugin->print (plugin, NULL, NULL, "notify level: %d", ptr_buffer->notify_level); - plugin->print (plugin, NULL, NULL, "log filename: %s", ptr_buffer->log_filename); - } - plugin->free_buffer_info (plugin, buffer_info); -} -else - plugin->print (plugin, NULL, NULL, "no buffer info!"); - - -
- -
- free_buffer_info - - - Prototype: - - void free_buffer_info (t_weechat_plugin *plugin, - t_plugin_buffer_info *buffer_info) - - - - Free memory used by buffer info list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to buffer info list - returned by "get_buffer_info" function - - - - - - Return value: none. - - - Example: - plugin->free_buffer_info (plugin, buffer_info); - -
- -
- get_buffer_data - - - Prototype: - - t_plugin_buffer_data *get_buffer_info (t_weechat_plugin *plugin, - char *server, char *channel) - - - - Return content of buffer. - - - Arguments: - - - - : pointer to plugin structure - - - - - : internal name of server - - - - - : channel name - - - - - - Return value: buffer content (linked list of lines). - - - - - Type - Field - Description - - - - - time_t - date - date and time - - - char * - nick - nick - - - char * - data - line content (color codes are removed) - - - t_plugin_buffer_line * - prev_line - pointer to previous line - - - t_plugin_buffer_line * - next_line - pointer to next line - - - - - - - Note: result has to be free by a call to "free_buffer_data" - function after use. - - - Example: - -t_plugin_buffer_line *buffer_line, *ptr_line; -char text_time[256]; - -buffer_line = plugin->get_buffer_data (plugin); -if (buffer_line) -{ - for (ptr_line = buffer_line; ptr_line; ptr_line = ptr_line->next_line) - { - strftime (text_time, sizeof (text_time), "%x %X", localtime (&(ptr_line->date))); - plugin->print (plugin, NULL, NULL, "date: %s, nick: %s, data: %s", - text_time, ptr_line->nick, ptr_line->data); - } - plugin->free_buffer_data (plugin, buffer_line); -} - - -
- -
- free_buffer_data - - - Prototype: - - void free_buffer_data (t_weechat_plugin *plugin, - t_plugin_buffer_line *buffer_line) - - - - Free memory used by buffer line list. - - - Arguments: - - - - : pointer to plugin structure - - - - - : pointer to buffer line list - returned by "get_buffer_data" function - - - - - - Return value: none. - - - Example: - plugin->free_buffer_data (plugin, buffer_line); - -
- -
- -
- Compile plugin - - - Compile does not need WeeChat sources, only file - "weechat-plugin.h". - - - - To compile a plugin which has one file "toto.c" (under GNU/Linux): - -$ gcc -fPIC -Wall -c toto.c -$ gcc -shared -fPIC -o libtoto.so toto.o - - - -
- -
- Load plugin into WeeChat - - - Copy "libtoto.so" file into system plugins directory (for example - "/usr/local/lib/weechat/plugins") or into - user's plugins directory (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[] = "Double"; -char plugin_version[] = "0.1"; -char plugin_description[] = "Test plugin for WeeChat"; - -/* "/double" command manager */ - -int double_cmd (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) -{ - if (argv[2] && (argv[2][0] != '/')) - { - plugin->exec_command (plugin, NULL, NULL, argv[2]); - plugin->exec_command (plugin, NULL, NULL, argv[2]); - } - 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 to display two times", - NULL, - &double_cmd, - NULL, NULL); - return PLUGIN_RC_OK; -} - -void weechat_plugin_end (t_weechat_plugin *plugin) -{ - /* nothing done here */ -} - - - -
- -
- -
- Charset plugin - - - Charset plugin lets you encode or decode data using charsets, with 3 - levels: global, by server, or by channel. - This plugin is optional, but recommended: if it's not loaded, WeeChat - can only read/write UTF-8 data. - - - - Charset plugin should be autoloaded by WeeChat at startup. - To be sure plugin is loaded, try: - "/charset". - If command is not found, then load plugin with command: - /plugin load charset - If plugin is not found, then you should compile again WeeChat with - plugins and Charset support. - - - - When Charset plugin starts, it displays terminal and internal charsets. - Terminal charset depends on your locale, and internal is UTF-8. - For example : - --P- Charset plugin starting, terminal charset: ISO-8859-15 (WeeChat internal: UTF-8) - - - -
- Settings - - - - - To set global decode and encode charsets, use - "/setp" command. - For example: - -/setp charset.global.decode = ISO-8859-15 -/setp charset.global.encode = ISO-8859-15 - - If global decode charset is not set (for example during first - load of Charset plugin), it will be automatically set to terminal - charset (if it's different from UTF-8), or by default to - "ISO-8859-1". - Default encode value is empty, so it sends by default with - internal charset (UTF-8). - - - - - To set server charset, use "/charset" command - on server buffer. - If you give only charset, then it will set "decode" and "encode" - values. - For example: - /charset ISO-8859-15 - It's equivalent to: - -/charset decode ISO-8859-15 -/charset encode ISO-8859-15 - - - - - - To set channel (or private) charset, use same commands as server, - but on channel (or private) buffer. - - - - -
- -
- FAQ - - - If you have problems with chars or accents using Charset plugin: - - - - check that weechat-curses is linked to libncursesw (warning: - needed on most distributions but not all) : - ldd /path/to/weechat-curses - - - - - check charset line (on server buffer), you should see - ISO-XXXXXX or UTF-8 for terminal charset. If you see - ANSI_X3.4-1968 or other values, probably your locale is wrong. - - - - - setup global decode value, for example: - /setp charset.global.decode = ISO-8859-15 - - - - - -
- -
- -
- Scripts plugins - - - Four plugins are provided with WeeChat to use script languages: - Perl, Python, Ruby and Lua. - - -
- Load / unload scripts - - - Scripts are loaded and unloaded with /perl, - /python, /ruby and - /lua commands - (type /help in WeeChat for help about commands). - - - - Examples: - - - - Load a Perl script: - /perl load /tmp/test.pl - - - - - List all loaded Perl scripts: - /perl - - - - - Load a Python script: - /python load /tmp/test.py - - - - - List all loaded Python scripts: - /python - - - - - Load a Ruby script: - /ruby load /tmp/test.rb - - - - - List all loaded Ruby scripts: - /ruby - - - - - Load a Lua script: - /lua load /tmp/test.lua - - - - - List all loaded Lua scripts: - /lua - - - - - -
- -
- Syntax by language - -
- Perl - - - In a WeeChat Perl script, all API functions and variables are - prefixed by "weechat::". - Example: -weechat::register("test", "1.0", "end_test", "WeeChat perl script"); - - -
- -
- Python - - - A WeeChat Python script has to start by importing weechat: - import weechat - - - - All API functions and variables are prefixed by - "weechat.". - Example: -weechat.register("test", "1.0", "end_test", "WeeChat python script") - - -
- -
- Ruby - - - In a WeeChat Ruby script, all code has to be in functions. - So for main code, you have to define a - "weechat_init" function, which is automatically - called when script is loaded by WeeChat. Example: - -def weechat_init - Weechat.register("test", "1.0", "end_test", "WeeChat ruby script") - Weechat.add_command_handler("command", "my_command") - return Weechat::PLUGIN_RC_OK -end - -def my_command(server, args) - Weechat.print("my command") - return Weechat::PLUGIN_RC_OK -end - - - - - All API functions are prefixed by - "Weechat." and variables by - "Weechat::". - - -
- -
- Lua - - - In a WeeChat Lua script, all API functions are prefixed by - "weechat.". - Variables are prefixed by "weechat." and - suffixed by "()". - Example: - -function message_handler(server, args) - weechat.print("I am a message handler") - return weechat.PLUGIN_RC_OK() -end - - - -
- -
- -
- WeeChat / scripts API - -
- register - - - Perl prototype: - - weechat::register(name, version, end_function, description, - [charset]); - - - - Python prototype: - - weechat.register(name, version, end_function, description, - [charset]) - - - - Ruby prototype: - - Weechat.register(name, version, end_function, description, - [charset]) - - - - Lua prototype: - - weechat.register(name, version, end_function, description, - [charset]) - - - - This is first function to call in script. - All WeeChat scripts have to call this function. - - - Arguments: - - - - : unique name to identify script - (each script must have unique name) - - - - - : script version - - - - - : function called when script is - unloaded (optional parameter, empty string means nothing is - called at the end) - - - - - : short description of script - - - - - : charset used by script, you should - set this if script is not written with UTF-8 - - - - - - Return value: 1 if script was registered, 0 if an error occured. - - - Examples: - -# perl -weechat::register("test", "1.0", "end_test", "Test script!", "ISO-8859-1"); - -# python -weechat.register("test", "1.0", "end_test", "Test script!", "ISO-8859-1") - -# ruby -Weechat.register("test", "1.0", "end_test", "Test script!", "ISO-8859-1") - --- lua -weechat.register("test", "1.0", "end_test", "Test script!", "ISO-8859-1") - - -
- -
- set_charset - - - Perl prototype: - - weechat::set_charset(charset); - - - - Python prototype: - - weechat.set_charset(charset) - - - - Ruby prototype: - - Weechat.set_charset(charset) - - - - Lua prototype: - - weechat.set_charset(charset) - - - - Set new script charset. - - - Arguments: - - - - : new script charset - - - - - - Return value: 1 if new charset was set, 0 if an error occured. - - - Examples: - -# perl -weechat::set_charset("ISO-8859-1"); - -# python -weechat.set_charset("ISO-8859-1") - -# ruby -Weechat.set_charset("ISO-8859-1") - --- lua -weechat.set_charset("ISO-8859-1") - - -
- -
- print - - - Perl prototype: - - weechat::print(message, [channel, [server]]) - - - - Python prototype: - - weechat.prnt(message, [channel, [server]]) - - - - Ruby prototype: - - Weechat.print(message, [channel, [server]]) - - - - Lua prototype: - - weechat.print(message, [channel, [server]]) - - - - Display a message on a WeeChat buffer, identified by server - and channel. - - - Arguments: - - - - : message - - - - - : name of channel to find buffer - for message display - - - - - : internal name of server to find - buffer for message display - - - - - - To display colored text, see . - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::print("message"); -weechat::print("message", "#weechat"); -weechat::print("message", "#weechat", "freenode"); -weechat::print("test: \x0305 red \x0F normal"); - -# python -weechat.prnt("message") -weechat.prnt("message", "#weechat") -weechat.prnt("message", "#weechat", "freenode") - -# ruby -Weechat.print("message") -Weechat.print("message", "#weechat") -Weechat.print("message", "#weechat", "freenode") - --- lua -weechat.print("message") -weechat.print("message", "#weechat") -weechat.print("message", "#weechat", "freenode") - - -
- -
- print_server - - - Perl prototype: - - weechat::print_server(message) - - - - Python prototype: - - weechat.print_server(message) - - - - Ruby prototype: - - Weechat.print_server(message) - - - - Lua prototype: - - weechat.print_server(message) - - - - Display a message on server buffer. - - - Arguments: - - - - : message - - - - - - To display colored text, see . - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::print_server("message"); -weechat::print_server("test: \x0305 red \x0F normal"); - -# python -weechat.print_server("message") - -# ruby -Weechat.print_server("message") - --- lua -weechat.print_server("message") - - -
- -
- print_infobar - - - Perl prototype: - - weechat::print_infobar(time, message); - - - - Python prototype: - - weechat.print_infobar(time, message) - - - - Ruby prototype: - - Weechat.print_infobar(time, message) - - - - Lua prototype: - - weechat.print_infobar(time, message) - - - - Display a message in infobar for a specified time. - - - Arguments: - - - - : time (in seconds) for displaying - message (0 = never erased) - - - - - : message - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::print_infobar(5, "message"); - -# python -weechat.print_infobar(5, "message") - -# ruby -Weechat.print_infobar(5, "message") - --- lua -weechat.print_infobar(5, "message") - - -
- -
- remove_infobar - - - Perl prototype: - - weechat::remove_infobar([count]); - - - - Python prototype: - - weechat.remove_infobar([count]) - - - - Ruby prototype: - - Weechat.remove_infobar([count]) - - - - Lua prototype: - - weechat.remove_infobar([count]) - - - - Remove one or more messages in infobar stack. - - - Arguments: - - - - : number of messages to remove - (if argument not given or <= 0, then all messages are - removed) - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_infobar(1); - -# python -weechat.remove_infobar(1) - -# ruby -Weechat.remove_infobar(1) - --- lua -weechat.remove_infobar(1) - - -
- -
- log - - - Perl prototype: - - weechat::log(message, [channel, [server]]); - - - - Python prototype: - - weechat.log(message, [channel, [server]]) - - - - Ruby prototype: - - Weechat.log(message, [channel, [server]]) - - - - Lua prototype: - - weechat.log(message, [channel, [server]]) - - - - Write a message in log file for a server or a channel. - - - Arguments: - - - - : message - - - - - : name of channel to find buffer - for log - - - - - : internal name of server to find - buffer for log - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::log("message", "#weechat", "freenode"); - -# python -weechat.log("message", "#weechat", "freenode") - -# ruby -Weechat.log("message", "#weechat", "freenode") - --- lua -weechat.log("message", "#weechat", "freenode") - - -
- -
- add_message_handler - - - Perl prototype: - - weechat::add_message_handler(message, function); - - - - Python prototype: - - weechat.add_message_handler(message, function) - - - - Ruby prototype: - - Weechat.add_message_handler(message, function) - - - - Lua prototype: - - weechat.add_message_handler(message, function) - - - - Add an IRC message handler, called when an IRC message is - received. - - - Arguments: - - - - : name of IRC message. To know list - of IRC messages, please consult RFCs - 1459 - and - 2812. - Moreover you can use a special name, prefixed by "weechat_" - to catch special events (see - ). - - - - - : function called when message is - received - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_message_handler ("privmsg", "my_function"); -sub my_function -{ - weechat::print("server=$_[0]"); - ($null, $channel, $message) = split ":",$_[1],3; - ($mask, $null, $channel) = split " ", $channel; - weechat::print("mask=$mask, channel=$channel, msg=$message"); - return weechat::PLUGIN_RC_OK; -} - -# python -weechat.add_message_handler ("privmsg", "my_function") -def my_function(server, args): - weechat.prnt("server="+server) - null, channel, message = string.split(args, ":", 2) - mask, null, channel = string.split(string.strip(channel), " ", 2) - weechat.prnt("mask="+mask+", canal="+channel+", message="+message) - return weechat.PLUGIN_RC_OK - -# ruby -Weechat.add_message_handler("privmsg", "my_function") -def my_function(server, args) - Weechat.print("server=#{server}, args=#{args}") - return Weechat::PLUGIN_RC_OK -end - --- lua -weechat.add_message_handler ("privmsg", "my_function") -function my_function(server, args) - weechat.print("server=" .. server .. ", args=" .. args) - return weechat.PLUGIN_RC_OK() -end - - - - Note: function called when message is received has to return - one of following values: - - - - 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 - - - - - PLUGIN_RC_OK_WITH_HIGHLIGHT: function - successfully completed and make "highlight" on received - message - - - - -
- -
- add_command_handler - - - Perl prototype: - - weechat::add_command_handler(command, function, - [description, arguments, arguments_description, - completion_template]); - - - - Python prototype: - - weechat.add_command_handler(command, function, - [description, arguments, arguments_description, - completion_template]) - - - - Ruby prototype: - - Weechat.add_command_handler(command, function, - [description, arguments, arguments_description, - completion_template]) - - - - Lua prototype: - - weechat.add_command_handler(command, function, - [description, arguments, arguments_description, - completion_template]) - - - - Add a WeeChat command handler, called when user uses command - (for example /command). - - - Arguments: - - - - : the new command name, which - may be an existing command (be careful, replaced command - will not be available until script is unloaded) - - - - - : function called when command - is executed - - - - - : short description of command - arguments (displayed by /help command) - - - - - : long description - of command arguments (displayed by /help command) - - - - - : template for - completion, like "abc|%w def|%i" which - means "abc" or a WeeChat command for first argument, - "def" or IRC command for second. - (see ) - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_command_handler("command", "my_command"); -sub my_command -{ - weechat::print("server= $_[0], args: $_[1]"); - return weechat::PLUGIN_RC_OK; -} - -# python -weechat.add_command_handler("command", "my_command") -def my_command(server, args): - weechat.prnt("server="+server+", args="+args) - return weechat.PLUGIN_RC_OK - -# ruby -Weechat.add_command_handler("command", "my_command") -def my_command(server, args) - Weechat.print("server=#{server}, args=#{args}") - return Weechat::PLUGIN_RC_OK -end - --- lua -weechat.add_command_handler("command", "my_command") -def my_command(server, args) - weechat.print("server="..server..", args="..args) - return weechat.PLUGIN_RC_OK() -end - - - - Notes: function called when command is executed has to return - one of following values: - - - - PLUGIN_RC_KO : function failed - - - - - PLUGIN_RC_OK : function successfully - completed - - - - -
- -
- add_timer_handler - - - Perl prototype: - - weechat::add_timer_handler(interval, function); - - - - Python prototype: - - weechat.add_timer_handler(interval, function) - - - - Ruby prototype: - - Weechat.add_timer_handler(interval, function) - - - - Lua prototype: - - weechat.add_timer_handler(interval, function) - - - - Add a timer handler which periodically calls a function. - - - Arguments: - - - - : interval (in seconds) between - two calls of function. - - - - - : function called - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_timer_handler(60, "my_timer"); -sub my_timer -{ - weechat::print("this is timer handler"); - return weechat::PLUGIN_RC_OK; -} - -# python -weechat.add_timer_handler(60, "my_timer") -def my_timer(): - weechat.prnt("this is timer handler") - return weechat.PLUGIN_RC_OK - -# ruby -Weechat.add_timer_handler(60, "my_timer") -def my_timer() - Weechat.print("this is timer handler") - return Weechat::PLUGIN_RC_OK -end - --- lua -weechat.add_timer_handler(60, "my_timer") -function my_timer() - weechat.print("this is timer handler") - return weechat.PLUGIN_RC_OK() -end - - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - -
- -
- add_keyboard_handler - - - Perl prototype: - - weechat::add_keyboard_handler(function); - - - - Python prototype: - - weechat.add_keyboard_handler(function) - - - - Ruby prototype: - - Weechat.add_keyboard_handler(function) - - - - Lua prototype: - - weechat.add_keyboard_handler(function) - - - - Add a keyboard handler, called for any key pressed. - - - Arguments: - - - - : function called - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_keyboard_handler("my_keyboard"); -sub my_keyboard -{ - my $key = shift; - my $input_before = shift; - my $input_after = shift; - weechat::print("keyboard handler: key = '$key', " - ."input before = '$input_before' " - ."after = '$input_after'"); - return weechat::PLUGIN_RC_OK; -} - -# python -weechat.add_keyboard_handler("my_keyboard") -def my_keyboard(key, input_before, input_after): - weechat.prnt("keyboard handler: key = '%s', " \ - "input before = '%s' after = '%s'" - %(key, input_before, input_after)) - return weechat.PLUGIN_RC_OK - -# ruby -Weechat.add_keyboard_handler("my_keyboard") -def my_keyboard(key, input_before, input_after) - Weechat.print("keyboard handler: key = '#{key}', " \ - "input before = '#{input_before}' " \ - "after = '#{input_after}'") - return Weechat::PLUGIN_RC_OK -end - --- lua -weechat.add_keyboard_handler("my_keyboard") -function my_keyboard(key, input_before, input_after) - weechat.print("keyboard handler: key = '"..key.. - "', input before = '"..input_before.. - "' after = '"..input_after.."'") - return weechat.PLUGIN_RC_OK() -end - - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - -
- -
- add_event_handler - - - Perl prototype: - - weechat::add_event_handler(event, function); - - - - Python prototype: - - weechat.add_event_handler(event, function) - - - - Ruby prototype: - - Weechat.add_event_handler(event, function) - - - - Lua prototype: - - weechat.add_event_handler(event, function) - - - - Add an event handler, called when an event happens. - - - Arguments: - - - - : event - (see ) - - - - - : function called - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_event_handler("buffer_open", "my_event"); -sub my_event -{ - weechat::print("buffer open"); - return weechat::PLUGIN_RC_OK; -} - -# python -weechat.add_event_handler("buffer_open", "my_event") -def my_event(): - weechat.prnt("buffer open") - return weechat.PLUGIN_RC_OK - -# ruby -Weechat.add_event_handler("buffer_open", "my_event") -def my_event() - Weechat.print("buffer open") - return Weechat::PLUGIN_RC_OK -end - --- lua -weechat.add_event_handler("buffer_open", "my_event") -function my_event() - weechat.print("buffer open") - return weechat.PLUGIN_RC_OK() -end - - - - Note: function called has to return one of following values: - - - - PLUGIN_RC_KO: function failed - - - - - PLUGIN_RC_OK: function successfully - completed - - - - -
- -
- remove_handler - - - Perl prototype: - - weechat::remove_handler(name, function); - - - - Python prototype: - - weechat.remove_handler(name, function) - - - - Ruby prototype: - - Weechat.remove_handler(name, function) - - - - Lua prototype: - - weechat.remove_handler(name, function) - - - - Remove a message or command handler. - - - Arguments: - - - - : name of IRC message or command - - - - - : function - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_handler("command", "my_command"); - -# python -weechat.remove_handler("command", "my_command") - -# ruby -Weechat.remove_handler("command", "my_command") - --- lua -weechat.remove_handler("command", "my_command") - - -
- -
- remove_timer_handler - - - Perl prototype: - - weechat::remove_timer_handler(function); - - - - Python prototype: - - weechat.remove_timer_handler(function) - - - - Ruby prototype: - - Weechat.remove_timer_handler(function) - - - - Lua prototype: - - weechat.remove_timer_handler(function) - - - - Remove a timer handler. - - - Arguments: - - - - : function - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_timer_handler("my_timer"); - -# python -weechat.remove_timer_handler("my_timer") - -# ruby -Weechat.remove_timer_handler("my_timer") - --- lua -weechat.remove_timer_handler("my_timer") - - -
- -
- remove_keyboard_handler - - - Perl prototype: - - weechat::remove_keyboard_handler(function); - - - - Python prototype: - - weechat.remove_keyboard_handler(function) - - - - Ruby prototype: - - Weechat.remove_keyboard_handler(function) - - - - Lua prototype: - - weechat.remove_keyboard_handler(function) - - - - Remove a keyboard handler. - - - Arguments: - - - - : function - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_keyboard_handler("my_keyboard"); - -# python -weechat.remove_keyboard_handler("my_keyboard") - -# ruby -Weechat.remove_keyboard_handler("my_keyboard") - --- lua -weechat.remove_keyboard_handler("my_keyboard") - - -
- -
- remove_event_handler - - - Perl prototype: - - weechat::remove_event_handler(function); - - - - Python prototype: - - weechat.remove_event_handler(function) - - - - Ruby prototype: - - Weechat.remove_event_handler(function) - - - - Lua prototype: - - weechat.remove_event_handler(function) - - - - Remove an event handler. - - - Arguments: - - - - : function - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_event_handler("my_event"); - -# python -weechat.remove_event_handler("my_event") - -# ruby -Weechat.remove_event_handler("my_event") - --- lua -weechat.remove_event_handler("my_event") - - -
- -
- add_modifier - - - Perl prototype: - - weechat::add_modifier(type, message, function); - - - - Python prototype: - - weechat.add_modifier(type, message, function) - - - - Ruby prototype: - - Weechat.add_modifier(type, message, function) - - - - Lua prototype: - - weechat.add_modifier(type, message, function) - - - - Add a message modifier. - - - Arguments: - - - - : modifier type: - - - - - Type - Description - - - - - irc_in - called for incoming IRC messages - - - irc_user - - called for each user message (or command) (before - WeeChat parses message) - - - - irc_out - - called for outgoing messages, immediately before - sending it to IRC server (this includes messages - sent automatically by WeeChat to server) - - - - - - - - - - : name of IRC message (used only for - types "irc_in" and "irc_out"). - To know list of IRC messages, please consult - RFCs - 1459 - and - 2812. - Moreover, special value "*" means all messages (no filter). - - - - - : function called - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::add_modifier("irc_in", "privmsg", "mod_in"); -weechat::add_modifier("irc_out", "privmsg", "mod_out"); -sub mod_in -{ - return "$_[1] [modifier IN]"; -} -sub mod_out -{ - return "$_[1] [modifier OUT]"; -} - -# python -weechat.add_modifier("irc_in", "privmsg", "mod_in") -weechat.add_modifier("irc_out", "privmsg", "mod_out") -def mod_in(serveur, args): - return args + " [modifier IN]" -def mod_out(serveur, args): - return args + " [modifier OUT]" - -# ruby -Weechat.add_modifier("irc_in", "privmsg", "mod_in") -Weechat.add_modifier("irc_out", "privmsg", "mod_out") -def mod_in(server, args) - return args + " [modifier IN]" -end -def mod_out(server, args) - return args + " [modifier OUT]" -end - --- lua -weechat.add_modifier("irc_in", "privmsg", "mod_in") -weechat.add_modifier("irc_out", "privmsg", "mod_out") -function mod_in(server, args) - return args .. " [modifier IN]" -end -function mod_out(server, args) - return args .. " [modifier OUT]" -end - - -
- -
- remove_modifier - - - Perl prototype: - - weechat::remove_modifier(type, message, function); - - - - Python prototype: - - weechat.remove_modifier(type, message, function) - - - - Ruby prototype: - - Weechat.remove_modifier(type, message, function) - - - - Lua prototype: - - weechat.remove_modifier(type, message, function) - - - - Remove a message modifier. - - - Arguments: - - - - : modifier type - - - - - : message managed by modifier - - - - - : function - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::remove_modifier("irc_in", "privmsg", "mod_in"); - -# python -weechat.remove_modifier("irc_in", "privmsg", "mod_in") - -# ruby -Weechat.remove_modifier("irc_in", "privmsg", "mod_in") - --- lua -weechat.remove_modifier("irc_in", "privmsg", "mod_in") - - -
- -
- command - - - Perl prototype: - - weechat::command(command, [channel, [server]]); - - - - Python prototype: - - weechat.command(command, [channel, [server]]) - - - - Ruby prototype: - - Weechat.command(command, [channel, [server]]) - - - - Lua prototype: - - weechat.command(command, [channel, [server]]) - - - - Execute a WeeChat command (or send a message to a channel). - - - Arguments: - - - - : command - - - - - : name of channel for executing - command - - - - - : internal name of server for - executing command - - - - - - Return value: 1 if success, 0 if an error occurred. - - - Examples: - -# perl -weechat::command("hello everybody!"); -weechat::command("/kick toto please leave this channel", "#weechat"); -weechat::command("/nick newnick", "", "freenode"); - -# python -weechat.command("hello everybody!") -weechat.command("/kick toto please leave this channel", "#weechat") -weechat.command("/nick newnick", "", "freenode") - -# ruby -Weechat.command("hello everybody!") -Weechat.command("/kick toto please leave this channel", "#weechat") -Weechat.command("/nick newnick", "", "freenode") - --- lua -weechat.command("hello everybody!") -weechat.command("/kick toto please leave this channel", "#weechat") -weechat.command("/nick newnick", "", "freenode") - - -
- -
- get_info - - - Perl prototype: - - weechat::get_info(name, [server]); - - - - Python prototype: - - weechat.get_info(name, [server]) - - - - Ruby prototype: - - Weechat.get_info(name, [server]) - - - - Lua prototype: - - weechat.get_info(name, [server]) - - - - Return an info about WeeChat or a channel. - - - Arguments: - - - - : name of info to read - (see ) - - - - - : internal name of server for - reading info (if needed) - - - - - - Return value: information asked, empty string if an error - occurred. - - - Examples: - -# perl -$version = get_info("version"); -$nick = get_info("nick", "freenode"); - -# python -version = weechat.get_info("version") -nick = weechat.get_info("nick", "freenode") - -# ruby -version = Weechat.get_info("version") -nick = Weechat.get_info("nick", "freenode") - --- lua -version = weechat.get_info("version") -nick = weechat.get_info("nick", "freenode") - - -
- -
- get_dcc_info - - - Perl prototype: - - weechat::get_dcc_info(); - - - - Python prototype: - - weechat.get_dcc_info() - - - - Ruby prototype: - - Weechat.get_dcc_info() - - - - Lua prototype: - - weechat.get_dcc_info() - - - - Return list of DCC currently active or finished. - - - Return value: list of DCC - (see ). - - - Examples: - -# perl -my @dccs = weechat::get_dcc_info(); -if (@dccs) -{ - foreach my $dcc (@dccs) - { - while (my ($key, $value) = each %$dcc) - { - weechat::print("$key = '$value'"); - } - } -} -else -{ - weechat::print("no DCC"); -} - -# python -dccs = weechat.get_dcc_info() -if dccs != None: - if dccs == []: - weechat.prnt("no DCC") - else: - for d in dccs: - for b in d.keys(): - weechat.prnt("%s = '%s'" %(b, d[b])) -else: - weechat.prnt("error while getting DCC") - -# ruby -dccs = Weechat.get_dcc_info() -if dccs != nil - if dccs == [] - Weechat.print("no DCC") - else - dccs.each do |m| - m.each do |key, value| - Weechat.print("#{key} = '#{value}'") - end - end - end -else - Weechat.print("error while getting DCC") -end - --- lua -dccs = weechat.get_dcc_info() -if dccs ~= nil then - if dccs then - dcc, dccinfos = next (dccs, nil) - while (dcc) do - key, value = next (dccinfos, nil) - while (key) do - weechat.print(key.." = '"..value.."'") - key, value = next (dccinfos, key) - end - dcc, dccinfos = next (dccs, dcc) - end - else - weechat.print("no DCC") - end -else - weechat.print("error while getting DCC") -end - - -
- -
- get_server_info - - - Perl prototype: - - weechat::get_server_info(); - - - - Python prototype: - - weechat.get_server_info() - - - - Ruby prototype: - - Weechat.get_server_info() - - - - Lua prototype: - - weechat.get_server_info() - - - - Return list of IRC servers (connected or not). - - - Return value: list of servers - (see ). - - - Examples: - -# perl -my $servers = weechat::get_server_info(); -if ($servers) -{ - while (my ($srvname, $srvinfos) = each %$servers) - { - while ( my ($key, $value) = each %$srvinfos) - { - weechat::print("$srvname -> $key = '$value'"); - } - } -} -else -{ - weechat::print("no server"); -} - -# python -servers = weechat.get_server_info() -if servers != None: - if servers == {}: - weechat.prnt("no server") - else: - for s in servers: - for i in servers[s]: - weechat.prnt("%s -> %s = '%s'" % (s, i, str(servers[s][i]))) -else: - weechat.prnt("error while getting servers") - -# ruby -servers = Weechat.get_server_info() -if servers != nil - if servers == [] - Weechat.print("no server") - else - servers.each do |n, s| - s.each do |key, value| - Weechat.print("#{n} -> #{key} = '#{value}'") - end - end - end -else - Weechat.print("error while getting servers") -end - --- lua -servers = weechat.get_server_info() -if servers ~= nil then - if servers then - srv, srvinfos = next (servers, nil) - while (srv) do - key, value = next (srvinfos, nil) - while (key) do - weechat.print(srv.." -> "..key.." = '"..value.."'") - key, value = next (srvinfos, key) - end - srv, srvinfos = next (servers, srv) - end - else - weechat.print("no server") - end -else - weechat.print("error while getting servers") -end - - -
- -
- get_channel_info - - - Perl prototype: - - weechat::get_channel_info(server); - - - - Python prototype: - - weechat.get_channel_info(server) - - - - Ruby prototype: - - Weechat.get_channel_info(server) - - - - Lua prototype: - - weechat.get_channel_info(server) - - - - Return list of IRC channels for a server. - - - Return value: list of IRC channels for server - (see ). - - - Examples: - -# perl -my $channels = weechat::get_channel_info(weechat::get_info("server")); -if ($channels) -{ - while (my ($channame, $chaninfos) = each %$channels) - { - while (my ($key, $value) = each %$chaninfos) - { - weechat::print("$channame -> $key = '$value'"); - } - } -} -else -{ - weechat::print("no channel"); -} - -# python -chans = weechat.get_channel_info(weechat.get_info("server")) -if chans != None: - if chans == {}: - weechat.prnt("no channel") - else: - for s in chans: - for i in chans[s]: - weechat.prnt("%s -> %s = '%s'" % (s, i, str(chans[s][i]))) -else: - weechat.prnt("error while getting channels") - -# ruby -channels = Weechat.get_channel_info(Weechat.get_info("server")) -if channels != nil - if channels == {} - Weechat.print("no channel") - else - channels.each do |n, c| - c.each do |key, value| - Weechat.print("#{n} -> #{key} = '#{value}'") - end - end - end -else - Weechat.print("error while getting channels") -end - --- lua -chans = weechat.get_channel_info(weechat.get_info("server")) -if chans ~= nil then - if chans then - chan, chaninfos = next (chans, nil) - while (chan) do - key, value = next (chaninfos, nil) - while (key) do - weechat.print(chan.." -> "..key.." = '"..value.."'") - key, value = next (chaninfos, key) - end - chan, chaninfos = next (chans, chan) - end - else - weechat.print("no channel") - end -else - weechat.print("error while getting channels") -end - - -
- -
- get_nick_info - - - Perl prototype: - - weechat::get_nick_info(server, channel); - - - - Python prototype: - - weechat.get_nick_info(server, channel) - - - - Ruby prototype: - - Weechat.get_nick_info(server, channel) - - - - Lua prototype: - - weechat.get_nick_info(server, channel) - - - - Return list of nicks for a channel. - - - Return value: list of nicks on channel - (see ). - - - Examples: - -# perl -my $nicks = weechat::get_nick_info("freenode", "#weechat"); -if ($nicks) -{ - while (my ($nickname, $nickinfos) = each %$nicks) - { - while ( my ($key, $value) = each %$nickinfos) - { - weechat::print("$nickname -> $key = '$value'"); - } - } -} -else -{ - weechat::print("no nick"); -} - -# python -nicks = weechat.get_nick_info("freenode", "#weechat") -if nicks != None: - if nicks == {}: - weechat.prnt("no nick") - else: - for n in nicks: - for f in nicks[n]: - weechat.prnt("%s -> %s = '%s'" % (n, f, str(nicks[n][f]))) -else: - weechat.prnt("error while getting nicks") - -# ruby -nicks = Weechat.get_nick_info("freenode", "#weechat") -if nicks != nil - if nicks == {} - Weechat.print("no nick") - else - nicks.each do |nk, nattr| - nattr.each do |key, value| - Weechat.print("#{nk} -> #{key} = '#{value}'") - end - end - end -else - Weechat.print("error while getting nicks") -end - --- lua -nicks = weechat.get_nick_info("freenode", "#weechat") -if nicks ~= nil then - if nicks then - nick, nickinfos = next (nicks, nil) - while (nick) do - key, value = next (nickinfos, nil) - while (key) do - weechat.print(nick.." -> "..key.." = '"..value.."'") - key, value = next (nickinfos, key) - end - nick, nickinfos = next (nicks, nick) - end - else - weechat.print("no nick") - end -else - weechat.print("error while getting nicks") -end - - -
- -
- get_config - - - Perl prototype: - - weechat::get_config(option); - - - - Python prototype: - - weechat.get_config(option) - - - - Ruby prototype: - - Weechat.get_config(option) - - - - Lua prototype: - - weechat.get_config(option) - - - - Return value of a WeeChat config option. - - - Arguments: - - - - : name of option to read - - - - - - Return value: option value, empty string if not found. - - - Examples: - -# perl -$value1 = weechat::get_config("look_nicklist"); -$value2 = weechat::get_config("freenode.server_autojoin"); - -# python -value1 = weechat.get_config("look_nicklist") -value2 = weechat.get_config("freenode.server_autojoin") - -# ruby -value1 = Weechat.get_config("look_nicklist") -value2 = Weechat.get_config("freenode.server_autojoin") - --- lua -value1 = weechat.get_config("look_nicklist") -value2 = weechat.get_config("freenode.server_autojoin") - - -
- -
- set_config - - - Perl prototype: - - weechat::set_config(option, value); - - - - Python prototype: - - weechat.set_config(option, value) - - - - Ruby prototype: - - Weechat.set_config(option, value) - - - - Lua prototype: - - weechat.set_config(option, value) - - - - Update value of a WeeChat config option. - - - Arguments: - - - - : name of option to update - - - - - : new value for option - - - - - - Return value: 1 if option was successfully updated, 0 if an error - occurred. - - - Examples: - -# perl -weechat::set_config("look_nicklist", "off"); -weechat::set_config("freenode.server_autojoin", "#weechat"); - -# python -weechat.set_config("look_nicklist", "off") -weechat.set_config("freenode.server_autojoin", "#weechat") - -# ruby -Weechat.set_config("look_nicklist", "off") -Weechat.set_config("freenode.server_autojoin", "#weechat") - --- lua -weechat.set_config("look_nicklist", "off") -weechat.set_config("freenode.server_autojoin", "#weechat") - - -
- -
- get_plugin_config - - - Perl prototype: - - weechat::get_plugin_config(option); - - - - Python prototype: - - weechat.get_plugin_config(option) - - - - Ruby prototype: - - Weechat.get_plugin_config(option) - - - - Lua prototype: - - weechat.get_plugin_config(option) - - - - Return value of a plugin option. Option is read from file - "~/.weechat/plugins.rc" and is like: - "plugin.option=value" (note: plugin name - is automatically added). - - - Arguments: - - - - : name of option to read - - - - - - Return value: value of option, empty string if not found. - - - Examples : - -# perl -$value = weechat::get_plugin_config("my_var"); - -# python -value = weechat.get_plugin_config("my_var") - -# ruby -value = Weechat.get_plugin_config("my_var") - --- lua -value = weechat.get_plugin_config("my_var") - - -
- -
- set_plugin_config - - - Perl prototype: - - weechat::set_plugin_config(option, value); - - - - Python prototype: - - weechat.set_plugin_config(option, value) - - - - Ruby prototype: - - Weechat.set_plugin_config(option, value) - - - - Lua prototype: - - weechat.set_plugin_config(option, value) - - - - Update value of a plugin option. Option is written in file - "~/.weechat/plugins.rc" and is like: - "plugin.option=value" (note: plugin name - is automatically added). - - - Arguments: - - - - : name of option to update - - - - - : new value for option - - - - - - Return value: 1 if option was successfully updated, 0 if an error - occurred. - - - Examples: - -# perl -weechat::set_plugin_config("my_var", "value"); - -# python -weechat.set_plugin_config("my_var", "value") - -# ruby -Weechat.set_plugin_config("my_var", "value") - --- lua -weechat.set_plugin_config("my_var", "value") - - -
- -
- get_irc_color - - - Perl prototype: - - weechat::get_irc_color(color); - - - - Python prototype: - - weechat.get_irc_color(color) - - - - Ruby prototype: - - Weechat.get_irc_color(color) - - - - Lua prototype: - - weechat.get_irc_color(color) - - - - Return IRC color index with name. - - - Return value: IRC color index, -1 if color is not found - (see ). - - - Examples: - -# perl -my $color_blue = weechat::get_irc_color("blue"); - -# python -color_blue = weechat.get_irc_color("blue") - -# ruby -color_blue = Weechat.get_irc_color("blue") - --- lua -color_blue = weechat.get_irc_color("blue") - - -
- -
- input_color - - - Perl prototype: - - weechat::input_color(color); - - - - Python prototype: - - weechat.input_color(color) - - - - Ruby prototype: - - Weechat.input_color(color) - - - - Lua prototype: - - weechat.input_color(color) - - - - Add color in input buffer. - - - Return value: none. - - - Examples: - -# perl -weechat::input_color(weechat::get_irc_color("blue"), 10, 5); - -# python -weechat.input_color(weechat.get_irc_color("blue"), 10, 5) - -# ruby -Weechat.input_color(Weechat.get_irc_color("blue"), 10, 5) - --- lua -weechat.input_color(weechat.get_irc_color("blue"), 10, 5) - - -
- -
- get_window_info - - - Perl prototype: - - weechat::get_window_info(); - - - - Python prototype: - - weechat.get_window_info() - - - - Ruby prototype: - - Weechat.get_window_info() - - - - Lua prototype: - - weechat.get_window_info() - - - - Return list of WeeChat windows. - - - Return value: list of WeeChat windows - (see ). - - - Examples: - -# perl -my @wf = weechat::get_window_info(); -if (@wf) -{ - weechat::print("**** windows infos ****"); - foreach my $w (@wf) - { - while ( my ($key, $value) = each %$w) - { - weechat::print(" > $key => $value"); - } - weechat::print("----------------------"); - } -} -else -{ - weechat::print("**** no window info ****"); -} - -# python -wf = weechat.get_window_info() -if wf != None and wf != []: - weechat.prnt ("**** windows infos ****") - for w in wf: - for i in w: - weechat.prnt (" > %s => %s" % (i, w[i])) - weechat.prnt ("----------------------") -else: - weechat.prnt ("**** no window info ****") - -# ruby -wf = Weechat.get_window_info() -if wf != nil and wf != [] - Weechat.print("**** windows infos ****") - wf.each do |w| - w.each do |key, value| - Weechat.print(" > #{key} => #{value}") - end - Weechat.print("----------------------") - end -else - Weechat.print("**** no window info ****") -end - --- lua -wf = weechat.get_window_info() -if wf then - weechat.print ("**** windows infos ****") - w, winfos = next (wf, nil) - while (w) do - key, value = next (winfos, nil) - while (key) do - weechat.print(" > " .. key .. " => " .. value) - key, value = next (winfos, key) - end - weechat.print ("----------------------") - w, winfos = next (wf, w) - end -else - weechat.print("**** no window info ****") -end - - -
- -
- get_buffer_info - - - Perl prototype: - - weechat::get_buffer_info(); - - - - Python prototype: - - weechat.get_buffer_info() - - - - Ruby prototype: - - Weechat.get_buffer_info() - - - - Lua prototype: - - weechat.get_buffer_info() - - - - Return list of WeeChat buffers. - - - Return value: list of WeeChat buffers - (see ). - - - Examples: - -# perl -my $bf = weechat::get_buffer_info(); -if ($bf) -{ - while ( my ($nobuf, $binfos) = each %$bf) - { - while ( my ($key, $value) = each %$binfos) - { - weechat::print(" > $key => $value"); - } - weechat::print("----------------------"); - } -} -else -{ - weechat::print("**** no buffer info ****"); -} - -# python -bf = weechat.get_buffer_info() -if bf != None and bf != {}: - for b in bf: - weechat.prnt ("**** info for buffer no %d ****" % b) - for c in bf[b]: - weechat.prnt (" > %s => %s" % (c, bf[b][c])) - weechat.prnt ("----------------------") -else: - weechat.prnt ("**** no buffer info ****") - -# ruby -bf = Weechat.get_buffer_info() -if bf != nil and bf != {} - bf.each do |n, c| - Weechat.print("**** info for buffer no #{n} ****") - c.each do |key, value| - Weechat.print(" > #{key} => #{value}") - end - Weechat.print("----------------------") - end -else - Weechat.print("**** no buffer info ****") -end - --- lua -bf = weechat.get_buffer_info() -if bf then - b, binfos = next (bf, nil) - while (b) do - weechat.print("**** info for buffer no " .. b .. " ****") - key, value = next (binfos, nil) - while (key) do - weechat.print(" > " .. key .. " => " .. value) - key, value = next (binfos, key) - end - weechat.print ("----------------------") - b, infos = next (bf, b) - end -else - weechat.print("**** no buffer info ****") -end - - -
- -
- get_buffer_data - - - Perl prototype: - - weechat::get_buffer_data(server, channel); - - - - Python prototype: - - weechat.get_buffer_data(server, channel) - - - - Ruby prototype: - - Weechat.get_buffer_data(server, channel) - - - - Lua prototype: - - weechat.get_buffer_data(server, channel) - - - - Return content of buffer. - - - Return value: list of lines for buffer - (see ). - - - Examples: - -# perl -my $server = weechat::get_info("server"); -my $channel = weechat::get_info("channel"); -my @bc = weechat::get_buffer_data($server, $channel); -if (@bc) -{ - weechat::print("**** buffer data for '$channel'\@'$server' ****"); - foreach my $l (@bc) { - while ( my ($key, $value) = each %$l) { - weechat::print(" > $key => $value"); - } - weechat::print("----------------------"); - } -} -else -{ - weechat::print("**** no buffer data ****"); -} - -# python -server = weechat.get_info("server") -channel = weechat.get_info("channel") -bc = weechat.get_buffer_data(server, channel) -if bc != None and bc != []: - weechat.prnt ("**** buffer data for '%s'@'%s' ****" % (channel, server)) - for l in bc: - for i in l: - weechat.prnt (" > %s => %s" % (i, l[i])) - weechat.prnt ("----------------------") -else: - weechat.prnt ("**** no buffer data ****") - -# ruby -server = Weechat.get_info("server") -channel = Weechat.get_info("channel") -bc = Weechat.get_buffer_data(server, channel) -if bc != nil and bc != [] - Weechat.print("**** buffer data for '#{channel}'@'#{server}' ****") - bc.each do |l| - l.each do |key, value| - Weechat.print(" > #{key} => #{value}") - end - Weechat.print("----------------------") - end -else - Weechat.print("**** no buffer data ****") -end - --- lua -server = weechat.get_info("server") -channel = weechat.get_info("channel") -bc = weechat.get_buffer_data(server, channel) -if bc then - b, bdatas = next (bc, nil) - weechat.print("**** buffer data for '" .. channel .. "'@'" .. server .. "' ****") - while (b) do - key, value = next (bdatas, nil) - while (key) do - weechat.print(" > " .. key .. " => " .. value) - key, value = next (bdatas, key) - end - weechat.print ("----------------------") - b, bdatas = next (bc, b) - end -else - weechat.print("**** no buffer data ****") -end - - -
- -
- -
- -
+ &usage.en.xml; - + &plugins.en.xml; - - Authors / Support - - - This chapter lists authors and contributors for WeeChat, and - shows ways to get support. - - -
- Authors - - - WeeChat is developed by: - - - - FlashCode (Sébastien Helleu) - flashcode AT flashtux.org - - main developer - - - - - kolter (Emmanuel Bouthenot) - kolter AT openics.org - - developer - - - - - Ptitlouis - ptitlouis AT sysif.net - - Debian packager - - - - - -
- -
- Contributors - - - Following people contributed to WeeChat: - - - - Jiri Golembiovsky - - czech translation, patches - - - - - Rudolf Polzer - - patches - - - - - Jim Ramsay - - patches - - - - - Odin - - SuSE RPM - - - - - Pistos - - patches - - - - - Gwenn - - patches - - - - - voroskoi - - hungarian translation - - - - - Frank Zacharias - - german translation - - - - - Pavel Shevchuk - - russian translation - - - - - -
- -
- Get support - - - Before asking for support, be sure you've read documentation and FAQ - provided with WeeChat (documentation is this document, if you don't - read all lines until this sentence, you can start again!) - - - - - - - IRC: server "irc.freenode.net", - channel "#weechat" - - - - - WeeChat forum: - - http://forums.flashtux.org - - - - - - Mailing list: - - - - To subscribe: - - http://mail.nongnu.org/mailman/listinfo/weechat-support - - - - - - To send a mail on mailing list: - weechat-support@nongnu.org - - - - Mailing list archives are available here: - - http://mail.nongnu.org/archive/html/weechat-support - - - - - - -
- -
+ &authors.en.xml;
-- cgit v1.2.3