[625] in BarnOwl Developers

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

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

daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:08:04 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: asedeno@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Mon,  4 Jun 2007 22:30:40 -0400 (EDT)

Author: asedeno
Date: 2007-06-04 22:30:39 -0400 (Mon, 04 Jun 2007)
New Revision: 727

Modified:
   trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
Log:
Adding 3 variables for the Jabber module.

* jabber:show_offline_buddies (bool, default=true)

If false, only contacts in your roster whose presence you are
subscribed to, and happen to be online.

* jabber:auto_away_timeout    (int, default 5)
* jabber:auto_xa_timeout      (int, default 15)

The timeouts, in minutes, for setting your jabber accounts auto-away
and auto-extended-away. Set to 0 to disable. Even if xa < away, you
will not transition from xa -> away.



Modified: trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
===================================================================
--- trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm	2007-06-04 04:46:55 UTC (rev 726)
+++ trunk/owl/perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm	2007-06-05 02:30:39 UTC (rev 727)
@@ -36,7 +36,7 @@
                            "IO::Socket::SSL from CPAN. \n");
             die("Not loading Jabber.par\n");
         }
-    }       
+    }
 }
 
 no warnings 'redefine';
@@ -67,6 +67,17 @@
         $BarnOwl::Hooks::mainLoop->add(\&onMainLoop);
         $BarnOwl::Hooks::getBuddyList->add(\&onGetBuddyList);
         $vars{show} = '';
+	BarnOwl::new_variable_bool("jabber:show_offline_buddies",
+				   { default => 1,
+				     summary => 'Show offline or pending buddies.'});
+	BarnOwl::new_variable_int("jabber:auto_away_timeout",
+				  { default => 5,
+				    summary => 'After minutes idle, auto away.',
+				  });
+	BarnOwl::new_variable_int("jabber:auto_xa_timeout",
+				  { default => 15,
+				    summary => 'After minutes idle, auto extended away.'
+				});
     } else {
         # Our owl doesn't support queue_message. Unfortunately, this
         # means it probably *also* doesn't support BarnOwl::error. So just
@@ -80,14 +91,16 @@
     return if ( !$conn->connected() );
 
     $vars{status_changed} = 0;
+    my $auto_away = BarnOwl::getvar('jabber:auto_away_timeout');
+    my $auto_xa = BarnOwl::getvar('jabber:auto_xa_timeout');
     my $idletime = BarnOwl::getidletime();
-    if ($idletime >= 900 && $vars{show} eq 'away') {
+    if ($auto_xa != 0 && $idletime >= (60 * $auto_xa) && ($vars{show} eq 'away' || $vars{show} eq '' )) {
         $vars{show} = 'xa';
-        $vars{status} = 'Auto extended-away after 15 minutes idle.';
+        $vars{status} = 'Auto extended-away after '.$auto_xa.' minute'.($auto_xa == 1 ? '' : 's').' idle.';
         $vars{status_changed} = 1;
-    } elsif ($idletime >= 300 && $vars{show} eq '') {
+    } elsif ($auto_away != 0 && $idletime >= (60 * $auto_away) && $vars{show} eq '') {
         $vars{show} = 'away';
-        $vars{status} = 'Auto away after 5 minutes idle.';
+        $vars{status} = 'Auto away after '.$auto_away.' minute'.($auto_away == 1 ? '' : 's').' idle.';
         $vars{status_changed} = 1;
     } elsif ($idletime == 0 && $vars{show} ne '') {
         $vars{show} = '';
@@ -139,6 +152,7 @@
         $blistStr = BarnOwl::Style::boldify($blistStr);
     }
     else {
+        return '' unless BarnOwl::getvar('jabber:show_offline_buddies') != 'on';
 	if ($jq{ask}) {
             $blistStr .= " [pending]";
 	}
@@ -194,7 +208,7 @@
     BarnOwl::new_command(
         jabberlogin => \&cmd_login,
         {
-            summary => "Log into jabber", 
+            summary => "Log into jabber",
             usage   => "jabberlogin JID [PASSWORD]"
         }
     );
@@ -378,7 +392,7 @@
     delete $vars{jlogin_havepass};
     delete $vars{jlogin_connhash};
     delete $vars{jlogin_authhash};
- 
+
     return "";
 }
 


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