The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::IRC3 - An event system independend IRC protocol module

VERSION

Version 0.4

SYNOPSIS

Using the simplistic Net::IRC3::Connection:

   use AnyEvent;
   use Net::IRC3::Connection;

   my $c = AnyEvent->condvar;

   my $con = new Net::IRC3::Connection;

   $con->connect ("localhost", 6667);

   $con->reg_cb (irc_001 => sub { print "$_[1]->{prefix} says i'm in the IRC: $_[1]->{trailing}!\n"; $c->broadcast; 0 });
   $con->send_msg (undef, NICK => undef, "testbot");
   $con->send_msg (undef, USER => 'testbot', "testbot", '*', '0');

   $c->wait;

Using the more sophisticatd Net::IRC3::Client::Connection:

   use AnyEvent;
   use Net::IRC3::Client::Connection;

   my $c = AnyEvent->condvar;

   my $timer;
   my $con = new Net::IRC3::Client::Connection;

   $con->reg_cb (registered => sub { print "I'm in!\n"; 0 });
   $con->reg_cb (disconnect => sub { print "I'm out!\n"; 0 });
   $con->reg_cb (
      sent => sub {
         if ($_[2] eq 'PRIVMSG') {
            print "Sent message!\n";
            $timer = AnyEvent->timer (after => 1, cb => sub { $c->broadcast });
         }
         1
      }
   );

   $con->send_srv (PRIVMSG => "Hello there i'm the cool Net::IRC3 test script!", 'elmex');

   $con->connect ("localhost", 6667);
   $con->register (qw/testbot testbot testbot/);

   $c->wait;
   undef $timer;

   $con->disconnect;

DESCRIPTION

The Net::IRC3 module consists of Net::IRC3::Connection, Net::IRC3::Client::Connection and Net::IRC3::Util. Net::IRC3 only contains this documentation. It manages connections and parses and constructs IRC messages.

Net::IRC3::Connection is very simple, if you don't want to care about all the other things that a client still has to do (like replying to PINGs and remembering who is on a channel), I recommend to read the Net::IRC3::Client::Connection page instead.

Note that the *::Connection module uses AnyEvent as it's IO event subsystem. You can integrate them into any application with a event system that AnyEvent has support for (eg. Gtk2 or Event).

EXAMPLES

See the samples/ directory for some examples on how to use Net::IRC3.

AUTHOR

Robin Redeker, <elmex@ta-sa.org>

SEE ALSO

Net::IRC3::Connection

Net::IRC3::Client::Connection

AnyEvent

RFC 2812 - Internet Relay Chat: Client Protocol

BUGS

Please report any bugs or feature requests to bug-net-irc3 at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-IRC3. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Net::IRC3

You can also look for information at:

ACKNOWLEDGEMENTS

Thanks to Marc Lehmann for the new AnyEvent module!

COPYRIGHT & LICENSE

Copyright 2006 Robin Redeker, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.