X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Fcommod-results-processor;h=36804d35d64c34f25f07fbb22a0de06ad8ee9454;hp=827cac45ebfc05ac9a5a628d15437d758a93de07;hb=757318e3924059c13338aada3b29d668c20f6c36;hpb=33f3a4cd5821208321f0bf61e2ae6c07504c8b86 diff --git a/yarrg/commod-results-processor b/yarrg/commod-results-processor index 827cac4..36804d3 100755 --- a/yarrg/commod-results-processor +++ b/yarrg/commod-results-processor @@ -29,7 +29,6 @@ use strict (qw(vars)); use HTTP::Request; use IO::File; use POSIX; -use LWP::UserAgent; use XML::Parser; use Commods; @@ -129,16 +128,18 @@ sub main__arbitrage () { $info.= sprintf("%-13.13s| %-19.19s %4d| %-19.19s %4d|%3d x%3d =%3d\n", $commod, - $buys[0]{Stall},$buys[0]{Price}, $sells[0]{Stall},$sells[0]{Price}, + $buys[0]{Stall},$buys[0]{Price}, $qty, $pricediff, $tprofit); sub arb_subtract_qty (\@) { my ($verbs) = @_; my $verb= shift @$verbs; + my $vqty= $verb->{Qty}; + $vqty =~ s/^\>//; unshift @$verbs, { Stall => $verb->{Stall}, Price => $verb->{Price}, - Qty => $verb->{Qty} - $qty + Qty => $vqty - $qty }; } arb_subtract_qty(@buys); @@ -228,7 +229,7 @@ sub main__tsv () { our ($pctb) = $ENV{'YPPSC_YARRG_PCTB'}; -our ($ua)= LWP::UserAgent->new; +our ($ua)= http_useragent("commod-results-processor $mode"); sub refresh_commodmap() { die unless $pctb; @@ -286,7 +287,16 @@ sub refresh_commodmap() { my $content= $resp->content; # print STDERR "[[[$content]]]\n"; - $xp->parse($content); + my $commodmapxmltmp= '_commodmap.xml'; + if (!eval { + $xp->parse($content); 1; + }) { + open R, ">./$commodmapxmltmp" or die $!; + print R $content or die $!; + close R or die $!; + die "$@ parsing commodmap"; + } + unlink $commodmapxmltmp or $!==&ENOENT or die $!; close $o or die $!; rename "_commodmap.tsv.tmp","_commodmap.tsv" or die $!; } @@ -310,17 +320,8 @@ sub read_newcommods ($) { } sub refresh_newcommods() { - my $rsync= $ENV{'YPPSC_YARRG_RSYNC'}; - $rsync= 'rsync' if !defined $rsync; - - my $local= "_master-newcommods.txt"; - my $src= $ENV{'YPPSC_YARRG_DICT_UPDATE'}; - if ($src) { - my $remote= "$src/master-newcommods.txt"; - $!=0; system 'rsync','-Lt','--',$remote,$local; - die "$? $!" if $! or $?; - } - read_newcommods($local); + my $master= fetch_with_rsync('newcommods'); + read_newcommods($master); read_newcommods('_local-newcommods.txt'); } @@ -438,12 +439,14 @@ sub gzip ($) { return pipethrough_run($tf,undef,'gzip','gzip'); } -sub main__uploadyaarg () { +sub main__uploadyarrg () { my %o; + + parse_info_clientside(); + $o{'ocean'}= $ENV{'YPPSC_OCEAN'} or die; $o{'island'}= $ENV{'YPPSC_ISLAND'} or die; - $o{'timestamp'}= 10; - get_our_version(\%o, 'client'); + $o{'timestamp'}= $ENV{'YPPSC_DATA_TIMESTAMP'} or die; my $tf= pipethrough_prep(); write_tsv($tf); @@ -452,10 +455,10 @@ sub main__uploadyaarg () { Content_Type => 'application/octet-stream', Content => $oz ]; - my $dest= $ENV{'YPPSC_YAARG_SUBMIT'}; - - my $respcontent= cgipostform($ua, "$dest/commod-update-receiver", \%o); + my $respcontent= yarrgpostform($ua, \%o); $respcontent =~ m/^OK\b/ or die "$respcontent ?"; + $respcontent =~ s/^/ /mg; + print $respcontent,"\n"; } sub main__uploadpctb () {