projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add load/badip.pl
[spider.git]
/
perl
/
USDB.pm
diff --git
a/perl/USDB.pm
b/perl/USDB.pm
index 69e1ead083446e4fbf3fa5c43900299c1418aee9..2ecb8ce015af736d1d923700018698a196aac522 100644
(file)
--- a/
perl/USDB.pm
+++ b/
perl/USDB.pm
@@
-10,30
+10,27
@@
package USDB;
use strict;
use DXVars;
use strict;
use DXVars;
+use SysVar;
use DB_File;
use File::Copy;
use DXDebug;
use DB_File;
use File::Copy;
use DXDebug;
-
#use Compress::Zlib
;
+
use DXUtil
;
-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));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
+#use Compress::Zlib;
use vars qw(%db $present $dbfn);
use vars qw(%db $present $dbfn);
-$dbfn = "$main::data/usdb.v1";
+localdata_mv("usdb.v1");
+$dbfn = localdata("usdb.v1");
sub init
{
end();
sub init
{
end();
- if (tie %db, 'DB_File', $dbfn, O_RD
ONLY
, 0664, $DB_BTREE) {
+ if (tie %db, 'DB_File', $dbfn, O_RD
WR
, 0664, $DB_BTREE) {
$present = 1;
$present = 1;
- dbg("US Database loaded");
- } else {
- dbg("US Database not loaded");
+ return "US Database loaded";
}
}
+ return "US Database not loaded";
}
sub end
}
sub end
@@
-51,6
+48,29
@@
sub get
return @s;
}
return @s;
}
+sub _add
+{
+ my ($db, $call, $city, $state) = @_;
+
+ # lookup the city
+ my $s = uc "$city|$state";
+ my $ctyn = $db->{$s};
+ unless ($ctyn) {
+ my $no = $db->{'##'} || 1;
+ $ctyn = "#$no";
+ $db->{$s} = $ctyn;
+ $db->{$ctyn} = $s;
+ $no++;
+ $db->{'##'} = "$no";
+ }
+ $db->{uc $call} = $ctyn;
+}
+
+sub add
+{
+ _add(\%db, @_);
+}
+
sub getstate
{
return () unless $present;
sub getstate
{
return () unless $present;
@@
-65,6
+85,12
@@
sub getcity
return @s ? $s[0] : undef;
}
return @s ? $s[0] : undef;
}
+sub del
+{
+ my $call = uc shift;
+ delete $db{$call};
+}
+
#
# load in / update an existing DB with a standard format (GZIPPED)
# "raw" file.
#
# load in / update an existing DB with a standard format (GZIPPED)
# "raw" file.
@@
-95,9
+121,10
@@
sub load
my %dbn;
if (-e $dbfn ) {
my %dbn;
if (-e $dbfn ) {
- copy($dbfn, "$dbfn.
new") or return "cannot copy $dbfn -> $dbfn.new
$!";
+ copy($dbfn, "$dbfn.
old") or return "cannot copy $dbfn -> $dbfn.old
$!";
}
}
-
+
+ unlink "$dbfn.new";
tie %dbn, 'DB_File', "$dbfn.new", O_RDWR|O_CREAT, 0664, $a or return "cannot tie $dbfn.new $!";
# now write away all the files
tie %dbn, 'DB_File', "$dbfn.new", O_RDWR|O_CREAT, 0664, $a or return "cannot tie $dbfn.new $!";
# now write away all the files
@@
-105,6
+132,8
@@
sub load
for (@_) {
my $ofn = shift;
for (@_) {
my $ofn = shift;
+ return "Cannot find $ofn" unless -r $ofn;
+
# conditionally handle compressed files (don't cha just lurv live code, this is
# a rave from the grave and is "in memoriam Flossie" the ICT 1301G I learnt on.
# {for pedant computer historians a 1301G is an ICT 1301A that has been
# conditionally handle compressed files (don't cha just lurv live code, this is
# a rave from the grave and is "in memoriam Flossie" the ICT 1301G I learnt on.
# {for pedant computer historians a 1301G is an ICT 1301A that has been
@@
-113,7
+142,7
@@
sub load
if ($nfn =~ /.gz$/i) {
my $gz;
eval qq{use Compress::Zlib; \$gz = gzopen(\$ofn, "rb")};
if ($nfn =~ /.gz$/i) {
my $gz;
eval qq{use Compress::Zlib; \$gz = gzopen(\$ofn, "rb")};
- return "Cannot read compressed files $@
" if $@
;
+ return "Cannot read compressed files $@
$!" if $@ || !$gz
;
$nfn =~ s/.gz$//i;
my $of = new IO::File ">$nfn" or return "Cannot write to $nfn $!";
my ($l, $buf);
$nfn =~ s/.gz$//i;
my $of = new IO::File ">$nfn" or return "Cannot write to $nfn $!";
my ($l, $buf);
@@
-129,19
+158,9
@@
sub load
my $l = $_;
$l =~ s/[\r\n]+$//;
my ($call, $city, $state) = split /\|/, $l;
my $l = $_;
$l =~ s/[\r\n]+$//;
my ($call, $city, $state) = split /\|/, $l;
+
+ _add(\%dbn, $call, $city, $state);
- # lookup the city
- my $s = "$city|$state";
- my $ctyn = $dbn{$s};
- unless ($ctyn) {
- my $no = $dbn{'##'} || 1;
- $ctyn = "#$no";
- $dbn{$s} = $ctyn;
- $dbn{$ctyn} = $s;
- $no++;
- $dbn{'##'} = "$no";
- }
- $dbn{$call} = $ctyn;
$count++;
}
$of->close;
$count++;
}
$of->close;