diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2006-10-24 11:23:31 +0000 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2006-10-24 11:23:31 +0000 |
commit | dfa9ed31d47908f0eb58df652f08cee3ea18193b (patch) | |
tree | abe024ddf0c384e15c57374478740fb465867ad9 /doc | |
parent | 1e815918037a9e5d62458972bdbcfd56deeadd98 (diff) | |
download | weechat-dfa9ed31d47908f0eb58df652f08cee3ea18193b.zip |
Added "modifier" in plugins API, improved /plugin command
Diffstat (limited to 'doc')
-rw-r--r-- | doc/de/weechat.de.xml | 420 | ||||
-rw-r--r-- | doc/de/weechat_commands.xml | 12 | ||||
-rw-r--r-- | doc/en/weechat.en.xml | 422 | ||||
-rw-r--r-- | doc/en/weechat_commands.xml | 12 | ||||
-rw-r--r-- | doc/fr/weechat.fr.xml | 438 | ||||
-rw-r--r-- | doc/fr/weechat_commands.xml | 12 |
6 files changed, 1278 insertions, 38 deletions
diff --git a/doc/de/weechat.de.xml b/doc/de/weechat.de.xml index c9405cceb..97b444330 100644 --- a/doc/de/weechat.de.xml +++ b/doc/de/weechat.de.xml @@ -1917,7 +1917,9 @@ int msg_kick (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); +t_plugin_handler *msg_handler; +msg_handler = plugin->msg_handler_add (plugin, "KICK", + &msg_kick, NULL, NULL); </screen> </para> </section> @@ -2158,9 +2160,10 @@ int cmd_test (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->cmd_handler_add (plugin, "test", "Test command", - "[nick]", "nick: nick of channel", - "%n", &cmd_test, NULL, NULL); +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); </screen> </para> </section> @@ -2249,7 +2252,8 @@ int my_timer (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->timer_handler_add (plugin, 60, &my_timer); +t_plugin_handler *timer_handler; +timer_handler = plugin->timer_handler_add (plugin, 60, &my_timer); </screen> </para> </section> @@ -2345,8 +2349,8 @@ plugin->timer_handler_add (plugin, 60, &my_timer); <para> Beispiel: <screen> -int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) +int my_keyb (t_weechat_plugin *plugin, int argc, char **argv, + char *handler_args, void *handler_pointer) { if (argc == 2) { @@ -2359,7 +2363,8 @@ int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->keyboard_handler_add (plugin, &keyb_handler); +t_plugin_handler *keyb_handler; +keyb_handler = plugin->keyboard_handler_add (plugin, &my_keyb); </screen> </para> </section> @@ -2432,6 +2437,214 @@ plugin->keyboard_handler_add (plugin, &keyb_handler); </para> </section> + <section id="secAPI_modifier_add"> + <title>modifier_add</title> + + <para> + Prototype: + <command> + t_plugin_modifier *modifier_add (t_weechat_plugin *plugin, + char *type, char *message, t_plugin_modifier_func *function, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Add a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + <listitem> + <para> + <option>type</option>: modifier type: + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>called for incoming IRC messages</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + called for each user message (or command) (before + WeeChat parses message) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + called for outgoing messages, immediately before + sending it to IRC server (this includes messages + sent automatically by WeeChat to server) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option>: name of IRC message (used only for + types "irc_in" and "irc_out"). + To know list of IRC messages, please consult + <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> and + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + Moreover, special value "*" means all messages (no filter). + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function called + </para> + <para> + It uses following prototype: + <command> + int my_function (t_weechat_plugin *plugin, + int argc, char **argv, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Argument argc is set to 2, following values are set in + argv array: + <itemizedlist> + <listitem> + <para>argv[0] = server name</para> + </listitem> + <listitem> + <para>argv[1] = message</para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + <option>modifier_args</option>: arguments given to function + when called + </para> + </listitem> + <listitem> + <para> + <option>modifier_pointer</option>: pointer given to function + when called + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: pointer to new message modifier. + </para> + <para> + 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. + </para> + <para> + Example: +<screen> +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); +</screen> + </para> + </section> + + <section id="secAPI_modifier_remove"> + <title>modifier_remove</title> + + <para> + Prototype: + <command> + void modifier_remove (t_weechat_plugin *plugin, + t_plugin_modifier *modifier) + </command> + </para> + <para> + Remove a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + <listitem> + <para> + <option>modifier</option>: modifier to remove + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: none. + </para> + <para> + Example: + <screen>plugin->modifier_remove (plugin, my_modifier);</screen> + </para> + </section> + + <section id="secAPI_modifier_remove_all"> + <title>modifier_remove_all</title> + + <para> + Prototype: + <command> + void modifier_remove_all (t_weechat_plugin *plugin) + </command> + </para> + <para> + Remove all modifiers for a plugin. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: none. + </para> + <para> + Example: + <screen>plugin->modifier_remove_all (plugin);</screen> + </para> + </section> + <section id="secAPI_exec_command"> <title>exec_command</title> @@ -5431,6 +5644,197 @@ weechat.remove_keyboard_handler("my_keyboard") </para> </section> + <section id="secScript_add_modifier"> + <title>add_modifier</title> + + <para> + Perl prototype: + <command> + weechat::add_modifier(type, message, function); + </command> + </para> + <para> + Python prototype: + <command> + weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Ruby prototype: + <command> + Weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Lua prototype: + <command> + weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Add a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>type</option>: modifier type: + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>called for incoming IRC messages</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + called for each user message (or command) (before + WeeChat parses message) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + called for outgoing messages, immediately before + sending it to IRC server (this includes messages + sent automatically by WeeChat to server) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option>: name of IRC message (used only for + types "irc_in" and "irc_out"). + To know list of IRC messages, please consult + <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> and + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + Moreover, special value "*" means all messages (no filter). + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function called + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: 1 if success, 0 if an error occurred. + </para> + <para> + Examples: +<screen> +# perl +weechat::add_modifier("irc_in", "privmsg", "my_function"); +sub my_function +{ + # TODO +} + +# python +weechat.add_modifier("irc_in", "privmsg", "my_function") +def my_function(serveur, args): + # TODO + +# ruby +Weechat.add_modifier("irc_in", "privmsg", "my_function") +def my_function(server, args) + # TODO +end + +-- lua +weechat.add_modifier("irc_in", "privmsg", "my_function") +function my_function(server, args) + -- TODO +end +</screen> + </para> + </section> + + <section id="secScript_remove_modifier"> + <title>remove_modifier</title> + + <para> + Perl prototype: + <command> + weechat::remove_modifier(type, message, function); + </command> + </para> + <para> + Python prototype: + <command> + weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Ruby prototype: + <command> + Weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Lua prototype: + <command> + weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Remove a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>type</option>: modifier type + </para> + </listitem> + <listitem> + <para> + <option>message</option>: message managed by modifier + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: 1 if success, 0 if an error occurred. + </para> + <para> + Examples: +<screen> +# perl +weechat::remove_modifier("irc_in", "privmsg", "my_function"); + +# python +weechat.remove_modifier("irc_in", "privmsg", "my_function") + +# ruby +Weechat.remove_modifier("irc_in", "privmsg", "my_function") + +-- lua +weechat.remove_modifier("irc_in", "privmsg", "my_function") +</screen> + </para> + </section> + <section id="secScript_command"> <title>command</title> diff --git a/doc/de/weechat_commands.xml b/doc/de/weechat_commands.xml index ecdbcb907..0f0345a7a 100644 --- a/doc/de/weechat_commands.xml +++ b/doc/de/weechat_commands.xml @@ -128,13 +128,19 @@ functions: list internal functions for key bindings reset: restore bindings to the default values and delete ALL personal bindings (use carefully!) </programlisting> -<command>plugin [load Dateiname] | [autoload] | [reload] | [unload]</command> +<command>plugin [list [mask]] | [listfull [mask]] | [load filename] | [autoload] | [reload [name]] | [unload [name]]</command> <programlisting> auflisten/laden/entladen von Plugins -Dateiname: zu ladendes Plugin + list: list loaded plugins +listfull: list loaded plugins with detailed info for each plugin + mask: part of name of a loaded plugin + load: load a plugin +autoload: autoload plugins in system or user directory + reload: reload one plugin (if no name given, unload all plugins, then autoload plugins) + unload: unload one or all plugins -Ohne Argumente werden alle geladenen Plugins aufgelistet. +Without argument, /plugin command lists loaded plugins. </programlisting> <command>server [Servername] | [Servername Hostname Port [-auto | -noauto] [-ipv6] [-ssl] [-pwd Passwort] [-nicks Nick1 Nick2 Nick3] [-username Benutzername] [-realname Name] [-command Befehl] [-autojoin Channel[,Channel]] ] | [del Servername]</command> diff --git a/doc/en/weechat.en.xml b/doc/en/weechat.en.xml index 2901b9bd1..18cb123be 100644 --- a/doc/en/weechat.en.xml +++ b/doc/en/weechat.en.xml @@ -1930,7 +1930,9 @@ int msg_kick (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); +t_plugin_handler *msg_handler; +msg_handler = plugin->msg_handler_add (plugin, "KICK", + &msg_kick, NULL, NULL); </screen> </para> </section> @@ -2180,9 +2182,10 @@ int cmd_test (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->cmd_handler_add (plugin, "test", "Test command", - "[nick]", "nick: nick of channel", - "%n", &cmd_test, NULL, NULL); +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); </screen> </para> </section> @@ -2274,7 +2277,8 @@ int my_timer (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->timer_handler_add (plugin, 60, &my_timer); +t_plugin_handler *timer_handler; +timer_handler = plugin->timer_handler_add (plugin, 60, &my_timer); </screen> </para> </section> @@ -2372,8 +2376,8 @@ plugin->timer_handler_add (plugin, 60, &my_timer); <para> Example: <screen> -int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) +int my_keyb (t_weechat_plugin *plugin, int argc, char **argv, + char *handler_args, void *handler_pointer) { if (argc == 2) { @@ -2386,7 +2390,8 @@ int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->keyboard_handler_add (plugin, &keyb_handler); +t_plugin_handler *keyb_handler; +keyb_handler = plugin->keyboard_handler_add (plugin, &my_keyb); </screen> </para> </section> @@ -2459,6 +2464,214 @@ plugin->keyboard_handler_add (plugin, &keyb_handler); </para> </section> + <section id="secAPI_modifier_add"> + <title>modifier_add</title> + + <para> + Prototype: + <command> + t_plugin_modifier *modifier_add (t_weechat_plugin *plugin, + char *type, char *message, t_plugin_modifier_func *function, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Add a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + <listitem> + <para> + <option>type</option>: modifier type: + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>called for incoming IRC messages</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + called for each user message (or command) (before + WeeChat parses message) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + called for outgoing messages, immediately before + sending it to IRC server (this includes messages + sent automatically by WeeChat to server) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option>: name of IRC message (used only for + types "irc_in" and "irc_out"). + To know list of IRC messages, please consult + <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> and + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + Moreover, special value "*" means all messages (no filter). + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function called + </para> + <para> + It uses following prototype: + <command> + int my_function (t_weechat_plugin *plugin, + int argc, char **argv, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Argument argc is set to 2, following values are set in + argv array: + <itemizedlist> + <listitem> + <para>argv[0] = server name</para> + </listitem> + <listitem> + <para>argv[1] = message</para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + <option>modifier_args</option>: arguments given to function + when called + </para> + </listitem> + <listitem> + <para> + <option>modifier_pointer</option>: pointer given to function + when called + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: pointer to new message modifier. + </para> + <para> + 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. + </para> + <para> + Example: +<screen> +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); +</screen> + </para> + </section> + + <section id="secAPI_modifier_remove"> + <title>modifier_remove</title> + + <para> + Prototype: + <command> + void modifier_remove (t_weechat_plugin *plugin, + t_plugin_modifier *modifier) + </command> + </para> + <para> + Remove a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + <listitem> + <para> + <option>modifier</option>: modifier to remove + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: none. + </para> + <para> + Example: + <screen>plugin->modifier_remove (plugin, my_modifier);</screen> + </para> + </section> + + <section id="secAPI_modifier_remove_all"> + <title>modifier_remove_all</title> + + <para> + Prototype: + <command> + void modifier_remove_all (t_weechat_plugin *plugin) + </command> + </para> + <para> + Remove all modifiers for a plugin. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>plugin</option>: pointer to plugin structure + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: none. + </para> + <para> + Example: + <screen>plugin->modifier_remove_all (plugin);</screen> + </para> + </section> + <section id="secAPI_exec_command"> <title>exec_command</title> @@ -5281,7 +5494,7 @@ end </para> </section> - <section id="secScript_remode_handler"> + <section id="secScript_remove_handler"> <title>remove_handler</title> <para> @@ -5469,6 +5682,197 @@ weechat.remove_keyboard_handler("my_keyboard") </para> </section> + <section id="secScript_add_modifier"> + <title>add_modifier</title> + + <para> + Perl prototype: + <command> + weechat::add_modifier(type, message, function); + </command> + </para> + <para> + Python prototype: + <command> + weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Ruby prototype: + <command> + Weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Lua prototype: + <command> + weechat.add_modifier(type, message, function) + </command> + </para> + <para> + Add a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>type</option>: modifier type: + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>called for incoming IRC messages</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + called for each user message (or command) (before + WeeChat parses message) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + called for outgoing messages, immediately before + sending it to IRC server (this includes messages + sent automatically by WeeChat to server) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option>: name of IRC message (used only for + types "irc_in" and "irc_out"). + To know list of IRC messages, please consult + <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> and + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + Moreover, special value "*" means all messages (no filter). + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function called + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: 1 if success, 0 if an error occurred. + </para> + <para> + Examples: +<screen> +# perl +weechat::add_modifier("irc_in", "privmsg", "my_function"); +sub my_function +{ + # TODO +} + +# python +weechat.add_modifier("irc_in", "privmsg", "my_function") +def my_function(serveur, args): + # TODO + +# ruby +Weechat.add_modifier("irc_in", "privmsg", "my_function") +def my_function(server, args) + # TODO +end + +-- lua +weechat.add_modifier("irc_in", "privmsg", "my_function") +function my_function(server, args) + -- TODO +end +</screen> + </para> + </section> + + <section id="secScript_remove_modifier"> + <title>remove_modifier</title> + + <para> + Perl prototype: + <command> + weechat::remove_modifier(type, message, function); + </command> + </para> + <para> + Python prototype: + <command> + weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Ruby prototype: + <command> + Weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Lua prototype: + <command> + weechat.remove_modifier(type, message, function) + </command> + </para> + <para> + Remove a message modifier. + </para> + <para> + Arguments: + <itemizedlist> + <listitem> + <para> + <option>type</option>: modifier type + </para> + </listitem> + <listitem> + <para> + <option>message</option>: message managed by modifier + </para> + </listitem> + <listitem> + <para> + <option>function</option>: function + </para> + </listitem> + </itemizedlist> + </para> + <para> + Return value: 1 if success, 0 if an error occurred. + </para> + <para> + Examples: +<screen> +# perl +weechat::remove_modifier("irc_in", "privmsg", "my_function"); + +# python +weechat.remove_modifier("irc_in", "privmsg", "my_function") + +# ruby +Weechat.remove_modifier("irc_in", "privmsg", "my_function") + +-- lua +weechat.remove_modifier("irc_in", "privmsg", "my_function") +</screen> + </para> + </section> + <section id="secScript_command"> <title>command</title> diff --git a/doc/en/weechat_commands.xml b/doc/en/weechat_commands.xml index f62c29989..87b7bc428 100644 --- a/doc/en/weechat_commands.xml +++ b/doc/en/weechat_commands.xml @@ -127,13 +127,19 @@ functions: list internal functions for key bindings reset: restore bindings to the default values and delete ALL personal bindings (use carefully!) </programlisting> -<command>plugin [load filename] | [autoload] | [reload] | [unload]</command> +<command>plugin [list [mask]] | [listfull [mask]] | [load filename] | [autoload] | [reload [name]] | [unload [name]]</command> <programlisting> list/load/unload plugins -filename: WeeChat plugin (file) to load + list: list loaded plugins +listfull: list loaded plugins with detailed info for each plugin + mask: part of name of a loaded plugin + load: load a plugin +autoload: autoload plugins in system or user directory + reload: reload one plugin (if no name given, unload all plugins, then autoload plugins) + unload: unload one or all plugins -Without argument, /plugin command lists all loaded plugins. +Without argument, /plugin command lists loaded plugins. </programlisting> <command>server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername]</command> diff --git a/doc/fr/weechat.fr.xml b/doc/fr/weechat.fr.xml index b6c85fc0c..68ba41451 100644 --- a/doc/fr/weechat.fr.xml +++ b/doc/fr/weechat.fr.xml @@ -1969,7 +1969,9 @@ int msg_kick (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); +t_plugin_handler *msg_handler; +msg_handler = plugin->msg_handler_add (plugin, "KICK", + &msg_kick, NULL, NULL); </screen> </para> </section> @@ -2225,9 +2227,10 @@ int cmd_test (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->cmd_handler_add (plugin, "test", "Commande test", - "[pesudo]", "pseudo: un pseudo du canal", - "%n", &cmd_test, NULL, NULL); +t_plugin_handler *cmd_handler; +cmd_handler = plugin->cmd_handler_add (plugin, "test", "Commande test", + "[pesudo]", "pseudo: un pseudo du canal", + "%n", &cmd_test, NULL, NULL); </screen> </para> </section> @@ -2322,7 +2325,8 @@ int mon_timer (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->timer_handler_add (plugin, 60, &mon_timer); +t_plugin_handler *timer_handler; +timer_handler = plugin->timer_handler_add (plugin, 60, &mon_timer); </screen> </para> </section> @@ -2425,8 +2429,8 @@ plugin->timer_handler_add (plugin, 60, &mon_timer); <para> Exemple : <screen> -int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, - char *handler_args, void *handler_pointer) +int mon_keyb (t_weechat_plugin *plugin, int argc, char **argv, + char *handler_args, void *handler_pointer) { if (argc == 2) { @@ -2439,7 +2443,8 @@ int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, return PLUGIN_RC_OK; } ... -plugin->keyboard_handler_add (plugin, &keyb_handler); +t_plugin_handler *keyb_handler; +keyb_handler = plugin->keyboard_handler_add (plugin, &mon_keyb); </screen> </para> </section> @@ -2514,6 +2519,221 @@ plugin->keyboard_handler_add (plugin, &keyb_handler); </para> </section> + <section id="secAPI_modifier_add"> + <title>modifier_add</title> + + <para> + Prototype : + <command> + t_plugin_modifier *modifier_add (t_weechat_plugin *plugin, + char *type, char *message, t_plugin_modifier_func *fonction, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Ajoute un modifieur de message. + </para> + <para> + Paramètres : + <itemizedlist> + <listitem> + <para> + <option>plugin</option> : pointeur vers la structure + de l'extension + </para> + </listitem> + <listitem> + <para> + <option>type</option> : type de modifieur : + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>appelé pour chaque message IRC reçu</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + appelé pour chaque message (ou commande) envoyé par + l'utilisateur (avant traitement et affichage par + WeeChat) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + appelé pour chaque message sortant juste avant + envoi au serveur IRC (y compris pour les messages + envoyés automatiquement et de manière transparente + par WeeChat) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option> : nom du message IRC pour lequel la + fonction est appelée (utilisé uniquement pour les types + "irc_in" et "irc_out"). + Pour connaître la liste des messages IRC disponibles, merci + de consulter les <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> et + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + La valeur spéciale "*" signifie tous les messages (pas de filtre). + </para> + </listitem> + <listitem> + <para> + <option>fonction</option> : fonction appelée + </para> + <para> + Elle a le prototype suivant : + <command> + char *ma_fonction (t_weechat_plugin *plugin, + int argc, char **argv, + char *modifier_args, void *modifier_pointer) + </command> + </para> + <para> + Le paramètre argc vaut 2 et les arguments suivants sont + passés dans le tableau argv : + <itemizedlist> + <listitem> + <para>argv[0] = nom du serveur</para> + </listitem> + <listitem> + <para>argv[1] = message</para> + </listitem> + </itemizedlist> + </para> + </listitem> + <listitem> + <para> + <option>modifier_args</option> : paramètres passés à la + fonction appelée + </para> + </listitem> + <listitem> + <para> + <option>modifier_pointer</option> : pointeur passé à la + fonction appelée + </para> + </listitem> + </itemizedlist> + </para> + <para> + Valeur renvoyée : le pointeur vers le nouveau modifieur de message. + </para> + <para> + Note : la fonction doit retourner une chaîne modifiée, ou NULL si + elle ne souhaite pas modifier le message. + Si elle retourne une chaine vide, alors le message est supprimé et + ne sera pas traité du tout par WeeChat (soyez prudent en supprimant + des messages !). + La chaîne renvoyée doit avoir été allouée par malloc() et sera + libérée (par appel à free()) automatiquement par WeeChat après + utilisation. + </para> + <para> + Exemple : +<screen> +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); +</screen> + </para> + </section> + + <section id="secAPI_modifier_remove"> + <title>modifier_remove</title> + + <para> + Prototype : + <command> + void modifier_remove (t_weechat_plugin *plugin, + t_plugin_modifier *modifier) + </command> + </para> + <para> + Supprime un modifieur de message. + </para> + <para> + Paramètres : + <itemizedlist> + <listitem> + <para> + <option>plugin</option> : pointeur vers la structure + de l'extension + </para> + </listitem> + <listitem> + <para> + <option>modifier</option> : le modifieur à supprimer + </para> + </listitem> + </itemizedlist> + </para> + <para> + Valeur renvoyée : aucune. + </para> + <para> + Exemple : + <screen>plugin->modifier_remove (plugin, mon_modifier);</screen> + </para> + </section> + + <section id="secAPI_modifier_remove_all"> + <title>modifier_remove_all</title> + + <para> + Prototype : + <command> + void modifier_remove_all (t_weechat_plugin *plugin) + </command> + </para> + <para> + Supprime tous les modifieurs d'une extension. + </para> + <para> + Paramètres : + <itemizedlist> + <listitem> + <para> + <option>plugin</option> : pointeur vers la structure + de l'extension + </para> + </listitem> + </itemizedlist> + </para> + <para> + Valeur renvoyée : aucune. + </para> + <para> + Exemple : + <screen>plugin->modifier_remove_all (plugin);</screen> + </para> + </section> + <section id="secAPI_exec_command"> <title>exec_command</title> @@ -5012,7 +5232,7 @@ def ma_fonction(server, args) end -- lua -weechat.add_message_handler ("privmsg", "ma_fonction") +weechat.add_message_handler("privmsg", "ma_fonction") function ma_fonction(server, args) weechat.print("serveur=" .. server .. ", args=" .. args) return weechat.PLUGIN_RC_OK() @@ -5162,7 +5382,7 @@ def ma_commande(server, args) end -- lua -weechat.add_command_handler ("commande", "ma_commande") +weechat.add_command_handler("commande", "ma_commande") def my_command(server, args) weechat.print("serveur="..server..", args="..args) return weechat.PLUGIN_RC_OK() @@ -5356,7 +5576,7 @@ def mon_clavier(key, input_before, input_after): return weechat.PLUGIN_RC_OK # ruby -Weechat.add_clavier_handler("mon_clavier") +Weechat.add_keyboard_handler("mon_clavier") def mon_clavier(server, input_before, input_after) Weechat.print("gestionnaire clavier: touche = '#{key}', " \ "entrée avant = '#{input_before}' " \ @@ -5365,7 +5585,7 @@ def mon_clavier(server, input_before, input_after) end -- lua -weechat.add_clavier_handler("mon_clavier") +weechat.add_keyboard_handler("mon_clavier") function mon_clavier(server, input_before, input_after) weechat.print("gestionnaire clavier: touche = '"..key.. "', entrée avant = '"..input_before.. @@ -5580,6 +5800,200 @@ weechat.remove_keyboard_handler("mon_clavier") </para> </section> + <section id="secScript_add_modifier"> + <title>add_modifier</title> + + <para> + Prototype Perl : + <command> + weechat::add_modifier(type, message, fonction); + </command> + </para> + <para> + Prototype Python : + <command> + weechat.add_modifier(type, message, fonction) + </command> + </para> + <para> + Prototype Ruby : + <command> + Weechat.add_modifier(type, message, fonction) + </command> + </para> + <para> + Prototype Lua : + <command> + weechat.add_modifier(type, message, fonction) + </command> + </para> + <para> + Ajoute un modifieur de messages. + </para> + <para> + Paramètres : + <itemizedlist> + <listitem> + <para> + <option>type</option> : type de modifieur : + <informaltable colsep="0" frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>irc_in</literal></entry> + <entry>appelé pour chaque message IRC reçu</entry> + </row> + <row> + <entry><literal>irc_user</literal></entry> + <entry> + appelé pour chaque message (ou commande) envoyé par + l'utilisateur (avant traitement et affichage par + WeeChat) + </entry> + </row> + <row> + <entry><literal>irc_out</literal></entry> + <entry> + appelé pour chaque message sortant juste avant + envoi au serveur IRC (y compris pour les messages + envoyés automatiquement et de manière transparente + par WeeChat) + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + </listitem> + <listitem> + <para> + <option>message</option> : nom du message IRC pour lequel la + fonction est appelée (utilisé uniquement pour les types + "irc_in" et "irc_out"). + Pour connaître la liste des messages IRC disponibles, merci + de consulter les <acronym>RFC</acronym>s + <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> et + <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>. + La valeur spéciale "*" signifie tous les messages (pas de filtre). + </para> + </listitem> + <listitem> + <para> + <option>fonction</option> : fonction appelée + </para> + </listitem> + </itemizedlist> + </para> + <para> + Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite. + </para> + <para> + Exemples : +<screen> +# perl +weechat::add_modifier("irc_in", "privmsg", "ma_fonction"); +sub ma_fonction +{ + # TODO +} + +# python +weechat.add_modifier("irc_in", "privmsg", "ma_fonction") +def ma_fonction(serveur, args): + # TODO + +# ruby +Weechat.add_modifier("irc_in", "privmsg", "ma_fonction") +def ma_fonction(server, args) + # TODO +end + +-- lua +weechat.add_modifier("irc_in", "privmsg", "ma_fonction") +function ma_fonction(server, args) + -- TODO +end +</screen> + </para> + </section> + + <section id="secScript_remove_modifier"> + <title>remove_modifier</title> + + <para> + Prototype Perl : + <command> + weechat::remove_modifier(type, message, fonction); + </command> + </para> + <para> + Prototype Python : + <command> + weechat.remove_handler(type, message, fonction) + </command> + </para> + <para> + Prototype Ruby : + <command> + Weechat.remove_handler(type, message, fonction) + </command> + </para> + <para> + Prototype Lua : + <command> + weechat.remove_handler(type, message, fonction) + </command> + </para> + <para> + Supprime un modifieur de messages. + </para> + <para> + Paramètres : + <itemizedlist> + <listitem> + <para> + <option>type</option> : type de modifieur + </para> + </listitem> + <listitem> + <para> + <option>message</option> : message traité par le modifieur + </para> + </listitem> + <listitem> + <para> + <option>fonction</option> : fonction associée + </para> + </listitem> + </itemizedlist> + </para> + <para> + Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite. + </para> + <para> + Exemples : +<screen> +# perl +weechat::remove_modifier("irc_in", "privmsg", "ma_fonction"); + +# python +weechat.remove_modifier("irc_in", "privmsg", "ma_fonction") + +# ruby +Weechat.remove_modifier("irc_in", "privmsg", "ma_fonction") + +-- lua +weechat.remove_modifier("irc_in", "privmsg", "ma_fonction") +</screen> + </para> + </section> + <section id="secScript_command"> <title>command</title> diff --git a/doc/fr/weechat_commands.xml b/doc/fr/weechat_commands.xml index a769706c7..dd5cbaf3b 100644 --- a/doc/fr/weechat_commands.xml +++ b/doc/fr/weechat_commands.xml @@ -127,13 +127,19 @@ functions: lister la liste des fonctions internes pour les associations de touch reset: restaure les touches aux valeurs par défaut et supprime TOUTES les touches personnelles (utiliser avec précaution !) </programlisting> -<command>plugin [load fichier] | [autoload] | [reload] | [unload]</command> +<command>plugin [list [masque]] | [listfull [masque]] | [load fichier] | [autoload] | [reload [nom]] | [unload [nom]]</command> <programlisting> liste/charge/décharge des extensions -fichier: extension WeeChat (fichier) à charger + list: lister les extensions chargées +listfull: lister les extensions chargées avec de l'info détaillée pour chaque extension + masque: morceau de nom d'une extension chargée + load: charger une extension +autoload: charger automatiquement les extensions dans un répertoire système ou utilisateur + reload: recharger une extension (si pas de nom donné, décharger toutes les extensions, puis puis recharger automatiquement les extensions) + unload: décharger une ou plusieurs exteneions -Sans paramètre, la commande /plugin liste toutes les extensions chargées. +Sans paramètre, la commande /plugin liste les extensions chargées. </programlisting> <command>server [nom_serveur] | [nom_serveur nom/IP port [-auto | -noauto] [-ipv6] [-ssl] [-pwd mot_de_passe] [-nicks pseudo1 pseudo2 pseudo3] [-username nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,canal]] ] | [del nom_serveur]</command> |