[435] in BarnOwl Developers

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

[D-O-H] r565 - trunk/owl/perl/modules

daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:06:07 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: Wed, 24 Jan 2007 22:30:50 -0500 (EST)

Author: asedeno
Date: 2007-01-24 22:30:47 -0500 (Wed, 24 Jan 2007)
New Revision: 565

Modified:
   trunk/owl/perl/modules/jabber.pl
Log:
* Help for jroster
* replysendercmd for groupchat
* Tweak to resolveDestJID to not be as broken



Modified: trunk/owl/perl/modules/jabber.pl
===================================================================
--- trunk/owl/perl/modules/jabber.pl	2007-01-24 22:24:09 UTC (rev 564)
+++ trunk/owl/perl/modules/jabber.pl	2007-01-25 03:30:47 UTC (rev 565)
@@ -254,7 +254,7 @@
             $conn->removeConnection($jid);
             BarnOwl::error("Connection for $jid undefined -- error in reload?");
         }
-        
+
         my $status = $client->Process(0);
         if ( !defined($status) ) {
             BarnOwl::error("Jabber account $jid disconnected!");
@@ -389,7 +389,24 @@
         jroster => \&cmd_jroster,
         {
             summary     => "Jabber Roster related commands.",
-            description => "jroster sends jabber commands related to rosters.\n\n",
+            description => "jroster sends jabber commands related to rosters.\n\n"
+              . "The following commands are available\n\n"
+              . "sub <jid>     Subscribe to <jid>'s presence. (implicit add)\n\n"
+              . "add <jid>     Adds <jid> to your roster.\n\n"
+              . "unsub <jid>   Unsubscribe from <jid>'s presence.\n\n"
+              . "remove <jid>  Removes <jid> to your roster. (implicit unsub)\n\n"
+              . "auth <jid>    Authorizes <jid> to subscribe to your presence.\n\n"
+              . "deauth <jid>  De-authorizes <jid>'s subscription to your presence.\n\n"
+              . "The following arguments are supported for all commands\n\n"
+              . "-a <jid>      Specify which account to make the roster changes on.\n"
+              . "              Required if you're signed into more than one account.\n\n"
+              . "The following arguments only work with the add and sub commands.\n\n"
+              . "-g <group>    Add <jid> to group <group>.\n"
+              . "              May be specified more than once, will not remove <jid> from any groups.\n\n"
+              . "-p            Purge. Removes <jid> from all groups.\n"
+              . "              May be combined with -g completely alter <jid>'s groups.\n\n"
+              . "-n <name>     Sets <name> as <jid>'s short name.\n\n"
+              . "Note: Unless -n is used, you can specify multiple <jid> arguments.\n",
             usage       => "jroster COMMAND ARGS"
         }
     );
@@ -401,7 +418,7 @@
     $jid->SetJID(shift);
     my $password = '';
     $password = shift if @_;
-    
+
     my $uid           = $jid->GetUserID();
     my $componentname = $jid->GetServer();
     my $resource      = $jid->GetResource() || 'owl';
@@ -491,7 +508,7 @@
 
     }
     delete $vars{jlogin_jid};
-    $vars{jlogin_password} =~ tr/\0-\377/x/;
+    $vars{jlogin_password} =~ tr/\0-\377/x/ if $vars{jlogin_password};
     delete $vars{jlogin_password};
     delete $vars{jlogin_havepass};
     delete $vars{jlogin_connhash};
@@ -583,7 +600,7 @@
     }
 
     my @candidates = guess_jwrite($from, $to);
-    
+
     unless(scalar @candidates) {
         die("Unable to resolve JID $to");
     }
@@ -600,7 +617,7 @@
 
 
     ($jwrite_from, $jwrite_to, $jwrite_type) = @{$candidates[0]};
-    
+
     $vars{jwrite} = {
         to      => $jwrite_to,
         from    => $jwrite_from,
@@ -619,7 +636,7 @@
             "Type your message below.  End with a dot on a line by itself.  ^C will quit."
            );
     }
-    
+
     my $cmd = "jwrite $jwrite_to -a $jwrite_from";
     $cmd .= " -t $jwrite_thread" if $jwrite_thread;
     $cmd .= " -t $jwrite_subject" if $jwrite_subject;
@@ -1179,6 +1196,13 @@
         $props{replycmd} .=
           " -a " . ( ( $dir eq 'out' ) ? $props{from} : $props{to} );
 
+        if ($dir eq 'out') {
+            $props{replysendercmd} = "jwrite ".$props{to}." -a ".$props{from};
+        }
+        else {
+            $props{replysendercmd} = "jwrite ".$props{from}." -a ".$props{to};
+        }
+
         $props{sender} = $nick || $room;
         $props{recipient} = $room;
 
@@ -1203,7 +1227,7 @@
           . $props{error};
     }
 
-    $props{replysendercmd} = $props{replycmd};
+    $props{replysendercmd} = $props{replycmd} unless $props{replysendercmd};
     return %props;
 }
 
@@ -1322,7 +1346,14 @@
         }
     }
 
-    return undef;
+    my @mucs = $conn->getConnectionFromJID($from)->MUCs;
+    for my $m (@mucs) {
+        if ($m->BaseJID eq $to) {
+            return $m->BaseJID;
+        }
+    }
+
+    return $to;
 }
 
 sub resolveType {
@@ -1364,7 +1395,7 @@
         my $type = resolveType($m->[1], $m->[0]);
         push @$m, $type;
     }
-    
+
     return @matches;
 }
 


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