diff options
author | Tom Feist <shabble@cowu.be> | 2010-07-16 19:13:02 +0000 |
---|---|---|
committer | Tom Feist <shabble@cowu.be> | 2010-07-16 19:13:02 +0000 |
commit | ced8aef9e7966a75b43c1d54b7fa06377bad8dff (patch) | |
tree | e6d635be017f2d6ddc84bc36d42c7677d3117e9d /docs/Irssi.pm | |
parent | signals maybe finished! (diff) | |
download | irssi-scripts-ced8aef9e7966a75b43c1d54b7fa06377bad8dff.tar.gz irssi-scripts-ced8aef9e7966a75b43c1d54b7fa06377bad8dff.zip |
renamed everything to .pod since they are not actually perl modules
Diffstat (limited to 'docs/Irssi.pm')
-rw-r--r-- | docs/Irssi.pm | 563 |
1 files changed, 0 insertions, 563 deletions
diff --git a/docs/Irssi.pm b/docs/Irssi.pm deleted file mode 100644 index 11837d4..0000000 --- a/docs/Irssi.pm +++ /dev/null @@ -1,563 +0,0 @@ -__END__ - -=head1 NAME - -Irssi.pm - -=head1 DESCRIPTION - -L<Irssi|http://irssi.org> is a console based fullscreen IRC client. It is -written in the C programming language, and can be modified through both -I<Modules> -- dynamically loadable compiled libraries -- and I<Scripts>, written -in L<Perl|http://perl.org>. - -Modules are not covered in this documentation, other than to note that Perl -scripting support itself may be compiled as a module rather than built directly -into Irssi. The C</LOAD> command can be used from within Irssi to check if Perl -support is available. If not, refer to the F<INSTALL> file for how to recompile -irssi. - -The C<Irssi> package is the basis of Perl scripting in Irssi. It does not export any -functions, and requires that all function-calls be fully qualified with the -C<Irssi::I<cmd>> prefix. - -=head1 CLASSES - -This documentation has been split into a number of pages, each documenting a -particular class or pseudo-class. The following list contains all of these -additional pages. - -=over 4 - -=item L<Irssi::Ban> - -=item L<Irssi::Chatnet> - -=item L<Irssi::Chatnet> - -=item L<Irssi::Client> - -=item L<Irssi::Command> - -=item L<Irssi::Dcc> - -=item L<Irssi::Ignore> - -=item L<Irssi::Log> - -=item L<Irssi::Logitem> - -=item L<Irssi::Nick> - -=item L<Irssi::Notifylist> - -=item L<Irssi::Process> - -=item L<Irssi::Query> - -=item L<Irssi::Rawlog> - -=item L<Irssi::Reconnect> - -=item L<Irssi::Script> - -=item L<Irssi::Server> - -=item L<Irssi::Theme> - -=item L<Irssi::Window> - -=item L<Irssi::Windowitem> - -=back - - -=head1 EXPORTS - -Nothing by default, but passing a list of function names when C<use>ing the module -will import them into the current namespace. - -For example: - - use Irssi qw/signal_emit signal_add .../; - -=head1 METHODS - -=head2 Accessors - -=head3 active_win - -C<my $win = Irssi::active_win();> - -returns the currently active L<Irssi::Window> - -=head3 active_server - -C<my $server = Irssi::active_server();> - -returns the currently active L<Irssi::Server> in active window. - -=head3 windows - -returns a list of all L<windows|Irssi::Window>. - -=head3 servers - -returns a list of all L<servers|Irssi::Server>. - -=head3 reconnects - -returns a list of all L<server reconnections|Irssi::Reconnect>. - -=head3 channels - -returns a list of all L<channels|Irssi::Channel>. - -=head3 queries - -returns a list of all L<queries|Irssi::Query>. - -=head3 commands - -returns a list of all L<commands|Irssi::Command>. - -=head3 logs - -returns a list of all L<log files|Irssi::Log>. - -=head3 ignores - -returns a list of all L<ignores|Irssi::Ignore>. - -=head3 dccs - -returns a list of all L<DCC connections|Irssi::Dcc> - -=head2 Signals - -See also L<Signals> - -Irssi is pretty much based on sending and handling different signals. -Like when you receive a message from server, say: - -C<:nick!user@there.org PRIVMSG you :blahblah> - -Irssi will first send a signal: - -C<"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: - -C<"server event", Irssi::Server, "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: - -C<"event privmsg", Irssi::Server, "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 -L<Irssi::signal_stop|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 -C<"free.*porn"> or the sender's nick contain the word "idiot". Yes, you -could use /IGNORE instead for both of these C<:)> - -You can also use L<Irssi::signal_add_last|/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 in the L<Signals> documentation. - - - - -=head3 Handling Signals - -=head4 C<signal_add $sig_name, $func> - -Bind C<$sig_name> to function C<$func>. The C<$func> argument may be either -a string containing the name of a function to call, or a coderef. - -For example: - - Irssi::signal_add("default command", sub { ... }); - - Irssi::signal_add("default command", "my_function"); - - Irssi::signal_add("default command", \&my_function); - -In all cases, the specified function will be passed arguments in C<@_> as specified -in L<Signals>. - -=head4 C<signal_add_first $sig_name, $func> - -Bind C<$sig_name> to function C<$func>. Call C<$func> as soon as possible when -the signal is raised. - -=head4 C<signal_add_last $sig_name, $func> - -Bind C<$sig_name> to function C<$func>. Call C<$func> as late as possible (after -all other signal handlers). - -=head4 C<signal_remove $sig_name, $func> - -Unbind C<$sig_name> from function C<$func>. -B<TODO: Can you unbind a signal from a C<sub { ...}> coderef? What happens?> - - -=head3 Controlling Signal Propagation - -=head4 C<signal_emit $sig_name, @params> - -Send a signal of type C<$sig_name>. Up to 6 parameters can be passed in C<@params>. - -=head4 C<signal_continue @params> - -Propagate a currently emitted signal, but with different parameters. This only -needs to be called if you wish to change them, otherwise all subsequent handlers -will be invoked as normal. - -B<Should only be called from within a signal handler> - -=head4 C<signal_stop> - -Stop the signal that's currently being emitted, no other handlers after this one will -be called. - -=head4 C<signal_stop_by_name $sig_name> - -Stop the signal with name C<$sig_name> that is currently being emitted. - -=head3 Registering New Signals - -=head4 C<signal_register $hashref> - -Register parameter types for one or more signals. C<$hashref> must map one or -more signal names to references to arrays containing 0 to 6 type names. Some -recognized type names include int for integers, intptr for references to -integers and string for strings. For all standard signals see -F<src/perl/perl-signals-list.h> in the source code (this is generated by -F<src/perl/get-signals.pl>). - -For example: - - my $signal_config_hash = { "new signal" => [ qw/string string integer/ ] }; - Irssi::signal_register($signal_config_hash); - -Any signals that were already registered are unaffected. - -B<Signals are not persistent.> Once registered, a signal cannot be unregistered without -restarting Irssi. B<TODO: True?>, including modifying the type signature. - -Registration is required to get any parameters to signals written in -Perl and to emit and continue signals from Perl. - -B<TODO: What are the complete list of recognised types?> - - - - -=head2 Commands - -See also L<Irssi::Command> - -=head3 Registering Commands - -=head4 C<command_bind $cmd, $func, $category> - -Bind a command string C<$cmd> to call function C<$func>. C<$func> can be -either a string or coderef. C<$category> is an optional string specifying -the category to display the command in when C</HELP> is used. - -=head4 C<command_runsub $cmd, $data, $server, $item> - -Run subcommands for `cmd'. First word in `data' is parsed as -subcommand. `server' is L<Irssi::Server> record for current -L<Irssi::Windowitem> `item'. - -Call command_runsub in handler function for `cmd' and bind -with command_bind("`cmd' `subcmd'", subcmdfunc[, category]); - -B<TODO: example here> - -=head4 C<command_unbind $cmd, $func> - -Unbind command C<$cmd> from function C<$func>. - -=head3 Invoking Commands - -=head4 C<command $string> - -Run the command specified in C<$string> in the currently active context. - -B<TODO: passing args in C<@_> vs concatenating into the command string?> - -See also L<Irssi::Server/command $string> - -=head3 Parsing Command Arguments - -=head4 C<command_set_options $cmd, $data> - -Set options for command C<$cmd> to C<$data>. C<$data> is a string of -space separated words which specify the options. Each word can be -optionally prefixed with one of the following character: - -=over 16 - -=item C<->: optional argument - -=item C<@>: optional numeric argument - -=item C<+>: required argument - -=back - -For example: - - my $argument_format = "+something -other -another @number"; - Irssi::command_set_options('mycmd', $argument_format); - -Thus, the command may be run as C</mycmd -something value -other value rest of args>. - -=head4 C<command_parse_options $cmd, $data> - -Parse out options as specified by L<command_set_options|/command_set_options -$cmd, $data> for command C<$cmd>. A string containing the input received by the -command handler should be passed in as C<$data>. - -The return value is either C<undef> if an error occurred, or a list containing -two items. The first is a hashref mapping the option names to their -values. Optional arguments which were not present in the input will not be -included in the hash. - -The second item in the return list is a string containing the remainder of the input -after the arguments have been parsed out. - -For example: - - sub my_cmd_handler { - my ($command_args) = @_; - my @options_list = Irssi::command_parse_options "my_cmd", $command_args; - if (@options_list) { - my $options = $options_list->[0]; - my $arg_remainder = $options_list->[1]; - - if (exists $options->{other} && $options->{something} eq 'hello') { - - ... - - } - } - } - -=head2 Settings - - -=head3 Creating New Settings - -=head4 C<settings_add_str(section, key, def)> - -=head4 C<settings_add_int(section, key, def)> - -=head4 C<settings_add_bool(section, key, def)> - -=head4 C<settings_add_time(section, key, def)> - -=head4 C<settings_add_level(section, key, def)> - -=head4 C<settings_add_size(section, key, def)> - - -=head3 Retrieving Settings - -=head4 C<settings_get_str($key)> - -=head4 C<settings_get_int($key)> - -=head4 C<settings_get_bool($key)> - -=head4 C<settings_get_time($key)> - -=head4 C<settings_get_level($key)> - -=head4 C<settings_get_size($key)> - -=head3 Modifying Settings - -Set value for setting. - -B<If you change the settings of another module/script with one of these, you -must emit a C<"setup changed"> signal afterwards.> - -=head4 C<settings_set_str(key, value)> - -=head4 C<settings_set_int(key, value)> - -=head4 C<settings_set_bool(key, value)> - -=head4 C<settings_set_time(key, value)> - -=head4 C<settings_set_level(key, value)> - -=head4 C<settings_set_size(key, value)> - -=head4 C<settings_remove(key)> - -Remove a setting. - - -=head2 IO and Process Management - -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. - -pidwait_add(pid) - Adds `pid' to the list of processes to wait for. The pid must identify - a child process of the irssi process. When the process terminates, a - "pidwait" signal will be sent with the pid and the status from - waitpid(). This is useful to avoid zombies if your script forks. - -pidwait_remove(pid) - Removes `pid' from the list of processes to wait for. Terminated - processes are removed automatically, so it is usually not necessary - to call this function. - - - -=head2 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. - - -=head2 Themes - -See also L<Irssi::Theme> - -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}); - - -=head2 DCC - -See also L<Irssi::Dcc> - -Dcc -dcc_find_item(type, nick, arg) - Find DCC connection. - -Dcc -dcc_find_by_port(nick, port) - Find DCC connection by port. - - -=head2 Channels - -Channel -channel_find(channel) - Find channel from any server. - -=head2 Ignores - - -ignore_add_rec(ignore) - Add ignore record. - -ignore_update_rec(ignore) - Update ignore record in configuration - -ignore_check(nick, host, channel, text, level) - -=head2 Logging - - -Log -log_create_rec(fname, level) - Create log file. - - -Log -log_find(fname) - Find log with file name. - -=head2 Raw Logging - -Rawlog rawlog_create() - Create a new rawlog. - -rawlog_set_size(lines) - Set the default rawlog size for new rawlogs. - -=head2 Chat-Nets - -chatnet_find(name) - Find chat network with name. - -=head2 Status Bars - -B<TODO> - -=head1 COPYRIGHT - -All the content of this site is copyright E<copy> 2000-2010 L<The Irssi -project|http://irssi.org>. - -Formatting to POD and linking by Tom Feist - L<shabble+irssi@metavore.org|mailto:shabble+irssi@metavore.org> |