chiark / gitweb /
Make colourful pages pass W3C HTML and CSS validators
[ypp-sc-tools.db-test.git] / yarrg / commod-results-processor
index 827cac4..36804d3 100755 (executable)
@@ -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 () {