Prototyp: int ascii_strcasecmp (t_weechat_plugin *plugin, char *string1, char *string2)
Vergleich von Zeichenketten unabhängig von Sprache und Schreibweise (gross/klein).
Argumente:
plugin
: Zeiger auf Plugin-Struktur
string1
: erste Zeichenkette des Vergleichs
string2
: zweite Zeichenkette des Vergleichs
Rückgabewert: Unterschied zwischen den zwei Zeichenketten: kleiner Null wenn string1 < string2, Null wenn string1 == string2, grösser Null wenn string1 > string2
Beispiel:
if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...
Prototyp: int ascii_strncasecmp (t_weechat_plugin *plugin, char *string1, char *string2, int max)
Vergleich von Zeichenketten unabhängig von Sprache und Schreibweise (gross/klein) für höchstens "max" Zeichen.
Argumente:
plugin
: Zeiger auf Plugin-Struktur
string1
: erste Zeichenkette des Vergleichs
string2
: zweite Zeichenkette des Vergleichs
max
: maximale Zahl an Zeichen für den Vergleich
Rückgabewert: Unterschied zwischen den zwei Zeichenketten: kleiner Null wenn string1 < string2, Null wenn string1 == string2, grösser Null wenn string1 > string2
Beispiel:
if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...
Prototyp: char **explode_string (t_weechat_plugin *plugin, char *string, char *separators, int num_items_max, int *num_items)
Zerlege eine Zeichenkette entsprechend eines oder mehrerer Trennzeichen(s).
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
string
: zu zerlegende Zeichenkette
separators
: zu verwendende(s) Trennzeichen
num_items_max
: maximale Anzahl an zu erzeugenden Teilen (0 = keine Grenze)
num_items
: Zeiger auf eine int-Variable, die die Anzahl der erzeugten
Teile enthält
Rückgabewert: ein Array von Zeichenketten, NULL bei Fehlern.
Hinweis: Das zurückgegebene Array muss nach der Benutzung mittels "free_exloded_string" explizit freigegeben werden.
Beispiel:
char **argv; int argc; argv = plugin->explode_string (plugin, string, " ", 0, &argc); ... if (argv != NULL) plugin->free_exploded_string (plugin, argv);
Prototyp: char **free_exploded_string (t_weechat_plugin *plugin, char **string)
Gib ein Array frei, dass infolge der Zerlegung eines Strings reserviert wurde.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
string
: ein Array von Strings
Rückgabewert: keiner (?).
Beispiel:
char *argv; int argc; argv = plugin->explode_string (plugin, string, " ", 0, &argc); ... if (argv != NULL) plugin->free_exploded_string (plugin, argv);
Prototype: int mkdir_home (t_weechat_plugin *plugin, char *directory)
Create a directory in WeeChat home.
Arguments:
plugin
: pointer to plugin structure
directory
: directory to create
Return value: 1 if directory was successfully created, 0 if an error occurred.
Example:
if (!plugin->mkdir_home (plugin, "temp")) plugin->print_server(plugin, "Failed to create 'temp' directory in WeeChat home.");
Prototyp: void exec_on_files (t_weechat_plugin *plugin, char *repertoire, int (*callback)(t_weechat_plugin *, char *))
Führe eine Funktion auf allen Dateien eines Verzeichnisses aus.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
directory
: Verzeichnis der zu verwendenden Dateien
callback
: die anzuwendende Funktion
Rückgabewert: keiner.
Beispiel:
int callback (t_weechat_plugin *plugin, char *file) { plugin->print_server (plugin, "file: %s", file); return 1; } ... plugin->exec_on_files (plugin, "/tmp", &callback);
Prototyp: void print (t_weechat_plugin *plugin, char *server, char *channel, char *message, ...)
Sende eine Nachricht an einen WeeChat-Puffer, bezeichnet durch server und channel (beide können NULL sein, dann wird der aktuelle Puffer verwendet).
Argumente:
plugin
: Zeiger auf Plugin-Struktur
server
: interner Name des Servers, zu welchem der Puffer gehört, in dem die Nachricht
angezeigt werden soll (kann NULL sein)
channel
: Name des Channels, in dem die Nachricht angezeigt werden soll (kann NULL sein)
message
: Nachricht
Rückgabewert: keiner.
Beispiele:
plugin->print (plugin, NULL, NULL, "hello"); plugin->print (plugin, NULL, "#weechat", "hello"); plugin->print (plugin, "freenode", "#weechat", "hello");
Prototyp: void print_server (t_weechat_plugin *plugin, char *message, ...)
Zeige eine Nachricht im aktuellen Server-Puffer.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
message
: Nachricht
Rückgabewert: keiner.
Beispiel:
plugin->print_server (plugin, "hello");
Prototyp: void print_infobar (t_weechat_plugin *plugin, int time, char *message, ...)
Zeige eine Nachricht in der Infobar für eine bestimmte Zeit
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
time
: Zeitspanne für die Anzeige (in Sekunden, 0 = ständige Anzeige)
Rückgabewert: keiner.
Beispiel:
plugin->print_infobar (plugin, 5, "hello");
Prototyp: void infobar_remove (t_weechat_plugin *plugin, int count)
Entferne eine oder mehr Nachrichten aus der Infobar.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
count
: Anzahl der Nachrichten (wenn das Argument kleiner als Null ist, werden alle Nachrichten entfernt)
Rückgabewert: keiner.
Beispiel:
plugin->infobar_remove (1);
Prototyp: void log (t_weechat_plugin *plugin, char *server, char *channel, char *message, ...)
Schreibe eine Nachricht in die Log-Datei (für den entsprechenden Server/Channel).
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
server
: interner Name des Servers, zu welchem der Log-Puffer gehört (kann NULL sein)
channel
: Name des Channels, zu welchem der Log-Puffer gehört (kann NULL sein)
message
: Nachricht
Rückgabewert: keiner.
Beispiel:
plugin->log (plugin, "freenode", "#weechat", "test");
Prototyp: t_plugin_handler *msg_handler_add (t_weechat_plugin *plugin, char *message, t_plugin_handler_func *function, char *handler_args, void *handler_pointer)
Erzeuge einen IRC-Message-Handler, der aufgerufen wird, wenn eine Nachricht empfangen wird.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
message
: Name (Typ) der IRC-Nachricht.
Eine Liste der bekannten IRC-Nachrichten ist in den
RFCs
1459 und
2812 zu finden.
Weiterhin können sie einen speziellen Namen verwenden, der mit "weechat_" beginnt,
um spezielle Ereignisse zu bearbeiten, wie in der folgenden Tabelle aufgeführt:
Name | Beschreibung |
---|---|
weechat_pv | private Nachricht empfangen |
weechat_highlight | hervorgehobene Nachricht (in einem Channel oder privatem Chat) |
weechat_ctcp | CTCP-Nachricht empfangen (VERSION, PING, ...) |
weechat_dcc | DCC-Nachricht empfangen (Chat oder Datei) |
function
: Funktion, die aufgerufen wird, wenn eine Nachricht empfangen wurde
Sie verwendet den folgenden Prototyp: int my_function (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer)
Argument argc ist auf 3 gesetzt, die folgenden Werte sind im argv-Array:
argv[0] = Server Name
argv[1] = IRC Nachricht
argv[2] = Kommando Argumente
handler_args
: Argumente, die beim Aufruf an die Funktion übergeben werden
handler_pointer
: pointer given to function when called
handler_pointer
: Zeiger, der an die Funktion übergeben wird
Rückgabewert: Zeiger auf den neuen Handler
Hinweis: die Funktion, die aufgerufen wird wenn eine Nachricht empfangen wurde, muss einen der folgenden Werte zurückgeben:
PLUGIN_RC_KO
: Funktion ist fehlgschlagen
PLUGIN_RC_OK
: Funktion war erfolgreich
PLUGIN_RC_OK_IGNORE_WEECHAT
: Die Nachricht wird nicht an WeeChat übergeben
PLUGIN_RC_OK_IGNORE_PLUGINS
: Die Nachricht wird nicht an andere Plugins weitergegeben
PLUGIN_RC_OK_IGNORE_ALL
: Die Nachricht wird weder an WeeChat noch an andere
Plugins weitergegeben
Beispiel:
int msg_kick (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer) { plugin->print (plugin, argv[0], NULL, "KICK received"); return PLUGIN_RC_OK; } ... plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
Prototyp: t_plugin_handler *cmd_handler_add (t_weechat_plugin *plugin, char *command, char *description, char *arguments, char *arguments_description, char *completion_template, t_plugin_handler_func *fonction, char *handler_args, void *handler_pointer)
Erzeugt einen Handler für ein WeeChat-Kommando, der aufgerufen wird, wenn der Anwender das Kommando ausführt (Beispiel: /command).
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
command
: Name des neuen Kommandos, der auch Name eines bereits existierenden Kommandos
sein kann (mit Bedacht zu verwenden, das ersetzte Kommando ist nicht verfügbar, bis das Plugin entfernt
wurde)
description
: kurze Beschreibung des Kommandos (angezeigt beim Ausführen von /help command)
arguments
: kurze Beschreibung der Argumente des Kommandos (angezeigt beim Ausführen von /help command)
arguments_description
: lange Beschreibung der Argumente des Kommandos (angezeigt beim Ausführen von /help command)
completion_template
: Vorlage für die Vervollständigung; zum Beispiel
bedeutet "abc|%w def|%i
", dass das erste Argument "abc" oder ein
WeeChat-Kommando sein kann und das zweite Argument "def" oder ein IRC-Kommando.
Eine leere Zeichenkette bedeutet, dass WeeChat für jedes Argument einen Nicknamen
des gegenwärtigen Channels einsetzt, ein NULL oder "-" schaltet die Vervollständigung
für alle Argumente ab.
Die folgenden Ersetzungen können verwendet werden:
Code | Beschreibung |
---|---|
%- | keine Vervollständigung für das Argument |
%a | Alias |
%A | Aliase und Kommandos (WeeChat, IRC und Plugins) |
%c | gegenwärtiger Channel |
%C | Channels des gegenwärtigen Servers |
%h | Plugin Kommandos |
%i | IRC Kommandos (senden) |
%I | IRC Kommandos (empfangen) |
%k | Grundfunktionen |
%m | Nicknamen des gegenwärtigen Servers |
%n | Nicknamen des gegenwärtigen Channels |
%N | Nicknamen und Hostnamen des gegenwärtigen Channels |
%o | Konfigurationseinstellungen |
%O | Plugin Optionen |
%p | Standard "part" Nachricht |
%q | Standard "quit" Nachricht |
%s | Name des gegenwärtigen Servers |
%S | Namen aller definierten Server |
%t | Topic des gegenwärtigen Channels |
%v | Wert einer Konfigurationseinstellung |
%V | Wert einer Plugin-Option |
%w | WeeChat Kommandos |
function
: Funktion, die aufgerufen wird, wenn das Kommando ausgeführt wird
Sie verwendet den folgenden Prototypen: int my_function (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer)
Das Argument argc ist auf 3 gesetzt, das Array argv enthält die folgenden Werte:
argv[0] = Server Name
argv[1] = Kommando
argv[2] = Kommando-Argumente
handler_args
: Argumente, die an die Funktion übergeben werden
handler_pointer
: Zeiger, der an die Funktion übergeben wird
Rückgabewert: Zeiger auf den neuen Kommando-Handler.
Hinweis: die Funktion, die aufgerufen wird, wenn das Kommando ausgeführt wird, muss einen der folgende Werte zurückgeben:
PLUGIN_RC_KO
: Funktion ist fehlgeschlagen
PLUGIN_RC_OK
: Funktion war erfolgreich
Beispiel:
int cmd_test (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer) { plugin->print (plugin, argv[0], NULL, "test command, nick: %s", (argv[2]) ? argv[2] : "none"); return PLUGIN_RC_OK; } ... plugin->cmd_handler_add (plugin, "test", "Test command", "[nick]", "nick: nick of channel", "%n", &cmd_test, NULL, NULL);
Prototyp: t_plugin_handler *timer_handler_add (t_weechat_plugin *plugin, int interval, t_plugin_handler_func *function, char *handler_args, void *handler_pointer)
Erzeuge einen zeitgesteuerten Handler, der periodisch eine Funktion aufruft.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
interval
: Intervall (in Secunden) zwischen zwei Aufrufen der Funktion
function
: Funktion, die aufgerufen wird
Sie verwendet den folgenden Prototypen: int my_function (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer)
Das Argument argc ist auf 0 gesetzt und argv ist auf NULL gesetzt.
handler_args
: Argumente der aufgerufenen Funktion
handler_pointer
: Zeiger, der an die Funktion übergeben wird
Rückgabewert: Zeiger auf den neuen timer-Handler.
Hinweis: die Funktion, die aufgerufen wird, muss einen der folgende Werte zurückgeben:
PLUGIN_RC_KO
: Funktion ist fehlgeschlagen
PLUGIN_RC_OK
: Funktion war erfolgreich
Beispiel:
int my_timer (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer) { plugin->print (plugin, NULL, NULL, "my timer"); return PLUGIN_RC_OK; } ... plugin->timer_handler_add (plugin, 60, &my_timer);
Prototyp: t_plugin_handler *keyboard_handler_add (t_weechat_plugin *plugin, t_plugin_handler_func *function, char *handler_args, void *handler_pointer)
Erzeugt einen Keyboard-Handler, der nach dem Drücken einer Taste aufgerufen wird.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
function
: Die Funktion, die aufgerufen wird
Sie verwendet den folgenden Prototypen: int my_function (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer)
Das Argument argc ist auf 3 gesetzt, argv enthält die folgenden Werte:
argv[0] = Taste, die gedrückt wurde (Name der internen Funktion oder '*' gefolgt von einem Tastaturcode)
argv[1] = Kommandozeile vor dem Tastendruck
argv[2] = Kommandozeile nach dem Tastendruck
handler_args
: Argumente, die bei Aufruf der Funktion übergeben
werden
handler_pointer
: Zeiger auf die Funktion, der bei Aufruf übergeben
wird
Rückgabewert: Zeiger auf den Handler.
Hinweis: Die aufgerufene Funktion muss einen der folgenden Werte zurückgeben:
PLUGIN_RC_KO
: Funktion ist fehlgeschlagen
PLUGIN_RC_OK
: Funktion war erfolgreich
Beispiel:
int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv, char *handler_args, void *handler_pointer) { if (argc == 2) { plugin->print (plugin, NULL, NULL, "key pressed: %s", argv[0]); if (argv[1] && (argv[1][0] == '1')) plugin->print (plugin, NULL, NULL, "input text changed"); else plugin->print (plugin, NULL, NULL, "input text not changed"); } return PLUGIN_RC_OK; } ... plugin->keyboard_handler_add (plugin, &keyb_handler);
Prototyp: void handler_remove (t_weechat_plugin *plugin, t_plugin_handler *handler)
Entfernt einen Nachrichten- oder Kommando-Handler.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
handler
: Handler, der entfernt werden soll
Rückgabewert: keiner
Beispiel:
plugin->handler_remove (plugin, my_handler);
Prototyp: void handler_remove_all (t_weechat_plugin *plugin)
Entfernt alle Handler eines Plugins.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
Rückgabewert: keiner
Beispiel:
plugin->handler_remove_all (plugin);
Prototyp: void exec_command (t_weechat_plugin *plugin, char *server, char *channel, char *command)
Führe ein WeeChat-Kommando aus (oder sende eine Nachricht an einen Channel).
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
server
: interner Name des Servers, auf den das Kommando angewendet werden soll (kann NULL sein)
channel
: Name des Channels, auf den das Kommando angewendet werden soll (kann NULL sein)
command
: Kommando
Rückgabewert: keiner
Beispiel:
plugin->exec_command (plugin, NULL, NULL, "/help nick"); plugin->exec_command (plugin, "freenode", "#weechat", "hello");
Prototyp: char *get_info (t_weechat_plugin *plugin, char *info, char *server)
Gib eine Information über WeeChat oder einen Channel zurück.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
info
: Name (Typ) der Information:
Info | Beschreibung |
---|---|
version | WeeChats Version |
nick | Nickname |
channel | Name des Channels (NULL bei einem Server oder Privatchat) |
server | Name des Servers |
away | Status des "away"-Flags |
inactivity | Anzahl der Sekunden seit der letzten Tastenbetätigung |
input | Inhalt der Kommandozeile im gegenwärtigen Fenster |
input_mask | Inhalt der Farbmaske für die Kommandozeile |
input_pos | Position des Cursors in der Kommandozeile |
weechat_dir | WeeChat-Verzeichnis (Standard: ~/.weechat/) |
weechat_libdir | WeeChat-Systemverzeichnis (Bibliotheken) |
weechat_sharedir | WeeChat-Systemverzeichnis (gemeinsame Dateien) |
server
: interner Name des Servers um Informationen zu lesen (wenn benötigt)
Rückgabewert: angeforderte Information oder NULL
Hinweis: das Ergebnis muss nach Nutzung mit "free" wieder freigegeben werden.
Beispiele:
char *version = plugin->get_info (plugin, "version", NULL); char *nick = plugin->get_info (plugin, "nick", "freenode"); char *inactivity = plugin->get_info (plugin, "inactivity", NULL); plugin->print (plugin, NULL, NULL, "WeeChat version %s, you are %s on freenode " "(inactive for %s seconds)", version, nick, inactivity); if (version) free (version); if (nick) free (nick); if (inactivity) free (inactivity);
Prototyp: t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin)
Gib eine Liste der aktiven oder beendeten DCCs zurück.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
Rückgabewert: verkettete Liste von DCCs.
Typ | Feld | Beschreibung |
---|---|---|
char * | server | IRC Server |
char * | channel | IRC Channel |
int | type | DCC Typ: 0 = Chatanfrage empfangen, 1 = Chatanfrage gesendet, 2 = Datei empfangen, 3 = Datei gesendet |
int* | status | DCC Status: 0 = wartend, 1 = verbindend, 2 = aktiv, 3 = beendet, 4 = fehlgeschlagen, 5 = unterbrochen durch Anwender |
time_t | start_time | Datum/Zeit der Erzeugung der DCC |
time_t | start_transfer | Datum/Zeit des Beginns der Übertragung der DCC |
unsigned long | addr | IP-Adresse des Partners |
int | port | Port der DCC |
char * | nick | Nickname des Partners |
char * | filename | Dateiname |
char * | local_filename | lokaler Dateiname |
int | filename_suffix | Suffix wenn die Datei umbenannt wird |
unsigned long | size | Dateigrösse |
unsigned long | pos | Position in Datei |
unsigned long | start_resume | Startposition nach einer Unterbrechung |
unsigned long | bytes_per_sec | Übertragungsrate (Bytes/s) seit Beginn der Übertragung |
t_plugin_dcc_info * | prev_dcc | Zeiger auf voheriges DCC-Info |
t_plugin_dcc_info * | next_dcc | Zeiger auf nächstes DCC-Info |
Hinweis: Das Ergebnis muss nach der Benutzung mittels "free_dcc_info" wieder freigegeben werden.
Beispiele:
t_plugin_dcc_info *dcc_info = plugin->get_dcc_info (plugin); for (ptr_dcc = dcc_info; ptr_dcc; ptr_dcc = ptr_dcc->next_dcc) { plugin->print_server (plugin, "DCC type=%d, with: %s", ptr_dcc->type, ptr_dcc->nick); } if (dcc_info) plugin->free_dcc_info (plugin, dcc_info);
Prototyp: void free_dcc_info (t_weechat_plugin *plugin, t_plugin_dcc_info *dcc_info)
Gibt den Speicher einer Liste von DCC-Infos wieder frei.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
dcc_info
: Zeiger auf eine Liste mit DCC-Infos, die
mit "get_dcc_info" angelegt wurde
Rückgabewert: keiner.
Beispiel:
plugin->free_dcc_info (plugin, dcc_info);
Prototyp: t_plugin_server_info *get_server_info (t_weechat_plugin *plugin)
Gibt die Liste von IRC-Servern zurück (verbunden oder nicht)
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
Rückgabewert: Liste von IRC-Servern.
Typ | Feld | Beschreibung |
---|---|---|
char * | name | interner Servername |
int | autoconnect | 1 wenn Autoconnect gesetzt ist, 0 sonst |
int | autoreconnect | 1 wenn autoreconnect gesetzt ist, 0 sonst |
int | autoreconnect_delay | Wartezeit vor erneutem Verbindungsversuch |
int | command_line | 1 wenn der Servername auf der Kommandozeile angegeben wurde (ist somit temporär) 0 sonst |
char * | address | Serveradresse (Name oder IP) |
int | port | Port |
int | ipv6 | IPv6-Verbindung |
int | ssl | SSL-Verbindung |
char * | password | Passwort |
char * | nick1 | primärer Nickname |
char * | nick2 | alternativer Nickname |
char * | nick3 | zweiter, alternativer Nickname |
char * | username | Username |
char * | real name | tatsächlicher Name |
char * | command | Kommando, dass bei erfolgreicher Verbindung ausgeführt wurde |
int | command_delay | Verzögerung nach Ausführung des Kommandos |
char * | autojoin | Channels, die automatisch betreten werden sollen |
int | autorejoin | 1 wenn Channels wieder betreten werden sollen, nachdem man gekickt wurde 0 sonst |
char * | notify_levels | Benachrichtigungs-Level von Channels |
char * | charset_decode_iso | Zeichensatz zum Dekodieren von ISO |
char * | charset_decode_utf | Zeichensatz zum Dekodieren von UTF |
char * | charset_encode | Zeichensatz der Channels zum Kodieren von Nachrichten |
int | is_connected | 1 wenn verbunden mit einem Server, 0 otherwise |
int | ssl_connected | 1 wenn verbunden über SSL, 0 sonst |
char * | nick | gegenwärtiger Nickname |
int | is_away | 1 wenn away-flag gesetzt ist, 0 sonst |
time_t | away_time | Zeitspanne seit away-flag gesetzt ist |
int | lag | Lag (in Millisekunden) |
t_plugin_server_info * | prev_server | Zeiger auf vorherigen Knoten der Liste |
t_plugin_server_info * | next_server | Zeiger auf nächsten Knoten der Liste |
Hinweis: das Ergebnis muss nach der Benutzung mit "free_server_info" wieder freigegeben werden.
Beispiel:
t_plugin_server_info *server_info, *ptr_server_info; server_info = plugin->get_server_info (plugin); if (server_info) { for (ptr_server_info = server_info; ptr_server_info; ptr_server_info = ptr_server_info->next_server) { plugin->print (plugin, NULL, NULL, "server: %s, address: %s, port: %d %s", ptr_server_info->name, ptr_server_info->address, ptr_server_info->port, (ptr_server_info->is_connected) ? "(connected)" : ""); } plugin->free_server_info (plugin, server_info); }
Prototyp: void free_server_info (t_weechat_plugin *plugin, t_plugin_server_info *server_info)
Gib den Speicher einer Liste "server info" frei
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
server_info
: Zeiger auf eine Server-Liste, der von der Funktion "get_server_info"
zurückgegeben wurde.
Rückgabewert: keiner.
Beispiel:
plugin->free_server_info (plugin, server_info);
Prototyp: t_plugin_channel_info *get_channel_info (t_weechat_plugin *plugin, char *server)
Gib eine Liste der Channels für einen Server zurück.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
server
: interner Name des Server
Rückgabewert: verkettete Liste von Channels für einen Server.
Typ | Feld | Beschreibung |
---|---|---|
int | type | 0 für einen normalen Channel, 1 für einen Privaten |
char * | name | Name des Channels |
char * | topic | Topic des Channels |
char * | modes | Channelmodus (Flags) |
int | limit | Anzahl der erlaubten User |
char * | key | Schlüssel des Channels |
int | nicks_count | Anzahl der Nicknamen des Channels |
t_plugin_channel_info * | prev_channel | Zeiger auf vorherigem Knoten der Liste |
t_plugin_channel_info * | next_channel | Zeiger auf nächsten Knoten der Liste |
Hinweis: Das Ergebnis muss nach der Benutzung mit "free_channel_info" wieder freigegeben werden.
Beispiel:
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); }
Prototyp: void free_channel_info (t_weechat_plugin *plugin, t_plugin_channel_info *channel_info)
Gibt den Speicher einer Liste "channel info" wieder frei.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
channel_info
: Zeiger auf eine Liste "channel info", der von "get_channel_info"
zurückgegeben wurde
Rückgabewert: keiner.
Beispiel:
plugin->free_channel_info (plugin, channel_info);
Prototyp: t_plugin_nick_info *get_nick_info (t_weechat_plugin *plugin, char *server, char *channel)
Gib eine Liste der Nicknamen für einen Channel zurück.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
server
: interner Name des Servers
channel
: Name des Channels
Rückgabewert: verkettete Liste von Nicknamen eines Channels.
Typ | Feld | Beschreibung |
---|---|---|
char * | nick | Nickname |
char * | host | Hostname |
int | Flags | Flags, die für einen Nicknamen gesetzt sind: Zweierpotenzen "oder" Zwischenwerte (1 = channel owner, 2 = channel admin, 4 = op, 8 = halfop, 16 = voice, 32 = away) |
t_plugin_nick_info * | prev_nick | Zeiger auf vorherigen Knoten der Liste |
t_plugin_nick_info * | next_nick | Zeiger auf nächsten Knoten der Liste |
Hinweis: Das Ergebnis muss nach der Benutzung mit "free_nick_info" wieder freigegeben werden.
Beispiel:
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); }
Prototyp: void free_nick_info (t_weechat_plugin *plugin, t_plugin_nick_info *nick_info)
Gibt den Speicher einer Liste "nick info" frei.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
nick_info
: Zeiger auf eine Liste "nick info", der von "get_nick_info"
zurückgegeben wurde
Rückgabewert: keiner.
Beispiel:
plugin->free_nick_info (plugin, nick_info);
Prototyp: char *get_config (t_weechat_plugin *plugin, char *option)
Gibt den Wert einer Option der WeeChat-Konfiguration zurück.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
option
: Name der Option
Rückgabewert: Wert der Option, oder NULL, wenn nichts gefunden wurde.
Hinweis: Das Ergebnis muss nach der Benutzung mit "free" wieder freigegeben werden.
Beispiel:
char *value1 = plugin->get_config (plugin, "look_set_title"); char *value2 = plugin->get_config (plugin, "freenode.server_autojoin");
Prototyp: int set_config (t_weechat_plugin *plugin, char *option, char *value)
Setze den Wert einer Option der WeeChat-Konfiguration.
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
option
: Name der Option
value
: der neue Wert der Option
Rückgabewert: 1 wenn der Wert der Option gesetzt werden konnte, 0 bei Auftreten eines Fehlers.
Beispiel:
plugin->set_config (plugin, "look_nicklist", "off");
Prototyp: char *get_plugin_config (t_weechat_plugin *plugin, char *option)
Gibt den Wert einer Option eines Plugins zurück.
Die Option wird aus "~/.weechat/plugins.rc
" gelesen
und sieht so aus: "plugin.option=value
"
(Hinweis: der Name des Plugins wird automatisch gesetzt).
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
option
: Name der Option
Rückgabewert: Wert der Option, NULL wenn nichts gefunden wurde.
Hinweis: Das Ergebnis muss nach der Benutzung mit "free" wieder freigegeben werden.
Beispiel:
char *value = plugin->get_plugin_config (plugin, "my_var");
Prototyp: int set_plugin_config (t_weechat_plugin *plugin, char *option, char *value)
Setzt den Wert einer Option eines Plugins.
Die Option wird in die Datei "~/.weechat/plugins.rc
" geschrieben
und sieht so aus: "plugin.option=value
"
(Hinweis: der Name des Plugins wird automatisch gesetzt)
Argumente:
plugin
: Zeiger auf eine Plugin-Struktur
option
: Name der Option, die gesetzt werden soll
value
: Wert der zu setzenden Option
Rückgabewert: 1 wenn die Option gesetzt werden konnte, 0 wenn ein Fehler aufgetreten ist.
Beispiel:
plugin->set_plugin_config (plugin, "my_var", "value");
Prototype: int get_irc_color (t_weechat_plugin *plugin, char *color_name)
Get IRC color index with name.
Arguments:
plugin
: pointer to plugin structure
color_name
: color name
Allowed colors are:
Color name | Value |
---|---|
white | 0 |
black | 1 |
blue | 2 |
green | 3 |
lightred | 4 |
red | 5 |
magenta | 6 |
brown | 7 |
yellow | 8 |
lightgreen | 9 |
cyan | 10 |
lightcyan | 11 |
lightblue | 12 |
lightmagenta | 13 |
gray | 14 |
lightgray | 15 |
Return value: IRC color index, -1 if color is not found.
Example:
int color_blue = plugin->get_irc_color (plugin, "blue"); /* return 2 */
Prototype: void input_color (t_weechat_plugin *plugin, int color, int start, int length)
Add color in input buffer.
Arguments:
plugin
: pointer to plugin structure
color
: color for text (if < 0, then input
buffer is refresh, and there's no change in input buffer
content)
start
: start position for color (if < 0,
then mask is reinitialized)
length
: length for color (if <= 0,
then mask is reinitialized)
Return value: none.
Example:
plugin->input_color (plugin, plugin->get_irc_color (plugin, "blue"), 10, 5);
Prototype: t_plugin_window_info *get_window_info (t_weechat_plugin *plugin)
Return list of WeeChat windows.
Arguments:
plugin
: pointer to plugin structure
Return value: linked list of WeeChat windows.
Type | Field | Description |
---|---|---|
int | win_x | horizontal position of window |
int | win_y | vertical position of window |
int | win_width | width of window |
int | win_height | height of window |
int | win_width_pct | width % (compared to parent window) |
int | win_height_pct | height % (compared to parent window) |
int | num_buffer | number of displayed buffer |
t_plugin_window_info * | prev_window | pointer to previous window info |
t_plugin_window_info * | next_window | pointer to next window info |
Note: result has to be free by a call to "free_window_info" function after use.
Example:
t_plugin_window_info *window_info, *ptr_window; window_info = plugin->get_window_info (plugin); if (window_info) { for (ptr_window = window_info; ptr_window; ptr_window = ptr_window->next_window) { plugin->print (plugin, NULL, NULL, "--- window info ---"); plugin->print (plugin, NULL, NULL, "(%d,%d), size: %dx%d, %%size: %d%%x%d%%", ptr_window->win_x, ptr_window->win_y, ptr_window->win_width, ptr_window->win_height, ptr_window->win_width_pct, ptr_window->win_height_pct); plugin->print (plugin, NULL, NULL, "num_buffer: %d", ptr_window->num_buffer); } plugin->free_window_info (plugin, window_info); } else plugin->print (plugin, NULL, NULL, "no window info!");
Prototype: void free_window_info (t_weechat_plugin *plugin, t_plugin_window_info *window_info)
Free memory used by window info list.
Arguments:
plugin
: pointer to plugin structure
window_info
: pointer to window info list
returned by "get_window_info" function
Return value: none.
Example:
plugin->free_window_info (plugin, window_info);
Prototype: t_plugin_buffer_info *get_buffer_info (t_weechat_plugin *plugin)
Return list of WeeChat buffers.
Arguments:
plugin
: pointer to plugin structure
Return value: linked list of WeeChat buffers.
Type | Field | Description |
---|---|---|
int | type | buffer type: 0=standard, 1=dcc, 2=raw IRC data |
int | number | buffer number |
int | num_displayed | number of windows displaying buffer |
char * | server_name | server name for buffer (may be NULL) |
char * | channel_name | channel name for buffer (may be NULL) |
int | notify_level | notify level for buffer |
char * | log_filename | log filename (NULL means not logging) |
t_plugin_buffer_info * | prev_buffer | pointer to previous buffer info |
t_plugin_buffer_info * | next_buffer | pointer to next buffer info |
Note: result has to be free by a call to "free_buffer_info" function after use.
Example:
t_plugin_buffer_info *buffer_info, *ptr_buffer; buffer_info = plugin->get_buffer_info (plugin); if (buffer_info) { for (ptr_buffer = buffer_info; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) { plugin->print (plugin, NULL, NULL, "--- buffer info ---"); plugin->print (plugin, NULL, NULL, "type: %d", ptr_buffer->type); plugin->print (plugin, NULL, NULL, "number: %d", ptr_buffer->number); plugin->print (plugin, NULL, NULL, "num_displayed: %d", ptr_buffer->num_displayed); plugin->print (plugin, NULL, NULL, "server: %s", ptr_buffer->server_name); plugin->print (plugin, NULL, NULL, "channel: %s", ptr_buffer->channel_name); plugin->print (plugin, NULL, NULL, "notify level: %d", ptr_buffer->notify_level); plugin->print (plugin, NULL, NULL, "log filename: %s", ptr_buffer->log_filename); } plugin->free_buffer_info (plugin, buffer_info); } else plugin->print (plugin, NULL, NULL, "no buffer info!");
Prototype: void free_buffer_info (t_weechat_plugin *plugin, t_plugin_buffer_info *buffer_info)
Free memory used by buffer info list.
Arguments:
plugin
: pointer to plugin structure
buffer_info
: pointer to buffer info list
returned by "get_buffer_info" function
Return value: none.
Example:
plugin->free_buffer_info (plugin, buffer_info);
Prototype: t_plugin_buffer_data *get_buffer_info (t_weechat_plugin *plugin, char *server, char *channel)
Return content of buffer.
Arguments:
plugin
: pointer to plugin structure
server
: internal name of server
channel
: channel name
Return value: buffer content (linked list of lines).
Type | Field | Description |
---|---|---|
char * | nick | nick |
char * | data | line content (color codes are removed) |
t_plugin_buffer_line * | prev_line | pointer to previous line |
t_plugin_buffer_line * | next_line | pointer to next line |
Note: result has to be free by a call to "free_buffer_data" function after use.
Example:
t_plugin_buffer_line *buffer_line, *ptr_line; buffer_line = plugin->get_buffer_data (plugin); if (buffer_line) { for (ptr_line = buffer_line; ptr_line; ptr_line = ptr_line->next_line) { plugin->print (plugin, NULL, NULL, "nick: %s, data: %s", ptr_line->nick, ptr_line->data); } plugin->free_buffer_data (plugin, buffer_line); }
Prototype: void free_buffer_data (t_weechat_plugin *plugin, t_plugin_buffer_line *buffer_line)
Free memory used by buffer line list.
Arguments:
plugin
: pointer to plugin structure
buffer_line
: pointer to buffer line list
returned by "get_buffer_data" function
Return value: none.
Example:
plugin->free_buffer_data (plugin, buffer_line);