Added SILC Thread Queue API
[runtime.git] / apps / irssi / docs / perl.txt
index b04e0cb94f7303d85803e917a3bb53d6a292f088..611af9fb0bee54283b881681db82a8105a63e276 100644 (file)
@@ -1,23 +1,22 @@
Running Perl scripts
- --------------------
Installation problems
+ ---------------------
 
-First you'll need to have Perl support on. By default irssi compiles
-Perl as a module, so /LOAD perl probably helps. If you want to do this
-automatically at startup put the "/LOAD perl" to ~/.irssi/startup file.
-After that you can run scripts with /RUN script (you don't need to give
-the .pl extension). If /RUN complains about "unknown command", you
-don't have Perl module loaded, or maybe Perl support wasn't compiled at
-all.
+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.
 
-Place new scripts to ~/.irssi/scripts/ or /usr/local/lib/irssi/scripts/
-directory. Scripts in ~/.irssi/scripts/autorun/ directory are
-automatically run at startup.
 
-Using /PERLFLUSH closes and reopens the perl interpreter removing all
-Perl scripts from memory. There's currently no way to unload a single
-Perl script (/SCRIPT REMOVE will probably work soon). You can however
-run same script multiple times, and irssi will remove the old version
-from memory before running the new version.
+ 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
@@ -92,11 +91,11 @@ Here's an example:
     }
 
     if ($data) {
-      $server->command("/MSG $data Hello!");
+      $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!");
+      $witem->command("MSG ".$witem->{name}." Hello!");
     } else {
       Irssi::print("Nick not given, and no active channel/query in window");
     }
@@ -201,11 +200,7 @@ command(cmd)
 Server::command(cmd)
 Window::command(cmd)
 Windowitem::command(cmd)
-  Send a command `cmd' (in current channel). This will work just as if you
-  had typed `cmd' in command line, so you'll need to use /COMMANDS or the
-  text will be sent to the channel.
-
-  Just like above, except different calling method.
+  Send a command `cmd' (in current channel). The '/' char isn't needed.
 
 
  *** Themes
@@ -238,11 +233,27 @@ For example:
 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)
@@ -279,6 +290,10 @@ 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.
 
@@ -522,8 +537,8 @@ Server::ischannel(data)
 Server::get_nick_flags()
   Returns nick flag characters in order: op, voice, halfop ("@+%" in IRC).
 
-Server::send_message(target, msg)
-  Sends a message to nick/channel.
+Server::send_message(target, msg, target_type)
+  Sends a message to nick/channel. target_type 0 = channel, 1 = nick
 
 
  *** Server reconnections
@@ -678,14 +693,6 @@ Server::channels_join(channels, automatic)
   was requested by user. If channel join is "automatic", irssi doesn't
   jump to the window where the channel was joined.
 
-Channel
-Server::channel_create(name, automatic)
-  Create new channel.
-
-Channel
-channel_create(chat_type, name, automatic)
-  Create new channel with specified chat type.
-  FIXME: should this be removed? is this useful for anything?
 
 Channel::destroy()
   Destroy channel.
@@ -724,10 +731,14 @@ Channel::nick_remove(nick)
   Remove nick from nicklist.
 
 Nick
-Channel::nick_find(mask)
+Channel::nick_find(nick)
   Find nick from nicklist.
 
-Channel::nicks(channel)
+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)
@@ -944,6 +955,13 @@ Server::ctcp_send_reply(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
 
@@ -952,19 +970,9 @@ 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'.
 
@@ -974,22 +982,6 @@ Channel::banlist_add(ban, nick, time)
 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