]> ruin.nu Git - ndwebbie.git/commitdiff
Converted rankings
authorMichael Andreen <harv@ruin.nu>
Sat, 21 Jun 2008 09:59:46 +0000 (11:59 +0200)
committerMichael Andreen <harv@ruin.nu>
Sat, 21 Jun 2008 09:59:46 +0000 (11:59 +0200)
14 files changed:
NDWeb/Pages/AllianceRankings.pm [deleted file]
NDWeb/Pages/GalaxyRankings.pm [deleted file]
NDWeb/Pages/PlanetRankings.pm [deleted file]
database/group_roles.sql
lib/NDWeb/Controller/Rankings.pm [new file with mode: 0644]
lib/NDWeb/Include.pm
root/lib/site/leftbar.tt2
root/src/rankings/alliances.tt2 [new file with mode: 0644]
root/src/rankings/galaxies.tt2 [new file with mode: 0644]
root/src/rankings/planets.tt2 [new file with mode: 0644]
t/controller_Rankings.t [new file with mode: 0644]
templates/alliancerankings.tmpl [deleted file]
templates/galaxyrankings.tmpl [deleted file]
templates/planetrankings.tmpl [deleted file]

diff --git a/NDWeb/Pages/AllianceRankings.pm b/NDWeb/Pages/AllianceRankings.pm
deleted file mode 100644 (file)
index 29bb2df..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#**************************************************************************
-#   Copyright (C) 2006 by Michael Andreen <harvATruinDOTnu>               *
-#                                                                         *
-#   This program is free software; you can redistribute it and/or modify  *
-#   it under the terms of the GNU General Public License as published by  *
-#   the Free Software Foundation; either version 2 of the License, or     *
-#   (at your option) any later version.                                   *
-#                                                                         *
-#   This program is distributed in the hope that it will be useful,       *
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-#   GNU General Public License for more details.                          *
-#                                                                         *
-#   You should have received a copy of the GNU General Public License     *
-#   along with this program; if not, write to the                         *
-#   Free Software Foundation, Inc.,                                       *
-#   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
-#**************************************************************************/
-
-package NDWeb::Pages::AllianceRankings;
-use strict;
-use warnings FATAL => 'all';
-use CGI qw/:standard/;
-use NDWeb::Include;
-
-use base qw/NDWeb::XMLPage/;
-
-$NDWeb::Page::PAGES{alliancerankings} = __PACKAGE__;
-
-sub parse {
-       #TODO: Need to fix some links first
-       #if ($uri =~ m{^/[^/]+/(\w+)}){
-       #       param('order',$1);
-       #}
-}
-
-sub render_body {
-       my $self = shift;
-       my ($BODY) = @_;
-       $self->{TITLE} = 'Top Alliances';
-       my $DBH = $self->{DBH};
-
-       return $self->noAccess unless $self->isMember;
-
-       my $error = '';
-
-       $BODY->param(isHC => $self->isHC);
-
-       my $offset = 0;
-       if (defined param('offset') && param('offset') =~ /^(\d+)$/){
-               $offset = $1;
-       }
-       $BODY->param(Offset => $offset);
-       $BODY->param(PrevOffset => $offset - 100);
-       $BODY->param(NextOffset => $offset + 100);
-
-       my $order = 'scorerank';
-       if (defined param('order') && param('order') =~ /^(scorerank|sizerank|members|avgsize|avgscore)$/){
-               $order = $1;
-       }
-       $BODY->param(Order => $order);
-       $order .= ' DESC' unless $order =~ /rank$/;
-
-
-       #my $extra_columns = '';
-       #if ($self->isHC){
-       #       $extra_columns = ",alliance_status,hit_us, alliance,relationship,nick";
-       #}
-       my $query = $DBH->prepare(qq{SELECT a.name,
-               size, size_gain, size_gain_day,
-               score,score_gain,score_gain_day,
-               avgsize,avgsize_gain,avgsize_gain_day,
-               avgscore,avgscore_gain,avgscore_gain_day,
-               sizerank,sizerank_gain,sizerank_gain_day,
-               scorerank,scorerank_gain,scorerank_gain_day,
-               members,members_gain,members_gain_day
-       FROM 
-               ( SELECT id, members,members_gain,members_gain_day, size, score, (size/members) AS avgsize, (score/members) AS avgscore, sizerank, scorerank, size_gain, score_gain, (size_gain/members) AS avgsize_gain, (score_gain/members) AS avgscore_gain, sizerank_gain, scorerank_gain, size_gain_day, score_gain_day, (size_gain_day/members) AS avgsize_gain_day, (score_gain_day/members) AS avgscore_gain_day, sizerank_gain_day, scorerank_gain_day
-                       FROM alliance_stats WHERE tick = (( SELECT max(tick) AS max FROM alliance_stats))) ast
-               NATURAL JOIN alliances a
-               ORDER BY $order LIMIT 100 OFFSET ?});
-       $query->execute($offset) or $error .= p($DBH->errstr);
-       my @alliances;
-       while (my $alliance = $query->fetchrow_hashref){
-               for my $type (qw/members size score avgsize avgscore/){
-                       #$alliance->{$type} = prettyValue($alliance->{$type});
-                       next unless defined $alliance->{"${type}_gain_day"};
-                       $alliance->{"${type}img"} = 'stay';
-                       $alliance->{"${type}img"} = 'up' if $alliance->{"${type}_gain_day"} > 0;
-                       $alliance->{"${type}img"} = 'down' if $alliance->{"${type}_gain_day"} < 0;
-                       if( $type eq 'size' || $type eq 'score'){
-                               $alliance->{"${type}rankimg"} = 'stay';
-                               $alliance->{"${type}rankimg"} = 'up' if $alliance->{"${type}rank_gain_day"} < 0;
-                               $alliance->{"${type}rankimg"} = 'down' if $alliance->{"${type}rank_gain_day"} > 0;
-                       }
-                       for my $type ($type,"${type}_gain","${type}_gain_day"){
-                               $alliance->{$type} =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; #Add comma for ever 3 digits, i.e. 1000 => 1,000
-                       }
-               }
-               push @alliances,$alliance;
-       }
-       $BODY->param(Alliances => \@alliances);
-       $BODY->param(Error => $error);
-       return $BODY;
-}
-
-1;
diff --git a/NDWeb/Pages/GalaxyRankings.pm b/NDWeb/Pages/GalaxyRankings.pm
deleted file mode 100644 (file)
index 318f4f4..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#**************************************************************************
-#   Copyright (C) 2006 by Michael Andreen <harvATruinDOTnu>               *
-#                                                                         *
-#   This program is free software; you can redistribute it and/or modify  *
-#   it under the terms of the GNU General Public License as published by  *
-#   the Free Software Foundation; either version 2 of the License, or     *
-#   (at your option) any later version.                                   *
-#                                                                         *
-#   This program is distributed in the hope that it will be useful,       *
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-#   GNU General Public License for more details.                          *
-#                                                                         *
-#   You should have received a copy of the GNU General Public License     *
-#   along with this program; if not, write to the                         *
-#   Free Software Foundation, Inc.,                                       *
-#   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
-#**************************************************************************/
-
-package NDWeb::Pages::GalaxyRankings;
-use strict;
-use warnings FATAL => 'all';
-use CGI qw/:standard/;
-use NDWeb::Include;
-
-use base qw/NDWeb::XMLPage/;
-
-$NDWeb::Page::PAGES{galaxyrankings} = __PACKAGE__;
-
-sub parse {
-       #TODO: Need to fix some links first
-       #if ($uri =~ m{^/[^/]+/(\w+)}){
-       #       param('order',$1);
-       #}
-}
-
-sub render_body {
-       my $self = shift;
-       my ($BODY) = @_;
-       $self->{TITLE} = 'Top Galaxies';
-       my $DBH = $self->{DBH};
-
-       return $self->noAccess unless $self->isMember;
-
-       my $error = '';
-
-       $BODY->param(isHC => $self->isHC);
-
-       my $offset = 0;
-       if (defined param('offset') && param('offset') =~ /^(\d+)$/){
-               $offset = $1;
-       }
-       $BODY->param(Offset => $offset);
-       $BODY->param(PrevOffset => $offset - 100);
-       $BODY->param(NextOffset => $offset + 100);
-
-       my $order = 'scorerank';
-       if (defined param('order') && param('order') =~ /^(scorerank|sizerank|planets|xprank|avgscore)$/){
-               $order = $1;
-       }
-       $BODY->param(Order => $order);
-       $order .= ' DESC' unless $order =~ /rank$/;
-
-
-       #my $extra_columns = '';
-       #if ($self->isHC){
-       #       $extra_columns = ",galaxy_status,hit_us, galaxy,relationship,nick";
-       #}
-       my $query = $DBH->prepare(qq{SELECT x,y,
-               size, size_gain, size_gain_day,
-               score,score_gain,score_gain_day,
-               value,value_gain,value_gain_day,
-               xp,xp_gain,xp_gain_day,
-               sizerank,sizerank_gain,sizerank_gain_day,
-               scorerank,scorerank_gain,scorerank_gain_day,
-               valuerank,valuerank_gain,valuerank_gain_day,
-               xprank,xprank_gain,xprank_gain_day,
-               planets,planets_gain,planets_gain_day
-       FROM galaxies g WHERE tick = ( SELECT max(tick) AS max FROM galaxies)
-       ORDER BY $order LIMIT 100 OFFSET ?});
-       $query->execute($offset) or $error .= p($DBH->errstr);
-       my @galaxies;
-       while (my $galaxy = $query->fetchrow_hashref){
-               for my $type (qw/planets size score xp value/){
-                       #$galaxy->{$type} = prettyValue($galaxy->{$type});
-                       next unless defined $galaxy->{"${type}_gain_day"};
-                       $galaxy->{"${type}img"} = 'stay';
-                       $galaxy->{"${type}img"} = 'up' if $galaxy->{"${type}_gain_day"} > 0;
-                       $galaxy->{"${type}img"} = 'down' if $galaxy->{"${type}_gain_day"} < 0;
-                       unless( $type eq 'planets'){
-                               $galaxy->{"${type}rankimg"} = 'stay';
-                               $galaxy->{"${type}rankimg"} = 'up' if $galaxy->{"${type}rank_gain_day"} < 0;
-                               $galaxy->{"${type}rankimg"} = 'down' if $galaxy->{"${type}rank_gain_day"} > 0;
-                       }
-                       for my $type ($type,"${type}_gain","${type}_gain_day"){
-                               $galaxy->{$type} =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; #Add comma for ever 3 digits, i.e. 1000 => 1,000
-                       }
-               }
-               push @galaxies,$galaxy;
-       }
-       $BODY->param(Galaxies => \@galaxies);
-       $BODY->param(Error => $error);
-       return $BODY;
-}
-
-1;
diff --git a/NDWeb/Pages/PlanetRankings.pm b/NDWeb/Pages/PlanetRankings.pm
deleted file mode 100644 (file)
index e744626..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#**************************************************************************
-#   Copyright (C) 2006 by Michael Andreen <harvATruinDOTnu>               *
-#                                                                         *
-#   This program is free software; you can redistribute it and/or modify  *
-#   it under the terms of the GNU General Public License as published by  *
-#   the Free Software Foundation; either version 2 of the License, or     *
-#   (at your option) any later version.                                   *
-#                                                                         *
-#   This program is distributed in the hope that it will be useful,       *
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
-#   GNU General Public License for more details.                          *
-#                                                                         *
-#   You should have received a copy of the GNU General Public License     *
-#   along with this program; if not, write to the                         *
-#   Free Software Foundation, Inc.,                                       *
-#   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
-#**************************************************************************/
-
-package NDWeb::Pages::PlanetRankings;
-use strict;
-use warnings FATAL => 'all';
-use CGI qw/:standard/;
-use NDWeb::Include;
-
-use base qw/NDWeb::XMLPage/;
-
-$NDWeb::Page::PAGES{planetrankings} = __PACKAGE__;
-
-sub parse {
-       #TODO: Need to fix some links first
-       #if ($uri =~ m{^/[^/]+/(\w+)}){
-       #       param('order',$1);
-       #}
-}
-
-sub render_body {
-       my $self = shift;
-       my ($BODY) = @_;
-       $self->{TITLE} = 'Top planets';
-       my $DBH = $self->{DBH};
-
-       return $self->noAccess unless $self->isMember;
-
-       my $error = '';
-
-       $BODY->param(isHC => $self->isHC);
-
-       my $offset = 0;
-       if (defined param('offset') && param('offset') =~ /^(\d+)$/){
-               $offset = $1;
-       }
-       $BODY->param(Offset => $offset);
-       $BODY->param(PrevOffset => $offset - 100);
-       $BODY->param(NextOffset => $offset + 100);
-
-       my $order = 'scorerank';
-       if (defined param('order') && param('order') =~ /^(scorerank|sizerank|valuerank|xprank|hit_us)$/){
-               $order = $1;
-       }
-       $BODY->param(Order => $order);
-       $order .= ' DESC' if ($order eq 'hit_us');
-
-
-       my $extra_columns = '';
-       if ($self->isHC){
-               $extra_columns = ",planet_status,hit_us, alliance,relationship,nick";
-       }
-       my $query = $DBH->prepare(qq{SELECT x,y,z,((ruler || ' OF ') || planet) as planet,race,
-               size, size_gain, size_gain_day,
-               score,score_gain,score_gain_day,
-               value,value_gain,value_gain_day,
-               xp,xp_gain,xp_gain_day,
-               sizerank,sizerank_gain,sizerank_gain_day,
-               scorerank,scorerank_gain,scorerank_gain_day,
-               valuerank,valuerank_gain,valuerank_gain_day,
-               xprank,xprank_gain,xprank_gain_day
-               $extra_columns FROM current_planet_stats_full ORDER BY $order LIMIT 100 OFFSET ?});
-       $query->execute($offset) or $error .= p($DBH->errstr);
-       my @planets;
-       while (my $planet = $query->fetchrow_hashref){
-               for my $type (qw/size score value xp/){
-                       #$planet->{$type} = prettyValue($planet->{$type});
-                       $planet->{"${type}img"} = 'stay';
-                       $planet->{"${type}img"} = 'up' if $planet->{"${type}_gain_day"} > 0;
-                       $planet->{"${type}img"} = 'down' if $planet->{"${type}_gain_day"} < 0;
-                       $planet->{"${type}rankimg"} = 'stay';
-                       $planet->{"${type}rankimg"} = 'up' if $planet->{"${type}rank_gain_day"} < 0;
-                       $planet->{"${type}rankimg"} = 'down' if $planet->{"${type}rank_gain_day"} > 0;
-                       for my $type ($type,"${type}_gain","${type}_gain_day"){
-                               $planet->{$type} =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; #Add comma for ever 3 digits, i.e. 1000 => 1,000
-                       }
-               }
-               push @planets,$planet;
-       }
-       $BODY->param(Planets => \@planets);
-       $BODY->param(Error => $error);
-       return $BODY;
-}
-
-1;
index b6165abbd3b55983fcb6b497bd5d12f430d8c9ed..20efb1fe7c3f987b1a6f6cfbcd54d83d6597a2c3 100644 (file)
@@ -1,10 +1,10 @@
 CREATE TABLE roles (
-       role VARCHAR(20) UNIQUE NOT NULL
+       role VARCHAR(32) UNIQUE NOT NULL
 );
 
 CREATE TABLE group_roles (
        gid INTEGER REFERENCES groups(gid),
-       role VARCHAR(20) REFERENCES roles(role)
+       role VARCHAR(32) REFERENCES roles(role)
 );
 
 INSERT INTO roles VALUES('member_menu');
