ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Net-IRC3/lib/Net/IRC3.pm
Revision: 1.12
Committed: Tue Nov 28 16:28:59 2006 UTC (17 years, 10 months ago) by elmex
Branch: MAIN
Changes since 1.11: +2 -2 lines
Log Message:
net-irc3 cpan release 0.4

File Contents

# Content
1 package Net::IRC3;
2 use strict;
3 use AnyEvent;
4 use IO::Socket::INET;
5
6 our $ConnectionClass = 'Net::IRC3::Connection';
7
8 =head1 NAME
9
10 Net::IRC3 - An event system independend IRC protocol module
11
12 =head1 VERSION
13
14 Version 0.4
15
16 =cut
17
18 our $VERSION = '0.4';
19
20 =head1 SYNOPSIS
21
22 Using the simplistic L<Net::IRC3::Connection>:
23
24 use AnyEvent;
25 use Net::IRC3::Connection;
26
27 my $c = AnyEvent->condvar;
28
29 my $con = new Net::IRC3::Connection;
30
31 $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
69 $con->disconnect;
70
71 =head1 DESCRIPTION
72
73 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 It manages connections and parses and constructs IRC messages.
76
77 L<Net::IRC3::Connection> 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::Connection> page instead.
81
82 Note that the *::Connection module uses AnyEvent as it's IO event subsystem.
83 You can integrate them into any application with a event system
84 that AnyEvent has support for (eg. L<Gtk2> or L<Event>).
85
86 =head1 EXAMPLES
87
88 See the samples/ directory for some examples on how to use Net::IRC3.
89
90 =head1 AUTHOR
91
92 Robin Redeker, C<< <elmex@ta-sa.org> >>
93
94 =head1 SEE ALSO
95
96 L<Net::IRC3::Connection>
97
98 L<Net::IRC3::Client::Connection>
99
100 L<AnyEvent>
101
102 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 Redeker, 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;