]> ruin.nu Git - ndwebbie.git/commitdiff
fatal warnings
authorMichael Andreen <harv@ruin.nu>
Fri, 29 Dec 2006 15:05:48 +0000 (15:05 +0000)
committerMichael Andreen <harv@ruin.nu>
Fri, 29 Dec 2006 15:05:48 +0000 (15:05 +0000)
13 files changed:
ND.pm
ND/Include.pm
addintel.pl
check.pl
covop.pl
defrequest.pl
launchConfirmation.pl
main.pl
points.pl
raids.pl
templates/xml.tmpl
top100.pl
users.pl

diff --git a/ND.pm b/ND.pm
index d62a7ea89537bc94d3f6f16c3af452c9624ba26a..0f21c894420079e2d766d61bff1c5454e27bf4e5 100755 (executable)
--- a/ND.pm
+++ b/ND.pm
@@ -56,7 +56,7 @@ sub handler {
 sub page {
        our $DBH = ND::DB::DB();
        our $USER = $ENV{'REMOTE_USER'};
-       my $error;# = $ND::r->param('page');
+       my $error = '';
 
        chdir '/var/www/ndawn/code';
 
@@ -98,11 +98,10 @@ sub page {
                $ND::BODY->param(PAGE => $ND::PAGE);
        }
 
-
        unless (my $return = do "$ND::PAGE.pl"){
-               $error .= "<p><b>couldn't parse $ND::page: $@</b></p>" if $@;
-               $error .= "<p><b>couldn't do $ND::page: $!</b></p>"    unless defined $return;
-               $error .= "<p><b>couldn't run $ND::page</b></p>"       unless $return;
+               $error .= "<p><b>couldn't parse $ND::PAGE: $@</b></p>" if $@;
+               $error .= "<p><b>couldn't do $ND::PAGE: $!</b></p>"    unless defined $return && defined $!;
+               $error .= "<p><b>couldn't run $ND::PAGE</b></p>"       unless $return;
        }
 
        unless ($XML){
@@ -120,9 +119,9 @@ sub page {
                        $ND::TEMPLATE->param(Targets => listTargets());
                }
                $TEMPLATE->param(Coords => param('coords') ? param('coords') : '1:1:1');
-               $TEMPLATE->param(Error => $error);
 
        }
+       $TEMPLATE->param(Error => $error);
        $ND::TEMPLATE->param(BODY => $ND::BODY->output);
        my $output = $TEMPLATE->output;
        print header(-type=> $type, -charset => 'utf-8', -Content_Length => length $output);
index a01a37f6909fbeb0e3e766fce3b65c27655661fd..96f64da1e5eee58d5cec4b751ce201f51b51fc5e 100644 (file)
@@ -25,7 +25,7 @@ require Exporter;
 our @ISA = qw/Exporter/;
 
 our @EXPORT = qw/isMember isHC isDC isBC isOfficer isScanner isIntel parseMarkup min max listTargets
-       alliances intelquery/;
+       alliances intelquery generateClaimXml/;
 
 sub isMember {
        return exists $ND::GROUPS{Members};
@@ -120,4 +120,73 @@ GROUP BY i.tick,i.mission,t.x,t.y,t.z,o.x,o.y,o.z,i.amount,i.ingal,u.username,t.
 ORDER BY i.tick DESC, i.mission};
 }
 
+
+sub generateClaimXml {
+       my ($raid, $from, $target) = @_;
+
+       my ($timestamp) = $ND::DBH->selectrow_array("SELECT MAX(modified)::timestamp AS modified FROM raid_targets");
+       $ND::BODY->param(Timestamp => $timestamp);
+       if ($target){
+               $target = "r.id = $target";
+               $_ = listTargets();
+               $ND::BODY->param(TargetList => $_);
+       }else{
+               $target = "r.raid = $raid->{id}";
+       }
+
+       if ($from){
+               $from = "AND modified > '$from'";
+       }else{
+               $from = '';
+       }
+       my $targets = $ND::DBH->prepare(qq{SELECT r.id,r.planet FROM raid_targets r WHERE $target $from});
+       $targets->execute or print p($ND::DBH->errstr);
+       my $claims =  $ND::DBH->prepare(qq{ SELECT username,joinable,launched FROM raid_claims
+               NATURAL JOIN users WHERE target = ? AND wave = ?});
+       my @targets;
+       while (my $target = $targets->fetchrow_hashref){
+               my %target;
+               $target{Id} = $target->{id};
+               $target{Coords} = $target->{id};
+               my @waves;
+               for (my $i = 1; $i <= $raid->{waves}; $i++){
+                       my %wave;
+                       $wave{Id} = $i;
+                       $claims->execute($target->{id},$i);
+                       my $joinable = 0;
+                       my $claimers;
+                       if ($claims->rows != 0){
+                               my $owner = 0;
+                               my @claimers;
+                               while (my $claim = $claims->fetchrow_hashref){
+                                       $owner = 1 if ($ND::USER eq $claim->{username});
+                                       $joinable = 1 if ($claim->{joinable});
+                                       $claim->{username} .= '*' if ($claim->{launched});
+                                       push @claimers,$claim->{username};
+                               }
+                               $claimers = join '/', @claimers;
+                               if ($owner){
+                                       $wave{Command} = 'Unclaim';
+                                       if ($raid->{released_coords}){
+                                               $target{Coords} = $ND::DBH->selectrow_array('SELECT coords(x,y,z) FROM current_planet_stats WHERE id = ?',undef,$target->{planet});
+                                       }
+                               }elsif ($joinable){
+                                       $wave{Command} = 'Join';
+                               }else{
+                                       $wave{Command} = 'none';
+                               }
+                       }else{
+                               #if (!isset($planet) || ($target->value/$planet->value > 0.4 || $target->score/$planet->score > 0.4))
+                               $wave{Command} = 'Claim';
+                       }
+                       $wave{Claimers} = $claimers;
+                       $wave{Joinable} = $joinable;
+                       push @waves,\%wave;
+               }
+               $target{Waves} = \@waves;
+               push @targets,\%target;
+       }
+       $ND::BODY->param(Targets => \@targets);
+}
+
 1;
index a2e43eca6b901bcb69c68ce8743eb582fe28cd61..28d7d0e2672833acc6660c2d125ad2455195868d 100644 (file)
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Add Intel and Scans');
 
index 788e93887fd25dee5b3ad2e12bca38a1004f9604..9acf9bf0d89d957189b3028a9c2dc7ba19db089b 100644 (file)
--- a/check.pl
+++ b/check.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Check planets and galaxies');
 
@@ -121,7 +123,7 @@ ORDER BY p.x,p.y,p.z});
        $BODY->param(Missions => \@missions);
 
        my @scans;
