| | 310 | |
| | 311 | Shepherd::Common::log(" - prog ".(defined $title ? $title : "")) if (defined $opt->{debug}); |
| | 312 | if ((!defined $prog->{desc}) || (!defined $prog->{desc}->[0]) || (!defined $prog->{desc}->[0]->[0])) { |
| | 313 | # no existing description on programme. lets see if we can add one |
| | 314 | |
| | 315 | if ((defined $title) && (defined $data_cache->{prog}->{$title})) { |
| | 316 | my $new_desc = ""; |
| | 317 | $new_desc .= $data_cache->{prog}->{$title}->{SERIES}->{Overview} |
| | 318 | if ((defined $data_cache->{prog}->{$title}->{SERIES}) && |
| | 319 | (defined $data_cache->{prog}->{$title}->{SERIES}->{Overview}) && |
| | 320 | ($data_cache->{prog}->{$title}->{SERIES}->{Overview} ne "")); |
| | 321 | |
| | 322 | $new_desc .= ($new_desc ne "" ? "\n\n" : ""). |
| | 323 | $data_cache->{prog}->{$title}->{$subtitle}->{Overview} |
| | 324 | if ((defined $subtitle) && |
| | 325 | (defined $data_cache->{prog}->{$title}->{$subtitle}) && |
| | 326 | (defined $data_cache->{prog}->{$title}->{$subtitle}->{Ovewview}) && |
| | 327 | ($data_cache->{prog}->{$title}->{$subtitle}->{Ovewview} ne "")); |
| | 328 | |
| | 329 | if ($new_desc ne "") { |
| | 330 | $stats{inserted_new_title}++; |
| | 331 | $prog->{desc}->[0]->[0] = $new_desc; |
| | 332 | Shepherd::Common::log(" existing desc was blank, added '$new_desc'") if (defined $opt->{debug}); |
| | 333 | } |
| | 334 | } |
| | 335 | } |
| | 336 | |
| | 337 | |
| 312 | | $found_genre++ if (lc($series_data->{Genre}) eq lc($category->[0])); |
| 313 | | } |
| 314 | | push(@{($prog->{category})},[$series_data->{Genre}]) if (!$found_genre); |
| 315 | | } |
| 316 | | |
| 317 | | # don't do Actors for now - thetvdb.com has multiple formats for them |
| | 358 | $found_genre++ if (lc($g) eq lc($category->[0])); |
| | 359 | } |
| | 360 | if (!$found_genre) { |
| | 361 | push(@{($prog->{category})},[$g]); |
| | 362 | Shepherd::Common::log(" added genre '$g'") if (defined $opt->{debug}); |
| | 363 | } |
| | 364 | } |
| | 365 | |
| | 366 | # Actors |
| | 367 | if ((defined $series_data->{Actors}) && ($series_data->{Actors} ne "") && |
| | 368 | (defined $prog->{credits}) && (defined $prog->{credits}->{actor})) { |
| | 369 | foreach my $cast (split(/[\|,]/,$series_data->{Actors})) { |
| | 370 | $cast =~ s/(^\s+|\s+$)//g; |
| | 371 | next if ($cast eq ""); |
| | 372 | my $found_cast = 0; |
| | 373 | foreach my $a (@{($prog->{credits}->{actor})}) { |
| | 374 | $found_cast++ if (lc($cast) eq lc($a)); |
| | 375 | } |
| | 376 | if (!$found_cast) { |
| | 377 | push(@{($prog->{credits}->{actor})},$cast); |
| | 378 | Shepherd::Common::log(" added series actor '$cast'") if (defined $opt->{debug}); |
| | 379 | } |
| | 380 | } |
| | 381 | } |
| 342 | | push (@{($prog->{url})},$episode_data->{ShowURL}) if (!$found_url); |
| 343 | | } |
| 344 | | |
| 345 | | # don't do GuestStars, Director, Writer for now - thetvdb.com has multiple formats for them |
| | 406 | if (!$found_url) { |
| | 407 | push (@{($prog->{url})},$episode_data->{ShowURL}); |
| | 408 | Shepherd::Common::log(" added url '".$episode_data->{ShowURL}."'") if (defined $opt->{debug}); |
| | 409 | } |
| | 410 | } |
| | 411 | |
| | 412 | # GuestStars |
| | 413 | if ((defined $episode_data->{GuestStars}) && ($episode_data->{GuestStars} ne "") && |
| | 414 | (defined $prog->{credits}) && (defined $prog->{credits}->{actor})) { |
| | 415 | foreach my $cast (split(/[\|,]/,$episode_data->{GuestStars})) { |
| | 416 | $cast =~ s/(^\s+|\s+$)//g; |
| | 417 | next if ($cast eq ""); |
| | 418 | my $found_cast = 0; |
| | 419 | foreach my $a (@{($prog->{credits}->{actor})}) { |
| | 420 | $found_cast++ if (lc($cast) eq lc($a)); |
| | 421 | } |
| | 422 | if (!$found_cast) { |
| | 423 | push(@{($prog->{credits}->{actor})},$cast); |
| | 424 | Shepherd::Common::log(" added guest star '$cast'") if (defined $opt->{debug}); |
| | 425 | } |
| | 426 | } |
| | 427 | } |
| | 428 | |
| | 429 | # Director |
| | 430 | if ((defined $episode_data->{Director}) && ($episode_data->{Director} ne "") && |
| | 431 | (defined $prog->{credits}) && (defined $prog->{credits}->{director})) { |
| | 432 | foreach my $cast (split(/[\|,]/,$episode_data->{Director})) { |
| | 433 | $cast =~ s/(^\s+|\s+$)//g; |
| | 434 | next if ($cast eq ""); |
| | 435 | my $found_cast = 0; |
| | 436 | foreach my $d (@{($prog->{credits}->{director})}) { |
| | 437 | $found_cast++ if (lc($cast) eq lc($d)); |
| | 438 | } |
| | 439 | if (!$found_cast) { |
| | 440 | push(@{($prog->{credits}->{director})},$cast); |
| | 441 | Shepherd::Common::log(" added director '$cast'") if (defined $opt->{debug}); |
| | 442 | } |
| | 443 | } |
| | 444 | } |
| | 445 | |
| | 446 | # Writer |
| | 447 | if ((defined $episode_data->{Writer}) && ($episode_data->{Writer} ne "") && |
| | 448 | (defined $prog->{credits}) && (defined $prog->{credits}->{writer})) { |
| | 449 | foreach my $cast (split(/[\|,]/,$episode_data->{Writer})) { |
| | 450 | $cast =~ s/(^\s+|\s+$)//g; |
| | 451 | next if ($cast eq ""); |
| | 452 | my $found_cast = 0; |
| | 453 | foreach my $w (@{($prog->{credits}->{writer})}) { |
| | 454 | $found_cast++ if (lc($cast) eq lc($w)); |
| | 455 | } |
| | 456 | if (!$found_cast) { |
| | 457 | push(@{($prog->{credits}->{writer})},$cast); |
| | 458 | Shepherd::Common::log(" added writer '$cast'") if (defined $opt->{debug}); |
| | 459 | } |
| | 460 | } |
| | 461 | } |