Mercurial > eagle-eye
diff Ikariam.pm @ 92:bcd2e32cfabb
fixed the user name encoding issue.
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Sun, 26 Oct 2008 22:56:16 +0800 |
parents | 53c87400183f |
children | 65c102183458 |
line wrap: on
line diff
--- a/Ikariam.pm Sun Oct 26 22:14:15 2008 +0800 +++ b/Ikariam.pm Sun Oct 26 22:56:16 2008 +0800 @@ -68,7 +68,7 @@ return () if($result->size() == 0); foreach ( @$result ) { # $_ is XML::LibXML::Element, XML::LibXML::Node - my $literal = $_->to_literal() , "\n"; + my $literal = $_->to_literal(); utf8::encode($literal); # warn $_->toString(1) , "\n"; return $literal unless wantarray; @@ -162,20 +162,20 @@ foreach my $tr ( @$result ) { my %user; - my $href = $tr->find('//td[@class="action"]/a/@href'); + $extractor->{doc} = $tr; + my $href = $extractor->find('//td[@class="action"]/a/@href'); if($href =~ /index\.php\?view=sendMessage&with=(\d+)&oldView=highscore/) { $user{'id'} = $1; - $user{'name'} = $tr->find('//td[@class="name"]/text()'); - $user{'ally'} = ($tr->find('//td[@class="allytag"]/a/text()'))[0]->to_literal(); - my $allyHref = $tr->find('//td[@class="allytag"]/a/@href'); + # $user{'name'} = $extractor->find('//td[@class="name"]'); + $user{'name'} = $user; + + $user{'ally'} = $extractor->find('//td[@class="allytag"]/a/text()'); + my $allyHref = $extractor->find('//td[@class="allytag"]/a/@href'); if($allyHref =~ /\?view=allyPage&allyId=(\d+)/) { $user{'allyId'} = $1; } - $user{$type} = $tr->find('//td[@class="score"]/text()'); + $user{$type} = $extractor->find('//td[@class="score"]/text()'); $user{$type} =~ s/,//g; - - # converting data type and encoding. - foreach(keys(%user)) { utf8::encode($user{$_}); } $users{$user{'id'}} = \%user; } }