@@ -15,6 +15,7 @@ INSERT INTO roles VALUES('intel_menu');
 INSERT INTO roles VALUES('attack_menu');
 INSERT INTO roles VALUES('no_fleet_update');
 INSERT INTO roles VALUES('admin_users');
+INSERT INTO roles VALUES('rankings_planet_intel');
 
 INSERT INTO group_roles (gid,role) VALUES(2,'member_menu');
 INSERT INTO group_roles (gid,role) VALUES(2,'attack_menu');
@@ -28,9 +29,11 @@ INSERT INTO group_roles (gid,role) VALUES(1,'bc_menu');
 INSERT INTO group_roles (gid,role) VALUES(1,'hc_menu');
 INSERT INTO group_roles (gid,role) VALUES(1,'intel_menu');
 INSERT INTO group_roles (gid,role) VALUES(1,'admin_users');
+INSERT INTO group_roles (gid,role) VALUES(1,'rankings_planet_intel');
 
 INSERT INTO group_roles (gid,role) VALUES(3,'dc_menu');
 INSERT INTO group_roles (gid,role) VALUES(3,'bc_menu');
 INSERT INTO group_roles (gid,role) VALUES(3,'hc_menu');
 INSERT INTO group_roles (gid,role) VALUES(3,'intel_menu');
 INSERT INTO group_roles (gid,role) VALUES(3,'admin_users');
