[1148] in BarnOwl Developers

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

[D-O-H] r1095 - trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module

daemon@ATHENA.MIT.EDU (geofft@MIT.EDU)
Thu Oct 29 18:13:30 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
Date: Mon, 28 Jul 2008 10:07:48 -0400 (EDT)
To: dirty-owl-hackers@MIT.EDU
From: geofft@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU

Author: geofft
Date: 2008-07-28 10:07:48 -0400 (Mon, 28 Jul 2008)
New Revision: 1095

Modified:
   trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
Log:
Another angry commit -- add :jaway.

Modified: trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
===================================================================
--- trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm	2008-07-28 13:08:41 UTC (rev 1094)
+++ trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm	2008-07-28 14:07:48 UTC (rev 1095)
@@ -234,6 +234,13 @@
         }
     );
     BarnOwl::new_command(
+        jaway => \&cmd_jaway,
+        {
+            summary => "Set Jabber away / presence information",
+            usage   => "jaway [-s online|dnd|...] [<message>]"
+        }
+    );
+    BarnOwl::new_command(
         jlist => \&cmd_jlist,
         {
             summary => "Show your Jabber roster.",
@@ -756,6 +763,33 @@
     }
 }
 
+sub cmd_jaway {
+    my $cmd = shift;
+    local @ARGV = @_;
+    my $getopt = Getopt::Long::Parser->new;
+    my ($jid, $show);
+    my $p = new Net::Jabber::Presence;
+
+    $getopt->configure('pass_through', 'no_getopt_compat');
+    $getopt->getoptions(
+        'account=s' => \$jid,
+        'show=s'    => \$show
+    );
+    $jid ||= defaultJID();
+    if ($jid) {
+        $jid = resolveConnectedJID($jid);
+        return unless $jid;
+    }
+    else {
+        BarnOwl::error('You must specify an account with -a {jid}');
+    }
+
+    $p->SetShow($show eq "online" ? "" : $show) if $show;
+    $p->SetStatus(join(' ', @ARGV)) if @ARGV;
+    $conn->getConnectionFromJID($jid)->Send($p);
+}
+
+
 sub jroster_sub {
     my $jid = shift;
     my $name = shift;


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