added auto ping and obs count to dxchan
[spider.git] / cmd / show / sun.pl
index 5104e2276035d73d0b13a0f452aee701d89a7b09..1e9b9b06f84716ffc75aa0167057f414ca04dd20 100644 (file)
@@ -15,21 +15,41 @@ my ($sec, $min, $hr, $day, $month, $yr) = (gmtime($main::systime))[0,1,2,3,4,5];
 $month++;
 $yr += 1900;
 
-foreach $l (@list) {
-       # prefixes --->
-       my @ans = Prefix::extract($l);
-       next if !@ans;
-       my $pre = shift @ans;
-       my $a;
-       foreach $a (@ans) {
-               $lat = $a->{lat};
-               $lon = $a->{long};
-               $lat *= $d2r;
-               $lon *= -$d2r;
-               my $string=Sun::riseset($yr,$month,$day,$lat,$lon);
-               push @out,sprintf("%-2s   %s   %s",$pre,$a->name(),$string);
-               $l="";
+my @in;
+
+if (@list) {
+       foreach $l (@list) {
+               my $user = DXUser->get_current(uc $l);
+               if ($user && $user->lat && $user->long) {
+                       push @in, [$user->qth, $user->lat * $d2r, $user->long * -$d2r, uc $l ];
+               } else {
+                       # prefixes --->
+                       my @ans = Prefix::extract($l);
+                       next if !@ans;
+                       my $pre = shift @ans;
+                       my $a;
+                       foreach $a (@ans) {
+                               $lat = $a->{lat};
+                               $lon = $a->{long};
+                               $lat *= $d2r;
+                               $lon *= -$d2r;
+                               push @in, [ $a->name, $lat, $lon, $pre ];
+                       }
+               }
+       }
+} else {
+       if ($self->user->lat && $self->user->long) {
+               push @in, [$self->user->qth, $self->user->lat * $d2r, $self->user->long * -$d2r, $self->call ];
+       } else {
+               push @in, [$main::myqth, $main::mylatitude * $d2r, $main::mylogitude * -$d2r, $main::mycall ];
        }
 }
 
+foreach $l (@in) {
+       my $string=Sun::riseset($yr,$month,$day,$l->[1],$l->[2]);
+       push @out,sprintf("%-2s   %s   %s",$l->[3],$l->[0],$string);
+}
+
+                       
+
 return (1, @out);