Menu

#308 quality flag is lost in XMLTV::parsefile

closed-fixed
nobody
None
5
2007-12-08
2007-12-07
Anonymous
No

A xmltv file with a quality setting like
<video>
<quality>HDTV</quality>
<aspect>16:9</aspect>
</video>
read in with XMLTV::parsefile($filename);
will produce
'video' => {
'aspect' => '16:9'
},
i.e. The quality subelement has been lost

This appears to be caused by
XMLTV.pm

$Handlers{video}->[0] = sub ( $ ) {
my $node = shift;
my %r;
foreach (get_subelements($node)) {
my $name = get_name($_);
my $value = get_text($_);
if ($name eq 'present') {
warn "'present' seen twice" if defined $r{present};
$r{present} = decode_boolean($value);
}
elsif ($name eq 'colour') {
warn "'colour' seen twice" if defined $r{colour};
$r{colour} = decode_boolean($value);
}
elsif ($name eq 'aspect') {
warn "'aspect' seen twice" if defined $r{aspect};
$value =~ /^\d+:\d+$/ or warn "bad aspect ratio: $value";
$r{aspect} = $value;
}
}
return \%r;
};

Adding a quality elsif into this fixes it

$Handlers{video}->[0] = sub ( $ ) {
my $node = shift;
my %r;
foreach (get_subelements($node)) {
my $name = get_name($_);
my $value = get_text($_);
if ($name eq 'present') {
warn "'present' seen twice" if defined $r{present};
$r{present} = decode_boolean($value);
}
elsif ($name eq 'colour') {
warn "'colour' seen twice" if defined $r{colour};
$r{colour} = decode_boolean($value);
}
elsif ($name eq 'aspect') {
warn "'aspect' seen twice" if defined $r{aspect};
$value =~ /^\d+:\d+$/ or warn "bad aspect ratio: $value";
$r{aspect} = $value;
}
elsif ($name eq 'quality') {
warn "'quality' seen twice" if defined $r{quality};
$r{quality} = $value;
}
}
return \%r;
};

Discussion

  • Nobody/Anonymous

    Logged In: NO

    My bad... when I added quality to the DTD I missed it xmltv.pm.

    Committed to CVS.

    Robert

     
  • Robert Eden

    Robert Eden - 2007-12-08

    Logged In: YES
    user_id=270469
    Originator: NO

    forgot to log in!

     
  • Robert Eden

    Robert Eden - 2007-12-08
    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB