Changeset 759

Show
Ignore:
Timestamp:
06/10/07 04:47:02 (6 years ago)
Author:
paul
Message:

Fix oztivo so it doesn't put <desc> lines after a newline at the top of programme without tags
Only seen for ACC and EXPO channels.
output.xmltv: no element title found at /usr/share/perl5/XMLTV.pm line 1993.
output.xmltv: unknown element #PCDATA at /usr/share/perl5/XMLTV.pm line 2005

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • grabbers/oztivo

    r697 r759  
    33# OzTivo grabber 
    44 
    5 my $version = '0.31'; 
     5my $version = '0.32'; 
    66 
    77# Requires configuration! 
     
    201201        star-rating ]; 
    202202my %xmltv_tags = map { $_ => "" } @xmltv_tag_order; 
     203$xmltv_tags{"programme"}=""; $xmltv_tags{"/programme"}=""; 
    203204my $linenum = 0; 
    204205my $cur_field = ""; 
     
    210211    next if ($line =~ /<director><\/director>/); 
    211212    next if ($line =~ /<desc><\/desc>/); 
     213    next if ($line =~ /^\s*$/); 
    212214 
    213215    if ($line =~ /\s*<([\/a-zA-Z\-]+)/) { 
    214         my $field = lc($1); 
    215  
    216         if (($field eq "programme") || ($field eq "/programme")) { 
    217             # print all previously seen tags in xmltv_tag_order 
    218             foreach my $xmltag (@xmltv_tag_order) { 
    219                 if ($xmltv_tags{$xmltag} ne "") { 
    220                     print OUT $xmltv_tags{$xmltag}; 
    221                     $xmltv_tags{$xmltag} = ""; 
    222                 } 
    223             } 
    224  
    225             # if we have a start="(time)" and/or stop="(time)" make sure they 
    226             # have a timezone on them. 
    227             $line = $1."start=\"".$2." +0000\"".$3 if ($line =~ /^(.*)start="([0-9]+)"(.*)/); 
    228             $line = $1."stop=\"".$2." +0000\"".$3 if ($line =~ /^(.*)stop="([0-9]+)"(.*)/); 
    229  
    230             print OUT $line."\n"; # programme tag 
    231             $cur_field = ""; 
    232         } else { 
    233             # do we know about this tag? 
    234             $cur_field = $field if (defined $xmltv_tags{$field}); 
    235  
    236             if ($cur_field eq "") { 
    237                 print OUT $line."\n"; 
    238             } else { 
    239                 $xmltv_tags{$cur_field} .= $line."\n"; 
    240             } 
    241         } 
     216        my $field = lc($1); 
     217        # do we know about this tag? 
     218        $cur_field = $field if (defined $xmltv_tags{$field}); 
     219    } 
     220 
     221    if ($cur_field eq "programme") { 
     222        # if we have a start="(time)" and/or stop="(time)" make sure they 
     223        # have a timezone on them. 
     224        $line = $1."start=\"".$2." +0000\"".$3 if ($line =~ /^(.*)start="([0-9]+)"(.*)/); 
     225        $line = $1."stop=\"".$2." +0000\"".$3 if ($line =~ /^(.*)stop="([0-9]+)"(.*)/); 
     226 
     227        print OUT $line."\n"; # programme tag 
     228        $cur_field = ""; 
     229    } elsif ($cur_field eq "/programme") { 
     230        print "Program with no title!\n"  
     231                if (($xmltv_tags{title} eq "") or ($xmltv_tags{title} =~ />\s*</)); 
     232        # print all previously seen tags in xmltv_tag_order 
     233        foreach my $xmltag (@xmltv_tag_order) { 
     234            if ($xmltv_tags{$xmltag} ne "") { 
     235                print OUT $xmltv_tags{$xmltag}; 
     236                $xmltv_tags{$xmltag} = ""; 
     237            } 
     238        } 
     239        print OUT $line."\n"; # /programme tag 
     240        $cur_field = ""; 
    242241    } else { 
    243         print OUT $line."\n"; 
    244     } 
    245 }  
     242        if ($cur_field eq "") { 
     243            print OUT $line."\n"; # ?xml, tv and /tv tags 
     244        } else { 
     245            $xmltv_tags{$cur_field} .= $line."\n"; # xmltv_tags tags 
     246        } 
     247    } 
     248} 
    246249 
    247250close OUT; 
  • status

    r758 r759  
    77grabber         abc_website         3.03 
    88grabber         sbsnews_website     0.16 
    9 grabber         oztivo              0.31-r1 
     9grabber         oztivo              0.32 
    1010grabber         jrobbo              0.09 
    1111grabber         yahoo7web           0.20