Add option "autorejoin_delay" for servers (task #8771), fix autorejoin on channels with key
This commit is contained in:
parent
8aa7380d65
commit
265fa492d5
@ -1,7 +1,7 @@
|
||||
WeeChat ChangeLog
|
||||
=================
|
||||
FlashCode <flashcode@flashtux.org>
|
||||
v0.3.1-dev, 2009-12-13
|
||||
v0.3.1-dev, 2009-12-16
|
||||
|
||||
|
||||
Version 0.3.1 (under dev!)
|
||||
@ -27,6 +27,8 @@ Version 0.3.1 (under dev!)
|
||||
* irc: use self-signed certificate to auto identify on IRC server (CertFP)
|
||||
(task #7492)
|
||||
* irc: check SSL certificates (task #7492)
|
||||
* irc: add option "autorejoin_delay" for servers (task #8771)
|
||||
* irc: fix autorejoin on channels with key
|
||||
* irc: add option to use same nick color in channel and private (task #9870)
|
||||
* irc: add missing command 275 (patch #6952)
|
||||
* irc: add commands /sajoin, /samode, /sanick, /sapart, /saquit (task #9770)
|
||||
|
@ -214,10 +214,15 @@
|
||||
** values: 0 .. 65535 (default value: 30)
|
||||
|
||||
* *irc.server_default.autorejoin*
|
||||
** description: automatically rejoin channels when kicked
|
||||
** description: automatically rejoin channels after kick
|
||||
** type: boolean
|
||||
** values: on, off (default value: off)
|
||||
|
||||
* *irc.server_default.autorejoin_delay*
|
||||
** description: delay (in seconds) before autorejoin (after kick)
|
||||
** type: integer
|
||||
** values: 0 .. 86400 (default value: 30)
|
||||
|
||||
* *irc.server_default.command*
|
||||
** description: command(s) to run when connected to server (many commands should be separated by ";", use "\;" for a semicolon, special variables $nick, $channel and $server are replaced by their value)
|
||||
** type: string
|
||||
|
@ -214,10 +214,15 @@
|
||||
** valeurs: 0 .. 65535 (valeur par défaut: 30)
|
||||
|
||||
* *irc.server_default.autorejoin*
|
||||
** description: rejoindre automatiquement les canaux quand mis dehors
|
||||
** description: rejoindre automatiquement les canaux après un "kick"
|
||||
** type: booléen
|
||||
** valeurs: on, off (valeur par défaut: off)
|
||||
|
||||
* *irc.server_default.autorejoin_delay*
|
||||
** description: délai (en secondes) avant de rejoindre automatiquement (après un "kick")
|
||||
** type: entier
|
||||
** valeurs: 0 .. 86400 (valeur par défaut: 30)
|
||||
|
||||
* *irc.server_default.command*
|
||||
** description: commande(s) à exécuter lorsque connecté au serveur (plusieurs commandes doivent être séparées par ";", utilisez "\;" pour un point-virgule, les variables spéciales $nick, $channel et $server sont remplacées par leur valeur)
|
||||
** type: chaîne
|
||||
|
@ -214,10 +214,15 @@
|
||||
** valori: 0 .. 65535 (valore predefinito: 30)
|
||||
|
||||
* *irc.server_default.autorejoin*
|
||||
** descrizione: rientra automaticamente nei canali dopo il kick
|
||||
** descrizione: automatically rejoin channels after kick
|
||||
** tipo: bool
|
||||
** valori: on, off (valore predefinito: off)
|
||||
|
||||
* *irc.server_default.autorejoin_delay*
|
||||
** descrizione: delay (in seconds) before autorejoin (after kick)
|
||||
** tipo: intero
|
||||
** valori: 0 .. 86400 (valore predefinito: 30)
|
||||
|
||||
* *irc.server_default.command*
|
||||
** descrizione: comando(i) da eseguire quando si è connessi al server (più comandi vanno separati da ":", utilizzare ";" per un punto e virgola, le variabili speciali $nick, $canale e $server vengono sostituite dai loro valori)
|
||||
** tipo: stringa
|
||||
|
9
po/cs.po
9
po/cs.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-09-14 10:56+0200\n"
|
||||
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -3984,9 +3984,14 @@ msgstr ""
|
||||
"čárkou rozdělený seznam kanálů na které přistoupit po připojení na server "
|
||||
"(příklad: \"#kanál1,#kanál2,#kanál3 klíč1,klíč2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "automaticky znovu přijít na kanál po vykopnutí"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr "doba (v sekundách) před novým zkušením znovupřipojení na server"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s%s: chyba při vytváření serveru \"%s\""
|
||||
|
11
po/de.po
11
po/de.po
@ -10,7 +10,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-12-16 12:13+0100\n"
|
||||
"Last-Translator: Nils G <weechatter@arcor.de>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -4117,9 +4117,16 @@ msgstr ""
|
||||
"Durch Kommata getrennte Liste der Channels, die beim Verbinden zum Server "
|
||||
"betreten werden sollen (Beispiel: \"#chan1,#chan2,#chan3 key1,key2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "Channels nach Kick automatisch wieder betreten, falls möglich"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
"Zeit in Sekunden, die gewartet wird, bevor ein Verbindungsneuaufbau versucht "
|
||||
"wird"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s%s: Fehler bei der Erstellung des Servers \"%s\""
|
||||
|
10
po/es.po
10
po/es.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-09-06 21:25+0200\n"
|
||||
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -3900,9 +3900,15 @@ msgstr ""
|
||||
"lista de canales (separados por comas) a unirse cuando se conecte a un "
|
||||
"servidor (ejemplo: \"#canal1,#canal2,#canal3 clave1,clave2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "automáticamente unirse a los canales cuando sea expulsado"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
"espera (en segundos) antes de intentar de nuevo una reconexión del servidor"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s%s: error al crear el servidor \"%s\""
|
||||
|
12
po/fr.po
12
po/fr.po
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"PO-Revision-Date: 2009-12-16 12:13+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-12-16 14:21+0100\n"
|
||||
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -4071,8 +4071,12 @@ msgstr ""
|
||||
"liste des canaux (séparés par des virgules) à rejoindre lorsque connecté au "
|
||||
"serveur (exemple: \"#chan1,#chan2,#chan3 key1,key2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
msgstr "rejoindre automatiquement les canaux quand mis dehors"
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "rejoindre automatiquement les canaux après un \"kick\""
|
||||
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
"délai (en secondes) avant de rejoindre automatiquement (après un \"kick\")"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
|
9
po/hu.po
9
po/hu.po
@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-09-20 13:51+0200\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -3925,9 +3925,14 @@ msgstr ""
|
||||
"szobák vesszővel elválasztott listája ahová be akarunk lépni csatlakozás "
|
||||
"után (például: \"#szoba1,#szoba2,#szoba3 kulcs1,kulcs2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "automatikus visszalépés a szobába kirúgáskor"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr "két újracsatlakozási próba közti szünet (másodpercben)"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s nincs elég memória az információs pult üzenethez\n"
|
||||
|
10
po/it.po
10
po/it.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Weechat 0.31-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-11-26 01:26+0100\n"
|
||||
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -4049,9 +4049,15 @@ msgstr ""
|
||||
"elenco separato da virgole di canali in cui entrare quando si è connessi al "
|
||||
"server (esempio: \"#canale1\", #canale2, #canale3 chiave1,chiave2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "rientra automaticamente nei canali dopo il kick"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
"ritardo (in secondi) prima di effettuare una nuova connessione al server"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s%s: errore durante la creazione del server \"%s\""
|
||||
|
10
po/pl.po
10
po/pl.po
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-09-06 21:25+0200\n"
|
||||
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
|
||||
"Language-Team: Polish\n"
|
||||
@ -4025,9 +4025,15 @@ msgstr ""
|
||||
"oddzielona przecinkami lista kanałów do wejścia po połączeniu z serwerem "
|
||||
"(przykład: \"#kanał1,#kanał2,#kanał3 klucz1,klucz2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "automatycznie wejdź na kanał po wykopaniu"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
"opóźnienie (w sekundach) przed próbą ponownego połączenia się z serwerem"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s%s: błąd podczas tworzenia serwera \"%s\""
|
||||
|
9
po/ru.po
9
po/ru.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.3.1-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: 2009-09-20 13:50+0200\n"
|
||||
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -3926,9 +3926,14 @@ msgstr ""
|
||||
"разделённый запятыми список каналов, на которые заходить при подключении к "
|
||||
"серверу (например, \"#chan1,#chan2,#chan3 key1,key2\")"
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
#, fuzzy
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr "автоматически перезаходить на каналы после кика"
|
||||
|
||||
#, fuzzy
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr "задержка (в секундах) перед повторным соединением с сервером"
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error creating server \"%s\""
|
||||
msgstr "%s недостаточно памяти для сообщения в строке информации\n"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-12-16 12:12+0100\n"
|
||||
"POT-Creation-Date: 2009-12-16 14:20+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -3333,7 +3333,10 @@ msgid ""
|
||||
"\"#chan1,#chan2,#chan3 key1,key2\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "automatically rejoin channels when kicked"
|
||||
msgid "automatically rejoin channels after kick"
|
||||
msgstr ""
|
||||
|
||||
msgid "delay (in seconds) before autorejoin (after kick)"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "irc.h"
|
||||
#include "irc-channel.h"
|
||||
#include "irc-buffer.h"
|
||||
#include "irc-command.h"
|
||||
#include "irc-config.h"
|
||||
#include "irc-nick.h"
|
||||
#include "irc-server.h"
|
||||
@ -244,6 +245,7 @@ irc_channel_new (struct t_irc_server *server, int channel_type,
|
||||
new_channel->display_creation_date = 0;
|
||||
new_channel->nick_completion_reset = 0;
|
||||
new_channel->pv_remote_nick_color = NULL;
|
||||
new_channel->hook_autorejoin = NULL;
|
||||
new_channel->nicks_count = 0;
|
||||
new_channel->nicks = NULL;
|
||||
new_channel->last_nick = NULL;
|
||||
@ -615,6 +617,62 @@ irc_channel_nick_speaking_time_rename (struct t_irc_channel *channel,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_channel_rejoin: rejoin a channel (for example after kick)
|
||||
*/
|
||||
|
||||
void
|
||||
irc_channel_rejoin (struct t_irc_server *server, struct t_irc_channel *channel)
|
||||
{
|
||||
char join_args[256];
|
||||
|
||||
snprintf (join_args, sizeof (join_args), "%s%s%s",
|
||||
channel->name,
|
||||
(channel->key) ? " " : "",
|
||||
(channel->key) ? channel->key : "");
|
||||
|
||||
irc_command_join_server (server, join_args);
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_channel_autorejoin_cb: callback for autorejoin on a channel
|
||||
*/
|
||||
|
||||
int
|
||||
irc_channel_autorejoin_cb (void *data, int remaining_calls)
|
||||
{
|
||||
struct t_irc_server *ptr_server, *ptr_server_found;
|
||||
struct t_irc_channel *ptr_channel_arg, *ptr_channel;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) remaining_calls;
|
||||
|
||||
ptr_channel_arg = (struct t_irc_channel *)data;
|
||||
|
||||
ptr_server_found = NULL;
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
for (ptr_channel = ptr_server->channels; ptr_channel;
|
||||
ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
if (ptr_channel == ptr_channel_arg)
|
||||
{
|
||||
ptr_server_found = ptr_server;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ptr_server_found && (ptr_channel_arg->hook_autorejoin))
|
||||
{
|
||||
irc_channel_rejoin (ptr_server_found, ptr_channel_arg);
|
||||
ptr_channel_arg->hook_autorejoin = NULL;
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_channel_free: free a channel and remove it from channels list
|
||||
*/
|
||||
@ -655,6 +713,8 @@ irc_channel_free (struct t_irc_server *server, struct t_irc_channel *channel)
|
||||
free (channel->away_message);
|
||||
if (channel->pv_remote_nick_color)
|
||||
free (channel->pv_remote_nick_color);
|
||||
if (channel->hook_autorejoin)
|
||||
weechat_unhook(channel->hook_autorejoin);
|
||||
if (channel->nicks_speaking[0])
|
||||
weechat_list_free (channel->nicks_speaking[0]);
|
||||
if (channel->nicks_speaking[1])
|
||||
@ -805,6 +865,7 @@ irc_channel_print_log (struct t_irc_channel *channel)
|
||||
weechat_log_printf (" display_creation_date. . : %d", channel->display_creation_date);
|
||||
weechat_log_printf (" nick_completion_reset. . : %d", channel->nick_completion_reset);
|
||||
weechat_log_printf (" pv_remote_nick_color . . : '%s'", channel->pv_remote_nick_color);
|
||||
weechat_log_printf (" hook_autorejoin. . . . . : 0x%lx", channel->hook_autorejoin);
|
||||
weechat_log_printf (" nicks_count. . . . . . . : %d", channel->nicks_count);
|
||||
weechat_log_printf (" nicks. . . . . . . . . . : 0x%lx", channel->nicks);
|
||||
weechat_log_printf (" last_nick. . . . . . . . : 0x%lx", channel->last_nick);
|
||||
|
@ -54,6 +54,7 @@ struct t_irc_channel
|
||||
int nick_completion_reset; /* 1 for resetting nick completion */
|
||||
/* there was some join/part on chan */
|
||||
char *pv_remote_nick_color; /* color for remote nick in pv */
|
||||
struct t_hook *hook_autorejoin; /* this time+delay = autorejoin time */
|
||||
int nicks_count; /* # nicks on channel (0 if pv) */
|
||||
struct t_irc_nick *nicks; /* nicks on the channel */
|
||||
struct t_irc_nick *last_nick; /* last nick on the channel */
|
||||
@ -106,6 +107,9 @@ extern void irc_channel_nick_speaking_time_add (struct t_irc_channel *channel,
|
||||
extern void irc_channel_nick_speaking_time_rename (struct t_irc_channel *channel,
|
||||
const char *old_nick,
|
||||
const char *new_nick);
|
||||
extern void irc_channel_rejoin (struct t_irc_server *server,
|
||||
struct t_irc_channel *channel);
|
||||
extern int irc_channel_autorejoin_cb (void *data, int remaining_calls);
|
||||
extern int irc_channel_add_to_infolist (struct t_infolist *infolist,
|
||||
struct t_irc_channel *channel);
|
||||
extern void irc_channel_print_log (struct t_irc_channel *channel);
|
||||
|
@ -985,7 +985,7 @@ irc_config_server_new_option (struct t_config_file *config_file,
|
||||
new_option = weechat_config_new_option (
|
||||
config_file, section,
|
||||
option_name, "boolean",
|
||||
N_("automatically rejoin channels when kicked"),
|
||||
N_("automatically rejoin channels after kick"),
|
||||
NULL, 0, 0,
|
||||
default_value, value,
|
||||
null_value_allowed,
|
||||
@ -993,6 +993,18 @@ irc_config_server_new_option (struct t_config_file *config_file,
|
||||
callback_change, callback_change_data,
|
||||
NULL, NULL);
|
||||
break;
|
||||
case IRC_SERVER_OPTION_AUTOREJOIN_DELAY:
|
||||
new_option = weechat_config_new_option (
|
||||
config_file, section,
|
||||
option_name, "integer",
|
||||
N_("delay (in seconds) before autorejoin (after kick)"),
|
||||
NULL, 0, 3600*24,
|
||||
default_value, value,
|
||||
null_value_allowed,
|
||||
NULL, NULL,
|
||||
callback_change, callback_change_data,
|
||||
NULL, NULL);
|
||||
break;
|
||||
case IRC_SERVER_NUM_OPTIONS:
|
||||
break;
|
||||
}
|
||||
|
@ -337,6 +337,15 @@ irc_display_server (struct t_irc_server *server, int with_detail)
|
||||
IRC_COLOR_CHAT_VALUE,
|
||||
weechat_config_boolean (server->options[IRC_SERVER_OPTION_AUTOREJOIN]) ?
|
||||
_("on") : _("off"));
|
||||
if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]))
|
||||
weechat_printf (NULL, " autorejoin_delay . . : (%d %s)",
|
||||
IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY),
|
||||
NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY)));
|
||||
else
|
||||
weechat_printf (NULL, " autorejoin_delay . . : %s%d %s",
|
||||
IRC_COLOR_CHAT_VALUE,
|
||||
weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]),
|
||||
NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY])));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -464,7 +464,22 @@ irc_protocol_cmd_kick (struct t_irc_server *server, const char *command,
|
||||
more */
|
||||
irc_nick_free_all (ptr_channel);
|
||||
if (IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN))
|
||||
irc_command_join_server (server, ptr_channel->name);
|
||||
{
|
||||
if (IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY) == 0)
|
||||
{
|
||||
/* immediately rejoin if delay is 0 */
|
||||
irc_channel_rejoin (server, ptr_channel);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* rejoin channel later, according to delay */
|
||||
ptr_channel->hook_autorejoin =
|
||||
weechat_hook_timer (IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY) * 1000,
|
||||
0, 1,
|
||||
&irc_channel_autorejoin_cb,
|
||||
ptr_channel);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -58,15 +58,17 @@ struct t_irc_message *irc_recv_msgq = NULL;
|
||||
struct t_irc_message *irc_msgq_last_msg = NULL;
|
||||
|
||||
char *irc_server_option_string[IRC_SERVER_NUM_OPTIONS] =
|
||||
{ "addresses", "proxy", "ipv6", "ssl", "password", "autoconnect",
|
||||
"autoreconnect", "autoreconnect_delay", "nicks", "username", "realname",
|
||||
"local_hostname", "command", "command_delay", "autojoin", "autorejoin",
|
||||
"ssl_cert", "ssl_dhkey_size", "ssl_verify",
|
||||
{ "addresses", "proxy", "ipv6", "ssl", "ssl_cert", "ssl_dhkey_size",
|
||||
"ssl_verify", "password", "autoconnect", "autoreconnect",
|
||||
"autoreconnect_delay", "nicks", "username", "realname", "local_hostname",
|
||||
"command", "command_delay", "autojoin", "autorejoin", "autorejoin_delay",
|
||||
};
|
||||
|
||||
char *irc_server_option_default[IRC_SERVER_NUM_OPTIONS] =
|
||||
{ "", "", "off", "off", "", "off", "on", "30", "",
|
||||
"", "", "", "", "0", "", "off", "", "2048", "on",
|
||||
{ "", "", "off", "off", "", "2048",
|
||||
"on", "", "off", "on",
|
||||
"30", "", "", "", "",
|
||||
"", "0", "", "off", "30",
|
||||
};
|
||||
|
||||
|
||||
@ -3253,6 +3255,9 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "autorejoin",
|
||||
IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTOREJOIN)))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "autorejoin_delay",
|
||||
IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY)))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "temp_server", server->temp_server))
|
||||
return 0;
|
||||
if (!weechat_infolist_new_var_integer (ptr_item, "index_current_address", server->index_current_address))
|
||||
@ -3437,6 +3442,12 @@ irc_server_print_log ()
|
||||
weechat_log_printf (" autorejoin . . . . . : %s",
|
||||
weechat_config_boolean (ptr_server->options[IRC_SERVER_OPTION_AUTOREJOIN]) ?
|
||||
"on" : "off");
|
||||
if (weechat_config_option_is_null (ptr_server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]))
|
||||
weechat_log_printf (" autorejoin_delay . . : null (%d)",
|
||||
IRC_SERVER_OPTION_INTEGER(ptr_server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY));
|
||||
else
|
||||
weechat_log_printf (" autorejoin_delay . . : %d",
|
||||
weechat_config_integer (ptr_server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]));
|
||||
weechat_log_printf (" temp_server. . . . . : %d", ptr_server->temp_server);
|
||||
weechat_log_printf (" reloading_from_config: %d", ptr_server->reloaded_from_config);
|
||||
weechat_log_printf (" reloaded_from_config : %d", ptr_server->reloaded_from_config);
|
||||
|
@ -37,6 +37,9 @@ enum t_irc_server_option
|
||||
IRC_SERVER_OPTION_PROXY, /* proxy used for server (optional) */
|
||||
IRC_SERVER_OPTION_IPV6, /* use IPv6 protocol */
|
||||
IRC_SERVER_OPTION_SSL, /* SSL protocol */
|
||||
IRC_SERVER_OPTION_SSL_CERT, /* client ssl certificate file */
|
||||
IRC_SERVER_OPTION_SSL_DHKEY_SIZE, /* Diffie Hellman key size */
|
||||
IRC_SERVER_OPTION_SSL_VERIFY, /* check if the connection is trusted */
|
||||
IRC_SERVER_OPTION_PASSWORD, /* password for server */
|
||||
IRC_SERVER_OPTION_AUTOCONNECT, /* autoconnect to server at startup */
|
||||
IRC_SERVER_OPTION_AUTORECONNECT, /* autoreconnect when disconnected */
|
||||
@ -49,9 +52,7 @@ enum t_irc_server_option
|
||||
IRC_SERVER_OPTION_COMMAND_DELAY, /* delay after execution of command */
|
||||
IRC_SERVER_OPTION_AUTOJOIN, /* channels to automatically join */
|
||||
IRC_SERVER_OPTION_AUTOREJOIN, /* auto rejoin channels when kicked */
|
||||
IRC_SERVER_OPTION_SSL_CERT, /* client ssl certificate file */
|
||||
IRC_SERVER_OPTION_SSL_DHKEY_SIZE, /* Diffie Hellman key size */
|
||||
IRC_SERVER_OPTION_SSL_VERIFY, /* check if the connection is trusted */
|
||||
IRC_SERVER_OPTION_AUTOREJOIN_DELAY, /* delay before auto rejoin */
|
||||
/* number of server options */
|
||||
IRC_SERVER_NUM_OPTIONS,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user