X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy%2FDx.pm;h=feab1b94c83f93295d82b03beed5a9faf61ad445;hb=f942dabdab73e5841f16ead2a41a52d6b5b05eb8;hp=dd526ea53c9eb47519b9aeac219fc1a724bbb6ff;hpb=4d22d5fd3874e8292d82f84a777b99ff7d10402a;p=spider.git diff --git a/perl/Thingy/Dx.pm b/perl/Thingy/Dx.pm index dd526ea5..feab1b94 100644 --- a/perl/Thingy/Dx.pm +++ b/perl/Thingy/Dx.pm @@ -31,10 +31,9 @@ sub gen_Aranea $thing->{f} = $sd->[0]; $thing->{c} = $sd->[1]; $thing->{b} = $sd->[4] unless $thing->{user}; - unless ($sd->[7] eq $main::mycall) { - $thing->{t} = sprintf("%X", $sd->[2] / 60); - $thing->{o} = $sd->[7]; - } + my $t = int($sd->[2] / 60); + $thing->{t} = sprintf("%X", $t) unless $t eq int($main::systime / 60); + $thing->{o} = $sd->[7] unless $sd->[7] eq $main::mycall; $thing->{i} = $sd->[3] if $sd->[3]; $thing->{Aranea} = Aranea::genmsg($thing, [qw(f c b t o i)]); } @@ -46,15 +45,17 @@ sub from_Aranea my $thing = shift; return unless $thing; my $t = hex($thing->{t}) if exists $thing->{t}; - $t ||= $thing->{time} / 60; # if it is an aranea generated + $t ||= int($thing->{time} / 60); # if it is an aranea generated + my $by = $thing->{b} || $thing->{fromuser} || $thing->{user} || $thing->{origin}; my @spot = Spot::prepare( $thing->{f}, $thing->{c}, $t*60, ($thing->{i} || ''), - ($thing->{b} || $thing->{fromuser} || $thing->{user} || $thing->{origin}), + $by, ($thing->{o} || $thing->{origin}), ); + $spot[4] = $by; # don't modify the spotter SSID $thing->{spotdata} = \@spot; return $thing; } @@ -65,10 +66,11 @@ sub gen_DXProt unless ($thing->{DXProt}) { my $sd = $thing->{spotdata}; my $hops = $thing->{hops} || DXProt::get_hops(11); + $hops = "H$hops" unless $hops =~ /^H/; my $text = $sd->[3] || ' '; - $text =~ s/\^/%5E/g; + $text =~ s/\^/\%5E/g; my $t = $sd->[2]; - $thing->{DXProt} = sprintf "PC11^%.1f^$sd->[1]^%s^%s^$text^$sd->[4]^$sd->[7]^$hops^~", $sd->[0], cldate($t), ztime($t); + $thing->{DXProt} = sprintf "PC11^%.1f^$sd->[1]^%s^%s^%s^$sd->[4]^$sd->[7]^$hops^~", $sd->[0], cldate($t), ztime($t), $text; } return $thing->{DXProt}; } @@ -109,7 +111,7 @@ sub handle my $dxchan = shift; my $spot = $thing->{spotdata}; - if (Spot::dup(@$spot[0..4])) { + if (Spot::dup(@$spot[0..4,5])) { dbg("PCPROT: Duplicate Spot ignored\n") if isdbg('chanerr'); return; }