From 3b5018db546d352a46cae32a64f17a72196a1275 Mon Sep 17 00:00:00 2001 From: fredrik Date: Thu, 18 May 2006 01:39:21 +0000 Subject: [PATCH] Update for new ann html schema. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/utils@608 959494ce-11ee-0310-bf91-de5d638817bd --- ANN.pm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/ANN.pm b/ANN.pm index 1406c45..746cf15 100644 --- a/ANN.pm +++ b/ANN.pm @@ -48,6 +48,7 @@ sub getlist my($name, $il, $html, @ret); ($name) = @_; + $name = ($name =~ /^(the\s+)?(.*)$/i)[1]; $il = uc(($name =~ /^(.)/)[0]); $il = "9" if (!($il =~ /[A-Z]/)); if(!($html = _get "http://www.animenewsnetwork.com/encyclopedia/anime.php?list=$il")) { @@ -57,9 +58,9 @@ sub getlist # The only way to recognize entries that seems sure is to look # after the "HOVERLINE" class. - while($html =~ /([^<]+)<\//ig) { - if((substr "" . lc $2 , 0, length $name) eq lc $name) { - push @ret, $2; + while($html =~ /(\.*\<\/small\>)?([^<]+)<\//ig) { + if((substr "" . lc $3 , 0, length $name) eq lc $name) { + push @ret, $3; } } # push @ret, $1 while $html =~ /.*([^<>]*$name[^<>]*)<\/FONT/ig; @@ -72,6 +73,7 @@ sub getid my($name, $il, $html, $url); ($name) = @_; + $name = ($name =~ /^(the\s+)?(.*)$/i)[1]; $il = uc(($name =~ /^(.)/)[0]); $il = "9" if (!($il =~ /[A-Z]/)); if(!($html = _get "http://www.animenewsnetwork.com/encyclopedia/anime.php?list=$il")) { @@ -81,8 +83,8 @@ sub getid # The only way to recognize entries that seems sure is to look # after the "HOVERLINE" class. - while($html =~ /([^<]+)<\//ig) { - if((substr "" . lc $2 , 0, length $name) eq lc $name) { + while($html =~ /(\.*\<\/small\>)?([^<]+)<\//ig) { + if((substr "" . lc $3 , 0, length $name) eq lc $name) { return ($1 =~ /id=(\d+)$/)[0]; } } @@ -103,12 +105,12 @@ sub getthemes my($html, $kind, @ret); ($html, $kind) = @_; - if($html =~ /$kind theme:<\/b>\n/igc) { + if($html =~ /$kind theme:<\/strong>\s*\n/igc) { my(@parts, $ct, $buf); - while($html =~ /\G\    (([^<>]|\|<\/i>)+)/igc) { + while($html =~ /\G\s*\(([^<>]|\|<\/i>)+)<\/div>/igc) { $buf = $1; - # 0 1 2 3 4 5 6 7 8 9 10 11 - if(@parts = ($buf =~ /(\#(\d+):)?\s*\"([^\"\(]+\S)(\s*\((\(.*)<\/i>(;\s*)?)?([^<>]+)?\))?\"\s+by\s+([^\(]*[^\(\s])(\s*\(eps (\d+)-(\d+)?\))?/i)) { + # 0 1 2 3 4 5 6 7 8 9 10 11 + if(@parts = ($buf =~ /(\#(\d+):)?\s*\"([^\"\(]+\S)(\s*\((\(.*)<\/i>( - \s*)?)?([^<>]+)?\))?\"\s+by\s+([^\(]*[^\(\s])(\s*\(eps (\d+)-(\d+)?\))?/i)) { $ct = {}; $ct->{"num"} = $parts[1] if defined $parts[1]; if(defined $parts[5]) { @@ -145,13 +147,13 @@ sub getseries } else { $ret{"name"} = $buf; } - if(($buf) = ($html =~ /vintage:<\/b>\n([^<]+)\s*\n\s*([^<]+)\n([^<]+)\s*\n\s*([^<]+)\n([^<]+)\s*\n\s*([^<]+)