[1052] in BarnOwl Developers

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

[D-O-H] r1034 - trunk/owl/perl/modules/IRC/lib/BarnOwl/Module

daemon@ATHENA.MIT.EDU (geofft@MIT.EDU)
Thu Oct 29 18:12:31 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
Date: Mon, 5 May 2008 14:56:52 -0400 (EDT)
To: dirty-owl-hackers@mit.edu
From: geofft@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU

Author: geofft
Date: 2008-05-05 14:56:52 -0400 (Mon, 05 May 2008)
New Revision: 1034

Modified:
   trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
Log:
IRC: /list, /who, and /stats commands

Modified: trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm
===================================================================
--- trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm	2008-05-03 16:52:32 UTC (rev 1033)
+++ trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC.pm	2008-05-05 18:56:52 UTC (rev 1034)
@@ -113,6 +113,9 @@
     BarnOwl::new_command('irc-names'      => \&cmd_names);
     BarnOwl::new_command('irc-whois'      => \&cmd_whois);
     BarnOwl::new_command('irc-motd'       => \&cmd_motd);
+    BarnOwl::new_command('irc-list'       => \&cmd_list);
+    BarnOwl::new_command('irc-who'        => \&cmd_who);
+    BarnOwl::new_command('irc-stats'      => \&cmd_stats);
 }
 
 $BarnOwl::Hooks::startup->add(\&startup);
@@ -145,14 +148,14 @@
         );
         $host = shift @ARGV or die("Usage: $cmd HOST\n");
         if(!$alias) {
-            if($host =~ /^(?:irc[.])?(\w+)[.]\w+$/) {
+            if($host =~ /^(?:irc[.])?([\w-]+)[.]\w+$/) {
                 $alias = $1;
             } else {
                 $alias = $host;
             }
         }
-        $port = shift @ARGV || 6667;
         $ssl ||= 0;
+        $port = shift @ARGV || ($ssl ? 6697 : 6667);
     }
 
     if(exists $ircnets{$alias}) {
@@ -274,6 +277,29 @@
     $conn->conn->motd;
 }
 
+sub cmd_list {
+    my $cmd = shift;
+    my $message = BarnOwl::Style::boldify('Current IRC networks:') . "\n";
+    while (my ($alias, $conn) = each %ircnets) {
+        $message .= '  ' . $alias . ' => ' . $conn->nick . '@' . $conn->server . "\n";
+    }
+    BarnOwl::popless_ztext($message);
+}
+
+sub cmd_who {
+    my $cmd = shift;
+    my $conn = get_connection(\@_);
+    my $who = shift || die("Usage: $cmd <user>\n");
+    $conn->conn->who($who);
+}
+
+sub cmd_stats {
+    my $cmd = shift;
+    my $conn = get_connection(\@_);
+    my $type = shift || die("Usage: $cmd <chiklmouy> [server] \n");
+    $conn->conn->stats($type, @_);
+}
+
 ################################################################################
 ########################### Utilities/Helpers ##################################
 ################################################################################


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