Changeset ba2ca66 for perl/modules/IRC/lib
- Timestamp:
- Jan 16, 2008, 10:03:00 PM (17 years ago)
- Branches:
- master, barnowl_perlaim, debian, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- eebef19
- Parents:
- f2d72128
- Location:
- perl/modules/IRC/lib/BarnOwl/Module
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
r56e72d5 rba2ca66 65 65 sub shutdown { 66 66 for my $conn (values %ircnets) { 67 $conn-> disconnect();67 $conn->conn->disconnect(); 68 68 } 69 69 } … … 169 169 my $cmd = shift; 170 170 my $conn = get_connection(\@_); 171 $conn-> disconnect;171 $conn->conn->disconnect; 172 172 delete $ircnets{$conn->alias}; 173 173 } … … 191 191 # Strip whitespace. In the future -- send one message/line? 192 192 $body =~ tr/\n\r/ /; 193 $conn-> privmsg($to, $body);193 $conn->conn->privmsg($to, $body); 194 194 my $msg = BarnOwl::Message->new( 195 195 type => 'IRC', … … 214 214 $channels{$chan} ||= []; 215 215 push @{$channels{$chan}}, $conn; 216 $conn-> join($chan);216 $conn->conn->join($chan); 217 217 } 218 218 … … 222 222 my $chan = get_channel(\@_) || die("Usage: $cmd <channel>\n"); 223 223 $channels{$chan} = [grep {$_ ne $conn} @{$channels{$chan} || []}]; 224 $conn-> part($chan);224 $conn->conn->part($chan); 225 225 } 226 226 … … 229 229 my $conn = get_connection(\@_); 230 230 my $nick = shift or die("Usage: $cmd <new nick>\n"); 231 $conn-> nick($nick);231 $conn->conn->nick($nick); 232 232 } 233 233 … … 236 236 my $conn = get_connection(\@_); 237 237 my $chan = get_channel(\@_) || die("Usage: $cmd <channel>\n"); 238 $conn-> names($chan);238 $conn->conn->names($chan); 239 239 } 240 240 … … 243 243 my $conn = get_connection(\@_); 244 244 my $who = shift || die("Usage: $cmd <user>\n"); 245 $conn-> whois($who);245 $conn->conn->whois($who); 246 246 } 247 247 … … 249 249 my $cmd = shift; 250 250 my $conn = get_connection(\@_); 251 $conn-> motd;251 $conn->conn->motd; 252 252 } 253 253 -
perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm
reab7a4c rba2ca66 10 10 =head1 DESCRIPTION 11 11 12 This module is a Net::IRC::Connection subclassfor BarnOwl's IRC12 This module is a wrapper around Net::IRC::Connection for BarnOwl's IRC 13 13 support 14 14 15 15 =cut 16 16 17 use base qw(Net::IRC::Connection Class::Accessor Exporter); 18 __PACKAGE__->mk_accessors(qw(alias channels owl_connected owl_motd)); 17 use Net::IRC::Connection; 18 19 use base qw(Class::Accessor Exporter); 20 __PACKAGE__->mk_accessors(qw(conn alias channels connected motd)); 19 21 our @EXPORT_OK = qw(&is_private); 20 22 21 23 use BarnOwl; 24 25 BEGIN { 26 no strict 'refs'; 27 my @delegate = qw(nick server); 28 for my $meth (@delegate) { 29 *{"BarnOwl::Module::IRC::Connection::$meth"} = sub { 30 shift->conn->$meth(@_); 31 } 32 } 33 }; 22 34 23 35 sub new { … … 26 38 my $alias = shift; 27 39 my %args = (@_); 28 my $self = $class->SUPER::new($irc, %args); 40 my $conn = Net::IRC::Connection->new($irc, %args); 41 my $self = bless({}, $class); 42 $self->conn($conn); 29 43 $self->alias($alias); 30 44 $self->channels([]); 31 $self->owl_motd(""); 32 $self->owl_connected(0); 33 bless($self, $class); 34 35 $self->add_default_handler(sub { goto &on_event; }); 36 $self->add_handler(['msg', 'notice', 'public', 'caction'], 37 sub { goto &on_msg }); 38 $self->add_handler(['welcome', 'yourhost', 'created', 45 $self->motd(""); 46 $self->connected(0); 47 48 $self->conn->add_default_handler(sub { shift; $self->on_event(@_) }); 49 $self->conn->add_handler(['msg', 'notice', 'public', 'caction'], 50 sub { shift; $self->on_msg(@_) }); 51 $self->conn->add_handler(['welcome', 'yourhost', 'created', 39 52 'luserclient', 'luserop', 'luserchannels', 'luserme'], 40 sub { goto &on_admin_msg});41 $self-> add_handler(['myinfo', 'map', 'n_local', 'n_global',53 sub { shift; $self->on_admin_msg(@_) }); 54 $self->conn->add_handler(['myinfo', 'map', 'n_local', 'n_global', 42 55 'luserconns'], 43 56 sub { }); 44 $self-> add_handler(motdstart => sub { goto &on_motdstart});45 $self-> add_handler(motd => sub { goto &on_motd});46 $self-> add_handler(endofmotd => sub { goto &on_endofmotd});47 $self-> add_handler(join => sub { goto &on_join});48 $self-> add_handler(part => sub { goto &on_part});49 $self-> add_handler(disconnect => sub { goto &on_disconnect});50 $self-> add_handler(nicknameinuse => sub { goto &on_nickinuse});51 $self-> add_handler(cping => sub { goto &on_ping});57 $self->conn->add_handler(motdstart => sub { shift; $self->on_motdstart(@_) }); 58 $self->conn->add_handler(motd => sub { shift; $self->on_motd(@_) }); 59 $self->conn->add_handler(endofmotd => sub { shift; $self->on_endofmotd(@_) }); 60 $self->conn->add_handler(join => sub { shift; $self->on_join(@_) }); 61 $self->conn->add_handler(part => sub { shift; $self->on_part(@_) }); 62 $self->conn->add_handler(disconnect => sub { shift; $self->on_disconnect(@_) }); 63 $self->conn->add_handler(nicknameinuse => sub { shift; $self->on_nickinuse(@_) }); 64 $self->conn->add_handler(cping => sub { shift; $self->on_ping(@_) }); 52 65 53 66 return $self; … … 97 110 sub on_ping { 98 111 my ($self, $evt) = @_; 99 $self->c tcp_reply($evt->nick, join (' ', ($evt->args)));112 $self->conn->ctcp_reply($evt->nick, join (' ', ($evt->args))); 100 113 } 101 114 … … 110 123 sub on_motdstart { 111 124 my ($self, $evt) = @_; 112 $self-> owl_motd(join "\n", cdr $evt->args);125 $self->motd(join "\n", cdr $evt->args); 113 126 } 114 127 115 128 sub on_motd { 116 129 my ($self, $evt) = @_; 117 $self-> owl_motd(join "\n", $self->owl_motd, cdr $evt->args);130 $self->motd(join "\n", $self->motd, cdr $evt->args); 118 131 } 119 132 120 133 sub on_endofmotd { 121 134 my ($self, $evt) = @_; 122 $self-> owl_motd(join "\n", $self->owl_motd, cdr $evt->args);123 if(!$self-> owl_connected) {135 $self->motd(join "\n", $self->motd, cdr $evt->args); 136 if(!$self->connected) { 124 137 BarnOwl::admin_message("IRC", "Connected to " . 125 138 $self->server . " (" . $self->alias . ")"); 126 $self-> owl_connected(1);139 $self->connected(1); 127 140 128 141 } 129 142 BarnOwl::admin_message("IRC", 130 143 BarnOwl::Style::boldify('MOTD for ' . $self->alias) . "\n" 131 . strip_irc_formatting($self-> owl_motd));144 . strip_irc_formatting($self->motd)); 132 145 } 133 146 … … 163 176 "[" . $self->alias . "] " . 164 177 [$evt->args]->[1] . ": Nick already in use"); 165 unless($self-> owl_connected) {166 $self-> disconnect;178 unless($self->connected) { 179 $self->conn->disconnect; 167 180 } 168 181 }
Note: See TracChangeset
for help on using the changeset viewer.