# HG changeset patch # User "Rex Tsai " # Date 1223450661 -28800 # Node ID 59f2c435760ce29431aa2165b40fecde6b025075 # Parent e68f4cadfabd74febcf5171aeb6cfbc6ab7e0c1a implemented cached by timing. diff -r e68f4cadfabd -r 59f2c435760c Ikariam.pm --- a/Ikariam.pm Wed Oct 08 12:56:40 2008 +0800 +++ b/Ikariam.pm Wed Oct 08 15:24:21 2008 +0800 @@ -25,7 +25,10 @@ my $self = { - mech => WWW::Mechanize->new(agent => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092816 Iceweasel/3.0.1 (Debian-3.0.1-1)"), + mech => WWW::Mechanize->new( + agent => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092816 Iceweasel/3.0.1 (Debian-3.0.1-1)", + timeout => 10, + ), server => $server, user => $user, pass => $pass, diff -r e68f4cadfabd -r 59f2c435760c scan.pl --- a/scan.pl Wed Oct 08 12:56:40 2008 +0800 +++ b/scan.pl Wed Oct 08 15:24:21 2008 +0800 @@ -11,6 +11,7 @@ foreach my $city (@cities) { $city->{island} = $island; + $city->{'time'} = time; if(my $c = Ikariam::Cities->retrieve($city->{cityId})) { foreach my $i (keys(%$city)) { @@ -44,6 +45,7 @@ { # print(Dumper($user)); printf("Saving user %s\n", $user->{'name'}); + $user->{'time'} = time; if(my $c = Ikariam::User->retrieve($user->{id})) { foreach my $i (keys(%$user)) { @@ -81,17 +83,22 @@ foreach my $island (@islands) { printf("checking island %d\n", $island->{id}); - if(my $c = Ikariam::Island->retrieve($island->{id})) { - foreach my $i (keys(%$island)) { - eval($c->$i($island->{$i})); - } - } else { - Ikariam::Island->insert($island); - } # scanning the island - my @cities = $i->viewIsland($island->{id}); - saveCities($island->{id}, @cities); + if($island->{time} < (time - 60*60*12 )) + { + my @cities = $i->viewIsland($island->{id}); + saveCities($island->{id}, @cities); + + $island->{'time'} = time; + if(my $c = Ikariam::Island->retrieve($island->{id})) { + foreach my $i (keys(%$island)) { + eval($c->$i($island->{$i})); + } + } else { + Ikariam::Island->insert($island); + } + } } $i->logout; # $i->getCityInfo();