mirror of
https://github.com/irssi/irssi.git
synced 2024-09-01 04:14:16 -04:00
Added Chatnet, Process and updated redirection text.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2056 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
73a3b8d908
commit
c511376d13
149
docs/perl.txt
149
docs/perl.txt
@ -535,69 +535,96 @@ Reconnect->{}
|
|||||||
next_connect - Unix time stamp when the next connection occurs
|
next_connect - Unix time stamp when the next connection occurs
|
||||||
|
|
||||||
|
|
||||||
*** Server redirections
|
*** Chat networks
|
||||||
|
|
||||||
WARNING: It's easy to mess up the Irssi's internal server expectations
|
Chatnet->{}
|
||||||
with these commands!
|
type - "CHATNET" text
|
||||||
|
chat_type - String ID of chat protocol, for example "IRC"
|
||||||
|
|
||||||
|
name - name of chat network
|
||||||
|
|
||||||
|
nick - if not empty, nick preferred in this network
|
||||||
|
username - if not empty, username preferred in this network
|
||||||
|
realname - if not empty, realname preferred in this network
|
||||||
|
|
||||||
|
own_host - address to use when connecting this network
|
||||||
|
autosendcmd - command to send after connecting to this network
|
||||||
|
|
||||||
|
chatnet_find(name)
|
||||||
|
Find chat network with name.
|
||||||
|
|
||||||
|
|
||||||
|
*** Server redirections
|
||||||
|
|
||||||
This is a powerful feature of Irssi that I haven't seen in other IRC
|
This is a powerful feature of Irssi that I haven't seen in other IRC
|
||||||
clients. You can EASILY grab the server's reply for a command you send
|
clients. You can EASILY grab the server's reply for a command you send
|
||||||
to server without any horrible kludges.
|
to server without any horrible kludges.
|
||||||
|
|
||||||
Server::redirect_init(command, last, ...)
|
redirect_register(command, remote, timeout, start, stop, opt)
|
||||||
Initialize redirection for specified command. This needs to be done
|
Register new redirection command. By default irssi has already
|
||||||
only once. Irssi already initializes commands WHOIS, WHO, LIST,
|
registered at least: whois, whowas, who, list, ison, userhost, ping,
|
||||||
USERHOST and ISON.
|
"mode channel" (/MODE #channel), "mode b" (/MODE #channel b), "mode e"
|
||||||
|
and "mode I".
|
||||||
|
|
||||||
`command' is the whole name of the signal, like "command whois".
|
`command' specifies the name of the command to register, it doesn't
|
||||||
`last' specifies how many of the items in `...' is considered as the
|
have to be a real command name, but something you just specify to
|
||||||
"last event" from the command.
|
redirect_event() when using this redirection.
|
||||||
|
|
||||||
|
`remote' specifies if the command is by default a remote command
|
||||||
|
(eg. sent to another server). redirect_event() may override this.
|
||||||
|
|
||||||
|
`timeout' - If remote is TRUE, specifies how many seconds to wait for
|
||||||
|
reply before aborting.
|
||||||
|
|
||||||
|
`start', `stop', `opt' - hash references with "event" => argpos entries.
|
||||||
|
List of events that start and stop this redirection.
|
||||||
|
Start event list may be empty, but there must be at least one
|
||||||
|
stop event. Optional events are checked only if they are received
|
||||||
|
immediately after one of the stop-events. `argpos' specifies the
|
||||||
|
word number in event string which is compared to wanted argument,
|
||||||
|
-1 = don't compare, TRUE always.
|
||||||
|
|
||||||
|
Example (already done by irssi):
|
||||||
|
|
||||||
|
Irssi::redirection_register('mode channel', 0, 0,
|
||||||
|
undef, # no start events
|
||||||
|
{ # stop events
|
||||||
|
"event 324" => 1, # MODE-reply
|
||||||
|
"event 403" => 1, # no such channel
|
||||||
|
"event 442" => 1, # "you're not on that channel"
|
||||||
|
"event 479" => 1 # "Cannot join channel (illegal name)"
|
||||||
|
}, { # optional events
|
||||||
|
"event 329", 1 # Channel create time
|
||||||
|
} );
|
||||||
|
|
||||||
|
Server::redirect_event(command, count, arg, remote, failure_signal, signals)
|
||||||
|
Specify that the next command sent to server will be redirected.
|
||||||
|
NOTE: This command MUST be called before sending the command to server.
|
||||||
|
|
||||||
|
`command' - Name of the registered redirection that we're using.
|
||||||
|
|
||||||
|
`count' - How many times to execute the redirection. Some commands may
|
||||||
|
send multiple stop events, like MODE #a,#b.
|
||||||
|
|
||||||
|
`arg' - The argument to be compared in event strings. You can give multiple
|
||||||
|
arguments separated with space.
|
||||||
|
|
||||||
|
`remote' - Specifies if the command is a remote command, -1 = use default.
|
||||||
|
|
||||||
|
`failure_signal' - If irssi can't find the stop signal for the redirection,
|
||||||
|
this signal is called.
|
||||||
|
|
||||||
|
`signals' - hash reference with "event" => "redir signal" entries.
|
||||||
|
If the event is "", all the events belonging to the redirection but not
|
||||||
|
specified here, will be sent there.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
$server->redirection_init('command who',
|
# ignore all events generated by whois query, except 311.
|
||||||
2, # 2 first events will finish the command
|
$server->redirect_event("whois", 1, "cras", 0, undef, {
|
||||||
'event 401', # unknown nick (finished)
|
"event 311" => "redir whois",
|
||||||
'event 315', # end of who (finished)
|
"" => "event empty" });
|
||||||
'event 352'); # who line (wait..)
|
$server->send_raw("WHOIS :cras");
|
||||||
|
|
||||||
Server::redirect_event(arg, last, ...)
|
|
||||||
Add redirection. `arg' is a space separated list of arguments that should
|
|
||||||
match before Irssi will redirect the event (think of /WHOIS nick nick and
|
|
||||||
doing another to different nick immediately after it, there's no way of
|
|
||||||
knowing which will return first. so, arg would be in this case 'nick').
|
|
||||||
|
|
||||||
`last' specifies how many of the following events are considered as
|
|
||||||
"last event" from command - just like in redirect_init().
|
|
||||||
|
|
||||||
`...' is `event, signal, argpos, ...`, where
|
|
||||||
`event' is the event we're waiting from server.
|
|
||||||
`signal' is the signal we will send after receiving the event. It should
|
|
||||||
always start with 'redir ' so that Irssi's perl handler knows to
|
|
||||||
send correct arguments to signal handler.
|
|
||||||
`argpos' is the argument position in event's data or -1 if it
|
|
||||||
should be ignored.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
$server->send_raw('WHOIS :cras');
|
|
||||||
$server->redirect_event('cras', 2,
|
|
||||||
"event 318", "redir end_of_whois", 1,
|
|
||||||
"event 402", "redir no_such_server", 1,
|
|
||||||
"event 401", "redir no_such_nick", 1,
|
|
||||||
"event 311", "redir whois", 1,
|
|
||||||
"event 301", "redir whois_away", 1,
|
|
||||||
"event 312", "redir whois_server", 1,
|
|
||||||
"event 313", "redir whois_oper", 1,
|
|
||||||
"event 317", "redir whois_idle", 1,
|
|
||||||
"event 319", "redir whois_channels", 1);
|
|
||||||
|
|
||||||
In the 402-case we tried "/WHOIS nick nick" but nick didn't exist. If
|
|
||||||
you need to handle "/WHOIS server nick" situation, you should put both
|
|
||||||
to arg with "server nick".
|
|
||||||
|
|
||||||
Server::redirect_single_event(arg, last, group, event, signal, argpos)
|
|
||||||
Same as redirect_event() except you can set it up in pieces.
|
|
||||||
If `group' is 0, it will create new group and return it's id.
|
|
||||||
|
|
||||||
|
|
||||||
*** Window items
|
*** Window items
|
||||||
@ -1095,3 +1122,19 @@ Server::notifylist_ison_server(nick)
|
|||||||
|
|
||||||
Notifylist::ircnets_match(ircnet)
|
Notifylist::ircnets_match(ircnet)
|
||||||
Returns 1 if notify is checked in `ircnet'.
|
Returns 1 if notify is checked in `ircnet'.
|
||||||
|
|
||||||
|
|
||||||
|
*** /EXEC processes
|
||||||
|
|
||||||
|
Process->{}
|
||||||
|
id - ID for the process
|
||||||
|
name - Name for the process (if given)
|
||||||
|
args - The command that is being executed
|
||||||
|
|
||||||
|
pid - PID for the executed command
|
||||||
|
target - send text with /msg <target> ...
|
||||||
|
target_win - print text to this window
|
||||||
|
|
||||||
|
shell - start the program via /bin/sh
|
||||||
|
notice - send text with /notice, not /msg if target is set
|
||||||
|
silent - don't print "process exited with level xx"
|
||||||
|
Loading…
Reference in New Issue
Block a user