-       my $query = $DBH->prepare(q{SELECT value,tick FROM planet_stats 
+       $query = $DBH->prepare(q{SELECT value,tick FROM planet_stats 
                WHERE id = ? AND tick > tick() - 24});
        my $scan = q{
 <p>Value the last 24 ticks</p>
@@ -138,8 +140,8 @@ ORDER BY p.x,p.y,p.z});
        $scan .= q{</table>};
        push @scans, {Scan => $scan};
 
-       my $query = $DBH->prepare(q{SELECT x,y,z,tick FROM planet_stats WHERE id = ?});
-       my $scan = q{
+       $query = $DBH->prepare(q{SELECT x,y,z,tick FROM planet_stats WHERE id = ?});
+       $scan = q{
 <p>Previous Coords</p>
 <table><tr><th>Tick</th><th>Value</th><th>Difference</th></tr>};
        $query->execute($planet_id);
@@ -155,7 +157,7 @@ ORDER BY p.x,p.y,p.z});
        $scan .= q{</table>};
        push @scans, {Scan => $scan};
 
-       my $query = $DBH->prepare(q{SELECT DISTINCT ON (type) type,scan_id, tick, scan FROM scans WHERE planet = ?
+       $query = $DBH->prepare(q{SELECT DISTINCT ON (type) type,scan_id, tick, scan FROM scans WHERE planet = ?
                GROUP BY type,scan_id, tick, scan ORDER BY type,tick DESC});
        $query->execute($planet_id);
        my %scans;
index 0614da0d4e5ca22d9ee64acbf092cd009c10300d..0d670892e7dd5d012f597645dbbaed7f406fbcc1 100644 (file)
--- a/covop.pl
+++ b/covop.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'CovOp Targets');
 
index 07c68c164536bb9550c2977c1475b050f04654eb..eb90f650001dcfad3e3310b3a9253048505bbe75 100644 (file)
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Request Defense');
 
index 1d8caafda450ce178a05d66ba213ad6d2f42a2ce..7e56eedbd3fd72608bea6fec712f88d91bff724d 100644 (file)
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Launch Confirmation');
 
diff --git a/main.pl b/main.pl
index 20a1607289ac94cbaf1025319e0e95030f086615..4c8dfabca13ab16164f4911d8bf4a3b8a52c0924 100644 (file)
--- a/main.pl
+++ b/main.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Main Page');
 
@@ -128,7 +130,7 @@ if ($planet){
 }
 
 
-my $query = $DBH->prepare(q{SELECT f.fleet,f.id, coords(x,y,z) AS target, mission, sum(fs.amount) AS amount, landing_tick, back
+$query = $DBH->prepare(q{SELECT f.fleet,f.id, coords(x,y,z) AS target, mission, sum(fs.amount) AS amount, landing_tick, back
 FROM fleets f 
        JOIN fleet_ships fs ON f.id = fs.fleet 
        JOIN current_planet_stats p ON f.target = p.id
index 6d33689f37d6fef5cd88b7e24f8211082ff696a5..95845fa09a4e57ce665d24dbc0431e28c771372a 100644 (file)
--- a/points.pl
+++ b/points.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Top Members');
 
index 4480d6bff2a13ba74a3797b3532ba4d0b3b6f268..b131fe575239db3e7c4d295055f646efc5deaa4b 100644 (file)
--- a/raids.pl
+++ b/raids.pl
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 use POSIX;
 our $BODY;
 our $DBH;
 our $LOG;
 our $XML;
 
-
-sub generateClaimXml {
-       my ($raid, $from, $target) = @_;
-
-       my ($timestamp) = $DBH->selectrow_array("SELECT MAX(modified)::timestamp AS modified FROM raid_targets");
-       $BODY->param(Timestamp => $timestamp);
-       if ($target){
-               $target = "r.id = $target";
-               $_ = listTargets();
-               $BODY->param(TargetList => $_);
-       }else{
-               $target = "r.raid = $raid->{id}";
-       }
-
-       if ($from){
-               $from = "AND modified > '$from'";
-       }
-       my $targets = $DBH->prepare(qq{SELECT r.id,r.planet FROM raid_targets r WHERE $target $from});
-       $targets->execute;
-       my $claims =  $DBH->prepare(qq{ SELECT username,joinable,launched FROM raid_claims
-               NATURAL JOIN users WHERE target = ? AND wave = ?});
-       my @targets;
-       while (my $target = $targets->fetchrow_hashref){
-               my %target;
-               $target{Id} = $target->{id};
-               $target{Coords} = $target->{id};
-               my @waves;
-               for (my $i = 1; $i <= $raid->{waves}; $i++){
-                       my %wave;
-                       $wave{Id} = $i;
-                       $claims->execute($target->{id},$i);
-                       my $joinable = 0;
-                       my $claimers;
-                       if ($claims->rows != 0){
-                               my $owner = 0;
-                               my @claimers;
-                               while (my $claim = $claims->fetchrow_hashref){
-                                       $owner = 1 if ($ND::USER eq $claim->{username});
-                                       $joinable = 1 if ($claim->{joinable});
-                                       $claim->{username} .= '*' if ($claim->{launched});
-                                       push @claimers,$claim->{username};
-                               }
-                               $claimers = join '/', @claimers;
-                               if ($owner){
-                                       $wave{Command} = 'Unclaim';
-                                       if ($raid->{released_coords}){
-                                               $target{Coords} = $DBH->selectrow_array('SELECT coords(x,y,z) FROM current_planet_stats WHERE id = ?',undef,$target->{planet});
-                                       }
-                               }elsif ($joinable){
-                                       $wave{Command} = 'Join';
-                               }else{
-                                       $wave{Command} = 'none';
-                               }
-                       }else{
-                               #if (!isset($planet) || ($target->value/$planet->value > 0.4 || $target->score/$planet->score > 0.4))
-                               $wave{Command} = 'Claim';
-                       }
-                       $wave{Claimers} = $claimers;
-                       $wave{Joinable} = $joinable;
-                       push @waves,\%wave;
-               }
-               $target{Waves} = \@waves;
-               push @targets,\%target;
-       }
-       $BODY->param(Targets => \@targets);
-}
-
 my $raid;
 if (param('raid') =~ /^(\d+)$/){
        my $query = $DBH->prepare(q{SELECT id,tick,waves,message,released_coords FROM raids WHERE id = ? AND open AND not removed AND id IN (SELECT raid FROM raid_access NATURAL JOIN groupmembers WHERE uid = ?)});
index a3acc241e379af7e78b32d3327b17d7ecfb35d3c..09c1ee8234d6daf15676d3726cef77b8e3749d8e 100644 (file)
@@ -1,2 +1,3 @@
 <?xml version="1.0"?>
+<TMPL_VAR NAME=Error>
 <TMPL_VAR NAME=BODY>
index 455312c810e70f92b2e375ebc05a34a42095b7c0..1a7d2e4233ba7a9f3372a7e9754297abb7b20817 100644 (file)
--- a/top100.pl
+++ b/top100.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 
 $ND::TEMPLATE->param(TITLE => 'Top100 ');
 
index 62988081baf3acade7dcf0d020b98ea26b11096e..20687a5ca4efad6f794b01de4a25c5ea2e42deb8 100644 (file)
--- a/users.pl
+++ b/users.pl
@@ -18,6 +18,8 @@
 #**************************************************************************/
 
 use strict;
+use warnings FATAL => 'all';
+no warnings qw(uninitialized);
 use POSIX;
 our $BODY;
 our $DBH;
@@ -34,10 +36,11 @@ if (param('user') =~ /^(\d+)$/){
 SELECT uid,username,hostmask,coords(x,y,z) AS planet,attack_points,defense_points,scan_points,humor_points  
        FROM users u LEFT OUTER JOIN current_planet_stats p ON u.planet = p.id
 WHERE uid = ?;
-}) or $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
+}) or $error .= "<p> Something went wrong: </p>";
        $user = $DBH->selectrow_hashref($query,undef,$1) or $error.= "<p> Something went wrong: ".$DBH->errstr."</p>";
 }
 
+
 if ($user && param('cmd') eq 'change'){
        $DBH->begin_work;
        for my $param (param()){
@@ -68,6 +71,7 @@ if ($user && param('cmd') eq 'change'){
        $groups->execute();
        while (my $group = $groups->fetchrow_hashref){
                my $query;
+               next unless defined param($group->{gid});
                if (param($group->{gid}) eq 'remove'){
                        $query = $delgroup;
                }elsif(param($group->{gid}) eq 'add'){