ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Net-IRC3/lib/Net/IRC3.pm
Revision: 1.15
Committed: Wed Apr 18 21:10:21 2007 UTC (17 years, 6 months ago) by elmex
Branch: MAIN
Changes since 1.14: +13 -4 lines
Log Message:
added CTCP support

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.5
15
16 =cut
17
18 our $VERSION = '0.5';
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> can be viewed as toolbox for handling IRC connections
78 and communications. It won't do everything for you, and you still
79 need to know a few details of the IRC protocol.
80
81 L<Net::IRC3::Client::Connection> is a more highlevel IRC connection
82 that already processes some messages for you and will generated some
83 events that are maybe useful to you. It will also do PING replies for you
84 and manage channels a bit.
85
86 L<Net::IRC3::Connection> is a lowlevel connection that only connects
87 to the server and will let you send and receive IRC messages.
88 L<Net::IRC3::Connection> does not imply any client behaviour, you could also
89 use it to implement an IRC server.
90
91 Note that the *::Connection module uses AnyEvent as it's IO event subsystem.
92 You can integrate them into any application with a event system
93 that AnyEvent has support for (eg. L<Gtk2> or L<Event>).
94
95 =head1 EXAMPLES
96
97 See the samples/ directory for some examples on how to use Net::IRC3.
98
99 =head1 AUTHOR
100
101 Robin Redeker, C<< <elmex@ta-sa.org> >>
102
103 =head1 SEE ALSO
104
105 L<Net::IRC3::Util>
106
107 L<Net::IRC3::Connection>
108
109 L<Net::IRC3::Client::Connection>
110
111 L<AnyEvent>
112
113 RFC 2812 - Internet Relay Chat: Client Protocol
114
115 =head1 BUGS
116
117 Please report any bugs or feature requests to
118 C<bug-net-irc3 at rt.cpan.org>, or through the web interface at
119 L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-IRC3>.
120 I will be notified, and then you'll automatically be notified of progress on
121 your bug as I make changes.
122
123 =head1 SUPPORT
124
125 You can find documentation for this module with the perldoc command.
126
127 perldoc Net::IRC3
128
129 You can also look for information at:
130
131 =over 4
132
133 =item * AnnoCPAN: Annotated CPAN documentation
134
135 L<http://annocpan.org/dist/Net-IRC3>
136
137 =item * CPAN Ratings
138
139 L<http://cpanratings.perl.org/d/Net-IRC3>
140
141 =item * RT: CPAN's request tracker
142
143 L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-IRC3>
144
145 =item * Search CPAN
146
147 L<http://search.cpan.org/dist/Net-IRC3>
148
149 =back
150
151 =head1 ACKNOWLEDGEMENTS
152
153 Thanks to Marc Lehmann for the new AnyEvent module!
154
155 =head1 COPYRIGHT & LICENSE
156
157 Copyright 2006 Robin Redeker, all rights reserved.
158
159 This program is free software; you can redistribute it and/or modify it
160 under the same terms as Perl itself.
161
162 =cut
163
164 1;