+++ /dev/null
- Installation problems
- ---------------------
-
-You'll need to have perl support compiled with irssi. If "/LOAD"
-doesn't show perl in list of loaded modules, you have a problem. See
-INSTALL file for information about perl problems.
-
-
- Running scripts
- ---------------
-
-Scripts are run with /SCRIPT LOAD command, or the default /RUN alias.
-"/SCRIPT" shows list of running script, and /SCRIPT UNLOAD can unload
-scripts.
-
-Scripts should be placed to ~/.irssi/scripts/ or
-/usr/local/lib/irssi/scripts/ (or depending on where irssi was
-installed) directories. After that /RUN script_name should work, you
-don't need to add the .pl prefix.
-
-
- Irssi's signals
- ---------------
-
-Irssi is pretty much based on sending and handling different signals.
-Like when you receive a message from server, say
-
- :nick!user@there.org PRIVMSG you :blahblah
-
-Irssi will first send a signal:
-
- "server incoming", SERVER_REC, "nick!user@there PRIVMSG ..."
-
-You probably don't want to use this signal. Default handler for this
-signal interprets the header and sends a signal:
-
- "server event", SERVER_REC, "PRIVMSG ...", "nick", "user@there.org"
-
-You probably don't want to use this either, since this signal's default
-handler parses the event string and sends a signal:
-
- "event privmsg", SERVER_REC, "you :blahblah", "nick", "user@there.org"
-
-You can at any point grab the signal, do whatever you want to do with
-it and optionally stop it from going any further by calling
-Irssi::signal_stop();
-
-For example:
-
- sub event_privmsg {
- # $data = "nick/#channel :text"
- my ($server, $data, $nick, $address) = @_;
- my ($target, $text) = split(/ :/, $data, 2);
-
- Irssi::signal_stop() if ($text =~ /free.*porn/ || $nick =~ /idiot/);
- }
-
-Irssi::signal_add("event privmsg", "event_privmsg")
-
-This will hide all public or private messages that match the regexp
-"free.*porn" or the sender's nick contain the word "idiot". Yes, you
-could use /IGNORE instead for both of these :)
-
-You can also use signal_add_last() if you wish to let the Irssi's internal
-functions be run before yours.
-
-A list of signals that irssi sends can be found from signals.txt file.
-
-
- Creating/replacing /COMMANDS
- ----------------------------
-
-You can create your own commands, or replace existing ones with
-Irssi::command_bind(). The command handling work internally pretty much
-the same as signal handlers, so if you replace existing command and don't
-wish to let it run, call Irssi::signal_stop().
-
-Here's an example:
-
- # Usage: /HELLO [<nick>]
- sub cmd_hello {
- # data - contains the parameters for /HELLO
- # server - the active server in window
- # witem - the active window item (eg. channel, query)
- # or undef if the window is empty
- my ($data, $server, $witem) = @_;
-
- if (!$server || !$server->{connected}) {
- Irssi::print("Not connected to server");
- return;
- }
-
- if ($data) {
- $server->command("MSG $data Hello!");
- } elsif ($witem && ($witem->{type} eq "CHANNEL" ||
- $witem->{type} eq "QUERY")) {
- # there's query/channel active in window
- $witem->command("MSG ".$witem->{name}." Hello!");
- } else {
- Irssi::print("Nick not given, and no active channel/query in window");
- }
- }
-
- Irssi::command_bind('hello', 'cmd_hello');
-
-
- Message levels
- --------------
-
-Several functions expect message levels. They're used to roughly
-classify messages. They're used by a lot of things including logging,
-ignoring, highlighting, etc. so you should use as good level as
-possible. It's possible to have several levels in one message, like
-ACTIONS+PUBLIC or ACTIONS+MSGS.
-
-Here's all the levels that irssi supports currently:
-
- CRAP, MSGS, PUBLIC, NOTICES, SNOTES, CTCPS, ACTIONS, JOINS, PARTS
- QUITS, KICKS, MODES, TOPICS, WALLOPS, INVITES, NICKS, DCC, DCCMSGS,
- CLIENTNOTICE, CLIENTCRAP, CLIENTERROR
-
-And a few special ones that could be included with the levels above:
-
- HILIGHT - text is highlighted
- NOHILIGHT - don't check highlighting for this message
- NO_ACT - don't trigger channel activity when printing this message
- NEVER - never ignore or log this message (not a good idea usually)
-
-You can use them with a MSGLEVEL_ prefix, for example:
-
- $server->print("#channel", 'Hello, world', MSGLEVEL_CLIENTCRAP);
-
-Writes text to #channel window with CLIENTCRAP level.
-
-
- Window items
- ------------
-
-Meaning of "window" should be pretty clear, but "window item" is
-something I couldn't really figure out a better name for :) They're
-simply something that's inside a window, a channel or a query usually.
-Windows can have multiple items inside them. It's possible to create
-non-channel/query window items too, currently the third possible window
-item is created by /EXEC -interactive.
-
-In scripts, I think you can quite safely assume that the window item is
-query or channel if the script is intended to be run in one of them.
-Stupid users won't probably have other window items, and smart users
-know where to run the script, or at least later figure out why it
-didn't work :)
-
-
- Functions that you can use in Irssi's Perl scripts
- --------------------------------------------------
-
-If there's a "Xxxx::" text before the command, it means that it belongs to
-that package. Like "Server::command" means that you should either call it as
- Irssi::Server::command($server, $cmd);
-or more easily:
- $server->command($cmd);
-
-Commands that don't have the Xxxx prefix are called as Irssi::command();
-
-Information from most objects can be fetched with $object->{data}, for
-example current nick in server could be read with $server->{nick}. List
-of all the information that are in objects are in "Object->{}" sections
-below.
-
-Commands are split in two groups, generic ones that could be used with
-any chat protocol, and IRC specific commands. If you want to use IRC
-specific commands, or use IRC specific ->{data} in your scripts, you'll
-need to add "use Irssi::Irc" to your scripts. IRC specific commands are
-listed after the generic ones.
-
-
- *** General
-
-Window active_win() - return active window
-Server active_server() - return server in active window
-
-windows() - return list of all windows
-servers() - return list of all servers
-reconnects() - return list of all server reconnections
-channels() - return list of all channels
-queries() - return list of all queries
-commands() - return list of all commands
-logs() - return list of all log files
-ignores() - returns list of all ignores
-
-Server::channels() - return list of channels in server
-Server::queries() - return list of queries in server
-
-print(str[, level])
-Server::print(channel, str[, level])
-Window::print(str[, level])
-Windowitem::print(str[, level])
- Print `str'. Default level is MSGLEVEL_CLIENTNOTICE.
-
-command(cmd)
-Server::command(cmd)
-Window::command(cmd)
-Windowitem::command(cmd)
- Send a command `cmd' (in current channel). The '/' char isn't needed.
-
-
- *** Themes
-
-You can have user configurable texts in scripts that work just like
-irssi's internal texts that can be changed in themes.
-
-First you'll have to register the formats:
-
-Irssi::theme_register([
- 'format_name', '{hilight my perl format!}',
- 'format2', 'testing.. nick = $0, channel = $1'
-]);
-
-Printing happens with one of the functions:
-
-printformat(level, format, ...)
-Window::printformat(level, format, ...)
-Server::printformat(target, level, format, ...)
-Windowitem::printformat(level, format, ...)
-
-For example:
-
- $channel->printformat(MSGLEVEL_CRAP, 'format2',
- 'nick', $channel->{name});
-
-
- *** Settings
-
-settings_get_str(key)
-settings_get_int(key)
-settings_get_bool(key)
-settings_get_time(key)
-settings_get_level(key)
-settings_get_size(key)
- Return value for setting.
-
-settings_set_str(key, value)
-settings_set_int(key, value)
-settings_set_bool(key, value)
-settings_set_time(key, value)
-settings_set_level(key, value)
-settings_set_size(key, value)
- Set value for setting.
- If you change the settings of another module/script with one of these, you
- must emit a "setup changed" signal afterwards.
-
-settings_add_str(section, key, def)
-settings_add_int(section, key, def)
-settings_add_bool(section, key, def)
-settings_add_time(section, key, def)
-settings_add_level(section, key, def)
-settings_add_size(section, key, def)
- Create new setting.
-
-settings_remove(key)
- Remove a setting.
-
-
- *** Signals
-
-signal_emit(signal, ...)
- Send signal `signal'. You can give 6 parameters at maximum.
-
-signal_add(signal, func)
- Bind `signal' to function `func'.
-
-signal_add_first(signal, func)
- Bind `signal' to function `func'. Call `func' as soon as possible.
-
-signal_add_last(signal, func)
- Bind `signal' to function `func'. Call `func' as late as possible.
-
-signal_remove(signal, func)
- Unbind `signal' from function `func'.
-
-signal_stop()
- Stop the signal that's currently being emitted.
-
-signal_stop_by_name(signal)
- Stop the signal with name `signal' that's currently being emitted.
-
-
- *** timeouts / IO listener
-
-timeout_add(msecs, func, data)
- Call `func' every `msecs' milliseconds (1000 = 1 second) with
- parameter `data'. Returns tag which can be used to stop the timeout.
-
-timeout_add_once(msecs, func, data);
- Call 'func' once after `msecs' milliseconds (1000 = 1 second)
- with parameter `data'. Returns tag which can be used to stop the timeout.
-
-timeout_remove(tag)
- Remove timeout with tag.
-
-input_add(source, condition, func, data)
- Call `func' with parameter `data' when specified IO happens.
- `source' is the file handle that is being listened. `condition' can
- be INPUT_READ, INPUT_WRITE or both. Returns tag which can be used to
- remove the listener.
-
-input_remove(tag)
- Remove listener with tag.
-
-
- *** Message levels
-
-level2bits(level)
- Level string -> number
-
-bits2level(bits)
- Level number -> string
-
-combine_level(level, str)
- Combine level number to level string ("+level -level").
- Return new level number.
-
-
- *** Commands
-
-Command->{}
- cmd - Command name
- category - Category
-
-command_bind(cmd, func[, category])
- Bind command `cmd' to call function `func'. `category' is the
- category where the command is displayed in /HELP.
-
-command_runsub(cms, data, server, item)
- Run subcommands for `cmd'. First word in `data' is parsed as
- subcommand. `server' is Irssi::Server rec for current
- Irssi::Windowitem `item'.
-
- Call command_runsub in handler function for `cmd' and bind
- with command_bind("`cmd' `subcmd'", subcmdfunc[, category]);
-
-command_unbind(cmd, func)
- Unbind command `cmd' from function 'func.
-
-
- *** Windows
-
-UI::Window->{}
- refnum - Reference number
- name - Name
-
- width - Width
- height - Height
-
- history_name - Name of named historylist for this window
-
- active - Active window item
- active_server - Active server
-
- servertag - active_server must be either undef or have this same tag
- (unless there's items in this window). This is used by
- /WINDOW SERVER -sticky
- level - Current window level
-
- sticky_refnum - 1 if reference number is sticky
-
- data_level - Current data level
- hilight_color - Current activity hilight color
-
- last_timestamp - Last time timestamp was written in window
- last_line - Last time text was written in window
-
- theme_name - Active theme in window, undef = default
-
-UI::TextDest->{}
- window - Window where the text will be written
- server - Target server
- target - Target channel/query/etc name
- level - Text level
-
- hilight_priority - Priority for the hilighted text
- hilight_color - Color for the hilighted text
-
-
-Window::items()
- Return a list of items in window.
-
-Window
-window_create(automatic)
-Windowitem::window_create(automatic)
- Create a new window.
-
-Window::destroy()
- Destroy the window.
-
-Irssi::Window
-Windowitem::window()
- Returns parent window for window item.
-
-Window
-window_find_name(name)
- Find window with name.
-
-Window
-window_find_refnum(refnum)
- Find window with reference number.
-
-Window
-window_find_level(level)
-Server::window_find_level(level)
- Find window with level.
-
-Window
-window_find_closest(name, level)
-Server::window_find_closest(name, level)
- Find window that matches best to given arguments. `name' can be either
- window name or name of one of the window items.
-
-Window
-window_find_item(name)
-Server::window_find_item(name)
- Find window which contains window item with specified name/server.
-
-Windowitem
-window_item_find(name)
-Server::window_item_find(name)
-Window::item_find(server, name)
- Find window item that matches best to given arguments.
-
-window_refnum_prev(refnum, wrap)
-window_refnum_next(refnum, wrap)
- Return refnum for window that's previous/next in windows list.
-
-windows_refnum_last()
- Return refnum for last window.
-
-Window::item_add(item, automatic)
-Window::item_remove(item)
-Window::item_destroy(item)
- Add/remove/destroy window item
-
-Window::set_active()
- Set window active.
-
-Window::change_server(server)
-Window::set_refnum(refnum)
-Window::set_name(name)
-Window::set_history(name)
-Window::set_level(level)
- Change server/refnum/name/history/level in window.
-
-Windowitem::set_active()
- Change window item active in parent window.
-
-Window::item_prev()
-Window::item_next()
- Change to previous/next window item.
-
-Windowitem::change_server(server)
- Change server in window item.
-
-Windowitem::is_active()
- Returns 1 if window item is the active item in parent window.
-
-Window::get_active_name()
- Return active item's name, or if none is active, window's name
-
-
- *** Server Connects
-
-Connect->{}
- type - "SERVER CONNECT" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- address - Address where we connected (irc.blah.org)
- port - Port where we connected
- chatnet - Chat network
-
- password - Password we used in connection.
- wanted_nick - Nick which we would prefer to use
- username - User name
- realname - Real name
-
-Connect
-server_create_conn(address[, port=6667[, password=''[, nick=''[, channels='']]]])
- Create new server connection.
-
-
- *** Server functions
-
-Server->{}
- type - "SERVER" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- (..contains all the same data as Connect above..)
-
- connect_time - Time when connect() to server finished
- real_connect_time - Time when server sent "connected" message
-
- tag - Unique server tag
- nick - Current nick
-
- connected - Is connection finished? 1|0
- connection_lost - Did we lose the connection (1) or was
- the connection just /DISCONNECTed (0)
-
- rawlog - Rawlog object for the server
-
- version - Server version
- last_invite - Last channel we were invited to
- server_operator - Are we server operator (IRC op) 1|0
- usermode_away - Are we marked as away? 1|0
- away_reason - Away reason message
- banned - Were we banned from this server? 1|0
- lag - Current lag to server in milliseconds
-
-Server
-Connect::connect()
- Connect to server.
-
-Server::disconnect()
- Disconnect from server.
-
-Server
-server_find_tag(tag)
- Find server with tag
-
-Server
-server_find_chatnet(chatnet)
- Find first server that is in `chatnet'
-
-Server::isnickflag(flag)
- Returns 1 if flag is a nick mode flag (@, + or % in IRC)
-
-Server::ischannel(data)
- Returns 1 if start of `data' seems to mean channel.
-
-Server::get_nick_flags()
- Returns nick flag characters in order: op, voice, halfop ("@+%" in IRC).
-
-Server::send_message(target, msg, target_type)
- Sends a message to nick/channel. target_type 0 = channel, 1 = nick
-
-
- *** Server reconnections
-
-Reconnect->{}
- type - "RECONNECT" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- (..contains all the same data as Connect above..)
-
- tag - Unique numeric tag
- next_connect - Unix time stamp when the next connection occurs
-
-
- *** 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.
-
-
- *** 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.
-
-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' 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.
-
- `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::redirect_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:
-
- # 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
-
-Windowitem->{}
- type - Type of the window item, for example "CHANNEL" or "QUERY"
- chat_type - String ID of chat protocol, for example "IRC"
-
- server - Active server for item
- name - Name of the item
-
- createtime - Time the window item was created
- data_level - 0=no new data, 1=text, 2=msg, 3=highlighted text
- hilight_color - Color of the last highlighted text
-
-
- *** Channels
-
-Channel->{}
- type - "CHANNEL" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- (..contains all the same data as Windowitem above..)
-
- topic - Channel topic
- topic_by - Nick who set the topic
- topic_time - Timestamp when the topic was set
-
- no_modes - Channel is modeless
- mode - Channel mode
- limit - Max. users in channel (+l mode)
- key - Channel key (password)
-
- chanop - You are channel operator
- names_got - /NAMES list has been received
- wholist - /WHO list has been received
- synced - Channel is fully synchronized
-
- joined - JOIN event for this channel has been received
- left - You just left the channel (for "channel destroyed" event)
- kicked - You was just kicked out of the channel (for
- "channel destroyed" event)
-
-Server::channels_join(channels, automatic)
- Join to channels in server. `channels' may also contain keys for
- channels just like with /JOIN command. `automatic' specifies if this
- channel was joined "automatically" or if it was joined because join
- was requested by user. If channel join is "automatic", irssi doesn't
- jump to the window where the channel was joined.
-
-
-Channel::destroy()
- Destroy channel.
-
-Channel
-channel_find(channel)
- Find channel from any server.
-
-Channel
-Server::channel_find(channel)
- Find channel from specified server.
-
-
- *** Nick list
-
-Nick->{}
- type - "NICK" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- nick - Plain nick
- host - Host address
- realname - Real name
- hops - Hop count to the server the nick is using
-
- gone, serverop - User status, 1 or 0
- op, voice, halfop - Channel status, 1 or 0
-
- last_check - timestamp when last checked gone/ircop status.
- send_massjoin - Waiting to be sent in a "massjoin" signal, 1 or 0
-
-Nick
-Channel::nick_insert(nick, op, voice, send_massjoin)
- Add nick to nicklist.
-
-Channel::nick_remove(nick)
- Remove nick from nicklist.
-
-Nick
-Channel::nick_find(nick)
- Find nick from nicklist.
-
-Nick
-Channel::nick_find_mask(mask)
- Find nick mask from nicklist, wildcards allowed.
-
-Channel::nicks()
- Return a list of all nicks in channel.
-
-Server::nicks_get_same(nick)
- Return all nick objects in all channels in server. List is in format:
- Channel, Nick, Channel, ...
-
-
- *** Queries
-
-Query->{}
- type - "QUERY" text
- chat_type - String ID of chat protocol, for example "IRC"
-
- (..contains all the same data as Windowitem above..)
-
- address - Host address of the queries nick
- server_tag - Server tag used for this nick (doesn't get erased if
- server gets disconnected)
- unwanted - 1 if the other side closed or some error occured (DCC chats)
-
-Query
-query_create(chat_type, server_tag, nick, automatic)
- Create a new query.
-
-Query::destroy()
- Destroy the query.
-
-Query::query_change_server(server)
- Change the active server of the query.
-
-Query
-query_find(nick)
- Find query from any server.
-
-Query
-Server::query_find(nick)
- Find query from specified server.
-
-
- *** Masks
-
-You should use the Server version of the function if possible, since
-with different chat protocols the mask matching could be different.
-
-mask_match(mask, nick, user, host)
-Server::mask_match(mask, nick, user, host)
- Return 1 if `mask' matches nick!user@host.
-
-mask_match_address(mask, nick, address)
-Server::mask_match_address(mask, nick, address)
- Return 1 if `mask' matches nick!address.
-
-masks_match(masks, nick, address)
-Server::masks_match(masks, nick, address)
- Return 1 if any mask in the `masks' (string separated with spaces)
- matches nick!address.
-
-
- *** Rawlog
-
-Rawlog->{}
- logging - The rawlog is being written to file currently
- nlines - Number of lines in rawlog
-
-Rawlog
-rawlog_create()
- Create a new rawlog.
-
-Rawlog::destroy()
- Destroy the rawlog.
-
-Rawlog::get_lines()
- Returns all lines in rawlog.
-
-rawlog_set_size(lines)
- Set the default rawlog size for new rawlogs.
-
-Rawlog::open(filename)
- Start logging new messages in rawlog to specified file.
-
-Rawlog::close()
- Stop logging to file.
-
-Rawlog::save(filename)
- Save the current rawlog history to specified file.
-
-Rawlog::input(str)
- Send `str' to raw log as input text.
-
-Rawlog::output(str)
- Send `str' to raw log as output text.
-
-Rawlog::redirect(str)
- Send `str' to raw log as redirection text.
-
-
- *** Logging
-
-Log->{}
- fname - Log file name
- real_fname - The actual opened log file (after %d.%m.Y etc. are expanded)
- opened - Log file is open
- level - Log only these levels
- last - Timestamp when last message was written
- autoopen - Automatically open log at startup
- failed - Opening log failed last time
- temp - Log isn't saved to config file
- items - List of log items
-
-Logitem->{}
- type - 0=target, 1=window refnum
- name - Name
- servertag - Server tag
-
-Log
-log_create_rec(fname, level)
- Create log file.
-
-Log::update()
- Add log to list of logs / save changes to config file.
-
-Log
-log_find(fname)
- Find log with file name.
-
-Log::close()
- Destroy log file.
-
-Log::start_logging()
- Open log file and start logging.
-
-Log::stop_logging()
- Close log file.
-
-Log::item_add(type, name, server)
- Add log item to log.
-
-Log::item_destroy(item)
- Remove log item from log.
-
-Logitem
-Log::item_find(type, item, server)
- Find item from log.
-
-
- *** Ignores
-
-Ignore->{}
- mask - Ignore mask
- servertag - Ignore only in server
- channels - Ignore only in channels (list of names)
- pattern - Ignore text pattern
-
- level - Ignore level
-
- exception - This is an exception ignore
- regexp - Regexp pattern matching
- fullword - Pattern matches only full words
-
-ignore_add_rec(ignore)
- Add ignore record.
-
-ignore_update_rec(ignore)
- Update ignore record in configuration
-
-ignore_check(nick, host, channel, text, level)
-Server::ignore_check(nick, host, channel, text, level)
- Return 1 if ignoring matched.
-
-
- ***
- *** IRC specific functions. All objects below this are prefixed with Irc::
- ***
-
- *** IRC servers
-
-Irc::Server->{}
- (..contains all the same data as core Server object..)
- real_address - Address the IRC server gives
- usermode - User mode in server
- userhost - Your user host in server
-
-Irc::Connect->{}
- (..contains all the same data as core Connect object..)
- alternate_nick - Alternate nick to use if default nick is taken.
-
-Connect::connect()
- Connect to IRC server.
-
-Server::get_channels(server)
- Return a string of all channels (and keys, if any have them) in server,
- like "#a,#b,#c,#d x,b_chan_key,x,x" or just "#e,#f,#g"
-
-Server::send_raw(cmd)
- Send raw message to server, it will be flood protected so you
- don't need to worry about it.
-
-Server::send_raw_now(cmd)
- Send raw message to server immediately without flood protection.
-
-Server::send_raw_split(cmd, nickarg, max_nicks)
- Split the `cmd' into several commands so `nickarg' argument has only
- `max_nicks' number of nicks.
-
- Example:
- $server->send_raw_split("KICK #channel nick1,nick2,nick3 :byebye", 3, 2);
-
- Irssi will send commands "KICK #channel nick1,nick2 :byebye" and
- "KICK #channel nick3 :byebye" to server.
-
-Server::ctcp_send_reply(data)
- Send CTCP reply. This will be "CTCP flood protected" so if there's too
- many CTCP requests in buffer, this reply might not get sent. The data
- is the full raw command to be sent to server, like
- "NOTICE nick :\001VERSION irssi\001"
-
-Server::isupport(name)
- Returns the value of the named item in the ISUPPORT (005) numeric to the
- script. If the item is not present returns undef, if the item has no value
- then "" is returned use defined $server->isupport("name") if you need to
- check whether a property is present.
- See http://www.ietf.org/internet-drafts/draft-brocklesby-irc-isupport-01.txt
- for more information on the ISUPPORT numeric.
-
- *** IRC channels
-
-Ban->{}
- ban - The ban
- setby - Nick of who set the ban
- time - Timestamp when ban was set
-
-Channel::bans()
- Return a list of bans in channel.
-
-Channel::ban_get_mask(nick)
- Get ban mask for `nick'.
-
-Channel::banlist_add(ban, nick, time)
- Add a new ban to channel.
-
-Channel::banlist_remove(ban)
- Remove a ban from channel.
-
-
- *** DCC
-
-Dcc->{}
- type - Type of the DCC: chat, send, get
- orig_type - Original DCC type that was sent to us - same as type except
- GET and SEND are swapped
- created - Time stamp when the DCC record was created
-
- server - Server record where the DCC was initiated.
- servertag - Tag of the server where the DCC was initiated.
- mynick - Our nick to use in DCC chat.
- nick - Other side's nick name.
-
- chat - Dcc chat record if the request came through DCC chat
- target - Who the request was sent to - your nick, channel or empty
- if you sent the request
- arg - Given argument .. file name usually
-
- addr - Other side's IP address.
- port - Port we're connecting in.
-
- starttime - Unix time stamp when the DCC transfer was started
- transfd - Bytes transferred
-
-Dcc::Chat->{}
- id - Unique identifier - usually same as nick
- mirc_ctcp - Send CTCPs without the CTCP_MESSAGE prefix
- connection_lost - Other side closed connection
-
-Dcc::Get->{}
- (..contains all the same data as core Dcc object..)
- size - File size
- skipped - Bytes skipped from start (resuming file)
-
- get_type - What to do if file exists? 0=default, 1=rename, 2=overwrite,
- 3=resume
- file - The real file name which we use.
- file_quoted - 1 if file name was received quoted ("file name")
-
-Dcc::Send->{}
- (..contains all the same data as core Dcc object..)
- size - File size
- skipped - Bytes skipped from start (resuming file)
-
- file_quoted - 1 if file name was received quoted ("file name")
- waitforend - File is sent, just wait for the replies from the other side
- gotalldata - Got all acks from the other end
-
-
-dccs() - return list of all dcc connections
-
-Dcc::destroy()
- Destroy DCC connection.
-
-Dcc
-dcc_find_item(type, nick, arg)
- Find DCC connection.
-
-Dcc
-dcc_find_by_port(nick, port)
- Find DCC connection by port.
-
-Dcc
-Windowitem::get_dcc(item)
- If `item' is a query of a =nick, return DCC chat record of nick.
-
-Dcc::chat_send(data)
- Send `data' to dcc chat.
-
-Server::dcc_ctcp_message(target, notice, msg)
-Dcc::ctcp_message(target, notice, msg)
- Send a CTCP message/notify to target.
-
-
- *** Netsplits
-
-Netsplit->{}
- nick - Nick
- address - Nick's host
- destroy - Timestamp when this record should be destroyed
- server - Netsplitserver object
- channels - list of channels (Netsplitchannel objects) the nick was in
-
-Netsplitserver->{}
- server - The server nick was in
- destserver - The other server where split occured.
- count - Number of splits in server
-
-Netsplitchannel->{}
- name - Channel name
- nick - Nick object
-
-Netsplit
-Server::netsplit_find(nick, address)
- Check if nick!address is on the other side of netsplit. Netsplit records
- are automatically removed after 30 minutes (current default)..
-
-Nick
-Server::netsplit_find_channel(nick, address, channel)
- Find nick record for nick!address in channel `channel'.
-
-
- *** Notify list
-
-Notifylist->{}
- mask - Notify nick mask
- away_check - Notify away status changes
- idle_check_time - Notify when idle time is reset and idle was bigger
- than this (seconds)
- ircnets - List of ircnets (strings) the notify is checked
-
-notifies() - Return list of all notifies
-
-Notifylist
-notifylist_add(mask, ircnets, away_check, idle_check_time)
- Add new item to notify list.
-
-notifylist_remove(mask)
- Remove item from notify list.
-
-Notifylist
-notifylist_find(mask, ircnet)
- Find notify.
-
-Server
-notifylist_ison(nick, serverlist)
- Check if `nick' is in IRC. `serverlist' is a space separated
- list of server tags. If it's empty string, all servers will be checked.
-
-Server::notifylist_ison_server(nick)
- Check if `nick' is on IRC server.
-
-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"