Extensions pour scripts
Cinq extensions sont fournies en standard avec WeeChat pour utiliser
des langages de script : Perl, Python, Ruby, Lua et Tcl.
Charger / décharger des scripts
Les scripts sont chargés et déchargés avec les commandes
/perl, /python,
/ruby, /lua
et /tcl (tapez /help dans WeeChat
pour obtenir de l'aide sur les commandes).
Exemples :
Charger un script Perl :
/perl load /tmp/essai.pl
Lister les scripts Perl chargés :
/perl
Charger un script Python :
/python load /tmp/essai.py
Lister les scripts Python chargés :
/python
Charger un script Ruby :
/ruby load /tmp/essai.rb
Lister les scripts Ruby chargés :
/ruby
Charger un script Lua :
/lua load /tmp/essai.lua
Lister les scripts Lua chargés :
/lua
Charger un script Tcl :
/tcl load /tmp/essai.tcl
Lister les scripts Tcl chargés :
/tclSyntaxe par langagePerl
Dans un script Perl WeeChat, toutes les fonctions et variables
de l'interface sont préfixées par "weechat::".
Exemple :
weechat::register("test", "Auteur <auteur\@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "");
Python
Un script Python WeeChat doit commencer par importer weechat :
import weechat
Toutes les fonctions et variables de l'interface sont préfixées
par "weechat.".
Exemple :
weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
Ruby
Dans un script Ruby WeeChat, tout le code doit être dans des
fonctions. Pour le code principal, vous devez définir une
fonction "weechat_init", qui est appelée
automatiquement quand le script est chargé par WeeChat.
Exemple :
def weechat_init
Weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
return Weechat::WEECHAT_RC_OK
end
Toutes les fonctions de l'interface sont préfixées par
"Weechat." et les variables par
"Weechat::".
Lua
Dans un script Lua WeeChat, toutes les fonctions de l'interface
sont préfixées par "weechat.".
Les variables sont préfixées par "weechat." et
suffixées par "()".
Exemple :
weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
Tcl
Dans un script Tcl WeeChat, toutes les fonctions de l'interface
sont préfixées par "weechat::".
Les variables sont préfixées par "$weechat::".
Exemple :
weechat::register "test" "Auteur <auteur@domaine.com>" "1.0" "GPL3" "Description du script" "au_revoir" ""
Interface WeeChat / scriptsregister
Prototype Perl :
weechat::register(nom, auteur, version, licence, description,
fonction_de_fin, charset);
Prototype Python :
weechat.register(nom, auteur, version, licence, description,
fonction_de_fin, charset)
Prototype Ruby :
Weechat.register(nom, auteur, version, licence, description,
fonction_de_fin, charset)
Prototype Lua :
weechat.register(nom, auteur, version, licence, description,
fonction_de_fin, charset)
Prototype Tcl :
weechat::register nom auteur version licence description
fonction_de_fin charset
C'est la première fonction à appeler dans le script.
Tout script pour WeeChat doit appeler cette fonction.
Paramètres :
: nom unique pour identifier le script
(chaque script doit avoir un nom différent)
: chaîne avec l'auteur (peut include
nom, pseudo, e-mail, etc...)
: version du script
: brève description du script
: fonction appelée quand
le script est déchargé (paramètre facultatif, une chaîne
vide signifiant qu'il n'y a pas de fonction à appeler)
: jeu de caractères du script, à
préciser si le script n'est PAS écrit en UTF-8 (vous pouvez
laisser blanc pour un script UTF-8, c'est le jeu de caractère
par défaut)
Valeur renvoyée : 1 si le script a été enregistré, 0 si une erreur
s'est produite.
Exemples :
# perl
weechat::register("test", "Auteur <auteur\@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "");
# python
weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
# ruby
Weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
-- lua
weechat.register("test", "Auteur <auteur@domaine.com>", "1.0",
"GPL3", "Description du script", "au_revoir", "")
# tcl
weechat::register "test" "Auteur <auteur@domaine.com>" "1.0" "GPL3" "Description du script" "au_revoir" ""
Autres fonctions
Les fonctions suivantes sont dans l'API scripts (pour la description,
voir ).
plugin_get_nameset_charsetplugin_get_namecharset_seticonv_to_internaliconv_from_internalgettextngettextstring_remove_colormkdir_homemkdirmkdir_parentslist_newlist_addlist_searchlist_casesearchlist_getlist_setlist_nextlist_prevlist_stringlist_sizelist_removelist_remove_alllist_freeconfig_newconfig_new_sectionconfig_search_sectionconfig_new_optionconfig_search_optionconfig_string_to_booleanconfig_option_resetconfig_option_setconfig_option_set_nullconfig_option_unsetconfig_option_renameconfig_option_is_nullconfig_option_default_is_nullconfig_booleanconfig_boolean_defaultconfig_integerconfig_integer_defaultconfig_stringconfig_string_defaultconfig_colorconfig_color_defaultconfig_write_optionconfig_write_lineconfig_writeconfig_readconfig_reloadconfig_option_freeconfig_section_free_optionsconfig_section_freeconfig_freeconfig_getconfig_get_pluginconfig_set_pluginconfig_unset_pluginprefixcolorprintprint_date_tagsprint_ylog_printhook_commandhook_command_runhook_timerhook_fdhook_processhook_connecthook_printhook_signalhook_signal_sendhook_confighook_completionhook_completion_list_addhook_modifierhook_modifier_exechook_infohook_infolistunhookunhook_allbuffer_newbuffer_searchcurrent_bufferbuffer_clearbuffer_closebuffer_get_integerbuffer_get_stringbuffer_get_pointerbuffer_setcurrent_windowwindow_get_integerwindow_get_stringwindow_get_pointernicklist_add_groupnicklist_search_groupnicklist_add_nicknicklist_search_nicknicklist_remove_groupnicklist_remove_nicknicklist_remove_allbar_item_searchbar_item_newbar_item_updatebar_item_removebar_searchbar_newbar_setbar_updatebar_removecommandinfo_getinfolist_newinfolist_new_var_integerinfolist_new_var_stringinfolist_new_var_pointerinfolist_new_var_timeinfolist_getinfolist_nextinfolist_previnfolist_fieldsinfolist_integerinfolist_stringinfolist_pointerinfolist_timeinfolist_freeupgrade_newupgrade_write_objectupgrade_readupgrade_close