+INSERT INTO group_roles (gid,role) VALUES(3,'rankings_planet_intel');
diff --git a/lib/NDWeb/Controller/Rankings.pm b/lib/NDWeb/Controller/Rankings.pm
new file mode 100644 (file)
index 0000000..30407c6
--- /dev/null
@@ -0,0 +1,186 @@
+package NDWeb::Controller::Rankings;
+
+use strict;
+use warnings;
+use parent 'Catalyst::Controller';
+
+use NDWeb::Include;
+
+=head1 NAME
+
+NDWeb::Controller::Rankings - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+
+=head2 index 
+
+=cut
+
+#sub index :Path :Args(0) {
+#    my ( $self, $c ) = @_;
+#
+#    $c->response->body('Matched NDWeb::Controller::Rankings in Rankings.');
+#}
+
+sub planets : Local {
+       my ( $self, $c, $order, $offset ) = @_;
+       my $dbh = $c->model;
+
+       my $error = '';
+
+       $offset = 0 unless $offset;
+       $c->stash(offset => $offset);
+
+       $c->stash( comma => \&comma_value);
+
+       if (defined $order && $order =~ /^(scorerank|sizerank|valuerank|xprank|hit_us)$/){
+               $order = $1;
+       }else {
+               $order = 'scorerank';
+       }
+       my $browse = qq{ORDER BY $order DESC LIMIT 100 OFFSET ?};
+       if ($order =~ /rank$/){
+               $browse = qq{WHERE $order > ? ORDER BY $order ASC LIMIT 100};
+       }
+       $c->stash(order => $order);
+
+       my $extra_columns = '';
+       if ($c->check_user_roles(qw/rankings_planet_intel/)){
+               $c->stash(extracolumns => 1);
+               $extra_columns = ",planet_status,hit_us, alliance,relationship,nick";
+       }
+
+       my $query = $dbh->prepare(qq{SELECT id,x,y,z,ruler,planet,race,
+               size, size_gain, size_gain_day,
+               score,score_gain,score_gain_day,
+               value,value_gain,value_gain_day,
+               xp,xp_gain,xp_gain_day,
+               sizerank,sizerank_gain,sizerank_gain_day,
+               scorerank,scorerank_gain,scorerank_gain_day,
+               valuerank,valuerank_gain,valuerank_gain_day,
+               xprank,xprank_gain,xprank_gain_day
+               $extra_columns FROM current_planet_stats_full
+               $browse
+               });
+       $query->execute($offset);
+       my @planets;
+       while (my $planet = $query->fetchrow_hashref){
+               push @planets,$planet;
+       }
+       $c->stash(planets => \@planets);
+}
+
+sub galaxies : Local {
+       my ( $self, $c, $order, $offset ) = @_;
+       my $dbh = $c->model;
+
+       my $error = '';
+
+       $offset = 0 unless $offset;
+       $c->stash(offset => $offset);
+
+       $c->stash( comma => \&comma_value);
+
+       if (defined $order && $order =~ /^(scorerank|sizerank|valuerank|xprank|planets)$/){
+               $order = $1;
+       }else{
+               $order = 'scorerank';
+       }
+       $c->stash(order => $order);
+
+       my $browse = qq{ORDER BY $order DESC LIMIT 100 OFFSET ?};
+       if ($order =~ /rank$/){
+               $browse = qq{AND $order > ? ORDER BY $order ASC LIMIT 100};
+       }
+       my $query = $dbh->prepare(qq{SELECT x,y,
+               size, size_gain, size_gain_day,
+               score,score_gain,score_gain_day,
+               value,value_gain,value_gain_day,
+               xp,xp_gain,xp_gain_day,
+               sizerank,sizerank_gain,sizerank_gain_day,
+               scorerank,scorerank_gain,scorerank_gain_day,
+               valuerank,valuerank_gain,valuerank_gain_day,
+               xprank,xprank_gain,xprank_gain_day,
+               planets,planets_gain,planets_gain_day
+               FROM galaxies g 
+               WHERE tick = ( SELECT max(tick) AS max FROM galaxies)
+               $browse
+               });
+       $query->execute($offset);
+       my @galaxies;
+       while (my $galaxy = $query->fetchrow_hashref){
+               push @galaxies,$galaxy;
+       }
+       $c->stash(galaxies => \@galaxies);
+}
+
+
+sub alliances : Local {
+       my ( $self, $c, $order, $offset ) = @_;
+       my $dbh = $c->model;
+
+       my $error = '';
+
+       $offset = 0 unless $offset;
+       $c->stash(offset => $offset);
+
+       $c->stash( comma => \&comma_value);
+
+       if (defined $order && $order =~ /^(scorerank|sizerank|valuerank|xprank|avgsize|avgscore|members)$/){
+               $order = $1;
+       }else{
+               $order = 'scorerank';
+       }
+       $c->stash(order => $order);
+
+       my $browse = qq{ORDER BY $order DESC LIMIT 100 OFFSET ?};
+       if ($order =~ /rank$/){
+               $browse = qq{WHERE $order > ? ORDER BY $order ASC LIMIT 100};
+       }
+       my $query = $dbh->prepare(qq{SELECT a.name,a.id,
+               size, size_gain, size_gain_day,
+               score,score_gain,score_gain_day,
+               avgsize,avgsize_gain,avgsize_gain_day,
+               avgscore,avgscore_gain,avgscore_gain_day,
+               sizerank,sizerank_gain,sizerank_gain_day,
+               scorerank,scorerank_gain,scorerank_gain_day,
+               members,members_gain,members_gain_day
+       FROM ( SELECT *, (size/members) AS avgsize
+                       ,(score/scoremem) AS avgscore
+                       ,(size_gain/members) AS avgsize_gain
+                       ,(score_gain/scoremem) AS avgscore_gain
+                       ,(size_gain_day/members) AS avgsize_gain_day
+                       ,(score_gain_day/scoremem) AS avgscore_gain_day
+                       FROM (SELECT *,(CASE WHEN members > 60 THEN 60 ELSE members END) AS scoremem
+                               FROM alliance_stats WHERE
+                                       tick = ( SELECT max(tick) AS max FROM alliance_stats)) ast2
+               ) ast
+               NATURAL JOIN alliances a
+               $browse
+               });
+       $query->execute($offset);
+       my @alliances;
+       while (my $alliance = $query->fetchrow_hashref){
+               push @alliances,$alliance;
+       }
+       $c->stash(alliances => \@alliances);
+}
+
+=head1 AUTHOR
+
+Michael Andreen (harv@ruin.nu)
+
+=head1 LICENSE
+
+GPL 2.0, or later
+
+=cut
+
+1;
index ff5a8825a20fc9f39ec0e62cea7ad0b6bdcfb389..4b94597e79c7857d63e92e6b4fbc3f317dd3d69e 100644 (file)
@@ -27,12 +27,19 @@ use CGI qw/:standard/;
 our @ISA = qw/Exporter/;
 
 our @EXPORT = qw/parseMarkup min max
