X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=2357ec050d48cb52c1604b41f1a953cc6e3fef93;hb=0bd9d2811cc42417676a1b11b121681c2377d70a;hp=9f61312e87554d9d5576765f324ed84054e94f73;hpb=d48a80e399a780eb6a880870346a46e02f0e7972;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 9f61312e..2357ec05 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -11,9 +11,11 @@ package DXUser; require Exporter; @ISA = qw(Exporter); +use DXLog; use DB_File; +use Data::Dumper; use Fcntl; -use Carp; +use DXDebug; use strict; use vars qw(%u $dbm $filename %valid); @@ -42,8 +44,8 @@ $filename = undef; node => '0,Last Node', homenode => '0,Home Node', lockout => '9,Locked out?,yesno', # won't let them in at all - dxok => '9,DX Spots?,yesno', # accept his dx spots? - annok => '9,Announces?,yesno', # accept his announces? + dxok => '9,Accept DX Spots?,yesno', # accept his dx spots? + annok => '9,Accept Announces?,yesno', # accept his announces? reg => '0,Registered?,yesno', # is this user registered? lang => '0,Language', hmsgno => '0,Highest Msgno', @@ -55,6 +57,9 @@ $filename = undef; wanttalk => '0,Rec Talk,yesno', wantwx => '0,Rec WX,yesno', wantdx => '0,Rec DX Spots,yesno', + pingint => '9,Node Ping interval', + nopings => '9,Ping Obs Count', + wantlogininfo => '9,Login info req,yesno', ); no strict; @@ -113,15 +118,15 @@ sub new my $call = uc shift; # $call =~ s/-\d+$//o; - confess "can't create existing call $call in User\n!" if $u{$call}; +# confess "can't create existing call $call in User\n!" if $u{$call}; my $self = bless {}, $pkg; $self->{call} = $call; $self->{'sort'} = 'U'; - $self->{dxok} = 1; - $self->{annok} = 1; + $self->{dxok} = '1'; + $self->{annok} = '1'; $self->{lang} = $main::lang; - $u{call} = $self->encode(); + $self->put; return $self; } @@ -175,6 +180,7 @@ sub get_current sub put { my $self = shift; + confess "Trying to put nothing!" unless $self && ref $self; my $call = $self->{call}; $u{$call} = $self->encode(); } @@ -185,27 +191,11 @@ sub put sub encode { my $self = shift; - my $out; - my $f; - - $out = "bless( { "; - for $f (sort keys %$self) { - my $val = $$self{$f}; - if (ref $val) { # it's an array (we think) - $out .= "'$f'=>[ "; - foreach (@$val) { - my $s = $_; - $out .= "'$s',"; - } - $out .= " ],"; - } else { - $val =~ s/'/\\'/og; - $val =~ s/\@/\\@/og; - $out .= "'$f'=>q{$val},"; - } - } - $out .= " }, 'DXUser')"; - return $out; + my $dd = new Data::Dumper([$self]); + $dd->Indent(0); + $dd->Terse(1); + $dd->Quotekeys($] < 5.005 ? 1 : 0); + return $dd->Dumpxs; } # @@ -336,9 +326,10 @@ sub _want { my $n = shift; my $self = shift; + my $val = shift; my $s = "want$n"; - return $self->{$n} = shift if @_; - return defined $self->{$n} ? $self->{$n} : 1; + $self->{$s} = $val if defined $val; + return exists $self->{$s} ? $self->{$s} : 1; } sub wantbeep @@ -366,5 +357,18 @@ sub wantdx return _want('dx', @_); } +sub wanttalk +{ + return _want('talk', @_); +} + +sub wantlogininfo +{ + my $self = shift; + my $n = shift; + $self->{wantlogininfo} = $n if $n; + return exists $self->{wantlogininfo} ? $self->{wantlogininfo} : 0; +} + 1; __END__