ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Net-IRC3/lib/Net/IRC3.pm
Revision: 1.8
Committed: Mon Jul 17 16:01:04 2006 UTC (18 years, 3 months ago) by elmex
Branch: MAIN
Changes since 1.7: +48 -5 lines
Log Message:
added examples and documentation

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.8 Version 0.3
15 elmex 1.1
16     =cut
17    
18 elmex 1.8 our $VERSION = '0.3';
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.8 The L<Net::IRC3> module consists of L<Net::IRC3::Connection>, L<Net::IRC3::Client::Connection>
74     and L<Net::IRC3::Util>. L<Net::IRC3> only contains this documentation.
75 elmex 1.1 It manages connections and parses and constructs IRC messages.
76    
77     L<Net::IRC3> is I<very> simple, if you don't want to care about
78     all the other things that a client still has to do (like replying to
79     PINGs and remembering who is on a channel), I recommend to read
80     the L<Net::IRC3::Client> page instead.
81    
82 elmex 1.4 Note that this module uses AnyEvent as it's IO event subsystem.
83     You can integrate Net::IRC3 into any application with a event system
84     that AnyEvent has support for (eg. L<Gtk2> or L<Event>).
85    
86 elmex 1.2 =head1 EXAMPLES
87 elmex 1.1
88 elmex 1.2 See the samples/ directory for some examples on how to use Net::IRC3.
89 elmex 1.1
90     =head1 AUTHOR
91    
92     Robin Redeker, C<< <elmex@ta-sa.org> >>
93    
94     =head1 SEE ALSO
95    
96 elmex 1.2 L<Net::IRC3::Connection>
97    
98     L<Net::IRC3::Client>
99    
100 elmex 1.4 L<AnyEvent>
101    
102 elmex 1.1 RFC 2812 - Internet Relay Chat: Client Protocol
103    
104     =head1 BUGS
105    
106     Please report any bugs or feature requests to
107     C<bug-net-irc3 at rt.cpan.org>, or through the web interface at
108     L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-IRC3>.
109     I will be notified, and then you'll automatically be notified of progress on
110     your bug as I make changes.
111    
112     =head1 SUPPORT
113    
114     You can find documentation for this module with the perldoc command.
115    
116     perldoc Net::IRC3
117    
118     You can also look for information at:
119    
120     =over 4
121    
122     =item * AnnoCPAN: Annotated CPAN documentation
123    
124     L<http://annocpan.org/dist/Net-IRC3>
125    
126     =item * CPAN Ratings
127    
128     L<http://cpanratings.perl.org/d/Net-IRC3>
129    
130     =item * RT: CPAN's request tracker
131    
132     L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-IRC3>
133    
134     =item * Search CPAN
135    
136     L<http://search.cpan.org/dist/Net-IRC3>
137    
138     =back
139    
140     =head1 ACKNOWLEDGEMENTS
141    
142     Thanks to Marc Lehmann for the new AnyEvent module!
143    
144     =head1 COPYRIGHT & LICENSE
145    
146     Copyright 2006 Robin Redker, all rights reserved.
147    
148     This program is free software; you can redistribute it and/or modify it
149     under the same terms as Perl itself.
150    
151     =cut
152    
153     1;