X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=ND%2FWeb%2FPages%2FGraph.pm;h=599051a53cf40b42f1e5b9dc5f559918ea062829;hb=256609e2df07f5dd40a33ace6163d2b72a269246;hp=7b20efe97ebf34bd9a5564d72d9c1931a1cfb1ef;hpb=6fe6edd0f7b5e12d88ec0549252104e5a287888c;p=ndwebbie.git diff --git a/ND/Web/Pages/Graph.pm b/ND/Web/Pages/Graph.pm index 7b20efe..599051a 100644 --- a/ND/Web/Pages/Graph.pm +++ b/ND/Web/Pages/Graph.pm @@ -24,23 +24,17 @@ use CGI qw/:standard/; use ND::Include; use ND::Web::Graph; -$ND::PAGES{graph} = {parse => \&parse, process => \&process, render=> \&render}; +our @ISA = qw/ND::Web::Image/; -sub parse { - my ($uri) = @_; - $ND::USETEMPLATE = 0; -} +$ND::Web::Page::PAGES{graph} = 'ND::Web::Pages::Graph'; -sub process { - -} - -sub render { - my ($DBH,$uri) = @_; +sub render_body { + my $self = shift; + my $DBH = $self->{DBH}; my $type; my ($x,$y,$z); - if ($uri =~ m{^/\w+/(stats|ranks)/(.*)}){ + if ($self->{URI} =~ m{^/\w+/(stats|ranks)/(.*)}){ $type = $1; if ($2 =~ m{(\d+)(?: |:)(\d+)(?:(?: |:)(\d+))?$}){ $x = $1; @@ -72,28 +66,27 @@ sub render { if ($type eq 'stats'){ $query = $DBH->prepare(q{SELECT tick,score,size,value,xp*60 AS "xp*60" FROM planets natural join planet_stats WHERE id = planetid($1,$2,$3,$4) ORDER BY tick ASC}); }elsif($type eq 'ranks'){ - $query = $DBH->prepare(q{SELECT tick,scorerank,sizerank,valuerank,xprank FROM planets natural join planet_stats WHERE id = planetid($1,$2,$3,$4) ORDER BY tick ASC}); + $query = $DBH->prepare(q{SELECT tick,-scorerank AS score,-sizerank AS size,-valuerank AS value,-xprank AS xp FROM planets natural join planet_stats WHERE id = planetid($1,$2,$3,$4) ORDER BY tick ASC}); } $query->execute($x,$y,$z,$ND::TICK) or die $DBH->errstr; }else{ if ($type eq 'stats'){ $query = $DBH->prepare(q{SELECT tick,score,size,value,xp*60 AS "xp*60" FROM galaxies WHERE x = $1 AND y = $2 ORDER BY tick ASC}); }elsif($type eq 'ranks'){ - $query = $DBH->prepare(q{SELECT tick,scorerank,sizerank,valuerank,xprank FROM galaxies WHERE x = $1 AND y = $2 ORDER BY tick ASC}); + $query = $DBH->prepare(q{SELECT tick,-scorerank AS score,-sizerank AS size,-valuerank AS value,-xprank AS xp FROM galaxies WHERE x = $1 AND y = $2 ORDER BY tick ASC}); } $query->execute($x,$y) or die $DBH->errstr; } $graph_settings{two_axes} = 1; $graph_settings{use_axis} = [2,1,2,2]; + $graph_settings{y_max_value} = 0 if $type eq 'ranks'; $img = graphFromQuery 500,300,\%graph_settings,$query; } die 'no image' unless defined $img; - print header(-type=> 'image/png', -Content_Length => length $img); - binmode STDOUT; - print $img; -} + return $img; +}; 1;