Changeset 2c40dc0 for perl/modules/IRC/lib/BarnOwl/Module/IRC
- Timestamp:
- Jan 8, 2008, 11:24:09 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:
- 0e52069
- Parents:
- c0f9e30
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm
rb38b0b2 r2c40dc0 15 15 =cut 16 16 17 use base qw(Net::IRC::Connection Class::Accessor );17 use base qw(Net::IRC::Connection Class::Accessor Exporter); 18 18 __PACKAGE__->mk_accessors(qw(alias channels)); 19 our @EXPORT_OK = qw(&is_private); 19 20 20 21 use BarnOwl; … … 30 31 bless($self, $class); 31 32 32 $self->add_global_handler(endofmotd => sub { goto &on_connect }); 33 $self->add_global_handler(msg => sub { goto &on_msg }); 34 $self->add_global_handler(notice => sub { goto &on_msg }); 33 $self->add_global_handler(376 => sub { goto &on_connect }); 34 $self->add_global_handler(['msg', 'notice', 'public', 'caction'], 35 sub { goto &on_msg }); 36 $self->add_global_handler(cping => sub { goto &on_ping }); 35 37 $self->add_default_handler(sub { goto &on_event; }); 36 38 … … 49 51 sub on_msg { 50 52 my ($self, $evt) = @_; 51 my $replycmd = "irc-msg " . $evt->nick; 53 my ($recipient) = $evt->to; 54 my $body = strip_irc_formatting([$evt->args]->[0]); 55 $body = BarnOwl::Style::boldify($evt->nick.' '.$body) if $evt->type eq 'caction'; 52 56 my $msg = BarnOwl::Message->new( 53 57 type => 'IRC', … … 55 59 server => $self->server, 56 60 network => $self->alias, 57 recipient => $ self->nick,58 body => strip_irc_formatting([$evt->args]->[0]),61 recipient => $recipient, 62 body => $body, 59 63 sender => $evt->nick, 60 64 hostname => $evt->host, 61 65 from => $evt->from, 62 notice => $evt->type eq 'notice' ? 'true' : '', 63 isprivate => 'true', 64 replycmd => $replycmd, 65 replysendercmd => $replycmd 66 $evt->type eq 'notice' ? 67 (notice => 'true') : (), 68 is_private($recipient) ? 69 (isprivate => 'true') : (), 70 replycmd => 'irc-msg ' . 71 (is_private($recipient) ? $evt->nick : $recipient), 72 replysendercmd => 'irc-msg ' . $evt->nick, 66 73 ); 67 74 BarnOwl::queue_message($msg); 75 } 76 77 sub on_ping { 78 my ($self, $evt) = @_; 79 $self->ctcp_reply($evt->nick, join (' ', ($evt->args))); 80 } 81 82 sub on_event { 83 my ($self, $evt) = @_; 84 BarnOwl::admin_message("IRC", 85 "Unhandled IRC event of type " . $evt->type . ":\n" 86 . strip_irc_formatting(join("\n", $evt->args))) 87 if BarnOwl::getvar('irc:spew') eq 'on'; 68 88 } 69 89 … … 83 103 } 84 104 105 # Determines if the given message recipient is a username, as opposed to 106 # a channel that starts with # or &. 107 sub is_private { 108 return shift !~ /^[\#\&]/; 109 } 85 110 86 111 1;
Note: See TracChangeset
for help on using the changeset viewer.