X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXCommandmode.pm;h=7371a8690ab781391150847d33b86d02747d0a9e;hb=5764cc1c0f79b56fdf5389d2b0dcb2ab7e54723d;hp=7b69ad22c1b17d4e462f588b196418e5121c04d0;hpb=fe4f4e3751da3786d25df2fe2fba104523de095d;p=spider.git diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index 7b69ad22..7371a869 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -35,6 +35,8 @@ use Net::Telnet; use QSL; use DB_File; use VE7CC; +use Thingy; +use Thingy::Dx; use strict; use vars qw(%Cache %cmd_cache $errstr %aliases $scriptbase $maxerrors %nothereslug $maxbadcount $msgpolltime); @@ -51,7 +53,7 @@ $msgpolltime = 3600; # the time between polls for new messages use vars qw($VERSION $BRANCH); $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); -$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /^\d+\.\d+(?:\.(\d+)\.(\d+))?$/ || (0,0)); $main::build += $VERSION; $main::branch += $BRANCH; @@ -129,7 +131,12 @@ sub start # decide which motd to send - my $motd = "${main::motd}_nor" unless $self->{registered}; + my $motd; + unless ($self->{registered}) { + $motd = "${main::motd}_nor_$self->{lang}"; + $motd = "${main::motd}_nor" unless -e $motd; + } + $motd = "${main::motd}_$self->{lang}" unless $motd && -e $motd; $motd = $main::motd unless $motd && -e $motd; $self->send_file($motd) if -e $motd; @@ -839,65 +846,6 @@ sub chat $self->local_send('C', $buf); } -sub format_dx_spot -{ - my $self = shift; - - my $t = ztime($_[2]); - my $loc = ''; - my $clth = $self->{consort} eq 'local' ? 29 : 30; - my $comment = substr $_[3], 0, $clth; - $comment .= ' ' x ($clth - length($comment)); - if ($self->{user}->wantgrid) { - my $ref = DXUser->get_current($_[4]); - if ($ref) { - $loc = $ref->qra || ''; - $loc = ' ' . substr($loc, 0, 4) if $loc; - } - } - - if ($self->{user}->wantdxitu) { - $loc = ' ' . sprintf("%2d", $_[10]) if defined $_[10]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $_[8]) if defined $_[8]; - } elsif ($self->{user}->wantdxcq) { - $loc = ' ' . sprintf("%2d", $_[11]) if defined $_[11]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . sprintf("%2d", $_[9]) if defined $_[9]; - } elsif ($self->{user}->wantusstate) { - $loc = ' ' . $_[13] if $_[13]; - $comment = substr($comment, 0, $self->{consort} eq 'local' ? 26 : 27) . ' ' . $_[12] if $_[12]; - } - - return sprintf "DX de %-7.7s%11.1f %-12.12s %-s $t$loc", "$_[4]:", $_[0], $_[1], $comment; -} - -# send a dx spot -sub dx_spot -{ - my $self = shift; - my $line = shift; - my $isolate = shift; - return unless $self->{dx}; - - my ($filter, $hops); - - if ($self->{spotsfilter}) { - ($filter, $hops) = $self->{spotsfilter}->it(@_ ); - return unless $filter; - } - - dbg('spot: "' . join('","', @_) . '"') if isdbg('dxspot'); - - my $buf; - if ($self->{ve7cc}) { - $buf = VE7CC::dx_spot($self, @_); - } else { - $buf = $self->format_dx_spot(@_); - $buf .= "\a\a" if $self->{beep}; - $buf =~ s/\%5E/^/g; - } - - $self->local_send('X', $buf); -} sub wwv { @@ -958,7 +906,7 @@ sub do_entry_stuff my $loc = $self->{loc} || confess "local var gone missing" ; if ($line eq "\032" || $line eq '%1A' || uc $line eq "/EX") { no strict 'refs'; - push @out, $loc->{endaction}($self); + push @out, &{$loc->{endaction}}($self); # like this for < 5.8.0 $self->func(undef); $self->state('prompt'); } elsif ($line eq "\031" || uc $line eq "/ABORT" || uc $line eq "/QUIT") {