X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=pctb%2Fcommod-results-processor;h=504f295930f572f71b0c46020b505e6e2a9de9a1;hp=4a70ddf7767376ab8b9db5406750c257460e9c3c;hb=3c3e5dc8eae9b239f2dab871a3bd47222af09538;hpb=38e3d1bf1be975c8edd6a166106ab2729d15249c diff --git a/pctb/commod-results-processor b/pctb/commod-results-processor index 4a70ddf..504f295 100755 --- a/pctb/commod-results-processor +++ b/pctb/commod-results-processor @@ -32,6 +32,8 @@ use POSIX; use LWP::UserAgent; use XML::Parser; +use Commods; + # $commod{'Hemp'}{Buy|Sell}{'stall'}{Stall} # $commod{'Hemp'}{Buy|Sell}{'stall'}{Price} # $commod{'Hemp'}{Buy|Sell}{'stall'}{Qty} @@ -217,23 +219,10 @@ sub main__tsv () { } -our (%commodmap); our ($pctb) = $ENV{'YPPSC_PCTB_PCTB'}; our ($ua)= LWP::UserAgent->new; -sub load_commodmap() { - undef %commodmap; - my $c= new IO::File "_commodmap.tsv"; - if (!$c) { $!==&ENOENT or die $!; return; } - while (<$c>) { - m/^(\S.*\S)\t(\d+)\n$/ or die "$_"; - $commodmap{$1}= $2; - } - $c->error and die $!; - close $c; -} - sub refresh_commodmap() { die unless $pctb; $pctb =~ s,/*$,,; @@ -245,7 +234,7 @@ sub refresh_commodmap() { my $intag=''; my %got; my $o= new IO::File "_commodmap.tsv.tmp",'w' or die $!; - undef %commodmap; + undef %pctb_commodmap; my $xp= new XML::Parser (Handlers => @@ -275,8 +264,8 @@ sub refresh_commodmap() { my $index= $1; $_= $got{'name'}; s/^\s+//; s/\s+$//; s/\n/ /g; s/\s+/ /; - die "$_ ?" if exists $commodmap{$_}; - $commodmap{$_}= $index; + die "$_ ?" if exists $pctb_commodmap{$_}; + $pctb_commodmap{$_}= $index; print $o "$_\t$index\n" or die $!; } elsif (lc $_ eq $intag) { $got{$intag}= $cdata; @@ -336,8 +325,8 @@ sub bs_gen_md ($$) { my $o= ''; foreach $commod ( - sort { $commodmap{$a} <=> $commodmap{$b} } - grep { exists $commodmap{$_} } + sort { $pctb_commodmap{$a} <=> $pctb_commodmap{$b} } + grep { exists $pctb_commodmap{$_} } keys %commod ) { #print STDERR "COMMOD $commod\n"; @@ -345,7 +334,7 @@ sub bs_gen_md ($$) { my $l= bs_p($commod,$bs,$sortmul); next unless @$l; #print STDERR "COMMOD $commod has ".scalar(@$l)."\n"; - $o .= writeint($commodmap{$commod}); + $o .= writeint($pctb_commodmap{$commod}); $o .= writeint(scalar @$l); foreach my $cs (@$l) { $stall= $cs->{Stall}; @@ -381,14 +370,14 @@ our (%stalltypetoabbrevmap)= qw( sub genmarketdata () { our $version= '005b'; - load_commodmap(); - my @missing= grep { !exists $commodmap{$_} } keys %commod; + parse_pctb_commodmap(); + my @missing= grep { !exists $pctb_commodmap{$_} } keys %commod; if (@missing) { refresh_commodmap(); refresh_newcommods(); my $missing=0; foreach $commod (sort keys %commod) { - next if exists $commodmap{$commod}; + next if exists $pctb_commodmap{$commod}; if (exists $newcommods{$commod}) { printf STDERR "Ignoring new commodity \`%s'!\n", $commod; } else {