Changeset 1393
- Timestamp:
- 12/11/11 13:50:55 (5 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
grabbers/foxtel_swf (modified) (28 diffs)
-
status (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/grabbers/foxtel_swf
r1390 r1393 8 8 9 9 my $progname = "foxtel_swf"; 10 my $version = " 2.04";10 my $version = "3.00"; 11 11 my $cache_file = $progname.".storable.cache"; 12 12 … … 384 384 385 385 die "Failed to retrieve valid ReferenceData\n" 386 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns 1:InitialiseEpgOut'});387 my $ref = $parsed_xml->{'soapenv:Body'}->{'ns 1:InitialiseEpgOut'};386 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns5:InitialiseEpgOut'}); 387 my $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:InitialiseEpgOut'}; 388 388 389 389 # check for error response 390 die "ReferenceData page indicated failure code: ".$ref->{'ns 1:EPGFault'}->{'ns1:Message'}.": aborting!\n"391 if ($ref->{'ns 1:EPGFault'}->{'ns1:Message'});390 die "ReferenceData page indicated failure code: ".$ref->{'ns5:EPGFault'}->{'ns5:Message'}.": aborting!\n" 391 if ($ref->{'ns5:EPGFault'}->{'ns5:Message'}); 392 392 393 393 # get bouqet 394 394 die "Failed to retrieve Bouquet\n" 395 if (!defined $ref->{'ns 1:Bouquet'});396 $d->{bouquet}->{bouquet_id} = $ref->{'ns 1:Bouquet'}->{'ns1:BouquetId'};397 $d->{bouquet}->{subbouquet_id} = $ref->{'ns 1:Bouquet'}->{'ns1:SubBouquetId'};395 if (!defined $ref->{'ns5:Bouquet'}); 396 $d->{bouquet}->{bouquet_id} = $ref->{'ns5:Bouquet'}->{'ns5:BouquetId'}; 397 $d->{bouquet}->{subbouquet_id} = $ref->{'ns5:Bouquet'}->{'ns5:SubBouquetId'}; 398 398 399 399 # get state 400 400 die "Failed to retrieve State\n" 401 if (!defined $ref->{'ns 1:State'});402 $d->{state}->{id} = $ref->{'ns 1:State'}->{'ns1:Id'};403 $d->{state}->{code} = $ref->{'ns 1:State'}->{'ns1:Code'};404 $d->{state}->{name} = $ref->{'ns 1:State'}->{'ns1:Name'};401 if (!defined $ref->{'ns5:State'}); 402 $d->{state}->{id} = $ref->{'ns5:State'}->{'ns5:Id'}; 403 $d->{state}->{code} = $ref->{'ns5:State'}->{'ns5:Code'}; 404 $d->{state}->{name} = $ref->{'ns5:State'}->{'ns5:Name'}; 405 405 Shepherd::Common::log(" - parsed state id:$d->{state}->{id}, code:$d->{state}->{code}, bouquet_id:$d->{bouquet}->{bouquet_id}, subbouquet_id:$d->{bouquet}->{subbouquet_id}, name:$d->{state}->{name}") if (defined $opt->{debug}); 406 406 407 407 # gather up channel categories 408 foreach my $category_ref (@{($ref->{'ns 1:ChannelCategories'}->{'ns1:Category'})}) {409 my $category_id = $category_ref->{'ns 1:Id'};410 my $category_name = $category_ref->{'ns 1:Name'};408 foreach my $category_ref (@{($ref->{'ns5:ChannelCategories'}->{'ns5:Category'})}) { 409 my $category_id = $category_ref->{'ns5:Id'}; 410 my $category_name = $category_ref->{'ns5:Name'}; 411 411 412 412 $d->{categories}->{$category_id} = $category_name; … … 417 417 $d->{genre_count} = 0; 418 418 $d->{subgenre_count} = 0; 419 foreach my $genre_ref (@{($ref->{'ns 1:Genres'}->{'ns1:Genre'})}) {420 my $genre_code = $genre_ref->{'ns 1:Code'};421 my $genre_name = $genre_ref->{'ns 1:Name'};419 foreach my $genre_ref (@{($ref->{'ns5:Genres'}->{'ns5:Genre'})}) { 420 my $genre_code = $genre_ref->{'ns5:Code'}; 421 my $genre_name = $genre_ref->{'ns5:Name'}; 422 422 423 423 $d->{genres}->{$genre_code}->{name} = $genre_name; 424 424 $d->{genre_count}++; 425 425 426 foreach my $subgenre_ref (@{($genre_ref->{'ns 1:SubGenre'})}) {427 # GetEventDetails returns ns 1:SubGenreCode Id, not Code, so we store the Id428 my $subgenre_code = $subgenre_ref->{'ns 1:Id'};429 my $subgenre_name = $subgenre_ref->{'ns 1:Name'};426 foreach my $subgenre_ref (@{($genre_ref->{'ns5:SubGenre'})}) { 427 # GetEventDetails returns ns5:SubGenreCode Id, not Code, so we store the Id 428 my $subgenre_code = $subgenre_ref->{'ns5:Id'}; 429 my $subgenre_name = $subgenre_ref->{'ns5:Name'}; 430 430 431 431 $d->{genres}->{$genre_code}->{$subgenre_code} = $subgenre_name; … … 439 439 # gather up channels 440 440 $d->{channel_count} = 0; 441 foreach my $channel_ref (@{($ref->{'ns 1:Channels'}->{'ns1:Channel'})}) {442 my $channel_id = $channel_ref->{'ns 1:Id'};443 my $channel_name = $channel_ref->{'ns 1:ChannelName'};441 foreach my $channel_ref (@{($ref->{'ns5:Channels'}->{'ns5:Channel'})}) { 442 my $channel_id = $channel_ref->{'ns5:Id'}; 443 my $channel_name = $channel_ref->{'ns5:ChannelName'}; 444 444 my $orig_channel_name = $channel_name; 445 445 $channel_name =~ s/[ \t()\[\]\+\.\-]//g; # remove special chars … … 449 449 $d->{channel_names}->{$channel_name} = $channel_id; 450 450 $d->{channels}->{$channel_id}->{name} = $orig_channel_name; 451 $d->{channels}->{$channel_id}->{number} = $channel_ref->{'ns 1:DigitalNumber'};452 $d->{channels}->{$channel_id}->{category} = $channel_ref->{'ns 1:ChannelCategoryId'};453 $d->{channels}->{$channel_id}->{content_warning} = $channel_ref->{'ns 1:ContentWarningInd'};454 $d->{channels}->{$channel_id}->{available} = $channel_ref->{'ns 1:ChannelAvailableInd'};455 $d->{channels}->{$channel_id}->{timeshift} = $channel_ref->{'ns 1:TimeShiftInd'};451 $d->{channels}->{$channel_id}->{number} = $channel_ref->{'ns5:DigitalNumber'}; 452 $d->{channels}->{$channel_id}->{category} = $channel_ref->{'ns5:ChannelCategoryId'}; 453 $d->{channels}->{$channel_id}->{content_warning} = $channel_ref->{'ns5:ContentWarningInd'}; 454 $d->{channels}->{$channel_id}->{available} = $channel_ref->{'ns5:ChannelAvailableInd'}; 455 $d->{channels}->{$channel_id}->{timeshift} = $channel_ref->{'ns5:TimeShiftInd'}; 456 456 457 457 $d->{channel_count}++; … … 549 549 $ref = &soap_search_events($starttime, $stoptime); 550 550 return 1 if (! defined($ref)); 551 Shepherd::Common::log(" gathering synopsis for up to ".(scalar(@{($ref->{'ns 1:Events'}->{'ns1:Event'})}))." progs ...");551 Shepherd::Common::log(" gathering synopsis for up to ".(scalar(@{($ref->{'ns5:Events'}->{'ns5:Event'})}))." progs ..."); 552 552 553 553 # … … 561 561 562 562 my @event_list; 563 foreach my $prog_ref (@{($ref->{'ns 1:Events'}->{'ns1:Event'})}) {563 foreach my $prog_ref (@{($ref->{'ns5:Events'}->{'ns5:Event'})}) { 564 564 $prog_count++; 565 565 … … 569 569 my $new_stop = 0; 570 570 my $new_channel = "none"; 571 my $new_length = int($prog_ref->{'ns 1:Duration'} * 60);571 my $new_length = int($prog_ref->{'ns5:Duration'} * 60); 572 572 my $new_title; 573 $new_title = $prog_ref->{'ns 1:ProgramTitle'} if (defined $prog_ref->{'ns1:ProgramTitle'});574 575 if ((defined $prog_ref->{'ns 1:ScheduledDate'}) &&576 ($prog_ref->{'ns 1:ScheduledDate'} =~ /^(\d{4})-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})\+(\d{2}):(\d{2})$/)) {573 $new_title = $prog_ref->{'ns5:ProgramTitle'} if (defined $prog_ref->{'ns5:ProgramTitle'}); 574 575 if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 576 ($prog_ref->{'ns5:ScheduledDate'} =~ /^(\d{4})-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})\+(\d{2}):(\d{2})$/)) { 577 577 my $prog_tz = "+".$8.$9; 578 578 my @t = ($6, $5, $4, $3, ($2-1), ($1-1900), -1, -1, -1); … … 584 584 $new_stop = POSIX::strftime("%Y%m%d%H%M%S", localtime($prog_stop))." ".$prog_tz; 585 585 if ((defined $opt->{daynum}) and ( $prog_start < $first_start_time )) 586 { print("Skipping, starts before requested time at $prog_ref->{'ns 1:ScheduledDate'}\n"); next; }586 { print("Skipping, starts before requested time at $prog_ref->{'ns5:ScheduledDate'}\n"); next; } 587 587 } else { 588 588 $stats{skipped_prog_bad_starttime}++; 589 Shepherd::Common::log("unparsable date ".$prog_ref->{'ns 1:ScheduledDate'})590 if ((defined $prog_ref->{'ns 1:ScheduledDate'}) &&589 Shepherd::Common::log("unparsable date ".$prog_ref->{'ns5:ScheduledDate'}) 590 if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 591 591 ($stats{skipped_prog_bad_starttime} < 10)); 592 592 next; … … 595 595 ### and its on the same channel (new_channl is used as a cache key 596 596 597 if ((defined $prog_ref->{'ns 1:ChannelId'}) &&598 (defined $d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{xmlid})) {599 $new_channel = $d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{xmlid};597 if ((defined $prog_ref->{'ns5:ChannelId'}) && 598 (defined $d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{xmlid})) { 599 $new_channel = $d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{xmlid}; 600 600 } else { 601 601 $stats{skipped_prog_bad_channel}++; … … 607 607 608 608 # if we have a ProgramId... 609 if (defined $prog_ref->{'ns 1:ProgramId'}) {610 my $prog_id = $new_channel . $prog_ref->{'ns 1:ProgramId'};609 if (defined $prog_ref->{'ns5:ProgramId'}) { 610 my $prog_id = $new_channel . $prog_ref->{'ns5:ProgramId'}; 611 611 # check the cache 612 # print ("Checking prog cache for $prog_id.... ($prog_ref->{'ns 1:ProgramTitle'})\n");612 # print ("Checking prog cache for $prog_id.... ($prog_ref->{'ns5:ProgramTitle'})\n"); 613 613 if ((defined $data_cache->{prog_cache}->{$prog_id}) && (ref $data_cache->{prog_cache}->{$prog_id}->{details})) { 614 614 $cache_hit++; … … 630 630 # print (" Found cache Progm for $prog_id ($new_title) [$eptitle] \n"); 631 631 632 Shepherd::Common::log("DEBUG: Found cache Program for ".$prog_id ."... (".($prog_ref->{'ns 1:ProgramTitle'}).")") if (defined $opt->{debug}) ;632 Shepherd::Common::log("DEBUG: Found cache Program for ".$prog_id ."... (".($prog_ref->{'ns5:ProgramTitle'}).")") if (defined $opt->{debug}) ; 633 633 Shepherd::Common::log("DEBUG: PCache: ".Dumper($hghghgh)) if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 634 634 … … 640 640 ### now check the event cache for other details.... 641 641 # if we have an EventID ... (must be one!) 642 my $event_id = $new_channel . $prog_ref->{'ns 1:EventId'};642 my $event_id = $new_channel . $prog_ref->{'ns5:EventId'}; 643 643 644 # print ("Checking event cache for $event_id.... ($prog_ref->{'ns 1:ProgramTitle'})\n");644 # print ("Checking event cache for $event_id.... ($prog_ref->{'ns5:ProgramTitle'})\n"); 645 645 646 646 if ((defined $data_cache->{event_cache}->{$event_id}) && (ref $data_cache->{event_cache}->{$event_id}->{details})) { … … 660 660 # print (" Found cache Event for $event_id ($new_title) [$eptitle] \n"); 661 661 662 Shepherd::Common::log("DEBUG: Found cache Event entry for ".$event_id."... (".($prog_ref->{'ns 1:ProgramTitle'}).")") if (defined $opt->{debug}) ;662 Shepherd::Common::log("DEBUG: Found cache Event entry for ".$event_id."... (".($prog_ref->{'ns5:ProgramTitle'}).")") if (defined $opt->{debug}) ; 663 663 Shepherd::Common::log("DEBUG: ECach: ".Dumper($hghghgh)) if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 664 664 next; … … 667 667 668 668 $cache_miss++; 669 # print (" Pushing event $prog_ref->{'ns 1:EventId'} for lookup\n");670 push(@event_list, $prog_ref->{'ns 1:EventId'});669 # print (" Pushing event $prog_ref->{'ns5:EventId'} for lookup\n"); 670 push(@event_list, $prog_ref->{'ns5:EventId'}); 671 671 } ### foreach my $prog_ref 672 672 … … 681 681 # 682 682 $ref = &soap_get_event_details(@event_list); 683 foreach my $prog_ref (@{($ref->{'ns 1:EventDetail'})}) {683 foreach my $prog_ref (@{($ref->{'ns5:EventDetail'})}) { 684 684 my $prog; 685 685 686 $prog->{title} = [[ $prog_ref->{'ns 1:ProgramTitle'}, $opt->{lang} ]];686 $prog->{title} = [[ $prog_ref->{'ns5:ProgramTitle'}, $opt->{lang} ]]; 687 687 if ($prog->{title}->[0]->[0] =~ s/\s*(?:S(\d+)\s*)?Ep(\d+)(?:\s*&(?:amp;)?\s*\d+$)?//i) { # "S1 Ep5 & 6" 688 688 my $xmltv_ns = ($1 ? ($1 - 1) : "") ." . ". ($2 ? ($2 - 1) : "") ." . "; # drops " & 6" … … 690 690 #<title lang="en">Brotherhood S1 Ep5 & 6</title> 691 691 } 692 $prog->{length} = int($prog_ref->{'ns 1:Duration'} * 60);693 694 if (!defined $prog_ref->{'ns 1:Duration'}) {692 $prog->{length} = int($prog_ref->{'ns5:Duration'} * 60); 693 694 if (!defined $prog_ref->{'ns5:Duration'}) { 695 695 $stats{skipped_prog_no_duration}++; 696 696 next; 697 697 } 698 698 699 if ((defined $prog_ref->{'ns 1:ScheduledDate'}) &&700 ($prog_ref->{'ns 1:ScheduledDate'} =~ /^(\d{4})-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})\+(\d{2}):(\d{2})$/)) {699 if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 700 ($prog_ref->{'ns5:ScheduledDate'} =~ /^(\d{4})-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})\+(\d{2}):(\d{2})$/)) { 701 701 my $prog_tz = "+".$8.$9; 702 702 my @t = ($6, $5, $4, $3, ($2-1), ($1-1900), -1, -1, -1); … … 709 709 } else { 710 710 $stats{skipped_prog_bad_starttime}++; 711 Shepherd::Common::log("unparsable date ".$prog_ref->{'ns 1:ScheduledDate'})712 if ((defined $prog_ref->{'ns 1:ScheduledDate'}) &&711 Shepherd::Common::log("unparsable date ".$prog_ref->{'ns5:ScheduledDate'}) 712 if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 713 713 ($stats{skipped_prog_bad_starttime} < 10)); 714 714 next; 715 715 } 716 716 717 if ((defined $prog_ref->{'ns 1:ChannelId'}) &&718 (defined $d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{xmlid})) {719 $prog->{channel} = $d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{xmlid};717 if ((defined $prog_ref->{'ns5:ChannelId'}) && 718 (defined $d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{xmlid})) { 719 $prog->{channel} = $d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{xmlid}; 720 720 } else { 721 721 $stats{skipped_prog_bad_channel}++; … … 723 723 } 724 724 725 if ((defined $prog_ref->{'ns 1:EpisodeTitle'}) &&726 (ref $prog_ref->{'ns 1:EpisodeTitle'} ne "HASH") &&727 ($prog_ref->{'ns 1:EpisodeTitle'} ne "")) {728 $prog->{'sub-title'} = [[ $prog_ref->{'ns 1:EpisodeTitle'}, $opt->{lang} ]];725 if ((defined $prog_ref->{'ns5:EpisodeTitle'}) && 726 (ref $prog_ref->{'ns5:EpisodeTitle'} ne "HASH") && 727 ($prog_ref->{'ns5:EpisodeTitle'} ne "")) { 728 $prog->{'sub-title'} = [[ $prog_ref->{'ns5:EpisodeTitle'}, $opt->{lang} ]]; 729 729 if ($prog->{'sub-title'}->[0]->[0] =~ /(?:Series\s*(\d+),\s*)?Episode\s*(\d+)/i) { # "Series 2, Episode 19" 730 730 my $xmltv_ns = ($1 ? ($1 - 1) : "") ." . ". ($2 ? ($2 - 1) : "") ." . "; … … 736 736 737 737 # Program rating and consumer advice 738 if ($prog_ref->{'ns 1:ParentalRating'} ne "-") {739 if (defined $prog_ref->{'ns 1:ConsumerAdvice'}) {740 my $advice = $prog_ref->{'ns 1:ConsumerAdvice'};738 if ($prog_ref->{'ns5:ParentalRating'} ne "-") { 739 if (defined $prog_ref->{'ns5:ConsumerAdvice'}) { 740 my $advice = $prog_ref->{'ns5:ConsumerAdvice'}; 741 741 $advice =~ s/\s//g; 742 $prog->{rating} = [[ $prog_ref->{'ns 1:ParentalRating'}." ".$advice, 'ABA', undef ]] ;742 $prog->{rating} = [[ $prog_ref->{'ns5:ParentalRating'}." ".$advice, 'ABA', undef ]] ; 743 743 } 744 744 else { 745 $prog->{rating} = [[ $prog_ref->{'ns 1:ParentalRating'}, 'ABA', undef ]] ;745 $prog->{rating} = [[ $prog_ref->{'ns5:ParentalRating'}, 'ABA', undef ]] ; 746 746 } 747 747 } 748 748 749 749 $prog->{subtitles} = [ { 'type' => 'teletext' } ] 750 if (((defined $prog_ref->{'ns 1:SubtitledInd'}) && ($prog_ref->{'ns1:SubtitledInd'} ne "false")) ||751 ((defined $prog_ref->{'ns 1:ClosedCaptionInd'}) && ($prog_ref->{'ns1:ClosedCaptionInd'} ne "false")));750 if (((defined $prog_ref->{'ns5:SubtitledInd'}) && ($prog_ref->{'ns5:SubtitledInd'} ne "false")) || 751 ((defined $prog_ref->{'ns5:ClosedCaptionInd'}) && ($prog_ref->{'ns5:ClosedCaptionInd'} ne "false"))); 752 752 $prog->{video}->{aspect} = "16:9" 753 if ((defined $prog_ref->{'ns 1:WidescreenInd'}) && ($prog_ref->{'ns1:WidescreenInd'} ne "false"));753 if ((defined $prog_ref->{'ns5:WidescreenInd'}) && ($prog_ref->{'ns5:WidescreenInd'} ne "false")); 754 754 $prog->{video}->{quality} = "HDTV" 755 if (defined $prog_ref->{'ns 1:HDInd'} && ($prog_ref->{'ns1:HDInd'} ne "false"));756 757 if (defined $prog_ref->{'ns 1:Audio'}) {755 if (defined $prog_ref->{'ns5:HDInd'} && ($prog_ref->{'ns5:HDInd'} ne "false")); 756 757 if (defined $prog_ref->{'ns5:Audio'}) { 758 758 # try to match bad values like 'dolby stereo' 759 $prog->{audio}->{stereo} = 'mono' if ($prog_ref->{'ns 1:Audio'} =~ m/mono/i);760 $prog->{audio}->{stereo} = 'stereo' if ($prog_ref->{'ns 1:Audio'} =~ m/stereo/i);761 $prog->{audio}->{stereo} = 'dolby' if ($prog_ref->{'ns 1:Audio'} =~ m/dolby/i);762 $prog->{audio}->{stereo} = 'dolby digital' if ($prog_ref->{'ns 1:Audio'} =~ m/digital/i);763 $prog->{audio}->{stereo} = 'surround' if ($prog_ref->{'ns 1:Audio'} =~ m/surround/i);759 $prog->{audio}->{stereo} = 'mono' if ($prog_ref->{'ns5:Audio'} =~ m/mono/i); 760 $prog->{audio}->{stereo} = 'stereo' if ($prog_ref->{'ns5:Audio'} =~ m/stereo/i); 761 $prog->{audio}->{stereo} = 'dolby' if ($prog_ref->{'ns5:Audio'} =~ m/dolby/i); 762 $prog->{audio}->{stereo} = 'dolby digital' if ($prog_ref->{'ns5:Audio'} =~ m/digital/i); 763 $prog->{audio}->{stereo} = 'surround' if ($prog_ref->{'ns5:Audio'} =~ m/surround/i); 764 764 } 765 765 766 766 # get actors, directors and writers 767 foreach my $actor (@{$prog_ref->{'ns 1:Actor'}}) { push(@{($prog->{credits}->{actor})}, $actor); }768 foreach my $director (@{$prog_ref->{'ns 1:Director'}}) { push(@{($prog->{credits}->{director})}, $director); }769 foreach my $writer (@{$prog_ref->{'ns 1:Writer'}}) { push(@{($prog->{credits}->{writer})}, $writer); }767 foreach my $actor (@{$prog_ref->{'ns5:Actor'}}) { push(@{($prog->{credits}->{actor})}, $actor); } 768 foreach my $director (@{$prog_ref->{'ns5:Director'}}) { push(@{($prog->{credits}->{director})}, $director); } 769 foreach my $writer (@{$prog_ref->{'ns5:Writer'}}) { push(@{($prog->{credits}->{writer})}, $writer); } 770 770 771 771 # get description/synopsis 772 $prog->{desc} = [[ $prog_ref->{'ns 1:ExtendedSynopsis'}, $opt->{lang} ]] if (defined $prog_ref->{'ns1:ExtendedSynopsis'});772 $prog->{desc} = [[ $prog_ref->{'ns5:ExtendedSynopsis'}, $opt->{lang} ]] if (defined $prog_ref->{'ns5:ExtendedSynopsis'}); 773 773 774 774 # TODO: get series and episode number 775 # my $series_num = (defined $prog_ref->{'ns 1:SeriesNumber'}) ? $prog_ref->{'ns1:SeriesNumber'} : "";776 # my $episode_num = (defined $prog_ref->{'ns 1:EpisodeNumber'}) ? $prog_ref->{'ns1:EpisodeNumber'} : "";775 # my $series_num = (defined $prog_ref->{'ns5:SeriesNumber'}) ? $prog_ref->{'ns5:SeriesNumber'} : ""; 776 # my $episode_num = (defined $prog_ref->{'ns5:EpisodeNumber'}) ? $prog_ref->{'ns5:EpisodeNumber'} : ""; 777 777 # if ((defined ) && (defined )) { 778 # if ($prog_ref->{'ns 1:SeriesNumber'} =~ s/(?:S(?:Series\s*)?(\d+),\s*)//i) {779 # my $xmltv_ns = ($1 - 1)." . ".($prog_ref->{'ns 1:EpisodeNumber'} - 1)." . ";778 # if ($prog_ref->{'ns5:SeriesNumber'} =~ s/(?:S(?:Series\s*)?(\d+),\s*)//i) { 779 # my $xmltv_ns = ($1 - 1)." . ".($prog_ref->{'ns5:EpisodeNumber'} - 1)." . "; 780 780 # $prog->{'episode-num'} = [[ $xmltv_ns, 'xmltv_ns' ]]; 781 781 # } 782 782 # else { 783 # my $xmltv_ns = ($prog_ref->{'ns 1:SeriesNumber'} - 1)." . ".($prog_ref->{'ns1:EpisodeNumber'} - 1)." . 0";783 # my $xmltv_ns = ($prog_ref->{'ns5:SeriesNumber'} - 1)." . ".($prog_ref->{'ns5:EpisodeNumber'} - 1)." . 0"; 784 784 # $prog->{'episode-num'} = [[ $xmltv_ns, 'xmltv_ns' ]]; 785 785 # } 786 786 # } 787 787 # else { 788 # $prog->{'episode-num'} = [[ $prog_ref->{'ns 1:EpisodeNumber'}, 'onscreen' ]] if (defined $prog_ref->{'ns1:EpisodeNumber'});788 # $prog->{'episode-num'} = [[ $prog_ref->{'ns5:EpisodeNumber'}, 'onscreen' ]] if (defined $prog_ref->{'ns5:EpisodeNumber'}); 789 789 # } 790 790 ######### here #### mb try to get episode numbers - not real good with fox - lots of prints to get rid of 791 791 ######### 792 if (defined($prog->{'episode-num'}) ) { print("#### Episodes pre-defined: Title: $prog_ref->{'ns 1:ProgramTitle'} \n"); }792 if (defined($prog->{'episode-num'}) ) { print("#### Episodes pre-defined: Title: $prog_ref->{'ns5:ProgramTitle'} \n"); } 793 793 else { ## process episode nums 794 794 my $se_num = " "; … … 796 796 my $ep_tit = ""; 797 797 my $xmltv_ns = ""; 798 if (defined($prog_ref->{'ns 1:EpisodeTitle'})) { $ep_tit = $prog_ref->{'ns1:EpisodeTitle'}; }799 if (defined($prog_ref->{'ns 1:SeriesNumber'})) { $se_num = $prog_ref->{'ns1:SeriesNumber'} ;}800 if (defined($prog_ref->{'ns 1:EpisodeNumber'})) { $ep_num = $prog_ref->{'ns1:EpisodeNumber'}; }798 if (defined($prog_ref->{'ns5:EpisodeTitle'})) { $ep_tit = $prog_ref->{'ns5:EpisodeTitle'}; } 799 if (defined($prog_ref->{'ns5:SeriesNumber'})) { $se_num = $prog_ref->{'ns5:SeriesNumber'} ;} 800 if (defined($prog_ref->{'ns5:EpisodeNumber'})) { $ep_num = $prog_ref->{'ns5:EpisodeNumber'}; } 801 801 802 802 if (( $se_num ne " ") or ( $ep_num ne " ")) 803 803 { ## one of them exists 804 print("#### Episodes found: Se_num: $se_num Ep_num: ($ep_num $prog_ref->{'ns 1:ProgramTitle'}) [$ep_tit]\n");804 print("#### Episodes found: Se_num: $se_num Ep_num: ($ep_num $prog_ref->{'ns5:ProgramTitle'}) [$ep_tit]\n"); 805 805 806 806 if ( $se_num=~ /^S(\d+)$/) { $se_num = $1; } … … 857 857 858 858 # get genre and subgenre 859 if ((defined $prog_ref->{'ns 1:GenreCode'}) &&860 (defined $prog_ref->{'ns 1:SubGenreCode'}) &&861 (defined $d->{genres}->{$prog_ref->{'ns 1:GenreCode'}}->{$prog_ref->{'ns1:SubGenreCode'}})) {862 my $category = $d->{genres}->{$prog_ref->{'ns 1:GenreCode'}}->{$prog_ref->{'ns1:SubGenreCode'}};859 if ((defined $prog_ref->{'ns5:GenreCode'}) && 860 (defined $prog_ref->{'ns5:SubGenreCode'}) && 861 (defined $d->{genres}->{$prog_ref->{'ns5:GenreCode'}}->{$prog_ref->{'ns5:SubGenreCode'}})) { 862 my $category = $d->{genres}->{$prog_ref->{'ns5:GenreCode'}}->{$prog_ref->{'ns5:SubGenreCode'}}; 863 863 $prog->{category} = [[ $category , $opt->{lang} ]]; 864 864 865 865 #more accurate than method below, gets movies on non-movie channels, and misses shows on movie channels 866 push(@{$prog->{category}}, ['Movie', $opt->{lang}]) if $d->{genres}->{$prog_ref->{'ns 1:GenreCode'}}->{name} eq 'Movies';867 # push(@{$prog->{category}}, ['Sports', $opt->{lang}]) if $d->{genres}->{$prog_ref->{'ns 1:GenreCode'}}->{name} eq 'Sport';868 869 if ((defined $d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{category}) &&870 (defined $d->{categories}->{$d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{category}})) {871 my $ch_category = $d->{categories}->{$d->{channels}->{$prog_ref->{'ns 1:ChannelId'}}->{category}};866 push(@{$prog->{category}}, ['Movie', $opt->{lang}]) if $d->{genres}->{$prog_ref->{'ns5:GenreCode'}}->{name} eq 'Movies'; 867 # push(@{$prog->{category}}, ['Sports', $opt->{lang}]) if $d->{genres}->{$prog_ref->{'ns5:GenreCode'}}->{name} eq 'Sport'; 868 869 if ((defined $d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{category}) && 870 (defined $d->{categories}->{$d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{category}})) { 871 my $ch_category = $d->{categories}->{$d->{channels}->{$prog_ref->{'ns5:ChannelId'}}->{category}}; 872 872 # push(@{$prog->{category}}, ['Movie', $opt->{lang}]) if $ch_category eq 'Movies'; 873 873 push(@{$prog->{category}}, ['Sports', $opt->{lang}]) if $ch_category eq 'Sport'; … … 877 877 878 878 # get urls/weblinks 879 if (defined $prog_ref->{'ns 1:WebLink'}) {880 if (ref($prog_ref->{'ns 1:WebLink'}) eq "HASH") {881 push(@{$prog->{url}}, $prog_ref->{'ns 1:WebLink'}->{'ns1:Url'})882 } 883 elsif (ref($prog_ref->{'ns 1:WebLink'}) eq "ARRAY") {884 my @webarray = @{$prog_ref->{'ns 1:WebLink'}};879 if (defined $prog_ref->{'ns5:WebLink'}) { 880 if (ref($prog_ref->{'ns5:WebLink'}) eq "HASH") { 881 push(@{$prog->{url}}, $prog_ref->{'ns5:WebLink'}->{'ns5:Url'}) 882 } 883 elsif (ref($prog_ref->{'ns5:WebLink'}) eq "ARRAY") { 884 my @webarray = @{$prog_ref->{'ns5:WebLink'}}; 885 885 my $u = 0; 886 886 while ($u <= $#webarray) { 887 push(@{$prog->{url}}, $webarray[$u]->{'ns 1:Url'});887 push(@{$prog->{url}}, $webarray[$u]->{'ns5:Url'}); 888 888 $u++; 889 889 } … … 894 894 895 895 # get date/YearOfProduction 896 $prog->{date} = $prog_ref->{'ns 1:YearOfProduction'} if (defined $prog_ref->{'ns1:YearOfProduction'});896 $prog->{date} = $prog_ref->{'ns5:YearOfProduction'} if (defined $prog_ref->{'ns5:YearOfProduction'}); 897 897 898 898 # get country 899 push(@{($prog->{country})}, [$prog_ref->{'ns 1:CountryOfOrigin'}]) if (defined $prog_ref->{'ns1:CountryOfOrigin'});899 push(@{($prog->{country})}, [$prog_ref->{'ns5:CountryOfOrigin'}]) if (defined $prog_ref->{'ns5:CountryOfOrigin'}); 900 900 901 901 # get language 902 $prog->{language}->[0] = $prog_ref->{'ns 1:Language'} if (defined $prog_ref->{'ns1:Language'});902 $prog->{language}->[0] = $prog_ref->{'ns5:Language'} if (defined $prog_ref->{'ns5:Language'}); 903 903 904 904 # get colour 905 if (defined $prog_ref->{'ns 1:ColourType'}) {906 $prog->{video}->{colour} = ($prog_ref->{'ns 1:ColourType'} =~ /colour|color/i) ? "1" : "0";905 if (defined $prog_ref->{'ns5:ColourType'}) { 906 $prog->{video}->{colour} = ($prog_ref->{'ns5:ColourType'} =~ /colour|color/i) ? "1" : "0"; 907 907 } 908 908 909 909 # get premiere 910 910 $prog->{premiere} = ["New Episode", $opt->{lang} ] 911 if (defined $prog_ref->{'ns 1:NewEpisode'} && ($prog_ref->{'ns1:NewEpisode'} ne "false"));911 if (defined $prog_ref->{'ns5:NewEpisode'} && ($prog_ref->{'ns5:NewEpisode'} ne "false")); 912 912 $prog->{premiere} = ["Premiere", $opt->{lang} ] 913 if (defined $prog_ref->{'ns 1:PremiereInd'} && ($prog_ref->{'ns1:PremiereInd'} ne "false"));913 if (defined $prog_ref->{'ns5:PremiereInd'} && ($prog_ref->{'ns5:PremiereInd'} ne "false")); 914 914 915 915 # <ContentWarning>als</ContentWarning> … … 917 917 Shepherd::Common::cleanup($prog); 918 918 919 if (defined $prog_ref->{'ns 1:ProgramId'}) {920 my $prog_id = $prog->{channel} . $prog_ref->{'ns 1:ProgramId'};919 if (defined $prog_ref->{'ns5:ProgramId'}) { 920 my $prog_id = $prog->{channel} . $prog_ref->{'ns5:ProgramId'}; 921 921 my $eptitle = ""; 922 $eptitle = $prog_ref->{'ns 1:EpisodeTitle'} if (defined($prog_ref->{'ns1:EpisodeTitle'}));922 $eptitle = $prog_ref->{'ns5:EpisodeTitle'} if (defined($prog_ref->{'ns5:EpisodeTitle'})); 923 923 924 # print ("*** Inserting ProgID $prog_id into cache...($prog_ref->{'ns 1:ProgramTitle'})[$eptitle]\n");924 # print ("*** Inserting ProgID $prog_id into cache...($prog_ref->{'ns5:ProgramTitle'})[$eptitle]\n"); 925 925 926 926 $data_cache->{prog_cache}->{$prog_id}->{progid} = $prog_id; 927 $data_cache->{prog_cache}->{$prog_id}->{title} = $prog_ref->{'ns 1:ProgramTitle'};927 $data_cache->{prog_cache}->{$prog_id}->{title} = $prog_ref->{'ns5:ProgramTitle'}; 928 928 $data_cache->{prog_cache}->{$prog_id}->{eptitle} = $eptitle; 929 929 $data_cache->{prog_cache}->{$prog_id}->{first_used} = $script_start_time; … … 935 935 # &write_cache; 936 936 } 937 elsif (defined $prog_ref->{'ns 1:EventId'}) {938 my $event_id = $prog->{channel} . $prog_ref->{'ns 1:EventId'};937 elsif (defined $prog_ref->{'ns5:EventId'}) { 938 my $event_id = $prog->{channel} . $prog_ref->{'ns5:EventId'}; 939 939 my $eptitle = ""; 940 $eptitle = $prog_ref->{'ns 1:EpisodeTitle'} if (defined($prog_ref->{'ns1:EpisodeTitle'}));941 942 print ("*** Inserting EventID $event_id into cache... ($prog_ref->{'ns 1:ProgramTitle'})[$eptitle]\n");940 $eptitle = $prog_ref->{'ns5:EpisodeTitle'} if (defined($prog_ref->{'ns5:EpisodeTitle'})); 941 942 print ("*** Inserting EventID $event_id into cache... ($prog_ref->{'ns5:ProgramTitle'})[$eptitle]\n"); 943 943 944 944 $data_cache->{event_cache}->{$event_id}->{eventid} = $event_id; 945 $data_cache->{event_cache}->{$event_id}->{title} = $prog_ref->{'ns 1:ProgramTitle'};945 $data_cache->{event_cache}->{$event_id}->{title} = $prog_ref->{'ns5:ProgramTitle'}; 946 946 $data_cache->{event_cache}->{$event_id}->{eptitle} = $eptitle; 947 947 $data_cache->{event_cache}->{$event_id}->{first_used} = $script_start_time; … … 1018 1018 Shepherd::Common::log("DEBUG: soap_search_events got: $data") if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 1019 1019 1020 $parsed_xml = XMLin($data , forcearray => [ qw(ns 1:Event) ]);1020 $parsed_xml = XMLin($data , forcearray => [ qw(ns5:Event) ]); 1021 1021 1022 1022 print Dumper( $parsed_xml) if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 1023 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns 1:SearchEventsOut'}) {1023 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns5:SearchEventsOut'}) { 1024 1024 $failure_code = "no_SearchEventsOut"; 1025 1025 } else { 1026 $ref = $parsed_xml->{'soapenv:Body'}->{'ns 1:SearchEventsOut'};1027 if (!defined $ref->{'ns 1:Events'}->{'ns1:Event'}) {1026 $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:SearchEventsOut'}; 1027 if (!defined $ref->{'ns5:Events'}->{'ns5:Event'}) { 1028 1028 $failure_code = "no_Events"; 1029 1029 } else { 1030 1030 ### 1031 if ((ref $ref->{'ns 1:Events'}->{'ns1:Event'} ne "ARRAY") || (scalar(@{$ref->{'ns1:Events'}->{'ns1:Event'}}) < 1))1031 if ((ref $ref->{'ns5:Events'}->{'ns5:Event'} ne "ARRAY") || (scalar(@{$ref->{'ns5:Events'}->{'ns5:Event'}}) < 1)) 1032 1032 { $failure_code = "not_array_Event"; 1033 1033 1034 ### if (ref $ref->{'ns 1:Events'}->{'ns1:Event'} ne "ARRAY") {1034 ### if (ref $ref->{'ns5:Events'}->{'ns5:Event'} ne "ARRAY") { 1035 1035 ### $failure_code = "not_array_Events"; 1036 1036 } else { … … 1080 1080 } else { 1081 1081 Shepherd::Common::log("DEBUG: soap_get_event_details got: $data") if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 1082 $parsed_xml = XMLin($data, forcearray => [ qw( ns 1:EventDetail ns1:Actor ns1:Director ns1:Writer) ]);1083 1084 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns 1:GetEventDetailsOut'}) {1082 $parsed_xml = XMLin($data, forcearray => [ qw( ns5:EventDetail ns5:Actor ns5:Director ns5:Writer) ]); 1083 1084 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns5:GetEventDetailsOut'}) { 1085 1085 $failure_code = "no_GetEventDetailsOut"; 1086 1086 } else { 1087 $ref = $parsed_xml->{'soapenv:Body'}->{'ns 1:GetEventDetailsOut'};1088 if (ref $ref->{'ns 1:EventDetail'} ne "ARRAY") {1089 my $s1st = ref $ref->{'ns 1:EventDetail'};1087 $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:GetEventDetailsOut'}; 1088 if (ref $ref->{'ns5:EventDetail'} ne "ARRAY") { 1089 my $s1st = ref $ref->{'ns5:EventDetail'}; 1090 1090 $failure_code = "not_array_EventDetail It is a $s1st"; 1091 1091 } else { -
trunk/status
r1392 r1393 10 10 grabber abc_website 4.11 11 11 grabber rex 9.1.0 12 grabber foxtel_swf 2.0412 grabber foxtel_swf 3.00 13 13 grabber acctv_website 0.09 14 14 grabber sbsweb 4.04
