]> ruin.nu Git - ndwebbie.git/blobdiff - scripts/scans.pl
Fix, make the planet scan parsing stricter
[ndwebbie.git] / scripts / scans.pl
index d774ad2fb1712654de2aa1871272a6d13ca06da5..a7c25dd8896768de8bd755f7e85b58757f36a2f2 100755 (executable)
@@ -55,15 +55,17 @@ while (my $group = $scangroups->fetchrow_hashref){
        $dbh->begin_work;
        my $file = get("http://game.planetarion.com/showscan.pl?scan_grp=$group->{scan_id}");
 
-       my $points = 0;
-       while ($file =~ m/showscan.pl\?scan_id=(\w+)/g){
-               unless ($dbh->selectrow_array($oldscan,undef,$1)){
-                       $addScan->execute($1,$group->{tick},$group->{uid});
-                       ++$points;
+       if ($file){
+               my $points = 0;
+               while ($file =~ m/showscan.pl\?scan_id=(\w+)/g){
+                       unless ($dbh->selectrow_array($oldscan,undef,$1)){
+                               $addScan->execute($1,$group->{tick},$group->{uid});
+                               ++$points;
+                       }
                }
+               $addpoints->execute($points,$group->{uid});
+               $parsedscan->execute($group->{tick},'GROUP',undef,$group->{id});
        }
-       $addpoints->execute($points,$group->{uid});
-       $parsedscan->execute($group->{tick},'GROUP',undef,$group->{id});
        $dbh->commit;
 }
 
@@ -77,8 +79,8 @@ my $addfleet = $dbh->prepare(q{INSERT INTO fleets (name,mission,planet,tick,amou
 my $fleetscan = $dbh->prepare(q{INSERT INTO fleet_scans (fid,id) VALUES(?,?)});
 my $addintel = $dbh->prepare(q{INSERT INTO intel (name,mission,sender,target,tick,eta,back,amount,ingal,uid)
        VALUES(?,?,?,?,?,?,?,?,?,-1) RETURNING id});
-my $intelscan = $dbh->prepare(q{INSERT INTO fleet_scans (intel,id) VALUES(?,?)});
-my $addships = $dbh->prepare(q{INSERT INTO fleet_ships (id,ship,amount) VALUES(?,?,?)});
+my $intelscan = $dbh->prepare(q{INSERT INTO intel_scans (intel,id) VALUES(?,?)});
+my $addships = $dbh->prepare(q{INSERT INTO fleet_ships (fid,ship,amount) VALUES(?,?,?)});
 my $addplanetscan = $dbh->prepare(q{INSERT INTO planet_scans
        (id,tick,planet,metal_roids,metal,crystal_roids,crystal,eonium_roids,eonium
                ,agents,guards,light,medium,heavy,hidden)
@@ -90,7 +92,7 @@ sub parse_planet {
        my @values = ($scan->{id},$scan->{tick},$scan->{planet});
        $file =~ s/(\d),(\d)/$1$2/g;
 
-       while($file =~ m/"center">(Metal|Crystal|Eonium)\D+(\d+)\D+([\d,]+)/g){
+       while($file =~ m{"center">(Metal|Crystal|Eonium)</td>\D+(\d+)\D+([\d,]+)}g){
                push @values,$2,$3;
        }
        if($file =~ m{Security\ Guards .+? "center">(\d+)</td>