Changeset 1393

Show
Ignore:
Timestamp:
12/11/11 13:50:55 (5 months ago)
Author:
max
Message:

foxtel_swf: Update for datasource change

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grabbers/foxtel_swf

    r1390 r1393  
    88 
    99my $progname = "foxtel_swf"; 
    10 my $version = "2.04"; 
     10my $version = "3.00"; 
    1111my $cache_file = $progname.".storable.cache"; 
    1212 
     
    384384 
    385385        die "Failed to retrieve valid ReferenceData\n" 
    386           if (!defined $parsed_xml->{'soapenv:Body'}->{'ns1:InitialiseEpgOut'}); 
    387         my $ref = $parsed_xml->{'soapenv:Body'}->{'ns1:InitialiseEpgOut'}; 
     386          if (!defined $parsed_xml->{'soapenv:Body'}->{'ns5:InitialiseEpgOut'}); 
     387        my $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:InitialiseEpgOut'}; 
    388388 
    389389        # check for error response 
    390         die "ReferenceData page indicated failure code: ".$ref->{'ns1:EPGFault'}->{'ns1:Message'}.": aborting!\n" 
    391           if ($ref->{'ns1:EPGFault'}->{'ns1:Message'}); 
     390        die "ReferenceData page indicated failure code: ".$ref->{'ns5:EPGFault'}->{'ns5:Message'}.": aborting!\n" 
     391          if ($ref->{'ns5:EPGFault'}->{'ns5:Message'}); 
    392392 
    393393        # get bouqet 
    394394        die "Failed to retrieve Bouquet\n" 
    395                 if (!defined $ref->{'ns1:Bouquet'}); 
    396         $d->{bouquet}->{bouquet_id} = $ref->{'ns1:Bouquet'}->{'ns1:BouquetId'}; 
    397         $d->{bouquet}->{subbouquet_id} = $ref->{'ns1: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'}; 
    398398         
    399399        # get state 
    400400        die "Failed to retrieve State\n" 
    401                 if (!defined $ref->{'ns1:State'}); 
    402         $d->{state}->{id} = $ref->{'ns1:State'}->{'ns1:Id'}; 
    403         $d->{state}->{code} = $ref->{'ns1:State'}->{'ns1:Code'}; 
    404         $d->{state}->{name} = $ref->{'ns1: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'}; 
    405405        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}); 
    406406 
    407407        # gather up channel categories 
    408         foreach my $category_ref (@{($ref->{'ns1:ChannelCategories'}->{'ns1:Category'})}) { 
    409                 my $category_id = $category_ref->{'ns1:Id'}; 
    410                 my $category_name = $category_ref->{'ns1: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'}; 
    411411 
    412412                $d->{categories}->{$category_id} = $category_name; 
     
    417417        $d->{genre_count} = 0; 
    418418        $d->{subgenre_count} = 0; 
    419         foreach my $genre_ref (@{($ref->{'ns1:Genres'}->{'ns1:Genre'})}) { 
    420                 my $genre_code = $genre_ref->{'ns1:Code'}; 
    421                 my $genre_name = $genre_ref->{'ns1: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'}; 
    422422 
    423423                $d->{genres}->{$genre_code}->{name} = $genre_name; 
    424424                $d->{genre_count}++; 
    425425                 
    426                 foreach my $subgenre_ref (@{($genre_ref->{'ns1:SubGenre'})}) { 
    427                         # GetEventDetails returns ns1:SubGenreCode Id, not Code, so we store the Id 
    428                         my $subgenre_code = $subgenre_ref->{'ns1:Id'}; 
    429                         my $subgenre_name = $subgenre_ref->{'ns1: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'}; 
    430430                         
    431431                        $d->{genres}->{$genre_code}->{$subgenre_code} = $subgenre_name; 
     
    439439        # gather up channels 
    440440        $d->{channel_count} = 0; 
    441         foreach my $channel_ref (@{($ref->{'ns1:Channels'}->{'ns1:Channel'})}) { 
    442                 my $channel_id = $channel_ref->{'ns1:Id'}; 
    443                 my $channel_name = $channel_ref->{'ns1: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'}; 
    444444                my $orig_channel_name = $channel_name; 
    445445                $channel_name =~ s/[ \t()\[\]\+\.\-]//g;        # remove special chars 
     
    449449                $d->{channel_names}->{$channel_name} = $channel_id; 
    450450                $d->{channels}->{$channel_id}->{name} = $orig_channel_name; 
    451                 $d->{channels}->{$channel_id}->{number} = $channel_ref->{'ns1:DigitalNumber'}; 
    452                 $d->{channels}->{$channel_id}->{category} = $channel_ref->{'ns1:ChannelCategoryId'}; 
    453                 $d->{channels}->{$channel_id}->{content_warning} = $channel_ref->{'ns1:ContentWarningInd'}; 
    454                 $d->{channels}->{$channel_id}->{available} = $channel_ref->{'ns1:ChannelAvailableInd'}; 
    455                 $d->{channels}->{$channel_id}->{timeshift} = $channel_ref->{'ns1: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'}; 
    456456 
    457457                $d->{channel_count}++; 
     
    549549  $ref = &soap_search_events($starttime, $stoptime); 
    550550  return 1 if (! defined($ref)); 
    551   Shepherd::Common::log("   gathering synopsis for up to ".(scalar(@{($ref->{'ns1:Events'}->{'ns1:Event'})}))." progs ..."); 
     551  Shepherd::Common::log("   gathering synopsis for up to ".(scalar(@{($ref->{'ns5:Events'}->{'ns5:Event'})}))." progs ..."); 
    552552         
    553553  # 
     
    561561         
    562562  my @event_list; 
    563   foreach my $prog_ref (@{($ref->{'ns1:Events'}->{'ns1:Event'})}) { 
     563  foreach my $prog_ref (@{($ref->{'ns5:Events'}->{'ns5:Event'})}) { 
    564564        $prog_count++; 
    565565     
     
    569569        my $new_stop = 0; 
    570570        my $new_channel = "none"; 
    571         my $new_length  = int($prog_ref->{'ns1:Duration'} * 60); 
     571        my $new_length  = int($prog_ref->{'ns5:Duration'} * 60); 
    572572        my $new_title; 
    573         $new_title = $prog_ref->{'ns1:ProgramTitle'} if (defined $prog_ref->{'ns1:ProgramTitle'}); 
    574                  
    575         if ((defined $prog_ref->{'ns1:ScheduledDate'}) && 
    576                     ($prog_ref->{'ns1: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})$/)) { 
    577577                        my $prog_tz = "+".$8.$9; 
    578578                        my @t = ($6, $5, $4, $3, ($2-1), ($1-1900), -1, -1, -1); 
     
    584584                        $new_stop =  POSIX::strftime("%Y%m%d%H%M%S", localtime($prog_stop))." ".$prog_tz; 
    585585                        if ((defined $opt->{daynum}) and ( $prog_start < $first_start_time )) 
    586                           { print("Skipping, starts before requested time at $prog_ref->{'ns1:ScheduledDate'}\n"); next; } 
     586                          { print("Skipping, starts before requested time at $prog_ref->{'ns5:ScheduledDate'}\n"); next; } 
    587587        } else { 
    588588                        $stats{skipped_prog_bad_starttime}++; 
    589                         Shepherd::Common::log("unparsable date ".$prog_ref->{'ns1:ScheduledDate'}) 
    590                                 if ((defined $prog_ref->{'ns1:ScheduledDate'}) && 
     589                        Shepherd::Common::log("unparsable date ".$prog_ref->{'ns5:ScheduledDate'}) 
     590                                if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 
    591591                                        ($stats{skipped_prog_bad_starttime} < 10)); 
    592592                        next; 
     
    595595        ### and its on the same channel (new_channl is used as a cache key 
    596596 
    597         if ((defined $prog_ref->{'ns1:ChannelId'}) && 
    598                                 (defined $d->{channels}->{$prog_ref->{'ns1:ChannelId'}}->{xmlid})) { 
    599                         $new_channel = $d->{channels}->{$prog_ref->{'ns1: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}; 
    600600        } else { 
    601601                        $stats{skipped_prog_bad_channel}++; 
     
    607607                                 
    608608        # if we have a ProgramId... 
    609         if (defined $prog_ref->{'ns1:ProgramId'}) { 
    610                         my $prog_id = $new_channel . $prog_ref->{'ns1:ProgramId'}; 
     609        if (defined $prog_ref->{'ns5:ProgramId'}) { 
     610                        my $prog_id = $new_channel . $prog_ref->{'ns5:ProgramId'}; 
    611611                        # check the cache 
    612                         # print ("Checking prog cache for $prog_id.... ($prog_ref->{'ns1:ProgramTitle'})\n"); 
     612                        # print ("Checking prog cache for $prog_id.... ($prog_ref->{'ns5:ProgramTitle'})\n"); 
    613613                        if ((defined $data_cache->{prog_cache}->{$prog_id}) && (ref $data_cache->{prog_cache}->{$prog_id}->{details})) { 
    614614                                $cache_hit++; 
     
    630630#       print ("    Found cache Progm for $prog_id ($new_title) [$eptitle] \n");                 
    631631                                 
    632         Shepherd::Common::log("DEBUG: Found cache Program for ".$prog_id ."... (".($prog_ref->{'ns1:ProgramTitle'}).")") if (defined $opt->{debug}) ;  
     632        Shepherd::Common::log("DEBUG: Found cache Program for ".$prog_id ."... (".($prog_ref->{'ns5:ProgramTitle'}).")") if (defined $opt->{debug}) ;  
    633633        Shepherd::Common::log("DEBUG: PCache: ".Dumper($hghghgh)) if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 
    634634 
     
    640640        ### now check the event cache for other details.... 
    641641        # if we have an EventID ... (must be one!) 
    642         my $event_id = $new_channel . $prog_ref->{'ns1:EventId'}; 
     642        my $event_id = $new_channel . $prog_ref->{'ns5:EventId'}; 
    643643                         
    644         # print ("Checking event cache for $event_id.... ($prog_ref->{'ns1:ProgramTitle'})\n"); 
     644        # print ("Checking event cache for $event_id.... ($prog_ref->{'ns5:ProgramTitle'})\n"); 
    645645 
    646646        if ((defined $data_cache->{event_cache}->{$event_id}) && (ref $data_cache->{event_cache}->{$event_id}->{details})) { 
     
    660660#       print ("    Found cache Event for $event_id ($new_title) [$eptitle] \n");                        
    661661 
    662         Shepherd::Common::log("DEBUG: Found cache Event entry for ".$event_id."... (".($prog_ref->{'ns1: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}) ; 
    663663        Shepherd::Common::log("DEBUG: ECach: ".Dumper($hghghgh)) if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 
    664664                                next; 
     
    667667                 
    668668        $cache_miss++; 
    669         # print ("     Pushing event $prog_ref->{'ns1:EventId'} for lookup\n"); 
    670         push(@event_list, $prog_ref->{'ns1:EventId'}); 
     669        # print ("     Pushing event $prog_ref->{'ns5:EventId'} for lookup\n"); 
     670        push(@event_list, $prog_ref->{'ns5:EventId'}); 
    671671  } ### foreach my $prog_ref 
    672672         
     
    681681  # 
    682682  $ref = &soap_get_event_details(@event_list);   
    683   foreach my $prog_ref (@{($ref->{'ns1:EventDetail'})}) { 
     683  foreach my $prog_ref (@{($ref->{'ns5:EventDetail'})}) { 
    684684        my $prog; 
    685685         
    686         $prog->{title} = [[ $prog_ref->{'ns1:ProgramTitle'}, $opt->{lang} ]]; 
     686        $prog->{title} = [[ $prog_ref->{'ns5:ProgramTitle'}, $opt->{lang} ]]; 
    687687        if ($prog->{title}->[0]->[0] =~ s/\s*(?:S(\d+)\s*)?Ep(\d+)(?:\s*&(?:amp;)?\s*\d+$)?//i) { # "S1 Ep5 &amp; 6" 
    688688                        my $xmltv_ns = ($1 ? ($1 - 1) : "") ." . ". ($2 ? ($2 - 1) : "") ." . "; # drops " & 6" 
     
    690690                        #<title lang="en">Brotherhood S1 Ep5 &amp; 6</title> 
    691691        } 
    692         $prog->{length} = int($prog_ref->{'ns1:Duration'} * 60); 
    693                  
    694         if (!defined $prog_ref->{'ns1:Duration'}) { 
     692        $prog->{length} = int($prog_ref->{'ns5:Duration'} * 60); 
     693                 
     694        if (!defined $prog_ref->{'ns5:Duration'}) { 
    695695                        $stats{skipped_prog_no_duration}++; 
    696696                        next; 
    697697        } 
    698698                 
    699         if ((defined $prog_ref->{'ns1:ScheduledDate'}) && 
    700                     ($prog_ref->{'ns1: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})$/)) { 
    701701                        my $prog_tz = "+".$8.$9; 
    702702                        my @t = ($6, $5, $4, $3, ($2-1), ($1-1900), -1, -1, -1); 
     
    709709        } else { 
    710710                        $stats{skipped_prog_bad_starttime}++; 
    711                         Shepherd::Common::log("unparsable date ".$prog_ref->{'ns1:ScheduledDate'}) 
    712                                 if ((defined $prog_ref->{'ns1:ScheduledDate'}) && 
     711                        Shepherd::Common::log("unparsable date ".$prog_ref->{'ns5:ScheduledDate'}) 
     712                                if ((defined $prog_ref->{'ns5:ScheduledDate'}) && 
    713713                                        ($stats{skipped_prog_bad_starttime} < 10)); 
    714714                        next; 
    715715        } 
    716716                 
    717         if ((defined $prog_ref->{'ns1:ChannelId'}) && 
    718                                 (defined $d->{channels}->{$prog_ref->{'ns1:ChannelId'}}->{xmlid})) { 
    719                         $prog->{channel} = $d->{channels}->{$prog_ref->{'ns1: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}; 
    720720        } else { 
    721721                        $stats{skipped_prog_bad_channel}++; 
     
    723723        } 
    724724                 
    725         if ((defined $prog_ref->{'ns1:EpisodeTitle'}) && 
    726                                 (ref $prog_ref->{'ns1:EpisodeTitle'} ne "HASH") && 
    727                                 ($prog_ref->{'ns1:EpisodeTitle'} ne "")) { 
    728                         $prog->{'sub-title'} = [[ $prog_ref->{'ns1: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} ]]; 
    729729                        if ($prog->{'sub-title'}->[0]->[0] =~ /(?:Series\s*(\d+),\s*)?Episode\s*(\d+)/i) {      # "Series 2, Episode 19" 
    730730                                my $xmltv_ns = ($1 ? ($1 - 1) : "") ." . ". ($2 ? ($2 - 1) : "") ." . "; 
     
    736736 
    737737        # Program rating and consumer advice 
    738         if ($prog_ref->{'ns1:ParentalRating'} ne "-") { 
    739                 if (defined $prog_ref->{'ns1:ConsumerAdvice'}) { 
    740                         my $advice = $prog_ref->{'ns1:ConsumerAdvice'}; 
     738        if ($prog_ref->{'ns5:ParentalRating'} ne "-") { 
     739                if (defined $prog_ref->{'ns5:ConsumerAdvice'}) { 
     740                        my $advice = $prog_ref->{'ns5:ConsumerAdvice'}; 
    741741                        $advice =~ s/\s//g; 
    742                         $prog->{rating} = [[ $prog_ref->{'ns1:ParentalRating'}." ".$advice, 'ABA', undef ]] ; 
     742                        $prog->{rating} = [[ $prog_ref->{'ns5:ParentalRating'}." ".$advice, 'ABA', undef ]] ; 
    743743                } 
    744744                else { 
    745                         $prog->{rating} = [[ $prog_ref->{'ns1:ParentalRating'}, 'ABA', undef ]] ; 
     745                        $prog->{rating} = [[ $prog_ref->{'ns5:ParentalRating'}, 'ABA', undef ]] ; 
    746746                } 
    747747        } 
    748748 
    749749        $prog->{subtitles} = [ { 'type' => 'teletext' } ] 
    750                         if (((defined $prog_ref->{'ns1:SubtitledInd'}) && ($prog_ref->{'ns1:SubtitledInd'} ne "false")) || 
    751                                 ((defined $prog_ref->{'ns1: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"))); 
    752752        $prog->{video}->{aspect} = "16:9" 
    753                         if ((defined $prog_ref->{'ns1:WidescreenInd'}) && ($prog_ref->{'ns1:WidescreenInd'} ne "false")); 
     753                        if ((defined $prog_ref->{'ns5:WidescreenInd'}) && ($prog_ref->{'ns5:WidescreenInd'} ne "false")); 
    754754        $prog->{video}->{quality} = "HDTV" 
    755                         if (defined $prog_ref->{'ns1:HDInd'} && ($prog_ref->{'ns1:HDInd'} ne "false")); 
    756                  
    757         if (defined $prog_ref->{'ns1:Audio'}) { 
     755                        if (defined $prog_ref->{'ns5:HDInd'} && ($prog_ref->{'ns5:HDInd'} ne "false")); 
     756                 
     757        if (defined $prog_ref->{'ns5:Audio'}) { 
    758758                        # try to match bad values like 'dolby stereo' 
    759                         $prog->{audio}->{stereo} = 'mono' if ($prog_ref->{'ns1:Audio'} =~ m/mono/i); 
    760                         $prog->{audio}->{stereo} = 'stereo' if ($prog_ref->{'ns1:Audio'} =~ m/stereo/i); 
    761                         $prog->{audio}->{stereo} = 'dolby' if ($prog_ref->{'ns1:Audio'} =~ m/dolby/i); 
    762                         $prog->{audio}->{stereo} = 'dolby digital' if ($prog_ref->{'ns1:Audio'} =~ m/digital/i); 
    763                         $prog->{audio}->{stereo} = 'surround' if ($prog_ref->{'ns1: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); 
    764764        } 
    765765                 
    766766        # get actors, directors and writers 
    767         foreach my $actor (@{$prog_ref->{'ns1:Actor'}}) { push(@{($prog->{credits}->{actor})}, $actor); } 
    768         foreach my $director (@{$prog_ref->{'ns1:Director'}}) { push(@{($prog->{credits}->{director})}, $director); } 
    769         foreach my $writer (@{$prog_ref->{'ns1: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); } 
    770770                 
    771771        # get description/synopsis 
    772         $prog->{desc} = [[ $prog_ref->{'ns1:ExtendedSynopsis'}, $opt->{lang} ]] if (defined $prog_ref->{'ns1:ExtendedSynopsis'}); 
     772        $prog->{desc} = [[ $prog_ref->{'ns5:ExtendedSynopsis'}, $opt->{lang} ]] if (defined $prog_ref->{'ns5:ExtendedSynopsis'}); 
    773773 
    774774# TODO: get series and episode number 
    775 #                               my $series_num = (defined $prog_ref->{'ns1:SeriesNumber'}) ? $prog_ref->{'ns1:SeriesNumber'} : ""; 
    776 #                               my $episode_num = (defined $prog_ref->{'ns1: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'} : ""; 
    777777#                               if ((defined ) && (defined )) { 
    778 #                                       if ($prog_ref->{'ns1:SeriesNumber'} =~ s/(?:S(?:Series\s*)?(\d+),\s*)//i) { 
    779 #                                               my $xmltv_ns = ($1 - 1)." . ".($prog_ref->{'ns1: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)." . "; 
    780780#                                               $prog->{'episode-num'} = [[ $xmltv_ns, 'xmltv_ns' ]]; 
    781781#                                       } 
    782782#                                       else { 
    783 #                                               my $xmltv_ns = ($prog_ref->{'ns1:SeriesNumber'} - 1)." . ".($prog_ref->{'ns1:EpisodeNumber'} - 1)." . 0"; 
     783#                                               my $xmltv_ns = ($prog_ref->{'ns5:SeriesNumber'} - 1)." . ".($prog_ref->{'ns5:EpisodeNumber'} - 1)." . 0"; 
    784784#                                               $prog->{'episode-num'} = [[ $xmltv_ns, 'xmltv_ns' ]]; 
    785785#                                       } 
    786786#                               } 
    787787#                               else { 
    788 #                                       $prog->{'episode-num'} = [[ $prog_ref->{'ns1:EpisodeNumber'}, 'onscreen' ]] if (defined $prog_ref->{'ns1:EpisodeNumber'}); 
     788#                                       $prog->{'episode-num'} = [[ $prog_ref->{'ns5:EpisodeNumber'}, 'onscreen' ]] if (defined $prog_ref->{'ns5:EpisodeNumber'}); 
    789789#                               } 
    790790######### here #### mb try to get episode numbers - not real good with fox - lots of prints to get rid of 
    791791######### 
    792         if (defined($prog->{'episode-num'}) )  { print("#### Episodes pre-defined: Title: $prog_ref->{'ns1:ProgramTitle'} \n"); } 
     792        if (defined($prog->{'episode-num'}) )  { print("#### Episodes pre-defined: Title: $prog_ref->{'ns5:ProgramTitle'} \n"); } 
    793793        else {  ## process episode nums 
    794794                my $se_num = " "; 
     
    796796                my $ep_tit = ""; 
    797797                my $xmltv_ns = ""; 
    798                 if (defined($prog_ref->{'ns1:EpisodeTitle'}))  { $ep_tit = $prog_ref->{'ns1:EpisodeTitle'}; } 
    799                 if (defined($prog_ref->{'ns1:SeriesNumber'}))  { $se_num = $prog_ref->{'ns1:SeriesNumber'} ;} 
    800                 if (defined($prog_ref->{'ns1: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'}; } 
    801801                         
    802802                if (( $se_num ne " ") or ( $ep_num ne " ")) 
    803803                {  ## one of them exists 
    804                 print("#### Episodes found: Se_num: $se_num Ep_num: ($ep_num $prog_ref->{'ns1:ProgramTitle'}) [$ep_tit]\n"); 
     804                print("#### Episodes found: Se_num: $se_num Ep_num: ($ep_num $prog_ref->{'ns5:ProgramTitle'}) [$ep_tit]\n"); 
    805805                 
    806806                if ( $se_num=~ /^S(\d+)$/)          { $se_num = $1; } 
     
    857857 
    858858        # get genre and subgenre 
    859         if ((defined $prog_ref->{'ns1:GenreCode'}) && 
    860                                 (defined $prog_ref->{'ns1:SubGenreCode'}) && 
    861                                 (defined $d->{genres}->{$prog_ref->{'ns1:GenreCode'}}->{$prog_ref->{'ns1:SubGenreCode'}})) { 
    862                 my $category = $d->{genres}->{$prog_ref->{'ns1: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'}}; 
    863863                $prog->{category} = [[ $category , $opt->{lang} ]]; 
    864864 
    865865              #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->{'ns1:GenreCode'}}->{name} eq 'Movies'; 
    867 #               push(@{$prog->{category}}, ['Sports', $opt->{lang}]) if $d->{genres}->{$prog_ref->{'ns1:GenreCode'}}->{name} eq 'Sport'; 
    868  
    869                 if ((defined $d->{channels}->{$prog_ref->{'ns1:ChannelId'}}->{category}) && 
    870                                         (defined $d->{categories}->{$d->{channels}->{$prog_ref->{'ns1:ChannelId'}}->{category}})) { 
    871                         my $ch_category = $d->{categories}->{$d->{channels}->{$prog_ref->{'ns1: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}}; 
    872872#                       push(@{$prog->{category}}, ['Movie', $opt->{lang}]) if $ch_category eq 'Movies'; 
    873873                        push(@{$prog->{category}}, ['Sports', $opt->{lang}]) if $ch_category eq 'Sport'; 
     
    877877 
    878878        # get urls/weblinks 
    879         if (defined $prog_ref->{'ns1:WebLink'}) {  
    880                 if (ref($prog_ref->{'ns1:WebLink'}) eq "HASH") { 
    881                         push(@{$prog->{url}}, $prog_ref->{'ns1:WebLink'}->{'ns1:Url'}) 
    882                 } 
    883                 elsif (ref($prog_ref->{'ns1:WebLink'}) eq "ARRAY") { 
    884                         my @webarray = @{$prog_ref->{'ns1: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'}}; 
    885885                        my $u = 0; 
    886886                        while ($u <= $#webarray) { 
    887                                 push(@{$prog->{url}}, $webarray[$u]->{'ns1:Url'}); 
     887                                push(@{$prog->{url}}, $webarray[$u]->{'ns5:Url'}); 
    888888                                $u++; 
    889889                        } 
     
    894894 
    895895        # get date/YearOfProduction 
    896         $prog->{date} = $prog_ref->{'ns1:YearOfProduction'} if (defined $prog_ref->{'ns1:YearOfProduction'}); 
     896        $prog->{date} = $prog_ref->{'ns5:YearOfProduction'} if (defined $prog_ref->{'ns5:YearOfProduction'}); 
    897897                 
    898898        # get country 
    899         push(@{($prog->{country})}, [$prog_ref->{'ns1:CountryOfOrigin'}]) if (defined $prog_ref->{'ns1:CountryOfOrigin'}); 
     899        push(@{($prog->{country})}, [$prog_ref->{'ns5:CountryOfOrigin'}]) if (defined $prog_ref->{'ns5:CountryOfOrigin'}); 
    900900                 
    901901        # get language 
    902         $prog->{language}->[0] = $prog_ref->{'ns1:Language'} if (defined $prog_ref->{'ns1:Language'}); 
     902        $prog->{language}->[0] = $prog_ref->{'ns5:Language'} if (defined $prog_ref->{'ns5:Language'}); 
    903903                 
    904904        # get colour 
    905         if (defined $prog_ref->{'ns1:ColourType'}) { 
    906                         $prog->{video}->{colour} = ($prog_ref->{'ns1: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"; 
    907907                } 
    908908 
    909909        # get premiere 
    910910        $prog->{premiere} = ["New Episode", $opt->{lang} ] 
    911                         if (defined $prog_ref->{'ns1:NewEpisode'} && ($prog_ref->{'ns1:NewEpisode'} ne "false")); 
     911                        if (defined $prog_ref->{'ns5:NewEpisode'} && ($prog_ref->{'ns5:NewEpisode'} ne "false")); 
    912912        $prog->{premiere} = ["Premiere", $opt->{lang} ] 
    913                         if (defined $prog_ref->{'ns1:PremiereInd'} && ($prog_ref->{'ns1:PremiereInd'} ne "false")); 
     913                        if (defined $prog_ref->{'ns5:PremiereInd'} && ($prog_ref->{'ns5:PremiereInd'} ne "false")); 
    914914 
    915915        # <ContentWarning>als</ContentWarning> 
     
    917917        Shepherd::Common::cleanup($prog); 
    918918                 
    919         if (defined $prog_ref->{'ns1:ProgramId'}) { 
    920                         my $prog_id = $prog->{channel} . $prog_ref->{'ns1:ProgramId'}; 
     919        if (defined $prog_ref->{'ns5:ProgramId'}) { 
     920                        my $prog_id = $prog->{channel} . $prog_ref->{'ns5:ProgramId'}; 
    921921                        my $eptitle = ""; 
    922                         $eptitle = $prog_ref->{'ns1:EpisodeTitle'} if (defined($prog_ref->{'ns1:EpisodeTitle'})); 
     922                        $eptitle = $prog_ref->{'ns5:EpisodeTitle'} if (defined($prog_ref->{'ns5:EpisodeTitle'})); 
    923923                         
    924 #                       print ("*** Inserting ProgID $prog_id into cache...($prog_ref->{'ns1:ProgramTitle'})[$eptitle]\n"); 
     924#                       print ("*** Inserting ProgID $prog_id into cache...($prog_ref->{'ns5:ProgramTitle'})[$eptitle]\n"); 
    925925                         
    926926                        $data_cache->{prog_cache}->{$prog_id}->{progid}     = $prog_id; 
    927                         $data_cache->{prog_cache}->{$prog_id}->{title}      = $prog_ref->{'ns1:ProgramTitle'}; 
     927                        $data_cache->{prog_cache}->{$prog_id}->{title}      = $prog_ref->{'ns5:ProgramTitle'}; 
    928928                        $data_cache->{prog_cache}->{$prog_id}->{eptitle}    = $eptitle; 
    929929                        $data_cache->{prog_cache}->{$prog_id}->{first_used} = $script_start_time; 
     
    935935                        # &write_cache; 
    936936        } 
    937         elsif (defined $prog_ref->{'ns1:EventId'}) { 
    938                         my $event_id = $prog->{channel} . $prog_ref->{'ns1:EventId'}; 
     937        elsif (defined $prog_ref->{'ns5:EventId'}) { 
     938                        my $event_id = $prog->{channel} . $prog_ref->{'ns5:EventId'}; 
    939939                        my $eptitle = ""; 
    940                         $eptitle = $prog_ref->{'ns1:EpisodeTitle'} if (defined($prog_ref->{'ns1:EpisodeTitle'})); 
    941  
    942                         print ("*** Inserting EventID $event_id into cache... ($prog_ref->{'ns1: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"); 
    943943                         
    944944                        $data_cache->{event_cache}->{$event_id}->{eventid}    = $event_id; 
    945                         $data_cache->{event_cache}->{$event_id}->{title}      = $prog_ref->{'ns1:ProgramTitle'}; 
     945                        $data_cache->{event_cache}->{$event_id}->{title}      = $prog_ref->{'ns5:ProgramTitle'}; 
    946946                        $data_cache->{event_cache}->{$event_id}->{eptitle}    = $eptitle; 
    947947                        $data_cache->{event_cache}->{$event_id}->{first_used} = $script_start_time; 
     
    10181018                Shepherd::Common::log("DEBUG: soap_search_events got: $data") if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 
    10191019 
    1020         $parsed_xml = XMLin($data , forcearray => [ qw(ns1:Event) ]); 
     1020        $parsed_xml = XMLin($data , forcearray => [ qw(ns5:Event) ]); 
    10211021         
    10221022print Dumper( $parsed_xml) if ((defined $opt->{debug}) && ($opt->{debug} > 1));  
    1023                 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns1:SearchEventsOut'}) { 
     1023                if (!defined $parsed_xml->{'soapenv:Body'}->{'ns5:SearchEventsOut'}) { 
    10241024                        $failure_code = "no_SearchEventsOut"; 
    10251025                } else { 
    1026                         $ref = $parsed_xml->{'soapenv:Body'}->{'ns1:SearchEventsOut'}; 
    1027                         if (!defined $ref->{'ns1:Events'}->{'ns1:Event'}) { 
     1026                        $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:SearchEventsOut'}; 
     1027                        if (!defined $ref->{'ns5:Events'}->{'ns5:Event'}) { 
    10281028                                $failure_code = "no_Events"; 
    10291029                        } else { 
    10301030###                      
    1031                         if ((ref $ref->{'ns1: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))  
    10321032                               { $failure_code = "not_array_Event"; 
    10331033                         
    1034 ###                             if (ref $ref->{'ns1:Events'}->{'ns1:Event'} ne "ARRAY") { 
     1034###                             if (ref $ref->{'ns5:Events'}->{'ns5:Event'} ne "ARRAY") { 
    10351035###                                     $failure_code = "not_array_Events"; 
    10361036                                } else { 
     
    10801080        } else { 
    10811081                Shepherd::Common::log("DEBUG: soap_get_event_details got: $data") if ((defined $opt->{debug}) && ($opt->{debug} > 1)); 
    1082                 $parsed_xml = XMLin($data, forcearray => [ qw( ns1:EventDetail ns1:Actor ns1:Director ns1:Writer) ]); 
    1083                  
    1084                 if (!defined $parsed_xml->{'soapenv:Body'}->{'ns1: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'}) { 
    10851085                        $failure_code = "no_GetEventDetailsOut"; 
    10861086                } else { 
    1087                         $ref = $parsed_xml->{'soapenv:Body'}->{'ns1:GetEventDetailsOut'}; 
    1088                         if (ref $ref->{'ns1:EventDetail'} ne "ARRAY") { 
    1089                         my $s1st = ref $ref->{'ns1:EventDetail'}; 
     1087                        $ref = $parsed_xml->{'soapenv:Body'}->{'ns5:GetEventDetailsOut'}; 
     1088                        if (ref $ref->{'ns5:EventDetail'} ne "ARRAY") { 
     1089                        my $s1st = ref $ref->{'ns5:EventDetail'}; 
    10901090                                $failure_code = "not_array_EventDetail It is a $s1st"; 
    10911091                        } else { 
  • trunk/status

    r1392 r1393  
    1010grabber         abc_website         4.11 
    1111grabber         rex                 9.1.0 
    12 grabber         foxtel_swf          2.04 
     12grabber         foxtel_swf          3.00 
    1313grabber         acctv_website       0.09 
    1414grabber         sbsweb              4.04