[1148] in BarnOwl Developers
[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;