[820] in BarnOwl Developers
[D-O-H] r814 - / trunk/owl/perl/modules/IRC/lib/BarnOwl/Module
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:10:04 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Wed, 9 Jan 2008 23:14:21 -0500 (EST)
Author: nelhage
Date: 2008-01-09 23:14:20 -0500 (Wed, 09 Jan 2008)
New Revision: 814
Modified:
/
trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
Log:
r27181@lunatique: nelhage | 2008-01-09 23:13:52 -0500
Implement /part and /names. We don't parse the /names response yet
Property changes on:
___________________________________________________________________
Name: svk:merge
- 6122c8b4-0e12-0410-9533-8bcd7c66c992:/local/dirty-owl-hacks:27179
6aa88b72-b502-0410-8cb4-a5dd0230fb79:/owl-local:1356
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/barnowl:22510
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h:18636
+ 6122c8b4-0e12-0410-9533-8bcd7c66c992:/local/dirty-owl-hacks:27181
6aa88b72-b502-0410-8cb4-a5dd0230fb79:/owl-local:1356
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/barnowl:22510
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h:18636
Modified: trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
===================================================================
--- trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm 2008-01-09 19:32:01 UTC (rev 813)
+++ trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm 2008-01-10 04:14:20 UTC (rev 814)
@@ -63,8 +63,10 @@
BarnOwl::new_command('irc-connect' => \&cmd_connect);
BarnOwl::new_command('irc-disconnect' => \&cmd_disconnect);
BarnOwl::new_command('irc-msg' => \&cmd_msg);
- BarnOwl::new_command('irc-join' => \&cmd_join);
- BarnOwl::new_command('irc-nick' => \&cmd_nick);
+ BarnOwl::new_command('irc-join' => \&cmd_join);
+ BarnOwl::new_command('irc-part' => \&cmd_part);
+ BarnOwl::new_command('irc-nick' => \&cmd_nick);
+ BarnOwl::new_command('irc-names' => \&cmd_names);
}
$BarnOwl::Hooks::startup->add(\&startup);
@@ -147,7 +149,7 @@
$conn->privmsg($to, $body);
my $msg = BarnOwl::Message->new(
type => 'IRC',
- direction => 'out',
+ direction => is_private($to) ? 'out' : 'in',
server => $conn->server,
network => $conn->alias,
recipient => $to,
@@ -168,6 +170,13 @@
$conn->join($chan);
}
+sub cmd_part {
+ my $cmd = shift;
+ my $conn = get_connection(\@_);
+ my $chan = get_channel(\@_) || die("Usage: $cmd <channel>");
+ $conn->part($chan);
+}
+
sub cmd_nick {
my $cmd = shift;
my $conn = get_connection(\@_);
@@ -175,6 +184,13 @@
$conn->nick($nick);
}
+sub cmd_names {
+ my $cmd = shift;
+ my $conn = get_connection(\@_);
+ my $chan = get_channel(\@_) || die("Usage: $cmd <channel>");
+ $conn->names($chan);
+}
+
################################################################################
########################### Utilities/Helpers ##################################
################################################################################
@@ -195,6 +211,18 @@
die("You must specify a network with -a\n");
}
+sub get_channel {
+ my $args = shift;
+ if(scalar @$args) {
+ return shift @$args;
+ }
+ my $m = BarnOwl::getcurmsg();
+ if($m && $m->type eq 'IRC') {
+ return $m->channel if !$m->is_private;
+ }
+ return undef;
+}
+
sub get_connection_by_alias {
my $key = shift;
die("No such ircnet: $key\n") unless exists $ircnets{$key};