From fdf4e5538945f9d058f3ad54ddfe707b0977e1d4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 18 Oct 2009 16:29:33 +0100 Subject: [PATCH] routetrade: include data age summary --- yarrg/web/query_age | 61 +++++++++++++++++++++++++++----------------- yarrg/web/routetrade | 51 +++++++++++++++++++++++++++++++++--- 2 files changed, 86 insertions(+), 26 deletions(-) diff --git a/yarrg/web/query_age b/yarrg/web/query_age index d9b234d..f9466d3 100644 --- a/yarrg/web/query_age +++ b/yarrg/web/query_age @@ -46,31 +46,42 @@ $dbh <%perl> my $now= time; -my $row; my $sth= $dbh->prepare("SELECT archipelago, islandid, islandname, timestamp FROM uploads NATURAL JOIN islands - ORDER BY archipelago, islandid"); + ORDER BY archipelago, islandname"); $sth->execute(); +<& SELF:pageload &> +<%method pageload> <&| script &> da_pageload= Date.now(); +

Market data age

+<& SELF:agestable, now => $now, fetchrow => sub { $sth->fetchrow_hashref } &> + +<%method agestable> +<%args> + $now + $fetchrow + +% my $row; % my %da_ages; % my %ts_sortkeys; % $da_ages{'id_loaded'}= 0; % my $rowix= 0; -% while ($row=$sth->fetchrow_hashref) { +% while ($row= $fetchrow->()) { +% print STDERR "$row\n"; % my $rowid= "id_$row->{'islandid'}"; % my $cellid= "c$rowid"; % my $age= $now - $row->{'timestamp'}; @@ -84,44 +95,48 @@ $sth->execute(); % $rowix++; % }
Archipelago Island Age
+<& SELF:dataages, id2age => \%da_ages, + jsprefix => 'dat_', elemidprefix => "'c'+" &> + +<&| tabsort, table => 'ts_table', rowclass => 'datarow', cols => [ + {}, {}, + { DoReverse => 1, + Numeric => 1, + SortKey => "da_ages[rowid]" }] + &> + ts_sortkeys= <% to_json_protecttags(\%ts_sortkeys) %>; + +

+% print $m->content(); +Time since this page loaded: +(not known; times above not updating) + + -<& SELF:dataages, id2age => \%da_ages, elemidprefix => "'c'+" &> <%method dataages> <%args> $id2age $elemidprefix => '' + $jsprefix => 'da_' <&| script &> - function da_Refresh() { + function <% $jsprefix %>Refresh() { var now= Date.now(); debug('updating now='+now); - for (var ageid in da_ages) { - var oldage= da_ages[ageid]; + for (var ageid in <% $jsprefix %>ages) { + var oldage= <% $jsprefix %>ages[ageid]; var el= document.getElementById(<% $elemidprefix %>ageid); var age= oldage + (now - da_pageload) / 1000; var newhtml= <% meta_prettyprint_age('age','Math.floor','+') %>; el.innerHTML= newhtml; } } - da_ages= <% to_json_protecttags($id2age) %>; - window.setInterval(da_Refresh, 10000); - register_onload(da_Refresh); + <% $jsprefix %>ages= <% to_json_protecttags($id2age) %>; + window.setInterval(<% $jsprefix %>Refresh, 10000); + register_onload(<% $jsprefix %>Refresh); -<&| tabsort, table => 'ts_table', rowclass => 'datarow', cols => [ - {}, {}, - { DoReverse => 1, - Numeric => 1, - SortKey => "da_ages[rowid]" }] - &> - ts_sortkeys= <% to_json_protecttags(\%ts_sortkeys) %>; - - -

-Time since this page loaded: -(not known; times above not updating) -

<& "lookup:formhidden", ours => sub { 0; } &> diff --git a/yarrg/web/routetrade b/yarrg/web/routetrade index 6148439..c6ed408 100644 --- a/yarrg/web/routetrade +++ b/yarrg/web/routetrade @@ -40,9 +40,7 @@ $dbh $qa $routeparams -<&| script &> - da_pageload= Date.now(); - +<& query_age:pageload &> <%perl> @@ -595,6 +593,7 @@ $addcols->({ Total => 0, DoReverse => 1, TotalSubflows => 1 }, qw(
  • Summary statistics % } +
  • Data age summary
  • Relevant trades @@ -782,6 +781,52 @@ Expected average profit: % % } # ========== TRADING PLAN ========== +% { +

    Data age summary

    +<%perl> + my $sth_i= $dbh->prepare(<prepare(<fetchrow_hashref(); + if ($row) { + next if $idone{$row->{'islandid'}}++; + return $row; + } + } + return undef if $ix < 0; + my $iid= $islandids[$ix]; + if (defined $iid) { + $sth_i->execute($iid); + $sth_current= $sth_i; + } else { + my $arch= $archipelagoes[$ix]; + die unless defined $arch && length $arch; + $sth_a->execute($arch); + $sth_current= $sth_a; + } + $ix--; + } + }; + +<&| query_age:agestable, now => $now, fetchrow => $fetchrow &> +Islands shown in reverse order of visits.
    + +% } + % my %ts_sortkeys; % { % my $cdspan= $qa->{ShowStalls} ? ' colspan=2' : ''; -- 2.30.2