summaryrefslogtreecommitdiff
path: root/docs/perl.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/perl.txt')
-rw-r--r--docs/perl.txt301
1 files changed, 170 insertions, 131 deletions
diff --git a/docs/perl.txt b/docs/perl.txt
index 1976fee7..cb51aafc 100644
--- a/docs/perl.txt
+++ b/docs/perl.txt
@@ -46,17 +46,15 @@ Irssi::signal_stop();
For example:
---------------------------------------------------------
-sub event_privmsg {
- # $data = "nick/#channel :text"
- my ($server, $data, $nick, $address) = @_;
- my ($target, $text) = split(/ :/, $data, 2);
+ 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_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
@@ -114,9 +112,10 @@ 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, you'll need to put
-"use Irssi::Irc;" to your scripts. IRC specific commands are listed
-after the generic ones.
+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
@@ -759,178 +758,218 @@ Server::ignore_check(nick, host, channel, text, level)
Return 1 if ignoring matched.
- *** Channel modes
+ ***
+ *** IRC specific functions. All objects below this are prefixed with Irc::
+ ***
-irc_get_mask(nick, host, flags)
- Create IRC mask from nick!host.
- flags = you need to combine these:
- (FIXME: export the IRC_xxx defines to perl (or something))
- IRC_MASK_NICK 0x01
- IRC_MASK_USER 0x02
- IRC_MASK_HOST 0x04
- IRC_MASK_DOMAIN 0x08
+ *** IRC servers
-Ban::values()
- Get some information about ban. This function returns a reference to
- hash table. Hash table has keys:
- "ban" - The ban
- "setby" - Nick of who set the ban
- "time" - Timestamp when ban was set
+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
-Ban Channel::ban_add(ban, nick, time)
- Add new ban. (!!)
+Irc::Connect->{}
+ (..contains all the same data as core Connect object..)
+ alternate_nick - Alternate nick to use if default nick is taken.
-Channel::ban_remove(ban)
- Remove ban. (!!)
+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"
-Ban Channel::ban_exception_add(ban, nick, time)
- Add ban exception (!!)
+Server::send_raw(cmd)
+ Send raw message to server, it will be flood protected so you
+ don't need to worry about it.
-Channel::ban_exception_remove(ban)
- Remove ban exception (!!)
+Server::send_raw_now(cmd)
+ Send raw message to server immediately without flood protection.
-Channel::invitelist_add(mask)
- Add invite (!!)
+Server::send_raw_split(cmd, nickarg, max_nicks)
+ Split the `cmd' into several commands so `nickarg' argument has only
+ `max_nicks' number of nicks.
-Channel::invitelist_remove(mask)
- Remove invite (!!)
+ Example:
+ $server->send_raw_split("KICK #channel nick1,nick2,nick3 :byebye", 2, 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.
-Channel::modes_parse_channel(setby, modestr)
- Parse mode string (!!)
+
+ *** IRC channels
+
+Ban->{}
+ ban - The ban
+ setby - Nick of who set the ban
+ time - Timestamp when ban was set
+
+Channel
+Server::channel_create(name, automatic)
+ Create new channel.
+
+Channel::bans()
+ Return a list of bans in channel.
+
+Channel::ebans()
+ Return a list of ban exceptions in channel.
+
+Channel::invites()
+ Return invite list (+I) of channel.
Channel::ban_get_mask(nick)
Get ban mask for `nick'.
-Channel::modes_set(data, mode)
- Set mode `mode' ("+o", "-o", etc.) to all nicks in `data'
- separated with spaces.
+Channel::banlist_add(ban, nick, time)
+ Add a new ban to channel.
+
+Channel::banlist_remove(ban)
+ Remove a ban from channel.
+
+Channel::banlist_exception_add(ban, nick, time)
+ Add a new ban exception to channel.
+
+Channel::banlist_exception_remove(ban)
+ Remove a ban exception from channel.
+
+Channel::invitelist_add(mask)
+ Add a new invite mask to channel.
+
+Channel::invitelist_remove(mask)
+ Remove invite mask from channel.
+
+modes_join(old, mode, channel)
+ Add `mode' to `old' - return newly allocated mode. If `channel' is 1,
+ we're parsing channel mode and we should try to join mode arguments too.
*** DCC
-Dcc::values()
- Get some information about nick. This function returns a reference to
- hash table. Hash table has keys:
- "type" - Type of the DCC: chat, send, get
- "created" - Unix time stamp when the DCC record was created
+Dcc->{}
+ type - Type of the DCC: chat, send, get
+ created - Time stamp when the DCC record was created
+
+ server - Server where the DCC was initiated.
+ nick - Other side's nick name.
+
+ chat - Dcc chat record if the request came through DCC chat
+
+ ircnet - IRC network where the DCC was initiated.
+ mynick - Our nick to use in DCC chat.
- "server" - Server where the DCC was initiated.
- "chat" - DCC chat record if the request came through DCC chat
- "ircnet" - IRC network where the DCC was initiated.
- "mynick" - Our nick to use in DCC chat.
+ arg - Given argument .. file name usually
+ file - The real file name which we use.
- "nick" - Other side's nick name.
- "addr" - Other side's IP address.
- "port" - Port we're connecting in.
+ addr - Other side's IP address.
+ port - Port we're connecting in.
- "arg" - Given argument .. file name usually
- "file" - The real file name which we use.
+ size - File size
+ transfd - Bytes transferred
+ skipped - Bytes skipped from start (resuming file)
+ starttime - Unix time stamp when the DCC transfer was started
- "size" - File size
- "transfd" - Bytes transferred
- "skipped" - Bytes skipped from start (resuming file)
- "starttime" - Unix time stamp when the DCC transfer was started
+dccs() - return list of all dcc connections
Dcc::destroy()
- Destroy DCC connection. (!!)
+ Destroy DCC connection.
-Dcc dcc_find_item(type, nick, arg)
+Dcc
+dcc_find_item(type, nick, arg)
Find DCC connection.
-Dcc dcc_find_by_port(nick, port)
+Dcc
+dcc_find_by_port(nick, port)
Find DCC connection by port.
-dcc_ctcp_message(target, server, chat, notice, msg)
- Send a CTCP message/notify to target. Send the CTCP via DCC chat if
- `chat' is specified.
+Dcc
+Windowitem::get_dcc(item)
+ If `item' is a query of a =nick, return DCC chat record of nick.
-Dcc::dcc_chat_send(data)
+Dcc::chat_send(data)
Send `data' to dcc chat.
-Dcc item_get_dcc(item)
- If window item `item' is a query of a =nick, return DCC chat record
- of nick.
+Server::dcc_ctcp_message(target, notice, msg)
+Dcc::ctcp_message(target, notice, msg)
+ Send a CTCP message/notify to target.
+
*** Netsplits
-Netsplit::values()
- Get some information about netsplit. This function returns a reference to
- hash table. Hash table has keys:
- "nick" - Nick
- "address" - Nick's host
- "server" - The server nick was in
- "destserver" - The other server where split occured.
- "destroy" - Timestamp when this record should be destroyed
- /*FIXME: add list of channels the nick was in;*/
-
-Netsplit Server::netsplit_find(nick, address)
+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)
+Nick
+Server::netsplit_find_channel(nick, address, channel)
Find nick record for nick!address in channel `channel'.
*** Notify list
-notifylist_add(nick, ircnet)
- Add `nick' to notify list in irc network `ircnet'
-
-Server notifylist_ison(nick, ircnets)
- Check if `nick' is in IRC. `ircnets' is a space separated
- list of irc networks. If it's empty string, all servers will be checked.
-
-Server::notifylist_ison_server(nick)
- Check if `nick' is on IRC server.
-
-
- *** Plugins
+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
-Plugin::values()
- Get some information about plugin. This function returns a reference to
- hash table. Hash table has keys:
- "name" - Plugin name
- "description" - Plugin description
+notifies() - Return list of all notifies
-plugin_load(name, args)
- Load plugin.
+Notifylist
+notifylist_add(mask, ircnets, away_check, idle_check_time)
+ Add new item to notify list.
-plugin_get_description(name)
- Get plugin description string.
+notifylist_remove(mask)
+ Remove item from notify list.
-Plugin plugin_find(name)
- Find plugin.
+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.
- *** IRC
-
-dccs() - return list of all dcc connections
-
-Server::send_raw(cmd)
- Send raw message to server, it will be flood protected so you
- don't need to worry about it.
+Server::notifylist_ison_server(nick)
+ Check if `nick' is on IRC server.
-Server::irc_send_cmd_split(cmd, arg, max_nicks)
- Split the `cmd' into several commands so `arg' argument has only
- `max_nicks' number of nicks.
+Notifylist::ircnets_match(ircnet)
+ Returns 1 if notify is checked in `ircnet'.
- Example: $server->irc_send_cmd_split("KICK #channel nick1,nick2,nick3 :byebye", 2, 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.
+ *** Autoignoring
-Autoignore::values()
- Get some information about autoignore. This function returns a reference to
- hash table. Hash table has keys:
- "nick" - Ignored nick
- "timeleft" - Seconds left to ignore
- "level" - Ignoring level number
+Autoignore->{}
+ nick - Ignored nick
+ timeleft - Seconds left to ignore
+ level - Ignoring level number
-Server::autoignore_add(type, nick)
- Autoignore `nick' in server with level number `type'.
+Server::autoignore_add(nick, level)
+ Add new autoignore.
Server::autoignore_remove(mask, level)
- Remove autoignoring `nick' from server. `level' is a string.
+ Remove autoignore.