changeset 373:dd3d76f43999

update script for collecting ally information.
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Tue, 14 Apr 2009 17:00:40 +0800
parents 9f19fe8d189c
children e551351b18de
files ally-map.pl ally.pl
diffstat 2 files changed, 84 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ally-map.pl	Tue Apr 14 17:00:40 2009 +0800
@@ -0,0 +1,79 @@
+#!/usr/bin/perl
+use strict;
+use Ikariam;
+use Data::Dumper;
+use List::Util qw[min max];
+
+package main;
+
+# my $users = Ikariam::User->search(ally => 'WMeMe');
+
+Ikariam::Cities->set_sql(ally => qq {
+        SELECT cities.id
+          FROM island, cities
+         WHERE cities.island == island.id
+           AND cities.ally == ?
+    });
+
+Ikariam::Island->has_many(cities => 'Ikariam::Cities');
+Ikariam::Island->set_sql(ally => qq {
+        SELECT island.id
+          FROM island, cities
+         WHERE cities.island == island.id
+           AND cities.ally == ?
+    });
+
+die("Usage: $0\nUsage: $0 ally\n") unless ($#ARGV == 0);
+
+my @islands = Ikariam::Island->search_ally($ARGV[0]);
+my %maps;
+
+my $x1 = 99;
+my $x2 = 0;
+my $y1 = 99;
+my $y2 = 0;
+
+foreach my $island (@islands) 
+{
+    $x1 = min ($x1, $island->x);
+    $x2 = max ($x2, $island->x);
+    $y1 = min ($y1, $island->y);
+    $y2 = max ($y2, $island->y);
+
+    $maps{$island->x}{$island->y}{'id'} = $island->id;
+    $maps{$island->x}{$island->y}{'density'} += 1;
+    # printf("[%s,%s]", $island->x, $island->y);
+}
+
+open(OUT, sprintf(">%s-map.html", $ARGV[0])) or die $!;
+printf(OUT "<html><head><style type=\"text/css\">
+    body {color: #FFFFFF; } 
+    a {color: #000000; } 
+    table {
+	border-width: 0px 0px 0px 0px;
+	border-spacing: 0px;
+	border-style: inset inset inset inset;
+	border-color: gray gray gray gray;
+	border-collapse: collapse;
+	background-color: white;
+    }
+    </style></head><body><table border=1>");
+
+foreach my $y($y1..$y2)
+{
+    print(OUT "<tr>");
+    foreach my $x ($x1..$x2)
+    {
+        # printf("<div stlye='float:left; background-color: black; padding: 0; Display:inline;'>o</div>");
+        if(defined($maps{$x}{$y}{'density'})) {
+            my $c = 255 - (15 * $maps{$x}{$y}{'density'});
+            printf(OUT "<td style=\"background-color: rgb(255,%d,%d);\"><a href=\"http://%s/index.php?view=island&id=%d\" title=\"[%d,%d] (%d)\">[%d,%d]</a></td>",
+                $c, $c, $::server, $maps{$x}{$y}{'id'}, $x, $y, $maps{$x}{$y}{'density'}, $x, $y);
+        } else {
+            printf(OUT "<td style=\"background-color: rgb(255,255,255);\">[%d,%d]</td>", $x, $y);
+        }
+    }
+    print(OUT "</tr>");
+}
+printf(OUT "</table></body></html>");
+close(OUT);
--- a/ally.pl	Tue Apr 14 17:00:05 2009 +0800
+++ b/ally.pl	Tue Apr 14 17:00:40 2009 +0800
@@ -5,14 +5,12 @@
 use List::Util qw[min max];
 
 package main;
-
 # my $users = Ikariam::User->search(ally => 'WMeMe');
 
 Ikariam::Cities->set_sql(ally => qq {
-        SELECT cities.id
-          FROM island, cities
-         WHERE cities.island == island.id
-           AND cities.ally == ?
+        SELECT cities.cityId
+          FROM cities
+         WHERE cities.ally == ?
     });
 
 Ikariam::Island->has_many(cities => 'Ikariam::Cities');
@@ -25,55 +23,5 @@
 
 die("Usage: $0\nUsage: $0 ally\n") unless ($#ARGV == 0);
 
-my @islands = Ikariam::Island->search_ally($ARGV[0]);
-my %maps;
-
-my $x1 = 99;
-my $x2 = 0;
-my $y1 = 99;
-my $y2 = 0;
-
-foreach my $island (@islands) 
-{
-    $x1 = min ($x1, $island->x);
-    $x2 = max ($x2, $island->x);
-    $y1 = min ($y1, $island->y);
-    $y2 = max ($y2, $island->y);
-
-    $maps{$island->x}{$island->y}{'id'} = $island->id;
-    $maps{$island->x}{$island->y}{'density'} += 1;
-    # printf("[%s,%s]", $island->x, $island->y);
-}
-
-open(OUT, sprintf(">%s-map.html", $ARGV[0])) or die $!;
-printf(OUT "<html><head><style type=\"text/css\">
-    body {color: #FFFFFF; } 
-    a {color: #000000; } 
-    table {
-	border-width: 0px 0px 0px 0px;
-	border-spacing: 0px;
-	border-style: inset inset inset inset;
-	border-color: gray gray gray gray;
-	border-collapse: collapse;
-	background-color: white;
-    }
-    </style></head><body><table border=1>");
-
-foreach my $y($y1..$y2)
-{
-    print(OUT "<tr>");
-    foreach my $x ($x1..$x2)
-    {
-        # printf("<div stlye='float:left; background-color: black; padding: 0; Display:inline;'>o</div>");
-        if(defined($maps{$x}{$y}{'density'})) {
-            my $c = 255 - (15 * $maps{$x}{$y}{'density'});
-            printf(OUT "<td style=\"background-color: rgb(255,%d,%d);\"><a href=\"http://%s/index.php?view=island&id=%d\" title=\"[%d,%d] (%d)\">[%d,%d]</a></td>",
-                $c, $c, $::server, $maps{$x}{$y}{'id'}, $x, $y, $maps{$x}{$y}{'density'}, $x, $y);
-        } else {
-            printf(OUT "<td style=\"background-color: rgb(255,255,255);\">[%d,%d]</td>", $x, $y);
-        }
-    }
-    print(OUT "</tr>");
-}
-printf(OUT "</table></body></html>");
-close(OUT);
+my @cities = Ikariam::Cities->search_ally($ARGV[0]);
+print Dumper(@cities);