Changes in / [389d487:89701bb]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm
rb8a3e00 r8da4e96 171 171 our $showOffline = 0; 172 172 173 sub blist_getBuddyStatus { 174 my $jid = shift; 175 my $buddy = shift; 176 my $roster = $conn->getRosterFromJID($jid); 177 my %jq = $roster->query($buddy); 178 my $res = $roster->resource($buddy); 179 if ($res) { 180 my %rq = $roster->resourceQuery( $buddy, $res ); 181 return $rq{show} ? $rq{show} : 'online'; 182 } else { 183 return "unknown"; 184 } 185 } 186 173 187 sub blist_listBuddy { 174 188 my $roster = shift; … … 303 317 summary => "Show your Jabber roster.", 304 318 usage => "jlist" 319 } 320 ); 321 BarnOwl::new_command( 322 jabber_get_buddy_status => \&cmd_jabber_get_buddy_status, 323 { 324 summary => "Get the status of a given buddy.", 325 usage => "jabber_get_buddy_status [-a account] buddy" 305 326 } 306 327 ); … … 859 880 } 860 881 882 sub cmd_jabber_get_buddy_status { 883 my $cmd = shift; 884 local @ARGV = @_; 885 my $getopt = Getopt::Long::Parser->new; 886 my ($jid, $buddy); 887 888 $getopt->configure('no_getopt_compat'); 889 $getopt->getoptions( 890 'account=s' => \$jid, 891 ); 892 $jid ||= defaultJID(); 893 if ($jid) { 894 $jid = resolveConnectedJID($jid); 895 return unless $jid; 896 } 897 else { 898 die("You must specify an account with -a <jid>\n"); 899 } 900 $buddy = shift @ARGV; 901 if(!$buddy) { 902 die("You must specify a JID to get the status of.\n"); 903 } 904 my $buddy_jid = resolveDestJID($buddy, $jid); 905 return blist_getBuddyStatus($jid, $buddy_jid); 906 } 907 861 908 862 909 sub jroster_sub { … … 1482 1529 } 1483 1530 1531 sub complete_jabber_get_buddy_status { 1532 my $ctx = shift; 1533 return complete_flags($ctx, 1534 [qw()], 1535 { 1536 "-a" => \&complete_account, 1537 }, 1538 \&complete_user_or_muc 1539 ); 1540 } 1541 1484 1542 BarnOwl::Completion::register_completer(jwrite => sub { BarnOwl::Module::Jabber::complete_jwrite(@_) }); 1543 BarnOwl::Completion::register_completer(jabber_get_buddy_status => sub { BarnOwl::Module::Jabber::complete_jabber_get_buddy_status(@_) }); 1485 1544 1486 1545 1;
Note: See TracChangeset
for help on using the changeset viewer.