Extensions pour scripts
Quatre extensions sont fournies en standard avec WeeChat pour utiliser
des langages de script : Perl, Python, Ruby et Lua.
Charger / décharger des scripts
Les scripts sont chargés et déchargés avec les commandes
/perl, /python,
/ruby et /lua
(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 :
/luaSyntaxe 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", "1.0", "end_test", "Script perl WeeChat");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", "1.0", "end_test", "Script python WeeChat")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", "1.0", "end_test", "Script ruby WeeChat")
Weechat.add_command_handler("commande", "ma_commande")
return Weechat::PLUGIN_RC_OK
end
def ma_commande(server, args)
Weechat.print("ma commande")
return Weechat::PLUGIN_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 :
function message_handler(server, args)
weechat.print("Je suis un message handler")
return weechat.PLUGIN_RC_OK()
end
Interface WeeChat / scriptsregister
Prototype Perl :
weechat::register(nom, version, fonction_de_fin, description,
[charset]);
Prototype Python :
weechat.register(nom, version, fonction_de_fin, description,
[charset])
Prototype Ruby :
Weechat.register(nom, version, fonction_de_fin, description,
[charset])
Prototype Lua :
weechat.register(nom, version, fonction_de_fin, description,
[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)
: version 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)
: brève description du script
: jeu de caractères du script, à
préciser si le script n'est pas écrit en UTF-8
Valeur renvoyée : 1 si le script a été enregistré, 0 si une erreur
s'est produite.
Exemples :
# perl
weechat::register("essai", "1.0", "fin_essai", "Script d'essai !", "ISO-8859-1");
# python
weechat.register("essai", "1.0", "fin_essai", "Script d'essai !", "ISO-8859-1")
# ruby
Weechat.register("essai", "1.0", "fin_essai", "Script d'essai !", "ISO-8859-1")
-- lua
weechat.register("essai", "1.0", "fin_essai", "Script d'essai !", "ISO-8859-1")
set_charset
Prototype Perl :
weechat::set_charset(charset);
Prototype Python :
weechat.set_charset(charset)
Prototype Ruby :
Weechat.set_charsetr(charset)
Prototype Lua :
weechat.set_charset(charset)
Change le jeu de caractères du script.
Paramètres :
: nouveau jeu de caractères
Valeur renvoyée : 1 si le nouveau jeu de caractères a été
mis en place, 0 si une erreur s'est produite.
Exemples :
# 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
Prototype Perl :
weechat::print(message, [canal, [serveur]])
Prototype Python :
weechat.prnt(message, [canal, [serveur]])
Prototype Ruby :
Weechat.print(message, [canal, [serveur]])
Prototype Lua :
weechat.print(message, [canal, [serveur]])
Affiche un message sur un tampon WeeChat, identifié par le
serveur et le canal.
Paramètres :
: message à afficher
: nom du canal pour trouver le
tampon dans lequel afficher
: nom interne du serveur pour
trouver le tampon dans lequel afficher
Pour afficher du texte en couleur, voir
.
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::print("message");
weechat::print("message", "#weechat");
weechat::print("message", "#weechat", "freenode");
weechat::print("test: \x0305 rouge \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
Prototype Perl :
weechat::print_server(message)
Prototype Python :
weechat.print_server(message)
Prototype Ruby :
Weechat.print_server(message)
Prototype Lua :
weechat.print_server(message)
Affiche un message sur le tampon serveur.
Paramètres :
: message à afficher
Pour afficher du texte en couleur, voir
.
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::print_server("message");
weechat::print_server("test: \x0305 rouge \x0F normal");
# python
weechat.print_server("message")
# ruby
Weechat.print_server("message")
-- lua
weechat.print_server("message")
print_infobar
Prototype Perl :
weechat::print_infobar(temps, message);
Prototype Python :
weechat.print_infobar(temps, message)
Prototype Ruby :
Weechat.print_infobar(temps, message)
Prototype Lua :
weechat.print_infobar(temps, message)
Affiche un message sur la barre d'infos pour un temps déterminé.
Paramètres :
: temps (en secondes) pendant
lequel le message est affiché (0 = jamais effacé)
: message à afficher
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# 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
Prototype Perl :
weechat::remove_infobar([nombre]);
Prototype Python :
weechat.remove_infobar([nombre])
Prototype Ruby :
Weechat.remove_infobar([nombre])
Prototype Lua :
weechat.remove_infobar([nombre])
Efface un ou plusieurs messages dans la pile de la barre d'infos.
Paramètres :
: nombre de messages à supprimer
(si paramètre non présent ou <= 0, alors tous les messages
sont effacés)
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::remove_infobar(1);
# python
weechat.remove_infobar(1)
# ruby
Weechat.remove_infobar(1)
-- lua
weechat.remove_infobar(1)
log
Prototype Perl :
weechat::log(message, [canal, [serveur]]);
Prototype Python :
weechat.log(message, [canal, [serveur]])
Prototype Ruby :
Weechat.log(message, [canal, [serveur]])
Prototype Lua :
weechat.log(message, [canal, [serveur]])
Ecrit un message dans le fichier de log pour un serveur ou un
canal.
Paramètres :
: message
: nom du canal pour trouver le
log du tampon
: nom interne du serveur pour
trouver le log du tampon
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# 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
Prototype Perl :
weechat::add_message_handler(message, fonction);
Prototype Python :
weechat.add_message_handler(message, fonction)
Prototype Ruby :
Weechat.add_message_handler(message, fonction)
Prototype Lua :
weechat.add_message_handler(message, fonction)
Ajoute un gestionnaire de messages IRC, appelé dès qu'un message
IRC est reçu.
Paramètres :
: nom du message IRC pour lequel la
fonction est appelée.
Pour connaître la liste des messages IRC disponibles, merci
de consulter les RFCs
1459
et
2812.
De plus, vous pouvez utiliser un nom spécial, préfixé par
"weechat_" pour capturer des évènements spéciaux
(voir ).
: fonction appelée lorsque le
message est reçu
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::add_message_handler("privmsg", "ma_fonction");
sub ma_fonction
{
weechat::print("serveur=$_[0]");
($null, $canal, $message) = split ":",$_[1],3;
($masque, $null, $canal) = split " ", $canal;
weechat::print("masque=$masque, canal=$canal, msg=$message");
return weechat::PLUGIN_RC_OK;
}
# python
weechat.add_message_handler("privmsg", "ma_fonction")
def ma_fonction(serveur, args):
weechat.prnt("serveur="+serveur)
null, canal, message = string.split(args, ":", 2)
masque, null, canal = string.split(string.strip(canal), " ", 2)
weechat.prnt("masque="+masque+", canal="+canal+", message="+message)
return weechat.PLUGIN_RC_OK
# ruby
Weechat.add_message_handler("privmsg", "ma_fonction")
def ma_fonction(server, args)
Weechat.print("serveur=#{server}, args=#{args}")
return Weechat::PLUGIN_RC_OK
end
-- lua
weechat.add_message_handler("privmsg", "ma_fonction")
function ma_fonction(server, args)
weechat.print("serveur=" .. server .. ", args=" .. args)
return weechat.PLUGIN_RC_OK()
end
Note : la fonction appelée lorsque le message est reçu doit
renvoyer une des valeurs suivantes :
PLUGIN_RC_KO : la fonction a échoué
PLUGIN_RC_OK : la fonction a réussi
PLUGIN_RC_OK_IGNORE_WEECHAT : le message
ne sera pas transmis à WeeChat
PLUGIN_RC_OK_IGNORE_PLUGINS : le message
ne sera pas transmis à d'autres extensions
PLUGIN_RC_OK_IGNORE_ALL : le message
ne sera ni transmis à WeeChat ni à d'autres extensions
PLUGIN_RC_OK_WITH_HIGHLIGHT : la fonction
a réussi et provoque un "highlight" sur le message reçu
add_command_handler
Prototype Perl :
weechat::add_command_handler(commande, fonction,
[description, arguments, arguments_description,
modele_completion]);
Prototype Python :
weechat.add_command_handler(commande, fonction,
[description, arguments, arguments_description,
modele_completion])
Prototype Ruby :
Weechat.add_command_handler(commande, fonction,
[description, arguments, arguments_description,
modele_completion])
Prototype Lua :
weechat.add_command_handler(commande, fonction,
[description, arguments, arguments_description,
modele_completion])
Ajoute un gestionnaire de commande WeeChat, appelé dès que
l'utilisateur utilise la commande (par exemple /commande).
Paramètres :
: nom de la nouvelle commande,
qui peut être une commande déjà existante (attention la
commande remplacée ne sera plus disponible jusqu'à ce que
le script soit déchargé)
: fonction appelée lorsque la
commande est exécutée
: brève description des
paramètres de la commande (affichée par /help commande)
: longue description
des paramètres de la commande (affichée par /help commande)
: modèle pour la
complétion sous la forme "abc|%w def|%i"
qui signifie "abc" ou une commande WeeChat pour le premier
paramètre, et "def" ou une commande IRC pour le deuxième.
(voir )
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::add_command_handler("commande", "ma_commande");
sub ma_commande
{
weechat::print("serveur=$_[0], args=$_[1]");
return weechat::PLUGIN_RC_OK;
}
# python
weechat.add_command_handler("commande", "ma_commande")
def ma_commande(serveur, args):
weechat.prnt("serveur="+serveur+", args="+args)
return weechat.PLUGIN_RC_OK
# ruby
Weechat.add_command_handler("commande", "ma_commande")
def ma_commande(server, args)
Weechat.print("serveur=#{server} args=#{args}")
return Weechat::PLUGIN_RC_OK
end
-- lua
weechat.add_command_handler("commande", "ma_commande")
def my_command(server, args)
weechat.print("serveur="..server..", args="..args)
return weechat.PLUGIN_RC_OK()
end
Notes : la fonction appelée lorsque la commande est exécutée
doit renvoyer une des valeurs suivantes :
PLUGIN_RC_KO : la fonction a échoué
PLUGIN_RC_OK : la fonction a réussi
add_timer_handler
Prototype Perl :
weechat::add_timer_handler(intervalle, fonction);
Prototype Python :
weechat.add_timer_handler(intervalle, fonction)
Prototype Ruby :
Weechat.add_timer_handler(intervalle, fonction)
Prototype Lua :
weechat.add_timer_handler(intervalle, fonction)
Ajoute un gestionnaire de temps, qui appelle périodiquement une
fonction.
Paramètres :
: intervalle (en secondes)
entre deux appels de la fonction.
: fonction appelée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::add_timer_handler(60, "mon_timer");
sub mon_timer
{
weechat::print("ceci est le timer handler");
return weechat::PLUGIN_RC_OK;
}
# python
weechat.add_timer_handler(60, "mon_timer")
def mon_timer():
weechat.prnt("ceci est le timer handler")
return weechat.PLUGIN_RC_OK
# ruby
Weechat.add_timer_handler(60, "mon_timer")
def mon_timer()
Weechat.print("ceci est le timer handler")
return Weechat::PLUGIN_RC_OK
end
-- lua
weechat.add_timer_handler(60, "mon_timer")
function mon_timer()
weechat.print("ceci est le timer handler")
return weechat.PLUGIN_RC_OK()
end
Note : la fonction appelée doit renvoyer une des valeurs
suivantes :
PLUGIN_RC_KO : la fonction a échoué
PLUGIN_RC_OK : la fonction a réussi
add_keyboard_handler
Prototype Perl :
weechat::add_keyboard_handler(fonction);
Prototype Python :
weechat.add_keyboard_handler(fonction)
Prototype Ruby :
Weechat.add_keyboard_handler(fonction)
Prototype Lua :
weechat.add_keyboard_handler(fonction)
Ajoute un gestionnaire de clavier, appelé dès qu'une touche est
pressée.
Paramètres :
: fonction appelée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::add_keyboard_handler("mon_clavier");
sub mon_clavier
{
my $key = shift;
my $input_before = shift;
my $input_after = shift;
weechat::print("gestionnaire clavier: key = '$key', "
."entrée avant = '$input_before' "
."après = '$input_after'");
return weechat::PLUGIN_RC_OK;
}
# python
weechat.add_keyboard_handler("mon_clavier")
def mon_clavier(key, input_before, input_after):
weechat.prnt("gestionnaire clavier: touche = '%s', " \
"entrée avant = '%s' après = '%s'"
%(key, input_before, input_after))
return weechat.PLUGIN_RC_OK
# ruby
Weechat.add_keyboard_handler("mon_clavier")
def mon_clavier(key, input_before, input_after)
Weechat.print("gestionnaire clavier: touche = '#{key}', " \
"entrée avant = '#{input_before}' " \
"après = '#{input_after}'")
return Weechat::PLUGIN_RC_OK
end
-- lua
weechat.add_keyboard_handler("mon_clavier")
function mon_clavier(key, input_before, input_after)
weechat.print("gestionnaire clavier: touche = '"..key..
"', entrée avant = '"..input_before..
"' après = '"..input_after.."'")
return weechat.PLUGIN_RC_OK()
end
Note : la fonction appelée doit renvoyer une des valeurs
suivantes :
PLUGIN_RC_KO : la fonction a échoué
PLUGIN_RC_OK : la fonction a réussi
add_event_handler
Prototype Perl :
weechat::add_event_handler(évènement, fonction);
Prototype Python :
weechat.add_event_handler(évènement, fonction)
Prototype Ruby :
Weechat.add_event_handler(évènement, fonction)
Prototype Lua :
weechat.add_event_handler(évènement, fonction)
Ajoute un gestionnaire d'évènement, appelé dès qu'un évènement se
produit.
Paramètres :
: évènement
(voir )
: fonction appelée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::add_event_handler("buffer_open", "mon_evenement");
sub mon_evenement
{
weechat::print("buffer open");
return weechat::PLUGIN_RC_OK;
}
# python
weechat.add_event_handler("buffer_open", "mon_evenement")
def mon_evenement():
weechat.prnt("buffer open")
return weechat.PLUGIN_RC_OK
# ruby
Weechat.add_event_handler("buffer_open", "mon_evenement")
def mon_evenement()
Weechat.print("buffer open")
return Weechat::PLUGIN_RC_OK
end
-- lua
weechat.add_event_handler("buffer_open", "mon_evenement")
function mon_evenement()
weechat.print("buffer open")
return weechat.PLUGIN_RC_OK()
end
Note : la fonction appelée doit renvoyer une des valeurs
suivantes :
PLUGIN_RC_KO : la fonction a échoué
PLUGIN_RC_OK : la fonction a réussi
remove_handler
Prototype Perl :
weechat::remove_handler(nom, fonction);
Prototype Python :
weechat.remove_handler(nom, fonction)
Prototype Ruby :
Weechat.remove_handler(nom, fonction)
Prototype Lua :
weechat.remove_handler(nom, fonction)
Supprime un gestionnaire de message ou de commande.
Paramètres :
: nom du message IRC ou de la commande
: fonction associée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::remove_handler("commande", "ma_commande");
# python
weechat.remove_handler("commande", "ma_commande")
# ruby
Weechat.remove_handler("commande", "ma_commande")
-- lua
weechat.remove_handler("commande", "ma_commande")
remove_timer_handler
Prototype Perl :
weechat::remove_timer_handler(fonction);
Prototype Python :
weechat.remove_timer_handler(fonction)
Prototype Ruby :
Weechat.remove_timer_handler(fonction)
Prototype Lua :
weechat.remove_timer_handler(fonction)
Supprime un gestionnaire de temps.
Paramètres :
: fonction
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::remove_timer_handler("mon_timer");
# python
weechat.remove_timer_handler("mon_timer")
# ruby
Weechat.remove_timer_handler("mon_timer")
-- lua
weechat.remove_timer_handler("mon_timer")
remove_keyboard_handler
Prototype Perl :
weechat::remove_keyboard_handler(fonction);
Prototype Python :
weechat.remove_keyboard_handler(fonction)
Prototype Ruby :
Weechat.remove_keyboard_handler(fonction)
Prototype Lua :
weechat.remove_keyboard_handler(fonction)
Supprime un gestionnaire de clavier.
Paramètres :
: fonction
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::remove_keyboard_handler("mon_clavier");
# python
weechat.remove_keyboard_handler("mon_clavier")
# ruby
Weechat.remove_keyboard_handler("mon_clavier")
-- lua
weechat.remove_keyboard_handler("mon_clavier")
remove_event_handler
Prototype Perl :
weechat::remove_event_handler(fonction);
Prototype Python :
weechat.remove_event_handler(fonction)
Prototype Ruby :
Weechat.remove_event_handler(fonction)
Prototype Lua :
weechat.remove_event_handler(fonction)
Supprime un gestionnaire d'évènement.
Paramètres :
: fonction
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::remove_event_handler("mon_evenement");
# python
weechat.remove_event_handler("mon_evenement")
# ruby
Weechat.remove_event_handler("mon_evenement")
-- lua
weechat.remove_event_handler("mon_evenement")
add_modifier
Prototype Perl :
weechat::add_modifier(type, message, fonction);
Prototype Python :
weechat.add_modifier(type, message, fonction)
Prototype Ruby :
Weechat.add_modifier(type, message, fonction)
Prototype Lua :
weechat.add_modifier(type, message, fonction)
Ajoute un modifieur de messages.
Paramètres :
: type de modifieur :
TypeDescriptionirc_inappelé pour chaque message IRC reçuirc_user
appelé pour chaque message (ou commande) envoyé par
l'utilisateur (avant traitement et affichage par
WeeChat)
irc_out
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)
: 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 RFCs
1459
et
2812.
La valeur spéciale "*" signifie tous les messages (pas de
filtre).
: fonction appelée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# 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
Prototype Perl :
weechat::remove_modifier(type, message, fonction);
Prototype Python :
weechat.remove_handler(type, message, fonction)
Prototype Ruby :
Weechat.remove_handler(type, message, fonction)
Prototype Lua :
weechat.remove_handler(type, message, fonction)
Supprime un modifieur de messages.
Paramètres :
: type de modifieur
: message traité par le modifieur
: fonction associée
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# 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
Prototype Perl :
weechat::command(commande, [canal, [serveur]]);
Prototype Python :
weechat.command(commande, [canal, [serveur]])
Prototype Ruby :
Weechat.command(commande, [canal, [serveur]])
Prototype Lua :
weechat.command(commande, [canal, [serveur]])
Exécute une commande ou envoie un message à un canal.
Paramètres :
: la commande à exécuter
: nom du canal où exécuter la
commande
: nom interne du serveur où
exécuter la commande
Valeur renvoyée : 1 si succès, 0 si une erreur s'est produite.
Exemples :
# perl
weechat::command("bonjour tout le monde !");
weechat::command("/kick toto merci de quitter ce canal", "#weechat");
weechat::command("/nick newnick", "", "freenode");
# python
weechat.command("bonjour tout le monde !")
weechat.command("/kick toto merci de quitter ce canal", "#weechat")
weechat.command("/nick newnick", "", "freenode")
# ruby
Weechat.command("bonjour tout le monde !")
Weechat.command("/kick toto merci de quitter ce canal", "#weechat")
Weechat.command("/nick newnick", "", "freenode")
-- lua
weechat.command("bonjour tout le monde !")
weechat.command("/kick toto merci de quitter ce canal", "#weechat")
weechat.command("/nick newnick", "", "freenode")
get_info
Prototype Perl :
weechat::get_info(nom, [serveur]);
Prototype Python :
weechat.get_info(nom, [serveur])
Prototype Ruby :
Weechat.get_info(nom, [serveur])
Prototype Lua :
weechat.get_info(nom, [serveur])
Renvoie une information sur WeeChat ou un canal.
Paramètres :
: nom de l'info à obtenir
(voir )
: nom interne du serveur où
récupérer l'information (si nécessaire)
Valeur renvoyée : l'information demandée, chaîne vide si une
erreur s'est produite ou que l'information n'a pas été trouvée.
Exemples :
# 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
Prototype Perl :
weechat::get_dcc_info();
Prototype Python :
weechat.get_dcc_info()
Prototype Ruby :
Weechat.get_dcc_info()
Prototype Lua :
weechat.get_dcc_info()
Renvoie la liste des DCC en cours ou terminés.
Valeur renvoyée : la liste des DCC
(voir ).
Exemples :
# 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("pas de DCC");
}
# python
dccs = weechat.get_dcc_info()
if dccs != None:
if dccs == []:
weechat.prnt("pas de DCC")
else:
for d in dccs:
for b in d.keys():
weechat.prnt("%s = '%s'" %(b, d[b]))
else:
weechat.prnt("erreur de lecture des DCC")
# ruby
dccs = Weechat.get_dcc_info()
if dccs != nil
if dccs == []
Weechat.print("pas de DCC")
else
dccs.each do |m|
m.each do |key, value|
Weechat.print("#{key} = '#{value}'")
end
end
end
else
Weechat.print("erreur de lecture des 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("pas de DCC")
end
else
weechat.print("erreur de lecture des DCC")
end
get_server_info
Prototype Perl :
weechat::get_server_info();
Prototype Python :
weechat.get_server_info()
Prototype Ruby :
Weechat.get_server_info()
Prototype Lua :
weechat.get_server_info()
Renvoie la liste des serveurs IRC (connectés ou non).
Valeur renvoyée : la liste des serveurs IRC (connectés ou non)
(voir ).
Exemples :
# 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("pas de serveur");
}
# python
servers = weechat.get_server_info()
if servers != None:
if servers == {}:
weechat.prnt("pas de serveur")
else:
for s in servers:
for i in servers[s]:
weechat.prnt("%s -> %s = '%s'" % (s, i, str(servers[s][i])))
else:
weechat.prnt("erreur de lecture des serveurs")
# ruby
servers = Weechat.get_server_info()
if servers != nil
if servers == []
Weechat.print("pas de serveur")
else
servers.each do |n, s|
s.each do |key, value|
Weechat.print("#{n} -> #{key} = '#{value}'")
end
end
end
else
Weechat.print("erreur de lecture des serveurs")
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("pas de serveur")
end
else
weechat.print("erreur de lecture des serveurs")
end
get_channel_info
Prototype Perl :
weechat::get_channel_info(serveur);
Prototype Python :
weechat.get_channel_info(serveur)
Prototype Ruby :
Weechat.get_channel_info(serveur)
Prototype Lua :
weechat.get_channel_info(serveur)
Renvoie la liste des canaux IRC pour un serveur.
Valeur renvoyée : la liste des canaux IRC du serveur
(voir ).
Exemples :
# 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("pas de canal");
}
# python
chans = weechat.get_channel_info(weechat.get_info("server"))
if chans != None:
if chans == {}:
weechat.prnt("pas de canal")
else:
for s in chans:
for i in chans[s]:
weechat.prnt("%s -> %s = '%s'" % (s, i, str(chans[s][i])))
else:
weechat.prnt("erreur de lecture des canaux")
# ruby
channels = Weechat.get_channel_info(Weechat.get_info("server"))
if channels != nil
if channels == {}
Weechat.print("pas de canal")
else
channels.each do |n, c|
c.each do |key, value|
Weechat.print("#{n} -> #{key} = '#{value}'")
end
end
end
else
Weechat.print("erreur de lecture des canaux")
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("pas de canal")
end
else
weechat.print("erreur de lecture des canaux")
end
get_nick_info
Prototype Perl :
weechat::get_nick_info(serveur, canal);
Prototype Python :
weechat.get_nick_info(serveur, canal)
Prototype Ruby :
Weechat.get_nick_info(serveur, canal)
Prototype Lua :
weechat.get_nick_info(serveur, canal)
Renvoie la liste des pseudos pour un canal.
Valeur renvoyée : la liste des pseudos présents sur le canal
(voir ).
Exemples :
# 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("pas de pseudo");
}
# python
nicks = weechat.get_nick_info("freenode", "#weechat")
if nicks != None:
if nicks == {}:
weechat.prnt("pas de pseudo")
else:
for n in nicks:
for f in nicks[n]:
weechat.prnt("%s -> %s = '%s'" % (n, f, str(nicks[n][f])))
else:
weechat.prnt("erreur de lecture des pseudos")
# ruby
nicks = Weechat.get_nick_info("freenode", "#weechat")
if nicks != nil
if nicks == {}
Weechat.print("pas de pseudo")
else
nicks.each do |nk, nattr|
nattr.each do |key, value|
Weechat.print("#{nk} -> #{key} = '#{value}'")
end
end
end
else
Weechat.print("erreur de lecture des pseudos")
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("pas de pseudo")
end
else
weechat.print("erreur de lecture des pseudos")
end
get_config
Prototype Perl :
weechat::get_config(option);
Prototype Python :
weechat.get_config(option)
Prototype Ruby :
Weechat.get_config(option)
Prototype Lua :
weechat.get_config(option)
Renvoie la valeur d'une option de configuration WeeChat.
Paramètres :
: nom de l'option
Valeur renvoyée : la valeur de l'option, chaîne vide si l'option
n'a pas été trouvée.
Exemples :
# perl
$valeur1 = weechat::get_config("look_nicklist");
$valeur2 = weechat::get_config("freenode.server_autojoin");
# python
valeur1 = weechat.get_config("look_nicklist")
valeur2 = weechat.get_config("freenode.server_autojoin")
# ruby
valeur1 = Weechat.get_config("look_nicklist")
valeur2 = Weechat.get_config("freenode.server_autojoin")
-- lua
valeur1 = weechat.get_config("look_nicklist")
valeur2 = weechat.get_config("freenode.server_autojoin")
set_config
Prototype Perl :
weechat::set_config(option, valeur);
Prototype Python :
weechat.set_config(option, valeur)
Prototype Ruby :
Weechat.set_config(option, valeur)
Prototype Lua :
weechat.set_config(option, valeur)
Modifie la valeur d'une option de configuration WeeChat.
Paramètres :
: nom de l'option
: la nouvelle valeur pour
l'option
Valeur renvoyée : 1 si succès, 0 si une erreur s'est
produite.
Exemples :
# 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
Prototype Perl :
weechat::get_plugin_config(option);
Prototype Python :
weechat.get_plugin_config(option)
Prototype Ruby :
Weechat.get_plugin_config(option)
Prototype Lua :
weechat.get_plugin_config(option)
Renvoie la valeur d'une option de l'extension.
L'option est lue depuis le fichier
"~/.weechat/plugins.rc" et est
sous cette forme :
"extension.script.option=valeur"
(NB : le nom de l'extension et du script sont ajoutés
automatiquement).
Paramètres :
: nom de l'option
Valeur renvoyée : la valeur de l'option, chaîne vide si l'option
n'a pas été trouvée.
Exemples :
# perl
$valeur = weechat::get_plugin_config("ma_variable");
# python
valeur = weechat.get_plugin_config("ma_variable")
# ruby
valeur = Weechat.get_plugin_config("ma_variable")
-- lua
valeur = weechat.get_plugin_config("ma_variable")
set_plugin_config
Prototype Perl :
weechat::set_plugin_config(option, valeur);
Prototype Python :
weechat.set_plugin_config(option, valeur)
Prototype Ruby :
Weechat.set_plugin_config(option, valeur)
Prototype Lua :
weechat.set_plugin_config(option, valeur)
Modifie la valeur d'une option de l'extension.
L'option est écrite dans le fichier
"~/.weechat/plugins.rc" et est
sous cette forme :
"extension.script.option=valeur"
(NB : le nom de l'extension et du script sont rajoutés
automatiquement).
Paramètres :
: nom de l'option
: la nouvelle valeur pour
l'option
Valeur renvoyée : 1 si succès, 0 si une erreur s'est
produite.
Exemples :
# perl
weechat::set_plugin_config("ma_variable", "valeur");
# python
weechat.set_plugin_config("ma_variable", "valeur")
# ruby
Weechat.set_plugin_config("ma_variable", "valeur")
-- lua
weechat.set_plugin_config("ma_variable", "valeur")
get_irc_color
Prototype Perl :
weechat::get_irc_color(color);
Prototype Python :
weechat.get_irc_color(color)
Prototype Ruby :
Weechat.get_irc_color(color)
Prototype Lua :
weechat.get_irc_color(color)
Renvoie le numéro d'une couleur IRC avec son nom.
Valeur renvoyée : numéro de la couleur IRC, -1 si la couleur
n'est pas trouvée (voir ).
Exemples :
# 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
Prototype Perl :
weechat::input_color(color);
Prototype Python :
weechat.input_color(color)
Prototype Ruby :
Weechat.input_color(color)
Prototype Lua :
weechat.input_color(color)
Ajoute de la couleur dans la zone de saisie.
Valeur renvoyée : aucune.
Exemples :
# 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
Prototype Perl :
weechat::get_window_info();
Prototype Python :
weechat.get_window_info()
Prototype Ruby :
Weechat.get_window_info()
Prototype Lua :
weechat.get_window_info()
Renvoie la liste des fenêtres WeeChat.
Valeur renvoyée : liste des fenêtres WeeChat
(voir ).
Exemples :
# perl
my @wf = weechat::get_window_info();
if (@wf)
{
weechat::print("**** infos fenêtres ****");
foreach my $w (@wf)
{
while ( my ($key, $value) = each %$w)
{
weechat::print(" > $key => $value");
}
weechat::print("----------------------");
}
}
else
{
weechat::print("**** pas d'info fenêtre ****");
}
# python
wf = weechat.get_window_info()
if wf != None and wf != []:
weechat.prnt ("**** infos fenêtres ****")
for w in wf:
for i in w:
weechat.prnt (" > %s => %s" % (i, w[i]))
weechat.prnt ("----------------------")
else:
weechat.prnt ("**** pas d'info sur les fenêtres ****")
# ruby
wf = Weechat.get_window_info()
if wf != nil and wf != []
Weechat.print("**** infos fenêtres ****")
wf.each do |w|
w.each do |key, value|
Weechat.print(" > #{key} => #{value}")
end
Weechat.print("----------------------")
end
else
Weechat.print("**** pas d'info sur les fenêtres ****")
end
-- lua
wf = weechat.get_window_info()
if wf then
weechat.print ("**** infos fenêtres ****")
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("**** pas d'info sur les fenêtres ****")
end
get_buffer_info
Prototype Perl :
weechat::get_buffer_info();
Prototype Python :
weechat.get_buffer_info()
Prototype Ruby :
Weechat.get_buffer_info()
Prototype Lua :
weechat.get_buffer_info()
Renvoie la liste des tampons WeeChat.
Valeur renvoyée : liste des tampons WeeChat
(voir ).
Exemples :
# 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("**** pas d'info sur les tampons ****");
}
# python
bf = weechat.get_buffer_info()
if bf != None and bf != {}:
for b in bf:
weechat.prnt ("**** info pour tampon buffer no %d ****" % b)
for c in bf[b]:
weechat.prnt (" > %s => %s" % (c, bf[b][c]))
weechat.prnt ("----------------------")
else:
weechat.prnt ("**** pas d'info sur les tampons ****")
# ruby
bf = Weechat.get_buffer_info()
if bf != nil and bf != {}
bf.each do |n, c|
Weechat.print("**** info pour tampon no #{n} ****")
c.each do |key, value|
Weechat.print(" > #{key} => #{value}")
end
Weechat.print("----------------------")
end
else
Weechat.print("**** pas d'info sur les tampons ****")
end
-- lua
bf = weechat.get_buffer_info()
if bf then
b, binfos = next (bf, nil)
while (b) do
weechat.print("**** info pour tampon 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("**** pas d'info sur les tampons ****")
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