ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Net-IRC3/lib/Net/IRC3.pm
Revision: 1.16
Committed: Tue Sep 23 10:32:59 2008 UTC (16 years, 1 month ago) by elmex
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +6 -2 lines
Log Message:
last release: 0.6

File Contents

# User Rev Content
1 elmex 1.1 package Net::IRC3;
2     use strict;
3     use AnyEvent;
4     use IO::Socket::INET;
5 elmex 1.2
6 elmex 1.3 our $ConnectionClass = 'Net::IRC3::Connection';
7 elmex 1.2
8 elmex 1.1 =head1 NAME
9    
10 elmex 1.8 Net::IRC3 - An event system independend IRC protocol module
11 elmex 1.1
12     =head1 VERSION
13    
14 elmex 1.16 Version 0.6
15 elmex 1.1
16     =cut
17    
18 elmex 1.16 our $VERSION = '0.6';
19 elmex 1.1
20     =head1 SYNOPSIS
21    
22 elmex 1.8 Using the simplistic L<Net::IRC3::Connection>:
23    
24     use AnyEvent;
25 elmex 1.7 use Net::IRC3::Connection;
26 elmex 1.1
27 elmex 1.8 my $c = AnyEvent->condvar;
28    
29 elmex 1.7 my $con = new Net::IRC3::Connection;
30 elmex 1.1
31 elmex 1.8 $con->connect ("localhost", 6667);
32    
33     $con->reg_cb (irc_001 => sub { print "$_[1]->{prefix} says i'm in the IRC: $_[1]->{trailing}!\n"; $c->broadcast; 0 });
34     $con->send_msg (undef, NICK => undef, "testbot");
35     $con->send_msg (undef, USER => 'testbot', "testbot", '*', '0');
36    
37     $c->wait;
38    
39     Using the more sophisticatd L<Net::IRC3::Client::Connection>:
40    
41     use AnyEvent;
42     use Net::IRC3::Client::Connection;
43    
44     my $c = AnyEvent->condvar;
45    
46     my $timer;
47     my $con = new Net::IRC3::Client::Connection;
48    
49     $con->reg_cb (registered => sub { print "I'm in!\n"; 0 });
50     $con->reg_cb (disconnect => sub { print "I'm out!\n"; 0 });
51     $con->reg_cb (
52     sent => sub {
53     if ($_[2] eq 'PRIVMSG') {
54     print "Sent message!\n";
55     $timer = AnyEvent->timer (after => 1, cb => sub { $c->broadcast });
56     }
57     1
58     }
59     );
60    
61     $con->send_srv (PRIVMSG => "Hello there i'm the cool Net::IRC3 test script!", 'elmex');
62    
63     $con->connect ("localhost", 6667);
64     $con->register (qw/testbot testbot testbot/);
65    
66     $c->wait;
67     undef $timer;
68 elmex 1.1
69 elmex 1.8 $con->disconnect;
70 elmex 1.1
71     =head1 DESCRIPTION
72    
73 elmex 1.16 B<NOTE:> This module is B<DEPRECATED>, please use L<AnyEvent::IRC> for new programs,
74     and possibly port existing L<Net::IRC3> applications to L<AnyEvent::IRC>. Though the
75     API of L<AnyEvent::IRC> has incompatible changes, it's still fairly similar.
76    
77 elmex 1.8 The L<Net::IRC3> module consists of L<Net::IRC3::Connection>, L<Net::IRC3::Client::Connection>
78     and L<Net::IRC3::Util>. L<Net::IRC3> only contains this documentation.
79 elmex 1.1 It manages connections and parses and constructs IRC messages.
80    
81 elmex 1.15 L<Net::IRC3> can be viewed as toolbox for handling IRC connections
82     and communications. It won't do everything for you, and you still
83     need to know a few details of the IRC protocol.
84    
85     L<Net::IRC3::Client::Connection> is a more highlevel IRC connection
86     that already processes some messages for you and will generated some
87     events that are maybe useful to you. It will also do PING replies for you
88     and manage channels a bit.
89    
90     L<Net::IRC3::Connection> is a lowlevel connection that only connects
91     to the server and will let you send and receive IRC messages.
92     L<Net::IRC3::Connection> does not imply any client behaviour, you could also
93     use it to implement an IRC server.
94 elmex 1.1
95 elmex 1.9 Note that the *::Connection module uses AnyEvent as it's IO event subsystem.
96     You can integrate them into any application with a event system
97 elmex 1.4 that AnyEvent has support for (eg. L<Gtk2> or L<Event>).
98    
99 elmex 1.2 =head1 EXAMPLES
100 elmex 1.1
101 elmex 1.2 See the samples/ directory for some examples on how to use Net::IRC3.
102 elmex 1.1
103     =head1 AUTHOR
104    
105     Robin Redeker, C<< <elmex@ta-sa.org> >>
106    
107     =head1 SEE ALSO
108    
109 elmex 1.14 L<Net::IRC3::Util>
110    
111 elmex 1.2 L<Net::IRC3::Connection>
112    
113 elmex 1.11 L<Net::IRC3::Client::Connection>
114 elmex 1.2
115 elmex 1.4 L<AnyEvent>
116    
117 elmex 1.1 RFC 2812 - Internet Relay Chat: Client Protocol
118    
119     =head1 BUGS
120    
121     Please report any bugs or feature requests to
122     C<bug-net-irc3 at rt.cpan.org>, or through the web interface at
123     L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-IRC3>.
124     I will be notified, and then you'll automatically be notified of progress on
125     your bug as I make changes.
126    
127     =head1 SUPPORT
128    
129     You can find documentation for this module with the perldoc command.
130    
131     perldoc Net::IRC3
132    
133     You can also look for information at:
134    
135     =over 4
136    
137     =item * AnnoCPAN: Annotated CPAN documentation
138    
139     L<http://annocpan.org/dist/Net-IRC3>
140    
141     =item * CPAN Ratings
142    
143     L<http://cpanratings.perl.org/d/Net-IRC3>
144    
145     =item * RT: CPAN's request tracker
146    
147     L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-IRC3>
148    
149     =item * Search CPAN
150    
151     L<http://search.cpan.org/dist/Net-IRC3>
152    
153     =back
154    
155     =head1 ACKNOWLEDGEMENTS
156    
157     Thanks to Marc Lehmann for the new AnyEvent module!
158    
159     =head1 COPYRIGHT & LICENSE
160    
161 elmex 1.10 Copyright 2006 Robin Redeker, all rights reserved.
162 elmex 1.1
163     This program is free software; you can redistribute it and/or modify it
164     under the same terms as Perl itself.
165    
166     =cut
167    
168     1;