X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=8bbd0fbcb6a5ad3fb4ef8f28ea644dca4a7fb00c;hb=7046b8ba37863c3040cee17e46d100675e720eaf;hp=4787ce3cdb3aa64ec89db82d53fd4ccd5f1880e9;hpb=c5e0ccf32bf5bc5689db60b907c24dcdd89c8eb5;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 4787ce3c..8bbd0fbc 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -61,7 +61,7 @@ $v3 = 0; annok => '9,Accept Announces?,yesno', # accept his announces? lang => '0,Language', hmsgno => '0,Highest Msgno', - group => '0,Access Group,parray', # used to create a group of users/nodes for some purpose or other + group => '0,Chat Group,parray', # used to create a group of users/nodes for some purpose or other isolate => '9,Isolate network,yesno', wantbeep => '0,Req Beep,yesno', wantann => '0,Req Announce,yesno', @@ -76,19 +76,24 @@ $v3 = 0; pingint => '9,Node Ping interval', nopings => '9,Ping Obs Count', wantlogininfo => '9,Login info req,yesno', - wantgrid => '0,DX Grid Info,yesno', + wantgrid => '0,Show DX Grid,yesno', wantann_talk => '0,Talklike Anns,yesno', wantpc90 => '1,Req PC90,yesno', - wantnp => '1,Req New Protocol,yesno', + wantnp => '1,Req New Proto,yesno', wantpc16 => '9,Want Users from node,yesno', wantsendpc16 => '9,Send PC16,yesno', wantroutepc19 => '9,Route PC19,yesno', + wantusstate => '0,Show US State,yesno', + wantdxcq => '0,Show CQ Zone,yesno', + wantdxitu => '0,Show ITU Zone,yesno', lastoper => '9,Last for/oper,cldatetime', nothere => '0,Not Here Text', registered => '9,Registered?,yesno', prompt => '0,Required Prompt', version => '1,Version', build => '1,Build', + believe => '1,Believable nodes,parray', + lastping => '1,Last Ping at,ptimelist', ); #no strict; @@ -130,6 +135,9 @@ sub init if ($@) { $ufn = "$fn.v2"; $v3 = $convert = 0; + dbg("the module Storable appears to be missing!!"); + dbg("trying to continue in compatibility mode (this may fail)"); + dbg("please install Storable from CPAN as soon as possible"); } else { import Storable qw(nfreeze thaw); @@ -586,6 +594,8 @@ sub sort } # some accessors + +# want is default = 1 sub _want { my $n = shift; @@ -596,6 +606,17 @@ sub _want return exists $self->{$s} ? $self->{$s} : 1; } +# wantnot is default = 0 +sub _wantnot +{ + my $n = shift; + my $self = shift; + my $val = shift; + my $s = "want$n"; + $self->{$s} = $val if defined $val; + return exists $self->{$s} ? $self->{$s} : 0; +} + sub wantbeep { return _want('beep', @_); @@ -656,6 +677,11 @@ sub wantpc16 return _want('pc16', @_); } +sub wantpc90 +{ + return _wantnot('pc90', @_); +} + sub wantsendpc16 { return _want('sendpc16', @_); @@ -666,6 +692,26 @@ sub wantroutepc16 return _want('routepc16', @_); } +sub wantusstate +{ + return _want('usstate', @_); +} + +sub wantdxcq +{ + return _want('dxcq', @_); +} + +sub wantdxitu +{ + return _want('dxitu', @_); +} + +sub wantnp +{ + return _wantnot('np', @_); +} + sub wantlogininfo { my $self = shift; @@ -733,6 +779,41 @@ sub unset_passphrase my $self = shift; delete $self->{passphrase}; } + +sub set_believe +{ + my $self = shift; + my $call = uc shift; + $self->{believe} ||= []; + push @{$self->{believe}}, $call unless grep $_ eq $call, @{$self->{believe}}; +} + +sub unset_believe +{ + my $self = shift; + my $call = uc shift; + if (exists $self->{believe}) { + $self->{believe} = [grep {$_ ne $call} @{$self->{believe}}]; + delete $self->{believe} unless @{$self->{believe}}; + } +} + +sub believe +{ + my $self = shift; + return exists $self->{believe} ? @{$self->{believe}} : (); +} + +sub lastping +{ + my $self = shift; + my $call = shift; + $self->{lastping} ||= {}; + $self->{lastping} = {} unless ref $self->{lastping}; + my $b = $self->{lastping}; + $b->{$call} = shift if @_; + return $b->{$call}; +} 1; __END__