[PATCH] Avoid runtime error when a brand has only one episode.
Mike Crowe
mac at mcrowe.com
Mon Dec 20 09:07:45 EST 2010
Before applying this fix I quite often saw errors like:
Not an ARRAY reference at ./get_iplayer line 5611.
(for example when using --pvr having added a recursive PID of
b00lv1k1.)
---
get_iplayer | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
You may not want to apply this patch as it is but hopefully it should
point out what appeared to me to be causing the problem.
Thanks.
Mike.
diff --git a/get_iplayer b/get_iplayer
index c746df0..c48a2cc 100755
--- a/get_iplayer
+++ b/get_iplayer
@@ -5608,8 +5608,16 @@ sub parse_rdf_brand {
main::logger "INFO: With Series pid '".$series_element->{'rdf:resource'}."'\n" if $opt->{debug};
push @pids, parse_rdf_series( $ua, $series_element->{'rdf:resource'} );
}
- main::logger "INFO: Series: <None>\n" if $#{ $rdf->{'po:Brand'}->{'po:episode'} };
- for my $episode_element ( @{ $rdf->{'po:Brand'}->{'po:episode'} } ) {
+ if (ref$rdf->{'po:Brand'}->{'po:episode'} eq 'ARRAY') {
+ main::logger "INFO: Series: <None>\n" if $#{ $rdf->{'po:Brand'}->{'po:episode'} };
+ for my $episode_element ( @{ $rdf->{'po:Brand'}->{'po:episode'} } ) {
+ main::logger "INFO: Episode pid: ".$episode_element->{'rdf:resource'}."\n" if $opt->{debug};
+ push @pids, extract_pid( $episode_element->{'rdf:resource'} );
+ parse_rdf_episode( $ua, $episode_element->{'rdf:resource'} );
+ }
+ } else {
+ main::logger "INFO: Series: <None>\n";
+ my $episode_element = $rdf->{'po:Brand'}->{'po:episode'};
main::logger "INFO: Episode pid: ".$episode_element->{'rdf:resource'}."\n" if $opt->{debug};
push @pids, extract_pid( $episode_element->{'rdf:resource'} );
parse_rdf_episode( $ua, $episode_element->{'rdf:resource'} );
--
1.5.6.5
More information about the get_iplayer
mailing list