[820] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[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};


home help back first fref pref prev next nref lref last post