Index: allocine.pl =================================================================== --- allocine.pl (revision 19320) +++ allocine.pl (working copy) @@ -38,6 +38,7 @@ print " -v, --version display version\n"; print " -i, --info display info\n"; print " -o, --originaltitle concatenate title and original title\n"; + print " --uk Get from screenruch.co.uk\n"; print " -c, --casting with -D option, grap the complete actor list (much slower)\n"; print "\n"; print " -M , --movie query> get movie list\n"; @@ -82,36 +83,75 @@ # get Movie Data sub getMovieData { my ($movieid)=@_; # grab movieid parameter + + my $website = "www.allocine.fr"; + + my $originalTitleStart = "

Titre original : "; + my $originalTitleEnd = "

"; + + my $productionYearStart = "

Année de production : "; + my $productionYearEnd = "

"; + + my $directorStart = "

Réalisé par "; + my $directorEnd = "

"; + + my $pressReviewStart = "Presse"; + my $pressReviewEnd = " border"; + + my $userReviewStart = "Spectateurs"; + my $userReviewEnd = " border"; + + my $runtimeStart = "Durée : "; + my $runtimeEnd = ". "; + + my $genresStart = "

Genre : "; + my $genresEnd = "

"; + + my $countriesStart = "

Film "; + my $countriesEnd = ". 

"; + + my $castStart = "

Avec "; + my $castEnd = "   ", ""); - my $original_title = parseBetween($response, "

Titre original : ","

"); + my $original_title = parseBetween($response, $originalTitleStart,$originalTitleEnd); $original_title = removeTag($original_title); if (defined $opt_originaltitle){ if ($original_title ne ""){ $title = $title . " (" . $original_title . ")"; } } - - #print "titre = $title\n"; $title = removeTag($title); - my $year = parseBetween($response,"

Année de production : ","

"); + # parse year + my $year = parseBetween($response,$productionYearStart,$productionYearEnd); + # parse director - my $director = parseBetween($response,"

Réalisé par ","

"); + my $director = parseBetween($response,$directorStart,$directorEnd); $director = removeTag($director); - # parse writer - # (Note: this takes the 'first' writer, may want to include others) - my $writer = parseBetween($response, ">Writing credits", ""); - $writer = parseBetween($writer, "/\">", "

","

"); $plot =~ s/\n//g; @@ -119,16 +159,19 @@ # parse user rating my $userrating; - my $rating = parseBetween($response,"Presse "); my $nbvote = 0; my $sommevote = 0; - $rating = parseBetween($rating,"etoile_",".gif"); + + my $rating = parseBetween($response,$pressReviewStart, $pressReviewEnd); + $rating = parseBetween($rating,"etoile_","\""); + if (!($rating eq "")){ - $sommevote += $rating - 1; - $nbvote ++; + $sommevote += $rating; + $nbvote ++; } - $rating = parseBetween($response,"Spectateurs "); - $rating = parseBetween($rating,"etoile_",".gif"); + + $rating = parseBetween($response,$userReviewStart, $userReviewEnd); + $rating = parseBetween($rating,"etoile_","\""); if (!($rating eq "")){ $sommevote += $rating - 1; $nbvote ++; @@ -139,18 +182,13 @@ # parse rating - my $movierating = parseBetween($response,"Interdit aux moins de ","ans"); - if (!($movierating eq "")) - { $movierating = "Interdit aux moins de " . $movierating . "ans";} - else - { - $movierating = parseBetween($response,"Visible ","enfants"); - if (!($movierating eq "")){ $movierating = "Visible par des enfants";}; - } - + my $movierating; + $movierating = parseBetween($response,"

", + "

"); + $movierating = removeTag($movierating ); # parse movie length - my $runtime = parseBetween($response,"Durée : ",". "); + my $runtime = parseBetween($response,$runtimeStart,$runtimeEnd); my $heure; my $minutes; ($heure,$minutes)=($runtime=~/[^\d]*(\d+)[^\d]*(\d*)/); @@ -166,7 +204,7 @@ # parse cast - my $cast = parseBetween($response, "

Avec ","

"); + my $cast = parseBetween($response, $castStart,$castEnd); $cast = removeTag($cast); if (defined $opt_casting){ my ($rc, $responsecasting) = myth_url_get("http://www.allocine.fr/film/casting_gen_cfilm=" . $movieid . ".html"); @@ -187,11 +225,11 @@ #genres - my $genres = parseBetween($response,"

Genre : ","

"); + my $genres = parseBetween($response,$genresStart,$genresEnd); $genres = removeTag($genres); #countries - my $countries = parseBetween($response,"

Film ",". 

"); + my $countries = parseBetween($response,$countriesStart,$countriesEnd); $countries = removeTag($countries); # output fields (these field names must match what MythVideo is looking for) @@ -205,7 +243,6 @@ print "UserRating:$userrating\n"; print "MovieRating:$movierating\n"; print "Runtime:$runtime\n"; - print "Writers: $writer\n"; print "Cast: $cast\n"; print "Genres:$genres\n"; print "Countries:$countries\n"; @@ -214,11 +251,18 @@ # dump Movie Poster sub getMoviePoster { my ($movieid)=@_; # grab movieid parameter + + my $website = "www.allocine.fr"; + if (defined $opt_uk) + { + $website = "www.screenrush.co.uk"; + } + if (defined $opt_d) { printf("# looking for movie id: '%s'\n", $movieid);} # get the search results page - my $request = "http://www.allocine.fr/film/galerie_gen_cfilm=" . $movieid . ".html"; + my $request = "http://".$website."/film/galerie_gen_cfilm=" . $movieid . ".html"; if (defined $opt_d) { printf("# request: '%s'\n", $request); } my ($rc, $response) = myth_url_get($request); my $page=parseBetween($response,"&page=",".html\" class=\"link1\">>>"); @@ -237,7 +281,7 @@ $request = substr($request, 0, index($request, '.')); if (!($request eq "")) { - $request = "http://www.allocine.fr/film/galerie_gen_cfilm=" . $movieid . "&page=" . $request . ".html"; + $request = "http://".$website."/film/galerie_gen_cfilm=" . $movieid . "&page=" . $request . ".html"; ($rc, $response) = myth_url_get($request); $uri = parseBetween($response,"","Ko\" />"); @@ -271,7 +315,7 @@ # if ($uri eq "") { - $request = "http://www.allocine.fr/film/fichefilm_gen_cfilm=" . $movieid .".html"; + $request = "http://".$website."/film/fichefilm_gen_cfilm=" . $movieid .".html"; ($rc, $response) = myth_url_get($request); $response = parseBetween($response, "sousnav_separe_droite2.gif","sortie"); $uri = parseBetween($response, " \$opt_v, "info" => \$opt_i, "originaltitle" => \$opt_originaltitle, + "uk" => \$opt_uk, "casting" => \$opt_casting, "Data" => \$opt_D, "Movie" => \$opt_M,