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);
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, char *server, char *command,
char *arguments, char *handler_args, void *handler_pointer)
{
plugin->print (plugin, server, 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 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 |
%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, char *server,
char *command, char *arguments, char *handler_args,
void *handler_pointer)
{
plugin->print (plugin, server, NULL,
"test command, nick: %s",
(arguments) ? arguments : "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, char *server, char *command,
char *arguments, 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");