Changeset 843
- Timestamp:
- 07/09/07 04:01:29 (6 years ago)
- Files:
-
- 2 modified
-
postprocessors/imdb_augment_data (modified) (8 diffs)
-
status (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
postprocessors/imdb_augment_data
r842 r843 27 27 28 28 my $progname = "imdb_augment_data"; 29 my $version = "0.2 3";29 my $version = "0.24"; 30 30 31 31 use XMLTV; … … 521 521 $tp = HTML::TokeParser->new(\$html_data); 522 522 while (my $tag = $tp->get_tag('h5')) { 523 last if ($tp->get_text =~ /^ directed/i);523 last if ($tp->get_text =~ /^(directed|director)/i); 524 524 } 525 525 while (my $tag = $tp->get_tag) { 526 526 my $text = $tp->get_text(); 527 last if (($text =~ / writing/i) || ($tag->[0] =~ /\/td/i));527 last if (($text =~ /^(writing|writer)/i) || ($tag->[0] =~ /\/td/i)); 528 528 if ($tag->[0] eq 'a') { 529 529 my $id = $tag->[1]{href}; 530 530 next if ($id !~ /^\/name\/nm/); 531 $data_cache->{movie_lookup}->{$movie_url}->{directors}->{$text} = $id;531 push(@{$data_cache->{movie_lookup}->{$movie_url}->{directors}}, [$text, $id]); 532 532 Shepherd::Common::log(" - parsed director ".$text." (".$id.")") if ($opt->{debug}); 533 533 } … … 539 539 $tp = HTML::TokeParser->new(\$html_data); 540 540 while (my $tag = $tp->get_tag('h5')) { 541 last if ($tp->get_text =~ /^ writing/i);541 last if ($tp->get_text =~ /^(writing|writer)/i); 542 542 } 543 543 while (my $tag = $tp->get_tag) { 544 544 my $text = $tp->get_text(); 545 545 last if ($tag->[0] =~ /div/i); 546 if (($tag->[0] eq 'a') && ($text !~ / more/i)) {546 if (($tag->[0] eq 'a') && ($text !~ /\bmore\b/i)) { 547 547 my $id = $tag->[1]{href}; 548 548 next if ($id !~ /^\/name\/nm/); 549 $data_cache->{movie_lookup}->{$movie_url}->{writers}->{$text} = $id;549 push(@{$data_cache->{movie_lookup}->{$movie_url}->{writers}}, [$text, $id]); 550 550 Shepherd::Common::log(" - parsed writer ".$text." (".$id.")") if ($opt->{debug}); 551 551 } … … 571 571 572 572 if ((defined $person) && (defined $role)) { 573 $data_cache->{movie_lookup}->{$movie_url}->{cast}->{$person} = $role;573 push(@{$data_cache->{movie_lookup}->{$movie_url}->{cast}}, [$person, $role]); 574 574 Shepherd::Common::log(" - parsed cast (".$role.") ".$person) if ($opt->{debug}); 575 575 } … … 879 879 } 880 880 881 $num = 0;882 881 if (defined $imdb->{cast}) { 883 foreach my $c (sort keys %{($imdb->{cast})}) { 884 $imdb_desc .= sprintf "%s%s%s", 885 ($num > 0 ? ", " : "\n Cast: "), 886 $c, 887 ($imdb->{cast}->{$c} ? " as $imdb->{cast}->{$c}" : ""); 888 $num++; 882 $num = 0; 883 if (ref($imdb->{cast}) eq "ARRAY") { 884 foreach my $c (@{$imdb->{cast}}) { 885 $imdb_desc .= sprintf "%s%s%s", 886 ($num > 0 ? ", " : "\n Cast: "), 887 @$c[0], 888 (@$c[1] ? " as @$c[1]" : ""); 889 $num++; 890 } 891 } else { # HASH 892 foreach my $c (sort keys %{($imdb->{cast})}) { 893 $imdb_desc .= sprintf "%s%s%s", 894 ($num > 0 ? ", " : "\n Cast: "), 895 $c, 896 ($imdb->{cast}->{$c} ? " as $imdb->{cast}->{$c}" : ""); 897 $num++; 898 } 889 899 } 890 900 } 891 901 892 902 $imdb_desc .= sprintf "\n Directors: %s", 893 join(", ",keys %{($imdb->{directors})}) 903 join(", ", ref($imdb->{directors}) eq "ARRAY" ? 904 map(@$_[0], @{$imdb->{directors}}) : sort keys %{$imdb->{directors}}) 894 905 if ($imdb->{directors}); 895 906 $imdb_desc .= sprintf "\n Writers: %s", 896 join(", ",keys %{($imdb->{writers})}) 907 join(", ", ref($imdb->{writers}) eq "ARRAY" ? 908 map(@$_[0], @{$imdb->{writers}}) : sort keys %{$imdb->{writers}}) 897 909 if ($imdb->{writers}); 898 910 … … 994 1006 995 1007 if (defined $imdb->{cast}) { 996 foreach my $cast (sort keys %{($imdb->{cast})}) { 1008 foreach my $cast (ref($imdb->{cast}) eq "ARRAY" ? 1009 map(@$_[0], @{$imdb->{cast}}) : sort keys %{$imdb->{cast}}) { 997 1010 my $found_cast = 0; 998 1011 if ((defined $prog->{credits}) && (defined $prog->{credits}->{actor})) { … … 1006 1019 1007 1020 if (defined $imdb->{writers}) { 1008 foreach my $cast (keys %{($imdb->{writers})}) { 1021 foreach my $cast (ref($imdb->{writers}) eq "ARRAY" ? 1022 map(@$_[0], @{$imdb->{writers}}) : sort keys %{$imdb->{writers}}) { 1009 1023 my $found_cast = 0; 1010 1024 if ((defined $prog->{credits}) && (defined $prog->{credits}->{writer})) { … … 1018 1032 1019 1033 if (defined $imdb->{directors}) { 1020 foreach my $cast (keys %{($imdb->{directors})}) { 1034 foreach my $cast (ref($imdb->{directors}) eq "ARRAY" ? 1035 map(@$_[0], @{$imdb->{directors}}) : sort keys %{$imdb->{directors}}) { 1021 1036 my $found_cast = 0; 1022 1037 if ((defined $prog->{credits}) && (defined $prog->{credits}->{director})) { -
status
r842 r843 15 15 grabber ten_website 1.01 16 16 reconciler reconciler_mk2 0.32 17 postprocessor imdb_augment_data 0.2 317 postprocessor imdb_augment_data 0.24 18 18 postprocessor tvdb_augment_data 0.06 19 19 postprocessor flag_aus_hdtv 0.18
