X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=pctb%2Fcommod-results-processor;h=350ef366d0baa6fda394e4105a4ca624c6008681;hp=504f295930f572f71b0c46020b505e6e2a9de9a1;hb=a5ec88cc0c003b52afa18af3a97242fe891501b8;hpb=3c3e5dc8eae9b239f2dab871a3bd47222af09538 diff --git a/pctb/commod-results-processor b/pctb/commod-results-processor index 504f295..350ef36 100755 --- a/pctb/commod-results-processor +++ b/pctb/commod-results-processor @@ -193,29 +193,36 @@ sub main__bestprices () { } } -sub bs_p_tsv ($) { - my ($bs) = @_; +sub bs_p_tsv ($$) { + my ($f, $bs) = @_; if (exists $current->{$bs}{$stall}) { my $si= $current->{$bs}{$stall}; - printf("\t%d\t%s", $si->{Price}, $si->{Qty}) or die $!; + printf($f "\t%d\t%s", $si->{Price}, $si->{Qty}) or die $!; } else { - printf("\t\t") or die $!; + printf($f "\t\t") or die $!; } } -sub main__tsv () { +sub write_tsv ($) { + my ($f) = @_; foreach $commod (sort keys %commod) { $current= $commod{$commod}; my %stalls; map { $stalls{$_}=1; } keys %{ $current->{Buy} }; map { $stalls{$_}=1; } keys %{ $current->{Sell} }; foreach $stall (sort keys %stalls) { - printf("%s\t%s", $commod, $stall) or die $!; - bs_p_tsv(Buy); - bs_p_tsv(Sell); - print("\n") or die $!; + printf($f "%s\t%s", $commod, $stall) or die $!; + bs_p_tsv($f, Buy); + bs_p_tsv($f, Sell); + print($f "\n") or die $!; } } + $f->error and die $!; + $f->flush or die $!; +} + +sub main__tsv () { + write_tsv(\*STDOUT); } @@ -424,7 +431,34 @@ sub save_upload_html ($$) { close R or die $!; } -sub main__upload () { +sub gzip ($) { + my ($raw) = @_; + my $tf= pipethrough_prep(); + print $tf $raw or die $!; + return pipethrough_run($tf,undef,'gzip','gzip'); +} + +sub main__uploadyaarg () { + my %o; + $o{'ocean'}= $ENV{'YPPSC_OCEAN'} or die; + $o{'island'}= $ENV{'YPPSC_ISLAND'} or die; + $o{'timestamp'}= 10; + get_our_version(\%o, 'client'); + + my $tf= pipethrough_prep(); + write_tsv($tf); + my $oz= pipethrough_run_gzip($tf); + $o{'data'}= [ undef, 'deduped.tsv.gz', + Content_Type => 'application/octet-stream', + Content => $oz ]; + + my $dest= $ENV{'YPPSC_YAARG_SUBMIT'}; + + my $respcontent= cgipostform($ua, "$dest/commod-update-receiver", \%o); + $respcontent =~ m/^OK\b/ or die "$respcontent ?"; +} + +sub main__uploadpctb () { my $ocean= $ENV{'YPPSC_OCEAN'}; die unless $ocean; my $island= $ENV{'YPPSC_ISLAND'}; die unless $island; die unless $pctb; @@ -434,7 +468,7 @@ sub main__upload () { my $content= { 'marketdata' => [ undef, "marketdata.gz", Content_Type => 'application/gzip', - Content => $o + Content => gzip($o), ] };