-       alliances intelquery html_escape/;
+       alliances intelquery html_escape
+       comma_value/;
 
 sub html_escape($) {
        return CGI::escapeHTML @_;
 }
 
+sub comma_value ($) {
+       my ($v) = @_;
+       $v =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g;
+       return $v;
+}
+
 sub parseMarkup ($) {
        my ($text) = @_;
 
index e69075e7661c97a12c761aac2f13a855ad8a94cb..a456fb9268934fe1f40e3ca5142dc50875c0aca8 100644 (file)
@@ -1,5 +1,6 @@
 <ul class="linkbar">
        <li><a href="/index">Main page</a></li>
+
        <li><a href="/forum">Forum</a></li>
        <li><a href="/forum/search">Forum search</a></li>
 [% IF user %]
        </li>
 [% END %]
 </ul>  <p>Tick: [% game.tick %]</p>
+<ul class="linkbar">
+       <li><a href="/rankings/planets">Planet Rankings</a></li>
+       <li><a href="/rankings/alliances">Alliance Rankings</a></li>
+       <li><a href="/rankings/galaxies">Galaxy Rankings</a></li>
+</ul>
 [% IF c.check_user_roles("member_menu") %]
        [% IF user.attacker %]
 <p>Member menu</p>
@@ -27,9 +33,6 @@
        <li><a href="/launchConfirmation">Launch confirmation</a></li>
        <li><a href="/covop">CovOp targets</a></li>
        <li><a href="/covop?list=distwhores">Distwhores</a></li>
-       <li><a href="/planetrankings">Planet Rankings</a></li>
-       <li><a href="/alliancerankings">Alliance Rankings</a></li>
-       <li><a href="/galaxyrankings">Galaxy Rankings</a></li>
        <li><a href="/defrequest">Request defense</a></li>
 </ul>
        [% ELSE %]
diff --git a/root/src/rankings/alliances.tt2 b/root/src/rankings/alliances.tt2
new file mode 100644 (file)
index 0000000..8c95a4c
--- /dev/null
@@ -0,0 +1,40 @@
+[% META title = 'Alliance Rankings' %]
+<p><a href="[% c.uri_for('alliances', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('alliances', order, offset + 100) %]">Next 100</a>
+</p>
+<table class="stats">
+       <tr align="center"><th colspan="2">Rank</th>
+       </tr>
+       <tr>
+       <th><a href="[% c.uri_for('alliances', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('alliances', 'scorerank', offset) %]">Score</a></th>
+       <th>Name</th>
+       <th><a href="[% c.uri_for('alliances', 'members', offset) %]">Members</a></th>
+       <th><a href="[% c.uri_for('alliances', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('alliances', 'scorerank', offset) %]">Score</a></th>
+       <th><a href="[% c.uri_for('alliances', 'avgsize', offset) %]">Avg Size</a></th>
+       <th><a href="[% c.uri_for('alliances', 'avgscore', offset) %]">Avg Score</a></th>
+       </tr>
+[% FOR a IN alliances %]
+       <tr align="right" class="[% loop.count % 2 == 0 ? 'even' : 'odd' %]">
+               [% a.sizerankimg = (a.sizerank_gain_day == 0 ? 'stay' : (a.sizerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% a.sizerank_gain_day %] Today | [% a.sizerank_gain %] Tick">[% a.sizerank %] <img src="/static/images/[% a.sizerankimg %].png" alt="[% a.sizerankimg %]"> </td>
+               [% a.scorerankimg = (a.scorerank_gain_day == 0 ? 'stay' : (a.scorerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% a.scorerank_gain_day %] Today | [% a.scorerank_gain %] Tick">[% a.scorerank %] <img src="/static/images/[% a.scorerankimg %].png" alt="[% a.scorerankimg %]"> </td>
+               <td align="center">[% a.name %]</td>
+               [% a.membersimg = (a.members_gain_day == 0 ? 'stay' : (a.members_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% a.members_gain_day %] Today | [% a.members_gain %] Tick">[% a.members %] <img src="/static/images/[% a.membersimg %].png" alt="[% a.membersimg %]"> </td>
+               [% a.sizeimg = (a.size_gain_day == 0 ? 'stay' : (a.size_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(a.size_gain_day) %] Today | [% comma(a.size_gain) %] Tick">[% comma(a.size) %] <img src="/static/images/[% a.sizeimg %].png" alt="[% a.sizeimg %]"> </td>
+               [% a.scoreimg = (a.score_gain_day == 0 ? 'stay' : (a.score_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(a.score_gain_day) %] Today | [% comma(a.score_gain) %] Tick">[% comma(a.score) %] <img src="/static/images/[% a.scoreimg %].png" alt="[% a.scoreimg %]"> </td>
+               [% a.avgsizeimg = (a.avgsize_gain_day == 0 ? 'stay' : (a.avgsize_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(a.avgsize_gain_day) %] Today | [% comma(a.avgsize_gain) %] Tick">[% comma(a.avgsize) %] <img src="/static/images/[% a.avgsizeimg %].png" alt="[% a.avgsizeimg %]"> </td>
+               [% a.avgscoreimg = (a.avgscore_gain_day == 0 ? 'stay' : (a.avgscore_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(a.avgscore_gain_day) %] Today | [% comma(a.avgscore_gain) %] Tick">[% comma(a.avgscore) %] <img src="/static/images/[% a.avgscoreimg %].png" alt="[% a.avgscoreimg %]"> </td>
+       </tr>
+[% END %]
+</table>
+<p><a href="[% c.uri_for('alliances', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('alliances', order, offset + 100) %]">Next 100</a>
+</p>
diff --git a/root/src/rankings/galaxies.tt2 b/root/src/rankings/galaxies.tt2
new file mode 100644 (file)
index 0000000..869a3e6
--- /dev/null
@@ -0,0 +1,46 @@
+[% META title = 'Galaxy Rankings' %]
+<p><a href="[% c.uri_for('galaxies', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('galaxies', order, offset + 100) %]">Next 100</a>
+</p>
+<table class="stats">
+       <tr align="center"><th colspan="4">Rank</th>
+       </tr>
+       <tr>
+       <th><a href="[% c.uri_for('galaxies', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'scorerank', offset) %]">Score</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'valuerank', offset) %]">Value</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'xprank', offset) %]">XP</a></th>
+       <th>Coords</th>
+       <th><a href="[% c.uri_for('galaxies', 'planets', offset) %]">Planets</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'scorerank', offset) %]">Score</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'valuerank', offset) %]">Value</a></th>
+       <th><a href="[% c.uri_for('galaxies', 'xprank', offset) %]">XP</a></th>
+       </tr>
+       [% FOR g IN galaxies %]
+       <tr align="right" class="[% loop.count % 2 == 0 ? 'even' : 'odd' %]">
+               [% g.sizerankimg = (g.sizerank_gain_day == 0 ? 'stay' : (g.sizerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% g.sizerank_gain_day %] Today | [% g.sizerank_gain %] Tick">[% g.sizerank %] <img src="/static/images/[% g.sizerankimg %].png" alt="[% g.sizerankimg %]"> </td>
+               [% g.scorerankimg = (g.scorerank_gain_day == 0 ? 'stay' : (g.scorerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% g.scorerank_gain_day %] Today | [% g.scorerank_gain %] Tick">[% g.scorerank %] <img src="/static/images/[% g.scorerankimg %].png" alt="[% g.scorerankimg %]"> </td>
+               [% g.valuerankimg = (g.valuerank_gain_day == 0 ? 'stay' : (g.valuerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% g.valuerank_gain_day %] Today | [% g.valuerank_gain %] Tick">[% g.valuerank %] <img src="/static/images/[% g.valuerankimg %].png" alt="[% g.valuerankimg %]"> </td>
+               [% g.xprankimg = (g.xprank_gain_day == 0 ? 'stay' : (g.xprank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% g.xprank_gain_day %] Today | [% g.xprank_gain %] Tick">[% g.xprank %] <img src="/static/images/[% g.xprankimg %].png" alt="[% g.xprankimg %]"> </td>
+               <td><a href="[% c.uri_for('/stats','galaxy',g.x,g.y) %]">[% g.x %]:[% g.y %]</a></td>
+               [% g.planetsimg = (g.planets_gain_day == 0 ? 'stay' : (g.planets_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% g.planets_gain_day %] Today | [% g.planets_gain %] Tick">[% comma(g.planets) %] <img src="/static/images/[% g.planetsimg %].png" alt="[% g.planetsimg %]"> </td>
+               [% g.sizeimg = (g.size_gain_day == 0 ? 'stay' : (g.size_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% g.size_gain_day %] Today | [% g.size_gain %] Tick">[% comma(g.size) %] <img src="/static/images/[% g.sizeimg %].png" alt="[% g.sizeimg %]"> </td>
+               [% g.scoreimg = (g.score_gain_day == 0 ? 'stay' : (g.score_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(g.score_gain_day) %] Today | [% comma(g.score_gain) %] Tick">[% comma(g.score) %] <img src="/static/images/[% g.scoreimg %].png" alt="[% g.scoreimg %]"> </td>
+               [% g.valueimg = (g.value_gain_day == 0 ? 'stay' : (g.value_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(g.value_gain_day) %] Today | [% comma(g.value_gain) %] Tick">[% comma(g.value) %] <img src="/static/images/[% g.valueimg %].png" alt="[% g.valueimg %]"> </td>
+               [% g.xpimg = (g.xp_gain_day == 0 ? 'stay' : (g.xp_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(g.xp_gain_day) %] Today | [% comma(g.xp_gain) %] Tick">[% comma(g.xp) %] <img src="/static/images/[% g.xpimg %].png" alt="[% g.xpimg %]"> </td>
+       </tr>
+[% END %]
+</table>
+<p><a href="[% c.uri_for('galaxies', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('galaxies', order, offset + 100) %]">Next 100</a>
+</p>
diff --git a/root/src/rankings/planets.tt2 b/root/src/rankings/planets.tt2
new file mode 100644 (file)
index 0000000..a631abe
--- /dev/null
@@ -0,0 +1,59 @@
+[% META title = 'Planet Rankings' %]
+<p><a href="[% c.uri_for('planets', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('planets', order, offset + 100) %]">Next 100</a>
+</p>
+<table class="stats">
+       <tr align="center"><th colspan="4">Rank</th>
+       </tr>
+       <tr>
+       <th><a href="[% c.uri_for('planets', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('planets', 'scorerank', offset) %]">Score</a></th>
+       <th><a href="[% c.uri_for('planets', 'valuerank', offset) %]">Value</a></th>
+       <th><a href="[% c.uri_for('planets', 'xprank', offset) %]">XP</a></th>
+       <th>X</th><th>Y</th><th>Z</th><th>Planet</th><th>Race</th>
+       <th><a href="[% c.uri_for('planets', 'sizerank', offset) %]">Size</a></th>
+       <th><a href="[% c.uri_for('planets', 'scorerank', offset) %]">Score</a></th>
+       <th><a href="[% c.uri_for('planets', 'valuerank', offset) %]">Value</a></th>
+       <th><a href="[% c.uri_for('planets', 'xprank', offset) %]">XP</a></th>
+[% IF extracolumns %]
+       <th>Nick</th>
+       <th><a href="[% c.uri_for('planets', 'hit_us', offset) %]">Hit us</a></th>
+       <th>Alliance</th>
+[% END %]
+       </tr>
+[% FOR p IN planets %]
+       <tr align="right" class="[% loop.count % 2 == 0 ? 'even' : 'odd' %]">
+               [% p.sizerankimg = (p.sizerank_gain_day == 0 ? 'stay' : (p.sizerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% p.sizerank_gain_day %] Today | [% p.sizerank_gain %] Tick">[% p.sizerank %] <img src="/static/images/[% p.sizerankimg %].png" alt="[% p.sizerankimg %]"> </td>
+               [% p.scorerankimg = (p.scorerank_gain_day == 0 ? 'stay' : (p.scorerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% p.scorerank_gain_day %] Today | [% p.scorerank_gain %] Tick">[% p.scorerank %] <img src="/static/images/[% p.scorerankimg %].png" alt="[% p.scorerankimg %]"> </td>
+               [% p.valuerankimg = (p.valuerank_gain_day == 0 ? 'stay' : (p.valuerank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% p.valuerank_gain_day %] Today | [% p.valuerank_gain %] Tick">[% p.valuerank %] <img src="/static/images/[% p.valuerankimg %].png" alt="[% p.valuerankimg %]"> </td>
+               [% p.xprankimg = (p.xprank_gain_day == 0 ? 'stay' : (p.xprank_gain_day < 0 ? 'up' : 'down')) %]
+               <td title="[% p.xprank_gain_day %] Today | [% p.xprank_gain %] Tick">[% p.xprank %] <img src="/static/images/[% p.xprankimg %].png" alt="[% p.xprankimg %]"> </td>
+
+               <td>[% p.x %] </td>
+               <td><a href="[% c.uri_for('/stats','galaxy',p.x,p.y) %]">[% p.y %]</a></td>
+               <td><a href="[% c.uri_for('/stats','planet',p.id) %]">[% p.z %]</a></td>
+               <td align="center">[% p.ruler %] <b>OF</b> [% p.planet %]</td>
+               <td align="center">[% p.race %]</td>
+               [% p.sizeimg = (p.size_gain_day == 0 ? 'stay' : (p.size_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% p.size_gain_day %] Today | [% p.size_gain %] Tick">[% comma(p.size) %] <img src="/static/images/[% p.sizeimg %].png" alt="[% p.sizeimg %]"> </td>
+               [% p.scoreimg = (p.score_gain_day == 0 ? 'stay' : (p.score_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(p.score_gain_day) %] Today | [% comma(p.score_gain) %] Tick">[% comma(p.score) %] <img src="/static/images/[% p.scoreimg %].png" alt="[% p.scoreimg %]"> </td>
+               [% p.valueimg = (p.value_gain_day == 0 ? 'stay' : (p.value_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(p.value_gain_day) %] Today | [% comma(p.value_gain) %] Tick">[% comma(p.value) %] <img src="/static/images/[% p.valueimg %].png" alt="[% p.valueimg %]"> </td>
+               [% p.xpimg = (p.xp_gain_day == 0 ? 'stay' : (p.xp_gain_day > 0 ? 'up' : 'down')) %]
+               <td title="[% comma(p.xp_gain_day) %] Today | [% comma(p.xp_gain) %] Tick">[% comma(p.xp) %] <img src="/static/images/[% p.xpimg %].png" alt="[% p.xpimg %]"> </td>
+
+       [% IF extracolumns %]
+       <td align="center" class="[% p.planet_status %]"><a href="[% c.uri_for('/intel','planet',p.id) %]">[% p.nick %]([% p.planet_stats %])</a></td>
+       <td>[% p.hit_us %]</td>
+       <td align="center" class="[% p.relationship %]">[% p.alliance %]</td>
+       [% END %]
+       </tr>
+[% END %]
+</table>
+<p><a href="[% c.uri_for('planets', order, offset - 100) %]">Previous 100</a>
+       <a href="[% c.uri_for('planets', order, offset + 100) %]">Next 100</a>
+</p>
diff --git a/t/controller_Rankings.t b/t/controller_Rankings.t
new file mode 100644 (file)
index 0000000..bde6b91
--- /dev/null
@@ -0,0 +1,10 @@
+use strict;
+use warnings;
+use Test::More tests => 3;
+
+BEGIN { use_ok 'Catalyst::Test', 'NDWeb' }
+BEGIN { use_ok 'NDWeb::Controller::Rankings' }
+
+ok( request('/rankings')->is_success, 'Request should succeed' );
+
+
diff --git a/templates/alliancerankings.tmpl b/templates/alliancerankings.tmpl
deleted file mode 100644 (file)
index a44bbf1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<TMPL_VAR NAME=Error>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>
-<table class="stats">
-       <tr align="center"><th colspan="2">Rank</th>
-       </tr>
-       <tr>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th>Name</th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=members">Members</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=avgsize">Avg Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=avgscore">Avg Score</a></th>
-       <TMPL_IF isHC>
-       </TMPL_IF>
-       </tr>
-       <TMPL_LOOP Alliances>
-       <tr align="right" class="<TMPL_IF __odd__>odd<TMPL_ELSE>even</TMPL_IF>">
-               <td title="<TMPL_VAR NAME=SizeRank_Gain_day> Today | <TMPL_VAR NAME=SizeRank_Gain> Tick"><TMPL_VAR NAME=SizeRank> <img src="/images/<TMPL_VAR NAME=SizeRankImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=ScoreRank_Gain_day> Today | <TMPL_VAR NAME=ScoreRank_Gain> Tick"><TMPL_VAR NAME=ScoreRank> <img src="/images/<TMPL_VAR NAME=ScoreRankImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-
-               <td align="center"><TMPL_VAR NAME=Name></td>
-               <td title="<TMPL_VAR NAME=Members_Gain_day> Today | <TMPL_VAR NAME=Members_Gain> Tick"><TMPL_VAR NAME=Members> <img src="/images/<TMPL_VAR NAME=MembersImg>.png" alt="<TMPL_VAR NAME=MembersImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Size_Gain_day> Today | <TMPL_VAR NAME=Size_Gain> Tick"><TMPL_VAR NAME=Size> <img src="/images/<TMPL_VAR NAME=SizeImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Score_Gain_day> Today | <TMPL_VAR NAME=Score_Gain> Tick"><TMPL_VAR NAME=Score> <img src="/images/<TMPL_VAR NAME=ScoreImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-               <td title="<TMPL_VAR NAME=AvgSize_Gain_day> Today | <TMPL_VAR NAME=AvgSize_Gain> Tick"><TMPL_VAR NAME=AvgSize> <img src="/images/<TMPL_VAR NAME=AvgSizeImg>.png" alt="<TMPL_VAR NAME=AvgSizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=AvgScore_Gain_day> Today | <TMPL_VAR NAME=AvgScore_Gain> Tick"><TMPL_VAR NAME=AvgScore> <img src="/images/<TMPL_VAR NAME=AvgScoreImg>.png" alt="<TMPL_VAR NAME=AvgScoreImg>"/> </td>
-
-       <TMPL_IF isHC>
-       </TMPL_IF>
-       </tr>
-       </TMPL_LOOP>
-</table>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>
diff --git a/templates/galaxyrankings.tmpl b/templates/galaxyrankings.tmpl
deleted file mode 100644 (file)
index d7eb4e4..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<TMPL_VAR NAME=Error>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>
-<table class="stats">
-       <tr align="center"><th colspan="4">Rank</th>
-       </tr>
-       <tr>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=valuerank">Value</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=xprank">XP</a></th>
-       <th>Coords</th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=planets">Planets</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=valuerank">Value</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=xprank">XP</a></th>
-       <TMPL_IF isHC>
-       </TMPL_IF>
-       </tr>
-       <TMPL_LOOP Galaxies>
-       <tr align="right" class="<TMPL_IF __odd__>odd<TMPL_ELSE>even</TMPL_IF>">
-               <td title="<TMPL_VAR NAME=SizeRank_Gain_day> Today | <TMPL_VAR NAME=SizeRank_Gain> Tick"><TMPL_VAR NAME=SizeRank> <img src="/images/<TMPL_VAR NAME=SizeRankImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=ScoreRank_Gain_day> Today | <TMPL_VAR NAME=ScoreRank_Gain> Tick"><TMPL_VAR NAME=ScoreRank> <img src="/images/<TMPL_VAR NAME=ScoreRankImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-               <td title="<TMPL_VAR NAME=ValueRank_Gain_day> Today | <TMPL_VAR NAME=ValueRank_Gain> Tick"><TMPL_VAR NAME=ValueRank> <img src="/images/<TMPL_VAR NAME=ValueRankImg>.png" alt="<TMPL_VAR NAME=ValueImg>"/> </td>
-               <td title="<TMPL_VAR NAME=XPRank_Gain_day> Today | <TMPL_VAR NAME=XPRank_Gain> Tick"><TMPL_VAR NAME=XPRank> <img src="/images/<TMPL_VAR NAME=XPRankImg>.png" alt="<TMPL_VAR NAME=XPImg>"/> </td>
-
-               <td><a href="/check?coords=<TMPL_VAR NAME=X>:<TMPL_VAR NAME=Y>"><TMPL_VAR NAME=X>:<TMPL_VAR NAME=Y></a></td>
-               <td title="<TMPL_VAR NAME=Planets_Gain_day> Today | <TMPL_VAR NAME=Planets_Gain> Tick"><TMPL_VAR NAME=Planets> <img src="/images/<TMPL_VAR NAME=PlanetsImg>.png" alt="<TMPL_VAR NAME=PlanetsImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Size_Gain_day> Today | <TMPL_VAR NAME=Size_Gain> Tick"><TMPL_VAR NAME=Size> <img src="/images/<TMPL_VAR NAME=SizeImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Score_Gain_day> Today | <TMPL_VAR NAME=Score_Gain> Tick"><TMPL_VAR NAME=Score> <img src="/images/<TMPL_VAR NAME=ScoreImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Value_Gain_day> Today | <TMPL_VAR NAME=Value_Gain> Tick"><TMPL_VAR NAME=Value> <img src="/images/<TMPL_VAR NAME=ValueImg>.png" alt="<TMPL_VAR NAME=ValueImg>"/> </td>
-               <td title="<TMPL_VAR NAME=XP_Gain_day> Today | <TMPL_VAR NAME=XP_Gain> Tick"><TMPL_VAR NAME=XP> <img src="/images/<TMPL_VAR NAME=XPImg>.png" alt="<TMPL_VAR NAME=XPImg>"/> </td>
-
-       <TMPL_IF isHC>
-       </TMPL_IF>
-       </tr>
-       </TMPL_LOOP>
-</table>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>
diff --git a/templates/planetrankings.tmpl b/templates/planetrankings.tmpl
deleted file mode 100644 (file)
index 8a71486..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<TMPL_VAR NAME=Error>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>
-<table class="stats">
-       <tr align="center"><th colspan="4">Rank</th>
-       </tr>
-       <tr>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=valuerank">Value</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=xprank">XP</a></th>
-       <th>X</th><th>Y</th><th>Z</th><th>Planet</th><th>Race</th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=sizerank">Size</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=scorerank">Score</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=valuerank">Value</a></th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=xprank">XP</a></th>
-       <TMPL_IF isHC>
-       <th>Nick</th>
-       <th><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=Offset>&amp;order=hit_us">Hit us</a></th>
-       <th>Alliance</th>
-       </TMPL_IF>
-       </tr>
-       <TMPL_LOOP Planets>
-       <tr align="right" class="<TMPL_IF __odd__>odd<TMPL_ELSE>even</TMPL_IF>">
-               <td title="<TMPL_VAR NAME=SizeRank_Gain_day> Today | <TMPL_VAR NAME=SizeRank_Gain> Tick"><TMPL_VAR NAME=SizeRank> <img src="/images/<TMPL_VAR NAME=SizeRankImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=ScoreRank_Gain_day> Today | <TMPL_VAR NAME=ScoreRank_Gain> Tick"><TMPL_VAR NAME=ScoreRank> <img src="/images/<TMPL_VAR NAME=ScoreRankImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-               <td title="<TMPL_VAR NAME=ValueRank_Gain_day> Today | <TMPL_VAR NAME=ValueRank_Gain> Tick"><TMPL_VAR NAME=ValueRank> <img src="/images/<TMPL_VAR NAME=ValueRankImg>.png" alt="<TMPL_VAR NAME=ValueImg>"/> </td>
-               <td title="<TMPL_VAR NAME=XPRank_Gain_day> Today | <TMPL_VAR NAME=XPRank_Gain> Tick"><TMPL_VAR NAME=XPRank> <img src="/images/<TMPL_VAR NAME=XPRankImg>.png" alt="<TMPL_VAR NAME=XPImg>"/> </td>
-
-               <td><TMPL_VAR NAME=X></td>
-               <td><a href="/check?coords=<TMPL_VAR NAME=X>:<TMPL_VAR NAME=Y>"><TMPL_VAR NAME=Y></a></td>
-               <td><a href="/check?coords=<TMPL_VAR NAME=X>:<TMPL_VAR NAME=Y>:<TMPL_VAR NAME=Z>"><TMPL_VAR NAME=Z></a></td>
-               <td align="center"><TMPL_VAR NAME=Planet></td>
-               <td align="center"><TMPL_VAR NAME=Race></td>
-               <td title="<TMPL_VAR NAME=Size_Gain_day> Today | <TMPL_VAR NAME=Size_Gain> Tick"><TMPL_VAR NAME=Size> <img src="/images/<TMPL_VAR NAME=SizeImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Score_Gain_day> Today | <TMPL_VAR NAME=Score_Gain> Tick"><TMPL_VAR NAME=Score> <img src="/images/<TMPL_VAR NAME=ScoreImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
-               <td title="<TMPL_VAR NAME=Value_Gain_day> Today | <TMPL_VAR NAME=Value_Gain> Tick"><TMPL_VAR NAME=Value> <img src="/images/<TMPL_VAR NAME=ValueImg>.png" alt="<TMPL_VAR NAME=ValueImg>"/> </td>
-               <td title="<TMPL_VAR NAME=XP_Gain_day> Today | <TMPL_VAR NAME=XP_Gain> Tick"><TMPL_VAR NAME=XP> <img src="/images/<TMPL_VAR NAME=XPImg>.png" alt="<TMPL_VAR NAME=XPImg>"/> </td>
-
-       <TMPL_IF isHC>
-       <td align="center" class="<TMPL_VAR NAME=Planet_Status>"><a href="/intel?coords=<TMPL_VAR NAME=X>:<TMPL_VAR NAME=Y>:<TMPL_VAR NAME=Z>"><TMPL_VAR NAME=Nick>(<TMPL_VAR NAME=Planet_Status>)</a></td>
-       <td><TMPL_VAR NAME=Hit_Us></td>
-       <td align="center" class="<TMPL_VAR NAME=Relationship>"><TMPL_VAR NAME=Alliance></td>
-       </TMPL_IF>
-       </tr>
-       </TMPL_LOOP>
-</table>
-<p><a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=PrevOffset>&amp;order=<TMPL_VAR NAME=Order>">Previous 100</a>
-       <a href="/<TMPL_VAR NAME=PAGE>?offset=<TMPL_VAR NAME=NextOffset>&amp;order=<TMPL_VAR NAME=Order>">Next 100</a></p>