]> dxcluster.org Git - spider.git/blob - cmd/show/users.pl
fix count of callsigns
[spider.git] / cmd / show / users.pl
1 #
2 # show the users on this cluster from the routing tables
3 #
4 # Copyright (c) 1998 Dirk Koopman G1TLH
5 #
6 # $Id$
7 #
8
9 my ($self, $line) = @_;
10 my @list = map { uc } split /\s+/, $line; # list of callsigns of nodes
11 my @out;
12
13 if (@list) {
14         foreach my $call (sort @list) {
15                 my $uref = DXUser->get_current($call);
16                 if ($uref) {
17                         my $name = $uref->name || '?';
18                         my $qth = $uref->qth || '?';
19                         my $qra = $uref->qra || '';
20                         my $route = '';
21                         if (my $rref = Route::get($call)) {
22                                 $route = '(at ' . join(',', $rref->parents) . ')';
23                         }
24                         push @out, "$call $route $name $qth $qra",
25                 } else {
26                         push @out, $self->msg('usernf', $call);
27                 }
28         }
29 } else {
30         my $node = $main::routeroot;
31         push @out, "Callsigns connected to $main::mycall";
32         my $call;
33         my $i = 0;
34         my @l;
35         my @val = sort $node->users;
36         foreach $call (@val) {
37                 if ($i >= 5) {
38                         push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l;
39                         @l = ();
40                         $i = 0;
41                 }
42                 my $uref = Route::User::get($call);
43                 my $s = $call;
44                 if ($uref) {
45                         $s = sprintf "(%s)", $call unless $uref->here;
46                 } else {
47                         $s = "$call?";
48                 }
49                 push @l, $s;
50                 $i++;
51         }
52         push @l, "" while $i++ < 5;
53         push @out, sprintf "%-12s %-12s %-12s %-12s %-12s", @l;
54 }
55
56 return (1, @out);
57