API extensionset_charset
Prototype :
void set_charset (t_weechat_plugin *plugin, char *charset)
Change le jeu de caractères de l'extension.
Paramètres :
: pointeur vers la structure
de l'extension
: nouveau jeu de caractères à
utiliser
Exemple :
plugin->set_charset (plugin, "ISO-8859-1");iconv_to_internal
Prototype :
void iconv_to_internal (t_weechat_plugin *plugin, char *charset,
char *string)
Convertit une chaîne de caractères vers le jeu de caractères
interne WeeChat (UTF-8).
Paramètres :
: pointeur vers la structure
de l'extension
: le jeu de caractères de départ
: la chaîne à convertir
Valeur renvoyée : la chaîne convertie.
Note : le résultat doit être libéré par un appel à la fonction
"free" après utilisation.
Exemple :
char *str = plugin->iconv_to_internal (plugin, "ISO-8859-1", "chaine iso: é à");iconv_from_internal
Prototype :
void iconv_from_internal (t_weechat_plugin *plugin, char *charset,
char *string)
Convertit une chaîne de caractères depuis le jeu de caractères
interne WeeChat (UTF-8) vers un autre.
Paramètres :
: pointeur vers la structure
de l'extension
: le jeu de caractères voulu
: la chaîne à convertir
Valeur renvoyée : la chaîne convertie.
Note : le résultat doit être libéré par un appel à la fonction
"free" après utilisation.
Exemple :
char *str = plugin->iconv_from_internal (plugin, "ISO-8859-1", "chaine utf-8: é à");ascii_strcasecmp
Prototype :
int ascii_strcasecmp (t_weechat_plugin *plugin,
char *chaine1, char *chaine2)
Effectue une comparaison entre deux chaînes, sans tenir compte des
majuscules/minuscules ni de la locale.
Paramètres :
: pointeur vers la structure
de l'extension
: la première chaîne à comparer
: la deuxième chaîne à comparer
Valeur renvoyée : la différence entre les deux chaînes : négatif
si chaine1 < chaine2, zéro si chaine1 == chaine2, positif si
chaine1 > chaine2
Exemple :
if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...ascii_strncasecmp
Prototype :
int ascii_strncasecmp (t_weechat_plugin *plugin,
char *chaine1, char *chaine2, int max)
Effectue une comparaison entre deux chaînes, sans tenir compte des
majuscules/minuscules ni de la locale, en comparant au plus "max"
caractères.
Paramètres :
: pointeur vers la structure
de l'extension
: la première chaîne à comparer
: la deuxième chaîne à comparer
: nombre de caractères max à comparer
Valeur renvoyée : la différence entre les deux chaînes : négatif
si chaine1 < chaine2, zéro si chaine1 == chaine 2, positif si
chaine1 > chaine2
Exemple :
if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...explode_string
Prototype :
char **explode_string (t_weechat_plugin *plugin, char *chaine,
char *separateurs, int num_items_max, int *num_items)
Explose une chaîne en plusieurs selon un/des délimiteur(s).
Paramètres :
: pointeur vers la structure
de l'extension
: la chaîne à exploser
: les délimiteurs utilisés
pour exploser la chaîne
: nombre maximum de
sous-chaînes créées (0 = pas de limite)
: pointeur vers un entier qui
contiendra le nombre de sous-chaînes créées en retour
Valeur renvoyée : un tableau de chaînes, ou NULL si un problème
a été rencontré.
Note : le résultat doit être libéré par un appel à la fonction
"free_exploded_string" après utilisation.
Exemple :
char **argv;
int argc;
argv = plugin->explode_string (plugin, chaine, " ", 0, &argc);
...
if (argv != NULL)
plugin->free_exploded_string (plugin, argv);
free_exploded_string
Prototype :
char **free_exploded_string (t_weechat_plugin *plugin,
char **chaine)
Libère la mémoire utilisée pour une explosion de chaîne.
Paramètres :
: pointeur vers la structure
de l'extension
: la chaîne explosée par la fonction
"explode_string"
Valeur renvoyée : aucune.
Exemple :
char *argv;
int argc;
argv = plugin->explode_string (plugin, chaine, " ", 0, &argc);
...
if (argv != NULL)
plugin->free_exploded_string (plugin, argv);
mkdir_home
Prototype :
int mkdir_home (t_weechat_plugin *plugin, char *repertoire)
Créé un répertoire dans le répertoire de base de WeeChat.
Paramètres :
: pointeur vers la structure
de l'extension
: répertoire à créer
Valeur renvoyée : 1 si le répertoire a été créé avec succès,
0 si une erreur s'est produite.
Example:
if (!plugin->mkdir_home (plugin, "temp"))
plugin->print_server(plugin, "Impossible de créer le répertoire 'temp' dans la base WeeChat.");
exec_on_files
Prototype :
void exec_on_files (t_weechat_plugin *plugin, char *repertoire,
int (*callback)(t_weechat_plugin *, char *))
Exécute une fonction sur tous les fichiers d'un répertoire.
Paramètres :
: pointeur vers la structure
de l'extension
: le répertoire où les fichiers
sont recherchés
: une fonction appelée pour chaque
fichier trouvé
Valeur renvoyée : aucune.
Exemple :
int callback (t_weechat_plugin *plugin, char *fichier)
{
plugin->print_server (plugin, "fichier: %s", fichier);
return 1;
}
...
plugin->exec_on_files (plugin, "/tmp", &callback);
print
Prototype :
void print (t_weechat_plugin *plugin,
char *serveur, char *canal, char *message, ...)
Affiche un message sur un tampon WeeChat, identifié par le serveur
et le canal (tous deux pouvant être NULL pour le tampon courant).
Paramètres :
: pointeur vers la structure
de l'extension
: nom interne du serveur pour
trouver le tampon dans lequel afficher (peut être NULL)
: nom du canal pour trouver le
tampon dans lequel afficher (peut être NULL)
: message à afficher
Pour afficher du texte en couleur, il faut utiliser les codes
suivants :
CodeDescription0x02
texte gras
0x03 + "xx"
couleur du texte "xx"
(voir pour les
couleurs)
0x03 + "xx,yy"
couleur du texte "xx"
et du fond "yy"
(voir pour les
couleurs)
0x0F
désactiver la couleur et tous les attributs
0x12
vidéo inverse (inversion de la couleur d'écriture et du
fond)
0x1F
texte souligné
NB: le même code (sans le numéro pour 0x03) peut être utilisé pour
stopper l'attribut défini.
Valeur renvoyée : aucune.
Exemples :
plugin->print (plugin, NULL, NULL, "hello");
plugin->print (plugin, NULL, "#weechat", "hello");
plugin->print (plugin, "freenode", "#weechat", "hello");
plugin->print (plugin, "freenode", "#weechat", "hello");
plugin->print (plugin, NULL, NULL,
"test: \x02 gras \x0F\x03%02d bleu \x03%02d vert",
plugin->get_irc_color (plugin, "blue"),
plugin->get_irc_color (plugin, "green"));
print_server
Prototype :
void print_server (t_weechat_plugin *plugin,
char *message, ...)
Affiche un message sur le tampon du serveur courant.
Paramètres :
: pointeur vers la structure
de l'extension
: message à afficher
Pour afficher du texte en couleur, voir
.
Valeur renvoyée : aucune.
Exemple : plugin->print_server (plugin, "hello");log
Prototype :
void log (t_weechat_plugin *plugin,
char *serveur, char *canal, char *message, ...)
Ecrit un message dans le fichier de log pour un serveur ou un
canal.
Paramètres :
: pointeur vers la structure
de l'extension
: nom interne du serveur pour
trouver le log du tampon (peut être NULL)
: nom du canal pour trouver le
tampon le log du tampon (peut être NULL)
: message
Valeur renvoyée : aucune.
Exemple :
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 *fonction,
char *handler_args, void *handler_pointer)
Ajoute un gestionnaire de messages IRC, appelé dès qu'un message
IRC est reçu.
Paramètres :
: pointeur vers la structure
de l'extension
: nom du message IRC pour lequel la
fonction est appelée ("*" pour tous les messages).
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, comme
décrit dans le tableau ci-dessous :
NomDescriptionweechat_pvmessage privé reçuweechat_highlight
message avec highlight (sur un canal ou en privé)
weechat_ctcp
message CTCP reçu (VERSION, PING, etc...)
weechat_dcc
message DCC reçu (discussion ou fichier)
: fonction appelée lorsque le
message est reçu
Elle a le prototype suivant :
int ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *handler_args, void *handler_pointer)
Le paramètre argc vaut 3 et les arguments suivants sont
passés dans le tableau argv :
argv[0] = nom du serveurargv[1] = message IRCargv[2] = arguments de la commande
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Valeur renvoyée : le pointeur vers le nouveau gestionnaire de
messages.
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
Exemple :
int msg_kick (t_weechat_plugin *plugin, int argc, char **argv,
char *handler_args, void *handler_pointer)
{
plugin->print (plugin, argv[0], NULL, "KICK reçu");
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 *commande, char *description, char *arguments,
char *arguments_description, char *modele_completion,
t_plugin_handler_func *fonction, char *handler_args,
void *handler_pointer)
Ajoute un gestionnaire de commande WeeChat, appelé dès que
l'utilisateur utilise la commande (par exemple /commande).
Paramètres :
: pointeur vers la structure
de l'extension
: 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
l'extension soit déchargée)
: brève description de la
commande (affichée par /help commande)
: 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.
Une chaîne vide indique à WeeChat de compléter tout
paramètre avec un pseudo du canal courant, une valeur NULL
ou égale à "-" désactive toute complétion pour tous les
paramètres de la commande.
Les codes suivants peuvent être utilisés :
CodeDescription%-aucune complétion pour le paramètre%*
répétition de la dernière complétion pour tous
les paramètres suivants (ce code doit être à la
fin du modèle de complétion, précédé d'un "|")
%aalias%A
alias et commandes (WeeChat, IRC et extensions)
%ccanal courant%Ctous les canaux (y compris les privés)%fnom de fichier%hcommandes définies par des extensions%icommandes IRC (envoyées)%Icommandes IRC (reçues)%kfonctions associées aux touches%mpseudo sur le serveur courant%M
pseudos sur le serveur courant
(tous les canaux ouverts)
%npseudos du canal courant%N
pseudos et noms de machines du canal
courant
%ooptions de configuration%Ooptions des extensions%pmessage de "part" par défaut%qmessage de "quit" par défaut%snom du serveur courant%Stous les serveurs%ttitre du canal courant%vvaleur d'une option de configuration%Vvaleur d'une option d'extension%wcommandes WeeChat
: fonction appelée lorsque la
commande est exécutée.
Elle a le prototype suivant :
int ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *handler_args, void *handler_pointer)
Le paramètre argc vaut 3 et les arguments suivants sont
passés dans le tableau argv :
argv[0] = nom du serveurargv[1] = commandeargv[2] = arguments de la commande
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Valeur renvoyée : le pointeur vers le nouveau gestionnaire de
commande.
Note : 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
Exemple :
int cmd_test (t_weechat_plugin *plugin, int argc, char **argv,
char *handler_args, void *handler_pointer)
{
plugin->print (plugin, argv[0], NULL,
"commande test, pseudo: %s",
(argv[2]) ? argv[2] : "aucun");
return PLUGIN_RC_OK;
}
...
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);
timer_handler_add
Prototype :
t_plugin_handler *timer_handler_add (t_weechat_plugin
*plugin, int intervalle, t_plugin_handler_func *fonction,
char *handler_args, void *handler_pointer)
Ajoute un gestionnaire de temps, qui appelle périodiquement une
fonction.
Paramètres :
: pointeur vers la structure
de l'extension
: intervalle (en secondes)
entre deux appels de la fonction.
: fonction appelée
Elle a le prototype suivant :
int ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *handler_args, void *handler_pointer)
Le paramètre argc vaut 0 et argv vaut NULL.
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Valeur renvoyée : le pointeur vers le nouveau gestionnaire de
temps.
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
Exemple :
int mon_timer (t_weechat_plugin *plugin, int argc, char **argv,
char *handler_args, void *handler_pointer)
{
plugin->print (plugin, NULL, NULL, "mon timer");
return PLUGIN_RC_OK;
}
...
t_plugin_handler *timer_handler;
timer_handler = plugin->timer_handler_add (plugin, 60, &mon_timer);
keyboard_handler_add
Prototype :
t_plugin_handler *keyboard_handler_add (t_weechat_plugin
*plugin, t_plugin_handler_func *fonction,
char *handler_args, void *handler_pointer)
Ajoute un gestionnaire de clavier, appelé dès qu'une touche est
pressée.
Paramètres :
: pointeur vers la structure
de l'extension
: fonction appelée
Elle a le prototype suivant :
int ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *handler_args, void *handler_pointer)
Le paramètre argc vaut 3 et les arguments suivants sont
passés dans le tableau argv :
argv[0] = touche appuyée (nom d'une fonction interne
ou bien '*' suivi du code d'une touche)
argv[1] = la ligne de commande avant l'action de la
touche
argv[2] = la ligne de commande après l'action de la
touche
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Valeur renvoyée : le pointeur vers le nouveau gestionnaire de
clavier.
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
Exemple :
int mon_keyb (t_weechat_plugin *plugin, int argc, char **argv,
char *handler_args, void *handler_pointer)
{
if (argc == 2)
{
plugin->print (plugin, NULL, NULL, "touche appuyée: %s", argv[0]);
if (argv[1] && (argv[1][0] == '1'))
plugin->print (plugin, NULL, NULL, "le texte d'entrée a changé");
else
plugin->print (plugin, NULL, NULL, "le texte d'entrée n'a pas changé");
}
return PLUGIN_RC_OK;
}
...
t_plugin_handler *keyb_handler;
keyb_handler = plugin->keyboard_handler_add (plugin, &mon_keyb);
event_handler_add
Prototype :
t_plugin_handler *event_handler_add (t_weechat_plugin
*plugin, char *evenement, t_plugin_handler_func *fonction,
char *handler_args, void *handler_pointer)
Ajoute un gestionnaire d'évènement, appelé dès qu'un évènement se
produit.
Paramètres :
: pointeur vers la structure
de l'extension
: évènement (voir le tableau
ci-dessous)
: fonction appelée
Elle a le prototype suivant :
int ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *handler_args, void *handler_pointer)
Les paramètres passés à la fonction dépendent de l'évènement
(voir le tableau ci-dessous).
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Liste des évènements :
EvènementDescriptionParamètresbuffer_openun tampon a été ouvert
argc = 1, argv = { numéro de tampon }
buffer_closeun tampon a été fermé
argc = 1, argv = { numéro de tampon }
buffer_moveun tampon a été déplacé
argc = 2, argv = { nouveau numéro de tampon, ancien
numéro }
Valeur renvoyée : le pointeur vers le nouveau gestionnaire
d'évènement.
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
Exemple :
int mon_evenement (t_weechat_plugin *plugin, int argc, char **argv,
char *handler_args, void *handler_pointer)
{
plugin->print (plugin, NULL, NULL, "mon_evenement");
return PLUGIN_RC_OK;
}
...
t_plugin_handler *event_handler;
event_handler = plugin->event_handler_add (plugin, "buffer_open",
&mon_evenement);
handler_remove
Prototype :
void handler_remove (t_weechat_plugin *plugin,
t_plugin_handler *handler)
Supprime un gestionnaire de commande ou message.
Paramètres :
: pointeur vers la structure
de l'extension
: le gestionnaire à supprimer
Valeur renvoyée : aucune.
Exemple :
plugin->handler_remove (plugin, mon_handler);handler_remove_all
Prototype :
void handler_remove_all (t_weechat_plugin *plugin)
Supprime tous les gestionnaires d'une extension.
Paramètres :
: pointeur vers la structure
de l'extension
Valeur renvoyée : aucune.
Exemple :
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 *fonction,
char *modifier_args, void *modifier_pointer)
Ajoute un modifieur de message.
Paramètres :
: pointeur vers la structure
de l'extension
: 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
Elle a le prototype suivant :
char *ma_fonction (t_weechat_plugin *plugin,
int argc, char **argv,
char *modifier_args, void *modifier_pointer)
Le paramètre argc vaut 2 et les arguments suivants sont
passés dans le tableau argv :
argv[0] = nom du serveurargv[1] = message
: paramètres passés à la
fonction appelée
: pointeur passé à la
fonction appelée
Valeur renvoyée : le pointeur vers le nouveau modifieur de message.
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.
Exemple :
char *adder (t_weechat_plugin *plugin, int argc, char **argv,
char *modifier_args, void *modifier_pointer)
{
char *string;
string = 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)
Supprime un modifieur de message.
Paramètres :
: pointeur vers la structure
de l'extension
: le modifieur à supprimer
Valeur renvoyée : aucune.
Exemple :
plugin->modifier_remove (plugin, mon_modifier);modifier_remove_all
Prototype :
void modifier_remove_all (t_weechat_plugin *plugin)
Supprime tous les modifieurs d'une extension.
Paramètres :
: pointeur vers la structure
de l'extension
Valeur renvoyée : aucune.
Exemple :
plugin->modifier_remove_all (plugin);exec_command
Prototype :
void exec_command (t_weechat_plugin
*plugin, char *serveur, char *canal, char *commande)
Execute une commande WeeChat ou envoie un message à un canal.
Paramètres :
: pointeur vers la structure
de l'extension
: nom interne du serveur où
exécuter la commande (peut être NULL)
: nom du canal où exécuter la
commande (peut être NULL)
: la commande à exécuter
Valeur renvoyée : aucune.
Exemples :
plugin->exec_command (plugin, NULL, NULL, "/help nick");
plugin->exec_command (plugin, "freenode", "#weechat", "bonjour");
get_info
Prototype :
char *get_info (t_weechat_plugin *plugin,
char *info, char *serveur)
Renvoie une information sur WeeChat ou un canal.
Paramètres :
: pointeur vers la structure
de l'extension
: nom de l'info à obtenir :
InfoDescriptionversionversion de WeeChatnickpesudochannel
nom du canal (NULL pour un serveur ou un privé)
servernom du serveurtype
type de tampon: 0=standard, 1=DCC,
2=données IRC brutes
awaydrapeau "away"inactivity
nombre de secondes écoulées depuis que la dernière
touche a été appuyée
input
contenu de la ligne de commande de la fenêtre
courante
input_mask
contenu du masque de couleur de la ligne de
commande
input_pos
position du curseur dans la ligne de commande
weechat_dir
répertoire de base de WeeChat
(par défaut: ~/.weechat/)
weechat_libdirrépertoire "lib" système de WeeChatweechat_sharedirrépertoire "share" système de WeeChat
: nom interne du serveur où
récupérer l'information (si nécessaire)
Valeur renvoyée : l'information recherchée, NULL si non trouvée.
Note : le résultat doit être libéré par un appel à la fonction
"free" après utilisation.
Exemples :
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, vous êtes %s sur freenode "
"(inactif depuis %s secondes)",
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)
Renvoie la liste des DCC en cours ou terminés.
Paramètres :
: pointeur vers la structure
de l'extension
Valeur renvoyée : la liste chaînée des DCC.
TypeChampDescriptionchar *serverle serveur IRCchar *channelle canal IRCinttype
le type de DCC :
0 = discussion reçue,
1 = discussion envoyée,
2 = fichier reçu,
3 = fichier envoyé
intstatus
le statut du DCC :
0 = en attente,
1 = en cours de connexion,
2 = actif,
3 = terminé,
4 = échoué,
5 = interrompu par l'utilisateur
time_tstart_timela date et heure de création du DCCtime_tstart_transferla date et heure de démarrage du transfertunsigned longaddradresse IP de l'utilisateur distantintportport utilisé pour le DCCchar *nickpseudo de l'utilisateur distantchar *filenamenom de fichierchar *local_filenamenom de fichier localintfilename_suffixsuffixe si renommage de fichierunsigned longsizetaille du fichierunsigned longposposition actuelle dans le fichierunsigned longstart_resumeposition de démarrage après une interruptionunsigned longbytes_per_sec
nombre d'octets transmis par seconde depuis le début
du transfert
t_plugin_dcc_info *prev_dcc
pointeur vers l'info DCC précédente
t_plugin_dcc_info *next_dcc
pointeur vers l'info DCC suivante
Note : le résultat doit être libéré par un appel à la fonction
"free_dcc_info" après utilisation.
Exemples :
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, avec: %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)
Libère la mémoire utilisée par une liste de DCC.
Paramètres :
: pointeur vers la structure
de l'extension
: pointeur vers la liste DCC
renvoyée par la fonction "get_dcc_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_dcc_info (plugin, dcc_info);get_server_info
Prototype :
t_plugin_server_info *get_server_info (t_weechat_plugin *plugin)
Renvoie la liste des serveurs IRC (connectés ou non).
Paramètres :
: pointeur vers la structure
de l'extension
Valeur retournée : la liste chaînée des serveurs IRC.
TypeChampDescriptionchar *namenom interne du serveurintautoconnect1 si auto-connexion au démarrage, 0 sinonintautoreconnect
1 si auto-reconnexion quand déconnecté,
0 sinon
intautoreconnect_delaydélai avant de tenter une reconnexionintcommand_line
1 si le serveur vient de la ligne de commande
(donc temporaire), 0 sinon
char *addressadresse du serveur (nom ou IP)intportportintipv6connexion IPv6intsslconnexion SSLchar *passwordmot de passe pour le serveurchar *nick1premier pseudochar *nick2pseudo alternatifchar *nick3second pseudo alternatifchar *usernamenom d'utilisateurchar *real namenom réelchar *commandcommande exécutée une fois connectéintcommand_delaydélai après exécution de la commandechar *autojoincanaux joints automatiquementintautorejoin
1 si les canaux sont rejoints après un "kick",
0 sinon
char *notify_levelsniveaux de notification des canauxchar *charset_decode_iso
jeux de caractères de décodage ISO pour les canaux
char *charset_decode_utf
jeux de caractères de décodage UTF pour les canaux
char *charset_encode
jeux de caractères d'encodage pour les canaux
intis_connected1 si connecté au serveur, 0 sinonintssl_connected1 si connecté via SSL, 0 sinonchar *nickpseudo courantintis_away1 si absent, 0 sinontime_taway_time
date/heure à laquelle l'utilisateur a été marqué absent
intlaglag (en millisecondes)t_plugin_server_info *prev_serverpointeur vers les infos du serveur précédentt_plugin_server_info *next_serverpointeur vers les infos du serveur suivant
Note : le résultat doit être libéré par un appel à la fonction
"free_server_info" après utilisation.
Exemple :
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,
"serveur: %s, addresse: %s, port: %d %s",
ptr_server_info->name,
ptr_server_info->address,
ptr_server_info->port,
(ptr_server_info->is_connected) ? "(connecté)" : "");
}
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)
Libère la mémoire utilisée par une liste de serveurs.
Paramètres :
: pointeur vers la structure
de l'extension
: pointeur vers la liste de
serveurs retournée par la fonction "get_server_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_server_info (plugin, server_info);get_channel_info
Prototype :
t_plugin_channel_info *get_channel_info (t_weechat_plugin *plugin,
char *serveur)
Renvoie la liste des canaux IRC pour un serveur.
Paramètres :
: pointeur vers la structure
de l'extension
: nom interne du serveur
Valeur renvoyée : la liste chaînée des canaux IRC du serveur.
TypeFieldDescriptioninttype0 pour un canal, 1 pour un privéchar *namenom du canalchar *topictitre du canalchar *modesmodes du canalintlimitlimite d'utilisateurschar *keyclé du canalintnicks_countnombre de pseudos présents sur le canalt_plugin_channel_info *prev_channelpointeur vers les infos du canal précédentt_plugin_channel_info *next_channelpointeur vers les infos du canal suivant
Note : le résultat doit être libéré par un appel à la fonction
"free_channel_info" après utilisation.
Exemple :
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)
Libère la mémoire utilisée par une liste de canaux.
Arguments:
: pointeur vers la structure
de l'extension
: pointeur vers la liste de
canaux retournée par la fonction "get_channel_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_channel_info (plugin, channel_info);get_nick_info
Prototype :
t_plugin_nick_info *get_nick_info (t_weechat_plugin *plugin,
char *serveur, char *canal)
Renvoie la liste des pseudos pour un canal.
Arguments:
: pointeur vers la structure
de l'extension
: nom interne du serveur
: nom du canal
Valeur renvoyée : la liste chaînée des pseudos présents
sur le canal.
TypeChampDescriptionchar *nickpseudochar *hostnom de machineintflags
propriétés du pseudo, "ou" binaire entre plusieurs
valeurs (1 =propriétaire du canal, 2 = administrateur
du canal, 4 = op, 8 = demi-op, 16 = voix, 32 = absent)
t_plugin_nick_info *prev_nickpointeur vers les infos du pseudo précédentt_plugin_nick_info *next_nickpointeur vers les infos du pseudo précédent
Note : le résultat doit être libéré par un appel à la fonction
"free_nick_info" après utilisation.
Exemple :
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)
Libère la mémoire utilisée par une liste de pseudos.
Paramètres :
: pointeur vers la structure
de l'extension
: pointeur vers la liste de
pseudos retournée par la fonction "get_nick_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_nick_info (plugin, nick_info);get_config
Prototype :
char *get_config (t_weechat_plugin *plugin, char *option)
Renvoie la valeur d'une option de configuration WeeChat.
Paramètres :
: pointeur vers la structure
de l'extension
: nom de l'option à lire
Valeur renvoyée : la valeur de l'option, NULL si non trouvée.
Note : le résultat doit être libéré par un appel à la fonction
"free" après utilisation.
Exemples :
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 *valeur)
Modifie la valeur d'une option de configuration WeeChat.
Paramètres :
: pointeur vers la structure
de l'extension
: nom de l'option à mettre à jour
: nouvelle valeur pour l'option
Valeur renvoyée : 1 si l'option a été modifiée avec succès, 0 si
une erreur s'est produite.
Exemple :
plugin->set_config (plugin, "look_nicklist", "off");
get_plugin_config
Prototype :
char *get_plugin_config (t_weechat_plugin *plugin, char *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.option=valeur"
(NB : le nom de l'extension est ajouté automatiquement).
Paramètres :
: pointeur vers la structure
de l'extension
: nom de l'option à lire
Valeur renvoyée : la valeur de l'option, NULL si non trouvée.
Note : le résultat doit être libéré par un appel à la fonction
"free" après utilisation.
Exemple :
char *value = plugin->get_plugin_config (plugin, "ma_variable");
set_plugin_config
Prototype :
int set_plugin_config (t_weechat_plugin *plugin,
char *option, char *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.option=valeur"
(NB : le nom de l'extension est ajouté automatiquement).
Paramètres :
: pointeur vers la structure
de l'extension
: nom de l'option à mettre à jour
: nouvelle valeur pour l'option
Valeur renvoyée : 1 si l'option a été modifiée avec succès, 0 si
une erreur s'est produite.
Exemple :
plugin->set_plugin_config (plugin, "ma_variable", "valeur");
get_irc_color
Prototype :
int get_irc_color (t_weechat_plugin *plugin,
char *nom_couleur)
Renvoie le numéro d'une couleur IRC avec son nom.
Paramètres :
: pointeur vers la structure
de l'extension
: nom de la couleur
Les couleure autorisées sont :
Nom couleurValeurwhite0black1blue2green3lightred4red5magenta6brown7yellow8lightgreen9cyan10lightcyan11lightblue12lightmagenta13gray14lightgray15
Valeur renvoyée : numéro de la couleur IRC, -1 si la couleur
n'est pas trouvée.
Exemple :
int color_blue = plugin->get_irc_color (plugin, "blue"); /* retourne 2 */
input_color
Prototype :
void input_color (t_weechat_plugin *plugin,
int couleur, int debut, int longueur)
Ajoute de la couleur dans la zone de saisie.
Paramètres :
: pointeur vers la structure
de l'extension
: couleur pour le texte (si < 0,
alors la zone de saisie est rafraichie, et il n'y a aucun
changement dans son contenu)
: position de début pour la coloration
(si < 0, alors le masque est réinitialisé)
: longueur pour la coloration
(si <= 0, alors le masque est réinitialisé)
Valeur renvoyée : aucune.
Exemple :
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)
Retourne la liste des fenêtres WeeChat.
Paramètres :
: pointeur vers la structure
de l'extension
Valeur renvoyée : liste chaînée des fenêtres WeeChat.
TypeChampDescriptionintwin_xposition horizontale de la fenêtreintwin_yposition verticale de la fenêtreintwin_widthlargeur de la fenêtreintwin_heighthauteur de la fenêtreintwin_width_pctlargeur en % (comparé à la fenêtre parent)intwin_height_pcthauteur en % (comparé à la fenêtre parent)intnum_buffernuméro du tampon affichét_plugin_window_info *prev_windowpointeur vers les infos de la fenêtre précédentet_plugin_window_info *next_windowpointeur vers les infos de la fenêtre suivante
Note : le résultat doit être libéré par un appel à la fonction
"free_window_info" après utilisation.
Exemple :
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, "--- info fenêtre ---");
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, "pas d'info fenêtre !");
free_window_info
Prototype :
void free_window_info (t_weechat_plugin *plugin,
t_plugin_window_info *window_info)
Libère la mémoire utilisée par une liste de fenêtres.
Paramètres :
: pointeur vers la structure
de l'extension
: pointeur vers la liste des
infos fenêtres retournée par la fonction "get_window_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_window_info (plugin, window_info);get_buffer_info
Prototype :
t_plugin_buffer_info *get_buffer_info (t_weechat_plugin *plugin)
Retourne la liste des tampons WeeChat.
Paramètres :
: pointeur vers la structure
de l'extension
Valeur renvoyée : liste chaînée des tampons WeeChat.
TypeChampDescriptioninttype
type de tampon: 0=standard, 1=DCC,
2=données IRC brutes
intnumbernuméro de tamponintnum_displayednombre de fenêtres affichant ce tamponchar *server_namenom du serveur pour le tampon (peut être NULL)char *channel_namenom du canal pout le tampon (peut être NULL)intnotify_levelniveau de notification du tamponchar *log_filename
nom du fichier de log (NULL signifie qu'il n'y a
pas de log)
t_plugin_buffer_info *prev_bufferpointeur vers les infos du tampon précédentt_plugin_buffer_info *next_bufferpointeur vers les infos du tampon suivant
Note : le résultat doit être libéré par un appel à la fonction
"free_buffer_info" après utilisation.
Exemple :
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, "--- info tampon ---");
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, "pas d'info tampon !");
free_buffer_info
Prototype:
void free_buffer_info (t_weechat_plugin *plugin,
t_plugin_buffer_info *buffer_info)
Libère la mémoire utilisée par une liste de tampons.
Paramètres :
: pointeur vers la structure
de l'extension
: pointeur vers la liste des
infos tampons retournée par la fonction "get_buffer_info"
Valeur renvoyée : aucune.
Exemple :
plugin->free_buffer_info (plugin, buffer_info);get_buffer_data
Prototype:
t_plugin_buffer_data *get_buffer_info (t_weechat_plugin *plugin,
char *serveur, char *canal)
Renvoie le contenu du tampon.
Paramètres :
: pointeur vers la structure
de l'extension
: nom interne du serveur
: nom du canal
Valeur renvoyée : contenu du tampon (liste chaînée de lignes).
TypeChampDescriptiontime_tdatedate et heurechar *nickpseudochar *data
contenu de la ligne (les codes couleur sont
retirés)
t_plugin_buffer_line *prev_linepointeur vers la ligne précédentet_plugin_buffer_line *next_linepointeur vers la ligne suivante
Note : le résultat doit être libéré par un appel à la fonction
"free_buffer_data" après utilisation.
Exemple :
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, pseudo: %s, données: %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)
Libère la mémoire utilisée par les lignes d'un tampon.
Arguments:
: pointeur vers la structure
de l'extension
: pointeur vers la liste des
lignes du tampon retournée par la fonction "get_buffer_data"
Valeur renvoyée : aucune.
Exemple :
plugin->free_buffer_data (plugin, buffer_line);