1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 06:46:38 +02:00

Added /amsg command (send text to all channels of all connected servers)

This commit is contained in:
Sebastien Helleu
2005-07-16 23:26:01 +00:00
parent 23696b44da
commit 1eac6d8fdd
12 changed files with 1716 additions and 1548 deletions
+266 -258
View File
File diff suppressed because it is too large Load Diff
+266 -258
View File
File diff suppressed because it is too large Load Diff
+266 -258
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -35,6 +35,10 @@ t_irc_command irc_commands[] =
N_("[target]"),
N_("target: server"),
0, 1, 1, NULL, irc_cmd_send_admin, NULL },
{ "amsg", N_("send message to all channels of all connected servers"),
N_("text"),
N_("text: text to send"),
1, MAX_ARGS, 1, NULL, irc_cmd_send_amsg, NULL },
{ "away", N_("toggle away status"),
N_("[-all] [message]"),
N_("-all: toggle away status on all connected servers\n"
+55
View File
@@ -81,6 +81,61 @@ irc_cmd_send_admin (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_amsg: send message to all channels of all connected servers
*/
int
irc_cmd_send_amsg (t_irc_server *server, char *arguments)
{
t_irc_server *ptr_server;
t_irc_channel *ptr_channel;
t_irc_nick *ptr_nick;
/* make gcc happy */
(void) server;
if (arguments)
{
gui_add_hotlist = 0;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected)
{
for (ptr_channel = ptr_server->channels; ptr_channel;
ptr_channel = ptr_channel->next_channel)
{
if (ptr_channel->type == CHAT_CHANNEL)
{
server_sendf (ptr_server, "PRIVMSG %s :%s\r\n",
ptr_channel->name, arguments);
ptr_nick = nick_search (ptr_channel, ptr_server->nick);
if (ptr_nick)
{
irc_display_nick (ptr_channel->buffer, ptr_nick, NULL,
MSG_TYPE_NICK, 1, 1, 0);
gui_printf_color (ptr_channel->buffer,
COLOR_WIN_CHAT, "%s\n", arguments);
}
else
{
irc_display_prefix (ptr_server->buffer, PREFIX_ERROR);
gui_printf (ptr_server->buffer,
_("%s cannot find nick for sending message\n"),
WEECHAT_ERROR);
}
}
}
}
}
gui_add_hotlist = 1;
}
else
return -1;
return 0;
}
/*
* irc_cmd_send_away: toggle away status
*/
+1
View File
@@ -355,6 +355,7 @@ extern int irc_recv_command (t_irc_server *, char *, char *, char *, char *);
extern void irc_login (t_irc_server *);
/* IRC commands issued by user */
extern int irc_cmd_send_admin (t_irc_server *, char *);
extern int irc_cmd_send_amsg (t_irc_server *, char *);
extern int irc_cmd_send_away (t_irc_server *, char *);
extern int irc_cmd_send_ban (t_irc_server *, char *);
extern int irc_cmd_send_ctcp (t_irc_server *, char *);
+266 -258
View File
File diff suppressed because it is too large Load Diff
+266 -258
View File
File diff suppressed because it is too large Load Diff
+266 -258
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -35,6 +35,10 @@ t_irc_command irc_commands[] =
N_("[target]"),
N_("target: server"),
0, 1, 1, NULL, irc_cmd_send_admin, NULL },
{ "amsg", N_("send message to all channels of all connected servers"),
N_("text"),
N_("text: text to send"),
1, MAX_ARGS, 1, NULL, irc_cmd_send_amsg, NULL },
{ "away", N_("toggle away status"),
N_("[-all] [message]"),
N_("-all: toggle away status on all connected servers\n"
+55
View File
@@ -81,6 +81,61 @@ irc_cmd_send_admin (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_amsg: send message to all channels of all connected servers
*/
int
irc_cmd_send_amsg (t_irc_server *server, char *arguments)
{
t_irc_server *ptr_server;
t_irc_channel *ptr_channel;
t_irc_nick *ptr_nick;
/* make gcc happy */
(void) server;
if (arguments)
{
gui_add_hotlist = 0;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (ptr_server->is_connected)
{
for (ptr_channel = ptr_server->channels; ptr_channel;
ptr_channel = ptr_channel->next_channel)
{
if (ptr_channel->type == CHAT_CHANNEL)
{
server_sendf (ptr_server, "PRIVMSG %s :%s\r\n",
ptr_channel->name, arguments);
ptr_nick = nick_search (ptr_channel, ptr_server->nick);
if (ptr_nick)
{
irc_display_nick (ptr_channel->buffer, ptr_nick, NULL,
MSG_TYPE_NICK, 1, 1, 0);
gui_printf_color (ptr_channel->buffer,
COLOR_WIN_CHAT, "%s\n", arguments);
}
else
{
irc_display_prefix (ptr_server->buffer, PREFIX_ERROR);
gui_printf (ptr_server->buffer,
_("%s cannot find nick for sending message\n"),
WEECHAT_ERROR);
}
}
}
}
}
gui_add_hotlist = 1;
}
else
return -1;
return 0;
}
/*
* irc_cmd_send_away: toggle away status
*/
+1
View File
@@ -355,6 +355,7 @@ extern int irc_recv_command (t_irc_server *, char *, char *, char *, char *);
extern void irc_login (t_irc_server *);
/* IRC commands issued by user */
extern int irc_cmd_send_admin (t_irc_server *, char *);
extern int irc_cmd_send_amsg (t_irc_server *, char *);
extern int irc_cmd_send_away (t_irc_server *, char *);
extern int irc_cmd_send_ban (t_irc_server *, char *);
extern int irc_cmd_send_ctcp (t_irc_server *, char *);