summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-11-18 17:13:24 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-11-18 17:13:24 +0000
commitc511376d13fcf265c2dee70f1713a533e15c3dcf (patch)
treee34e65e04e8a5298fe56ef344a03b82380459f56 /docs
parent73a3b8d908f8f8bf9c819c5b97d529dc8f36375c (diff)
downloadirssi-c511376d13fcf265c2dee70f1713a533e15c3dcf.zip
Added Chatnet, Process and updated redirection text.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2056 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'docs')
-rw-r--r--docs/perl.txt147
1 files changed, 95 insertions, 52 deletions
diff --git a/docs/perl.txt b/docs/perl.txt
index 782cb452..6ea6fda6 100644
--- a/docs/perl.txt
+++ b/docs/perl.txt
@@ -535,69 +535,96 @@ Reconnect->{}
next_connect - Unix time stamp when the next connection occurs
- *** Server redirections
+ *** Chat networks
+
+Chatnet->{}
+ 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.
-WARNING: It's easy to mess up the Irssi's internal server expectations
-with these commands!
+
+ *** Server redirections
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
to server without any horrible kludges.
-Server::redirect_init(command, last, ...)
- Initialize redirection for specified command. This needs to be done
- only once. Irssi already initializes commands WHOIS, WHO, LIST,
- USERHOST and ISON.
+redirect_register(command, remote, timeout, start, stop, opt)
+ Register new redirection command. By default irssi has already
+ registered at least: whois, whowas, who, list, ison, userhost, ping,
+ "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".
- `last' specifies how many of the items in `...' is considered as the
- "last event" from the command.
+ `command' specifies the name of the command to register, it doesn't
+ have to be a real command name, but something you just specify to
+ redirect_event() when using this redirection.
- Example:
+ `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):
- $server->redirection_init('command who',
- 2, # 2 first events will finish the command
- 'event 401', # unknown nick (finished)
- 'event 315', # end of who (finished)
- 'event 352'); # who line (wait..)
-
-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.
+ 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:
- $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.
+
+ # ignore all events generated by whois query, except 311.
+ $server->redirect_event("whois", 1, "cras", 0, undef, {
+ "event 311" => "redir whois",
+ "" => "event empty" });
+ $server->send_raw("WHOIS :cras");
*** Window items
@@ -1095,3 +1122,19 @@ Server::notifylist_ison_server(nick)
Notifylist::ircnets_match(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"