annotate flash.pl @ 376:6ca0677a361e

refiend output format and fixed timing issue.
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Tue, 14 Apr 2009 17:02:17 +0800
parents 0522468991c1
children
rev   line source
371
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
1 #!/usr/bin/perl
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
2
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
3 use strict;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
4 use Ikariam;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
5 use Ikariam::CitiesRules;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
6 use Data::Dumper;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
7 use Decision::ParseTree q{ParseTree};
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
8 use YAML qw/LoadFile Dump DumpFile/;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
9
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
10 package main;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
11 my $cityId = 95780;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
12 my $cities = {};
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
13
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
14 our $i = new Ikariam($::server, $::user, $::pass);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
15 $i->login;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
16 $i->changeCity($cityId);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
17 $cities->{$cityId} = $i->checkCity($cityId);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
18
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
19 # Genereic rules for both overall and city level arranagement.
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
20 my $rules = Ikariam::CitiesRules->new($i);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
21 my $tree = LoadFile('flash-city.yaml');
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
22 $cities->{$cityId}->{parse_path} = [];
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
23 $cities->{$cityId}->{parse_answer} = undef;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
24 if (my $action = ParseTree($tree, $rules, $cities->{$cityId})) {
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
25 triggerAction($action, $cityId);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
26 }
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
27
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
28 $i->logout;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
29
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
30 sub triggerAction {
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
31 my ($action, $cityId) = @_;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
32
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
33 my ($func, $param) = split(/_/,$action);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
34 printf('$i->%s("%s", %s);'. "\n", $func, $param, $cityId);
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
35 eval(sprintf('$i->%s("%s", %s);', $func, $param, $cityId));
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
36 warn $@ if $@;
0522468991c1 added flash attacking script.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff changeset
37 }