xmltv/filter tv_extractinfo_en, 1.69, 1.70 tv_extractinfo_ar, 1.2, 1.3 tv_to_potatoe, 1.2, 1.3 tv_merge, 1.1, 1.2 tv_imdb, 1.34, 1.35 tv_count, 1.1, 1.2 tv_sort, 1.34, 1.35
Nick Morrott <[email protected]> Sun, 12 Jul 2015 00:46:39 +0000
| Newsgroups | gmane.comp.tv.xmltv.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/xmltv/xmltv/filter
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv21056/filter
Modified Files:
tv_extractinfo_en tv_extractinfo_ar tv_to_potatoe tv_merge
tv_imdb tv_count tv_sort
Log Message:
Whitespace: remove trailing whitespace
Index: tv_to_potatoe
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_to_potatoe,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tv_to_potatoe 8 Jun 2015 17:41:14 -0000 1.2
--- tv_to_potatoe 12 Jul 2015 00:46:37 -0000 1.3
***************
*** 147,151 ****
print HANDLE substr($_->{q(vps-start)}, 8, 2), ":"; # hour
print HANDLE substr($_->{q(vps-start)}, 10, 2), " "; # minute
! }
else {
print HANDLE "() ";
--- 147,151 ----
print HANDLE substr($_->{q(vps-start)}, 8, 2), ":"; # hour
print HANDLE substr($_->{q(vps-start)}, 10, 2), " "; # minute
! }
else {
print HANDLE "() ";
***************
*** 181,185 ****
sub get_best_name( $$ ) {
my ($prog, $field) = @_;
!
my $bestname = XMLTV::best_name($langs, $prog->{$field});
return undef unless(defined($bestname));
--- 181,185 ----
sub get_best_name( $$ ) {
my ($prog, $field) = @_;
!
my $bestname = XMLTV::best_name($langs, $prog->{$field});
return undef unless(defined($bestname));
Index: tv_merge
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_merge,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tv_merge 17 Oct 2013 09:38:45 -0000 1.1
--- tv_merge 12 Jul 2015 00:46:37 -0000 1.2
***************
*** 13,32 ****
=head1 DESCRIPTION
! Read XMLTV listings from two files and merge them together.
! Unlike tv_cat (which just joins files) this will update (add/replace/delete)
the origin XMLTV file with channels and programmes contained in the second
file.
! It works with multiple channels, and will insert any new programmes
and delete any overlapping programmes.
B<IMPORTANT>
! The input files must be pre-sorted into datetime within channel order
by using the "--by-channel" option to tv_sort
e.g. tv_sort --by-channel --output FILE FILE
!
All programmes must have start and stop times.
! (Note: Programmes in the merged-in file I<replace> any in the master file,
i.e. data are not updated I<within> programmes)
--- 13,32 ----
=head1 DESCRIPTION
! Read XMLTV listings from two files and merge them together.
! Unlike tv_cat (which just joins files) this will update (add/replace/delete)
the origin XMLTV file with channels and programmes contained in the second
file.
! It works with multiple channels, and will insert any new programmes
and delete any overlapping programmes.
B<IMPORTANT>
! The input files must be pre-sorted into datetime within channel order
by using the "--by-channel" option to tv_sort
e.g. tv_sort --by-channel --output FILE FILE
!
All programmes must have start and stop times.
! (Note: Programmes in the merged-in file I<replace> any in the master file,
i.e. data are not updated I<within> programmes)
***************
*** 37,41 ****
=head1 EXAMPLE
! Use C<tv_merge -i master.xml -m newadditions.xml -o newmaster.xml> to
merge all channels/programmes in F<newadditions.xml>.
--- 37,41 ----
=head1 EXAMPLE
! Use C<tv_merge -i master.xml -m newadditions.xml -o newmaster.xml> to
merge all channels/programmes in F<newadditions.xml>.
***************
*** 59,63 ****
# e.g. tv_sort --by-channel --output FILE FILE
#
! # Help: tv_merge -h
#
--- 59,63 ----
# e.g. tv_sort --by-channel --output FILE FILE
#
! # Help: tv_merge -h
#
***************
*** 77,82 ****
my $merge_file = ($opts{'m'}) ? $opts{'m'} : $ARGV[1]; # file to merge in
my $outfile = ($opts{'o'}) ? $opts{'o'} : "merged.xml";
! my $debug = ($opts{'d'}) ? $opts{'d'} : ""; # print out debugging when set to true (1)
! my $debugmore = ($opts{'D'}) ? $opts{'D'} : ""; # print out debugging when set to true (1)
my $quiet_mode = ($opts{'q'}) ? $opts{'q'} : "";
my $doctype = ($opts{'t'}) ? $opts{'t'} : "";
--- 77,82 ----
my $merge_file = ($opts{'m'}) ? $opts{'m'} : $ARGV[1]; # file to merge in
my $outfile = ($opts{'o'}) ? $opts{'o'} : "merged.xml";
! my $debug = ($opts{'d'}) ? $opts{'d'} : ""; # print out debugging when set to true (1)
! my $debugmore = ($opts{'D'}) ? $opts{'D'} : ""; # print out debugging when set to true (1)
my $quiet_mode = ($opts{'q'}) ? $opts{'q'} : "";
my $doctype = ($opts{'t'}) ? $opts{'t'} : "";
***************
*** 91,96 ****
$tpp->set( force_array => [ 'channel', 'programme' ] ); # force array ref for some fields
$tpp->set( indent => 2 );
! $tpp->set( first_out => [ 'channel', 'programme', 'title', 'sub-title', 'desc', 'credits', 'date', 'category', 'language', 'orig-language', 'length', 'icon', 'url', 'country', 'episode-num', 'video', 'audio', 'previously-shown', 'premiere', 'last-chance', 'new', 'subtitles', 'rating', 'star-rating', 'review' ] );
!
my $xmltv = $tpp->parsefile( $input_file );
if ($debugmore) { print Dumper($xmltv); }
--- 91,96 ----
$tpp->set( force_array => [ 'channel', 'programme' ] ); # force array ref for some fields
$tpp->set( indent => 2 );
! $tpp->set( first_out => [ 'channel', 'programme', 'title', 'sub-title', 'desc', 'credits', 'date', 'category', 'language', 'orig-language', 'length', 'icon', 'url', 'country', 'episode-num', 'video', 'audio', 'previously-shown', 'premiere', 'last-chance', 'new', 'subtitles', 'rating', 'star-rating', 'review' ] );
!
my $xmltv = $tpp->parsefile( $input_file );
if ($debugmore) { print Dumper($xmltv); }
***************
*** 110,114 ****
&merge_programmes();
! # format and output the data
&write_newxml();
--- 110,114 ----
&merge_programmes();
! # format and output the data
&write_newxml();
***************
*** 117,121 ****
###############################################################################
###############################################################################
!
sub merge_programmes {
# Process the XMLTV data structure
--- 117,121 ----
###############################################################################
###############################################################################
!
sub merge_programmes {
# Process the XMLTV data structure
***************
*** 129,145 ****
# 1. always use the new programme details (todo: bit a bit more clever with merging)
#
!
! my $prog1 = $xmltv->{tv}->{programme};
! my $prog2 = $xmltv_merge->{tv}->{programme};
if ($debugmore) { print Dumper("Incoming programmes :", $prog1 ); }
if ($debugmore) { print Dumper("Merging programmes :", $prog2 ); }
!
my ($p1_channel, $p1_start, $p1_stop) = ('', 0 , 0);
my ($p2_channel, $p2_start, $p2_stop) = ('', 0 , 0);
!
my $i = 0;
my ($thischannel, $lastchannel) = ('', '');
my $p2count = scalar (@{ $prog2 });
!
for my $p (@{ $prog1 }) {
$thischannel = $p->{-channel} if $thischannel eq '';
--- 129,145 ----
# 1. always use the new programme details (todo: bit a bit more clever with merging)
#
!
! my $prog1 = $xmltv->{tv}->{programme};
! my $prog2 = $xmltv_merge->{tv}->{programme};
if ($debugmore) { print Dumper("Incoming programmes :", $prog1 ); }
if ($debugmore) { print Dumper("Merging programmes :", $prog2 ); }
!
my ($p1_channel, $p1_start, $p1_stop) = ('', 0 , 0);
my ($p2_channel, $p2_start, $p2_stop) = ('', 0 , 0);
!
my $i = 0;
my ($thischannel, $lastchannel) = ('', '');
my $p2count = scalar (@{ $prog2 });
!
for my $p (@{ $prog1 }) {
$thischannel = $p->{-channel} if $thischannel eq '';
***************
*** 167,171 ****
$p2_stop = 0;
}
!
if ($p2_stop != 0 && $p1_start < $p2_stop && $p1_channel eq $p2_channel) {
# skip old recs until start time >= last new rec's stop time
--- 167,171 ----
$p2_stop = 0;
}
!
if ($p2_stop != 0 && $p1_start < $p2_stop && $p1_channel eq $p2_channel) {
# skip old recs until start time >= last new rec's stop time
***************
*** 173,187 ****
next;
}
!
if ($i < $p2count) {
$p2_channel = $prog2->[$i]->{-channel};
$p2_start = to_timestamp( $prog2->[$i]->{-start} );
$p2_stop = to_timestamp( $prog2->[$i]->{-stop} );
!
if ($debug) { print "$p1_start $p2_start || $p1_stop $p2_stop \n"; }
!
if ($p1_channel eq $p2_channel) {
$lastchannel = $thischannel; $thischannel = $p1_channel; # remember the 'current' channel
!
if ($p1_start == $p2_start) {
# either
--- 173,187 ----
next;
}
!
if ($i < $p2count) {
$p2_channel = $prog2->[$i]->{-channel};
$p2_start = to_timestamp( $prog2->[$i]->{-start} );
$p2_stop = to_timestamp( $prog2->[$i]->{-stop} );
!
if ($debug) { print "$p1_start $p2_start || $p1_stop $p2_stop \n"; }
!
if ($p1_channel eq $p2_channel) {
$lastchannel = $thischannel; $thischannel = $p1_channel; # remember the 'current' channel
!
if ($p1_start == $p2_start) {
# either
***************
*** 192,196 ****
push @xmltv_merged_progs, $prog2->[$i]; $i++;
next;
!
} elsif ($p1_start < $p2_start) {
# get here either when new schedule hasn't commenced yet, or when there is a gap in the new schedule
--- 192,196 ----
push @xmltv_merged_progs, $prog2->[$i]; $i++;
next;
!
} elsif ($p1_start < $p2_start) {
# get here either when new schedule hasn't commenced yet, or when there is a gap in the new schedule
***************
*** 207,215 ****
} elsif ($p1_start > $p2_start) {
# get here when additional prog in new schedule that's not in the old
! # insert new prog & keep current old prog
push @xmltv_merged_progs, $prog2->[$i]; $i++;
redo;
}
!
} else {
# channel has changed on one (or both) of the files
--- 207,215 ----
} elsif ($p1_start > $p2_start) {
# get here when additional prog in new schedule that's not in the old
! # insert new prog & keep current old prog
push @xmltv_merged_progs, $prog2->[$i]; $i++;
redo;
}
!
} else {
# channel has changed on one (or both) of the files
***************
*** 238,247 ****
}
}
!
}
}
# copy the old record
push @xmltv_merged_progs, $p;
!
}
--- 238,247 ----
}
}
!
}
}
# copy the old record
push @xmltv_merged_progs, $p;
!
}
***************
*** 252,261 ****
$i++;
}
!
!
if ($debugmore) { print Dumper("Merged programmes :", @xmltv_merged_progs); }
}
!
sub merge_channels {
# Merge the channels in the two input files
--- 252,261 ----
$i++;
}
!
!
if ($debugmore) { print Dumper("Merged programmes :", @xmltv_merged_progs); }
}
!
sub merge_channels {
# Merge the channels in the two input files
***************
*** 263,282 ****
# - always use the newer channel details
#
!
! my $chan1 = $xmltv->{tv}->{channel};
! my $chan2 = $xmltv_merge->{tv}->{channel};
if ($debugmore) { print Dumper("Incoming channels :", $chan1 ); }
if ($debugmore) { print Dumper("Merging channels :", $chan2 ); }
!
my ($c1_id);
my ($c2_id);
!
my %channels;
!
for my $c1 (@{ $chan1 }) {
$c1_id = $c1->{-id};
$channels{$c1_id} = $c1;
}
!
for my $c2 (@{ $chan2 }) {
$c2_id = $c2->{-id};
--- 263,282 ----
# - always use the newer channel details
#
!
! my $chan1 = $xmltv->{tv}->{channel};
! my $chan2 = $xmltv_merge->{tv}->{channel};
if ($debugmore) { print Dumper("Incoming channels :", $chan1 ); }
if ($debugmore) { print Dumper("Merging channels :", $chan2 ); }
!
my ($c1_id);
my ($c2_id);
!
my %channels;
!
for my $c1 (@{ $chan1 }) {
$c1_id = $c1->{-id};
$channels{$c1_id} = $c1;
}
!
for my $c2 (@{ $chan2 }) {
$c2_id = $c2->{-id};
***************
*** 284,292 ****
$channels{$c2_id} = $c2;
}
!
foreach my $key ( keys %channels ) {
push @xmltv_merged_channels, $channels{$key};
}
!
if ($debugmore) { print Dumper("Merged channels :", @xmltv_merged_channels); }
--- 284,292 ----
$channels{$c2_id} = $c2;
}
!
foreach my $key ( keys %channels ) {
push @xmltv_merged_channels, $channels{$key};
}
!
if ($debugmore) { print Dumper("Merged channels :", @xmltv_merged_channels); }
***************
*** 313,333 ****
# create an xml container
my %xml = ();
!
$xml{'tv'}{'-generator-info-name'} = $xmltv->{tv}->{'-generator-info-name'} if $xmltv->{tv}->{'-generator-info-name'};
$xml{'tv'}{'-generator-info-url'} = $xmltv->{tv}->{'-generator-info-url'} if $xmltv->{tv}->{'-generator-info-url'};
$xml{'tv'}{'-source-info-name'} = $xmltv->{tv}->{'-source-info-name'} if $xmltv->{tv}->{'-source-info-name'};
$xml{'tv'}{'-source-info-url'} = $xmltv->{tv}->{'-source-info-url'} if $xmltv->{tv}->{'-source-info-url'};
!
# add the <channel> elements
$xml{'tv'}{'channel'} = \@xmltv_merged_channels;
!
# add the <programme> elements
$xml{'tv'}{'programme'} = \@xmltv_merged_progs;
!
#
my $ccount = scalar @{ $xml{'tv'}{'channel'} };
my $pcount = scalar @{ $xml{'tv'}{'programme'} };
if (!$quiet_mode) { print "Writing : $ccount channels $pcount programmes \n"; }
!
# write the output xml file
if ($debugmore) { print Dumper(\%xml); }
--- 313,333 ----
# create an xml container
my %xml = ();
!
$xml{'tv'}{'-generator-info-name'} = $xmltv->{tv}->{'-generator-info-name'} if $xmltv->{tv}->{'-generator-info-name'};
$xml{'tv'}{'-generator-info-url'} = $xmltv->{tv}->{'-generator-info-url'} if $xmltv->{tv}->{'-generator-info-url'};
$xml{'tv'}{'-source-info-name'} = $xmltv->{tv}->{'-source-info-name'} if $xmltv->{tv}->{'-source-info-name'};
$xml{'tv'}{'-source-info-url'} = $xmltv->{tv}->{'-source-info-url'} if $xmltv->{tv}->{'-source-info-url'};
!
# add the <channel> elements
$xml{'tv'}{'channel'} = \@xmltv_merged_channels;
!
# add the <programme> elements
$xml{'tv'}{'programme'} = \@xmltv_merged_progs;
!
#
my $ccount = scalar @{ $xml{'tv'}{'channel'} };
my $pcount = scalar @{ $xml{'tv'}{'programme'} };
if (!$quiet_mode) { print "Writing : $ccount channels $pcount programmes \n"; }
!
# write the output xml file
if ($debugmore) { print Dumper(\%xml); }
***************
*** 357,366 ****
Assumes all data has start and stop times
!
Usage: $filename [-dDh] -i input_xmltv_file -m merge_xmltv_file [-o output_file ]
-h : this (help) message
! -d : print debugging messages
! -D : print even more debugging messages
-q : quiet mode (no STDOUT messages)
-i file : input XMLTV file (or filename as first arg to script)
--- 357,366 ----
Assumes all data has start and stop times
!
Usage: $filename [-dDh] -i input_xmltv_file -m merge_xmltv_file [-o output_file ]
-h : this (help) message
! -d : print debugging messages
! -D : print even more debugging messages
-q : quiet mode (no STDOUT messages)
-i file : input XMLTV file (or filename as first arg to script)
***************
*** 370,377 ****
example: $filename -i xmltv.xml -m xmltv_add.xml -o xmltv_new.xml
!
EOF
exit;
}
-
\ No newline at end of file
--- 370,376 ----
example: $filename -i xmltv.xml -m xmltv_add.xml -o xmltv_new.xml
!
EOF
exit;
}
Index: tv_extractinfo_en
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_extractinfo_en,v
retrieving revision 1.69
retrieving revision 1.70
diff -C2 -d -r1.69 -r1.70
*** tv_extractinfo_en 8 Jun 2015 17:41:14 -0000 1.69
--- tv_extractinfo_en 12 Jul 2015 00:46:37 -0000 1.70
***************
*** 544,548 ****
|[tT]hriller|[wW]estern)\s*(?:series\s*|)$/$replacement->($1, $2, $3, $4)/xe;
}
!
if ($changed) {
t 'some categories found, programme: ' . d $p;
--- 544,548 ----
|[tT]hriller|[wW]estern)\s*(?:series\s*|)$/$replacement->($1, $2, $3, $4)/xe;
}
!
if ($changed) {
t 'some categories found, programme: ' . d $p;
***************
*** 711,715 ****
}
t "found $count matching times and nothing badly wrong";
!
if (not defined $best_interp
or $count > $best_count) {
--- 711,715 ----
}
t "found $count matching times and nothing badly wrong";
!
if (not defined $best_interp
or $count > $best_count) {
***************
*** 1152,1159 ****
warn "strange time $w";
}
!
next;
}
!
# Not a time, should be part of the title.
if ($done_title) {
--- 1152,1159 ----
warn "strange time $w";
}
!
next;
}
!
# Not a time, should be part of the title.
if ($done_title) {
***************
*** 1437,1441 ****
return [ $prog ];
}
!
# Regexps to apply to the description (currently only the
# first English-language description is matched). The first
--- 1437,1441 ----
return [ $prog ];
}
!
# Regexps to apply to the description (currently only the
# first English-language description is matched). The first
***************
*** 1496,1500 ****
return undef;
}, 'presenter' ],
!
[ sub {
s{((?:^|\.|\?)\s*)($NAME_RE)\s+interviews\b\s*(\.|,|\w|\Z)}{$1 . uc $3}oe
--- 1496,1500 ----
return undef;
}, 'presenter' ],
!
[ sub {
s{((?:^|\.|\?)\s*)($NAME_RE)\s+interviews\b\s*(\.|,|\w|\Z)}{$1 . uc $3}oe
***************
*** 1515,1519 ****
return undef;
}, 'guest' ],
!
# 'with' in news/children shows is presenter (equally
# dubious). Also a 'with' in a talk show might be
--- 1515,1519 ----
return undef;
}, 'guest' ],
!
# 'with' in news/children shows is presenter (equally
# dubious). Also a 'with' in a talk show might be
***************
*** 1528,1532 ****
return undef;
}, 'presenter' ],
!
[ sub {
# Anything with a 'presenter' does not have actors.
--- 1528,1532 ----
return undef;
}, 'presenter' ],
!
[ sub {
# Anything with a 'presenter' does not have actors.
***************
*** 1542,1546 ****
return undef;
}, 'actor' ],
!
[ sub {
# A discussion of 'a film starring Robin Williams'
--- 1542,1546 ----
return undef;
}, 'actor' ],
!
[ sub {
# A discussion of 'a film starring Robin Williams'
***************
*** 1563,1567 ****
return undef;
}, 'guest' ],
!
[ sub {
s{(?:^|\.|!|\?|,)(?:[Ww]ritten\s+)?\s*by\s+($NAMES_RE)\b($|\.)}{$2}o
--- 1563,1567 ----
return undef;
}, 'guest' ],
!
[ sub {
s{(?:^|\.|!|\?|,)(?:[Ww]ritten\s+)?\s*by\s+($NAMES_RE)\b($|\.)}{$2}o
***************
*** 1880,1884 ****
return [ $p ];
}
!
my %fm = ( %$p, channel => 'radio4-fm' );
my %lw = ( %$p, channel => 'radio4-lw' );
--- 1880,1884 ----
return [ $p ];
}
!
my %fm = ( %$p, channel => 'radio4-fm' );
my %lw = ( %$p, channel => 'radio4-lw' );
***************
*** 1924,1933 ****
for (my $i = 0; $i < @titles - 1; $i++) {
push @r, { %p_meta,
! title => $titles[$i],
! clumpidx => ( "$i/" . scalar @titles ) };
}
push @r, { %$p,
! title => $titles[-1],
! clumpidx => ("$#titles/" . scalar @titles) };
return \@r;
--- 1924,1933 ----
for (my $i = 0; $i < @titles - 1; $i++) {
push @r, { %p_meta,
! title => $titles[$i],
! clumpidx => ( "$i/" . scalar @titles ) };
}
push @r, { %$p,
! title => $titles[-1],
! clumpidx => ("$#titles/" . scalar @titles) };
return \@r;
Index: tv_count
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_count,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tv_count 17 Oct 2013 09:38:45 -0000 1.1
--- tv_count 12 Jul 2015 00:46:37 -0000 1.2
***************
*** 5,9 ****
=head1 NAME
! tv_count - Count (and print) the number of channels and programmes
in an XMLTV file.
--- 5,9 ----
=head1 NAME
! tv_count - Count (and print) the number of channels and programmes
in an XMLTV file.
***************
*** 48,53 ****
getopts("dDhi:o:m:q",\%opts); # load the args into %opts
my $input_file = ($opts{'i'}) ? $opts{'i'} : $ARGV[0]; # main file
! my $debug = ($opts{'d'}) ? $opts{'d'} : ""; # print out debugging when set to true (1)
! my $debugmore = ($opts{'D'}) ? $opts{'D'} : ""; # print out debugging when set to true (1)
my $quiet_mode = ($opts{'q'}) ? $opts{'q'} : "";
--- 48,53 ----
getopts("dDhi:o:m:q",\%opts); # load the args into %opts
my $input_file = ($opts{'i'}) ? $opts{'i'} : $ARGV[0]; # main file
! my $debug = ($opts{'d'}) ? $opts{'d'} : ""; # print out debugging when set to true (1)
! my $debugmore = ($opts{'D'}) ? $opts{'D'} : ""; # print out debugging when set to true (1)
my $quiet_mode = ($opts{'q'}) ? $opts{'q'} : "";
***************
*** 61,65 ****
$tpp->set( force_array => [ 'channel', 'programme' ] ); # force array ref for some fields
!
my $xmltv = $tpp->parsefile( $input_file );
if ($debugmore) { print Dumper($xmltv); }
--- 61,65 ----
$tpp->set( force_array => [ 'channel', 'programme' ] ); # force array ref for some fields
!
my $xmltv = $tpp->parsefile( $input_file );
if ($debugmore) { print Dumper($xmltv); }
***************
*** 69,78 ****
my $pcount = scalar @{ $xmltv->{'tv'}->{'programme'} };
if (!$quiet_mode) { print "Count : $ccount channels $pcount programmes \n"; }
!
!
###############################################################################
###############################################################################
!
sub usage {
--- 69,78 ----
my $pcount = scalar @{ $xmltv->{'tv'}->{'programme'} };
if (!$quiet_mode) { print "Count : $ccount channels $pcount programmes \n"; }
!
!
###############################################################################
###############################################################################
!
sub usage {
***************
*** 88,99 ****
-h : this (help) message
! -d : print debugging messages
! -D : print even more debugging messages
-q : quiet mode (no STDOUT messages)
-i file : input XMLTV file (or filename as first arg to script)
example: $filename -i xmltv.xml
!
EOF
exit;
! }
\ No newline at end of file
--- 88,99 ----
-h : this (help) message
! -d : print debugging messages
! -D : print even more debugging messages
-q : quiet mode (no STDOUT messages)
-i file : input XMLTV file (or filename as first arg to script)
example: $filename -i xmltv.xml
!
EOF
exit;
! }
Index: tv_imdb
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_imdb,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** tv_imdb 11 Mar 2015 03:33:09 -0000 1.34
--- tv_imdb 12 Jul 2015 00:46:37 -0000 1.35
***************
*** 45,49 ****
B<--stats> output grab stats (stats output disabled in --quiet mode).
! B<--debug> output info from movie matching
B<--movies-only> only augment programs that look like movie listings (4 digit
--- 45,49 ----
B<--stats> output grab stats (stats output disabled in --quiet mode).
! B<--debug> output info from movie matching
B<--movies-only> only augment programs that look like movie listings (4 digit
***************
*** 137,141 ****
over 250 megabytes with the current imdb data files. For there to be
250 megabytes free for tv_imdb, the system will need at least 512 megabytes
! of RAM. Running with less can take hours (or days!) - although fortunately
this stage needs to be run only once after downloading the data files.
--- 137,141 ----
over 250 megabytes with the current imdb data files. For there to be
250 megabytes free for tv_imdb, the system will need at least 512 megabytes
! of RAM. Running with less can take hours (or days!) - although fortunately
this stage needs to be run only once after downloading the data files.
***************
*** 394,401 ****
sub programme_cb( $ ) {
my $prog=shift;
!
# The database made by IMDB.pm is read as iso-8859-1. The xml file may be different (e.g. utf-8).
# IMDB::augmentProgram does not re-encode the data it adds, so the output file has invalid characters (bug #440).
!
my $orig_prog;
if (lc($encoding) ne 'iso-8859-1') {
--- 394,401 ----
sub programme_cb( $ ) {
my $prog=shift;
!
# The database made by IMDB.pm is read as iso-8859-1. The xml file may be different (e.g. utf-8).
# IMDB::augmentProgram does not re-encode the data it adds, so the output file has invalid characters (bug #440).
!
my $orig_prog;
if (lc($encoding) ne 'iso-8859-1') {
***************
*** 404,409 ****
$prog = XMLTV::Data::Recursive::Encode->decode($encoding, $prog);
}
!
! # augmentProgram will now add imdb data as iso-8859-1
my $nprog=$imdb->augmentProgram($prog, $opt_movies_only);
if ( $nprog ) {
--- 404,409 ----
$prog = XMLTV::Data::Recursive::Encode->decode($encoding, $prog);
}
!
! # augmentProgram will now add imdb data as iso-8859-1
my $nprog=$imdb->augmentProgram($prog, $opt_movies_only);
if ( $nprog ) {
Index: tv_extractinfo_ar
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_extractinfo_ar,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tv_extractinfo_ar 1 Jun 2010 16:14:49 -0000 1.2
--- tv_extractinfo_ar 12 Jul 2015 00:46:37 -0000 1.3
***************
*** 62,71 ****
! This Spanish Version is heavily customized for the XML results from
! tv_grab_ar (developed by Christian A. Rodriguez and postriorily
updated by Mariano S. Cosentino).
! This file should probably be called tv_extractinfo_es, but I have not
! tested it with any other spanish grabbers, so I don't want to be
presumptious.
--- 62,71 ----
! This Spanish Version is heavily customized for the XML results from
! tv_grab_ar (developed by Christian A. Rodriguez and postriorily
updated by Mariano S. Cosentino).
! This file should probably be called tv_extractinfo_es, but I have not
! tested it with any other spanish grabbers, so I don't want to be
presumptious.
***************
*** 126,131 ****
$curProgname =~ s/\s+$//;
my $Progname = $curProgname;
! # $curProgname =~ s/^Disney.s\s//i;
! $curProgname =~ s/^Disney.\s//i;
$curProgname =~ s/^\s+//;
$curProgname =~ s/\s+$//;
--- 126,131 ----
$curProgname =~ s/\s+$//;
my $Progname = $curProgname;
! # $curProgname =~ s/^Disney.s\s//i;
! $curProgname =~ s/^Disney.\s//i;
$curProgname =~ s/^\s+//;
$curProgname =~ s/\s+$//;
***************
*** 146,150 ****
my $bChanged=0;
!
# print "$Progname\n";
--- 146,150 ----
my $bChanged=0;
!
# print "$Progname\n";
***************
*** 153,162 ****
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(Repetici.n\)(.*)/) {
$newNodo_PS = XML::LibXML::Element->new('previously-shown');
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
--- 153,162 ----
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(Repetici.n\)(.*)/) {
$newNodo_PS = XML::LibXML::Element->new('previously-shown');
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
***************
*** 164,208 ****
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(diferido\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(grabado\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(grabado\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(vivo\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(vivo\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(doblad.\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(doblad.\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(subtitulad..?\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(subtitulad..?\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
--- 164,208 ----
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(diferido\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(grabado\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(grabado\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(vivo\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(vivo\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(doblad.\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(doblad.\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(subtitulad..?\)$/) {
$curProgname =$1; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
if ($curProgname =~ /(.*)\(subtitulad..?\)(.*)/) {
$curProgname =$1 . $3; # =~ s,$1,,;
$curProgname =~ s/\(\)//g;
! }
***************
*** 228,234 ****
$Temporada="";
}
! if ("$Temporada.$episodio" ne ".") {
$newNodo_EN = XML::LibXML::Element->new('episode-num');
! $newNodo_EN->addChild ( $doc->createTextNode( "$Temporada.$episodio." ) );
$newNodo_EN->addChild( $doc->createAttribute('system','xmltv_ns') );
$newNodo="";
--- 228,234 ----
$Temporada="";
}
! if ("$Temporada.$episodio" ne ".") {
$newNodo_EN = XML::LibXML::Element->new('episode-num');
! $newNodo_EN->addChild ( $doc->createTextNode( "$Temporada.$episodio." ) );
$newNodo_EN->addChild( $doc->createAttribute('system','xmltv_ns') );
$newNodo="";
***************
*** 238,245 ****
! if ($curProgname =~ /([^.]*)\. (.*)/) {
$progTitle = $1;
$progsubtitle = $2;
! } else {
$progTitle = $curProgname;
$progsubtitle = "";
--- 238,245 ----
! if ($curProgname =~ /([^.]*)\. (.*)/) {
$progTitle = $1;
$progsubtitle = $2;
! } else {
$progTitle = $curProgname;
$progsubtitle = "";
***************
*** 262,272 ****
}
! #title+
if ($Progname ne $progTitle) {
if ($progTitle ne "") {
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( $progTitle ) );
$newNodo->addChild( $doc->createAttribute('lang','es') );
! $programa->replaceChild ( $newNodo, $oldTitle[0]);
$bChanged=1;
$newNodo="";
--- 262,272 ----
}
! #title+
if ($Progname ne $progTitle) {
if ($progTitle ne "") {
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( $progTitle ) );
$newNodo->addChild( $doc->createAttribute('lang','es') );
! $programa->replaceChild ( $newNodo, $oldTitle[0]);
$bChanged=1;
$newNodo="";
***************
*** 274,283 ****
}
!
my @TempList;
my $TempItem;
#TÃtulo original: Drive
! if ($oldDesc =~ /Título original:\s(.*)(\n|\r)?/i) {
$TempItem=$1;
my $TempOtherTitle="";
--- 274,283 ----
}
!
my @TempList;
my $TempItem;
#TÃtulo original: Drive
! if ($oldDesc =~ /Título original:\s(.*)(\n|\r)?/i) {
$TempItem=$1;
my $TempOtherTitle="";
***************
*** 291,314 ****
$TempItem=~ s/\s$//;
$TempOtherTitle=~ s/^\s//;
! $TempOtherTitle=~ s/\s$//;
}
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $doc->createAttribute('lang','en') );
! $programa->addChild ( $newNodo );
$newNodo="";
if ($TempOtherTitle ne "") {
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( "$TempOtherTitle" ) );
! $newNodo->addChild( $doc->createAttribute('lang','en') );
! $programa->addChild ( $newNodo );
$newNodo="";
}
}
! #sub-title*
if ($progsubtitle ne "") {
$bChanged=1;
! my $itemnodo = $programa->addNewChild('', 'sub-title');
$itemnodo->addChild( $doc->createTextNode($progsubtitle) );
}
--- 291,314 ----
$TempItem=~ s/\s$//;
$TempOtherTitle=~ s/^\s//;
! $TempOtherTitle=~ s/\s$//;
}
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $doc->createAttribute('lang','en') );
! $programa->addChild ( $newNodo );
$newNodo="";
if ($TempOtherTitle ne "") {
$newNodo = XML::LibXML::Element->new('title');
! $newNodo->addChild ( $doc->createTextNode( "$TempOtherTitle" ) );
! $newNodo->addChild( $doc->createAttribute('lang','en') );
! $programa->addChild ( $newNodo );
$newNodo="";
}
}
! #sub-title*
if ($progsubtitle ne "") {
$bChanged=1;
! my $itemnodo = $programa->addNewChild('', 'sub-title');
$itemnodo->addChild( $doc->createTextNode($progsubtitle) );
}
***************
*** 316,332 ****
! # desc*
if ($bChanged) {
foreach my $tempNode_desc (@oldDesc) {
$programa->removeChild($tempNode_desc);
! $programa->addChild ( $tempNode_desc );
}
}
!
!
!
!
!
!
my $bCredits=0;
my $CreditsNodo = XML::LibXML::Element->new('credits');
--- 316,332 ----
! # desc*
if ($bChanged) {
foreach my $tempNode_desc (@oldDesc) {
$programa->removeChild($tempNode_desc);
! $programa->addChild ( $tempNode_desc );
}
}
!
!
!
!
!
!
my $bCredits=0;
my $CreditsNodo = XML::LibXML::Element->new('credits');
***************
*** 335,339 ****
# <desc lang="es">Directores: Ed Friedman, Mark Glamack
! if ($oldDesc =~ /Director(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$2);
if (scalar(@TempList)<2) {
--- 335,339 ----
# <desc lang="es">Directores: Ed Friedman, Mark Glamack
! if ($oldDesc =~ /Director(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$2);
if (scalar(@TempList)<2) {
***************
*** 344,357 ****
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('director');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
$newNodo="";
! }
}
# <desc lang="es">Protagonista: Kiefer Sutherland
# <desc lang="es">Protagonistas: Antonio Aguilar, Elda Peralta, Chela Pastor, AgustÃn Isunza
! if ($oldDesc =~ /Protagonistas?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$1);
if (scalar(@TempList)<2) {
--- 344,357 ----
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('director');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
$newNodo="";
! }
}
# <desc lang="es">Protagonista: Kiefer Sutherland
# <desc lang="es">Protagonistas: Antonio Aguilar, Elda Peralta, Chela Pastor, AgustÃn Isunza
! if ($oldDesc =~ /Protagonistas?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$1);
if (scalar(@TempList)<2) {
***************
*** 363,370 ****
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('actor');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
! }
$newNodo="";
}
--- 363,370 ----
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('actor');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
! }
$newNodo="";
}
***************
*** 373,377 ****
# Conductores: Adam Corrolla, Jimmy Kimmel
# Conductor: Fernando Merino
! if ($oldDesc =~ /Conductor(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$2);
if (scalar(@TempList)<2) {
--- 373,377 ----
# Conductores: Adam Corrolla, Jimmy Kimmel
# Conductor: Fernando Merino
! if ($oldDesc =~ /Conductor(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$2);
if (scalar(@TempList)<2) {
***************
*** 382,415 ****
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('presenter');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
$newNodo="";
! }
}
! # credits?
if ($bCredits ) {
! $programa->addChild ( $CreditsNodo );
}
! $CreditsNodo="";
! # date?
# Año: 1934
! if ($oldDesc =~ /año:\s(.*)(\n|\r)?/i) {
$TempItem= $1;
$TempItem=~ s/^\s//;
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('date');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $programa->addChild ( $newNodo );
$newNodo="";
}
! # category*
# <desc lang="es">Género: Agro</desc>
! if ($oldDesc =~ /Género:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$1);
if (scalar(@TempList)<2) {
--- 382,415 ----
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('presenter');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $bCredits=1;
! $CreditsNodo->addChild ( $newNodo );
$newNodo="";
! }
}
! # credits?
if ($bCredits ) {
! $programa->addChild ( $CreditsNodo );
}
! $CreditsNodo="";
! # date?
# Año: 1934
! if ($oldDesc =~ /año:\s(.*)(\n|\r)?/i) {
$TempItem= $1;
$TempItem=~ s/^\s//;
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('date');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $programa->addChild ( $newNodo );
$newNodo="";
}
! # category*
# <desc lang="es">Género: Agro</desc>
! if ($oldDesc =~ /Género:\s(.*)(\n|\r)?/i) {
@TempList=split(",",$1);
if (scalar(@TempList)<2) {
***************
*** 421,439 ****
# warn "Género: $TempItem\n";
$newNodo = XML::LibXML::Element->new('category');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $programa->addChild ( $newNodo );
$newNodo="";
! }
}
! # language?
! # orig-language?
! # length?
# Duración: 102 minutos
! if ($oldDesc =~ /Duración:\s(\d*)\s(.*)(\n|\r)?/i) {
my $TempLength=$1;
my $tempunit=$2;
--- 421,439 ----
# warn "Género: $TempItem\n";
$newNodo = XML::LibXML::Element->new('category');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $programa->addChild ( $newNodo );
$newNodo="";
! }
}
! # language?
! # orig-language?
! # length?
# Duración: 102 minutos
! if ($oldDesc =~ /Duración:\s(\d*)\s(.*)(\n|\r)?/i) {
my $TempLength=$1;
my $tempunit=$2;
***************
*** 443,451 ****
$tempunit=~ s/horas?/hours/;
$tempunit=~ s/segundos?/seconds/;
!
$newNodo = XML::LibXML::Element->new('length');
! $newNodo->addChild ( $doc->createTextNode( "$TempLength" ) );
$newNodo->addChild( $doc->createAttribute('units',"$tempunit") );
! $programa->addChild ( $newNodo );
$newNodo="";
}
--- 443,451 ----
$tempunit=~ s/horas?/hours/;
$tempunit=~ s/segundos?/seconds/;
!
$newNodo = XML::LibXML::Element->new('length');
! $newNodo->addChild ( $doc->createTextNode( "$TempLength" ) );
$newNodo->addChild( $doc->createAttribute('units',"$tempunit") );
! $programa->addChild ( $newNodo );
$newNodo="";
}
***************
*** 453,462 ****
! # icon*
! # url*
! # country*
#PaÃs: Argentina
! if ($oldDesc =~ /País(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split("-",$2);
if (scalar(@TempList)<2) {
--- 453,462 ----
! # icon*
! # url*
! # country*
#PaÃs: Argentina
! if ($oldDesc =~ /País(es)?:\s(.*)(\n|\r)?/i) {
@TempList=split("-",$2);
if (scalar(@TempList)<2) {
***************
*** 467,481 ****
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('country');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $doc->createAttribute('lang','es') );
! $programa->addChild ( $newNodo );
$newNodo="";
! }
}
! # episode-num*
if ($newNodo_EN ne "") {
! $programa->addChild ($newNodo_EN );
}
--- 467,481 ----
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('country');
! $newNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $doc->createAttribute('lang','es') );
! $programa->addChild ( $newNodo );
$newNodo="";
! }
}
! # episode-num*
if ($newNodo_EN ne "") {
! $programa->addChild ($newNodo_EN );
}
***************
*** 486,521 ****
! # video?
! # audio?
! # previously-shown?
if ($newNodo_PS ne "") {
! $programa->addChild ($newNodo_PS );
}
! # premiere?
! # last-chance?
! # new?
! # subtitles*
! # rating*
# Clasificación: Apta para todo público</desc>
# Clasificación: Sólo apta para mayores de 13 años</desc>
# Clasificación: Sólo apta para mayores de 16 años</desc>
# Clasificación: Sólo apta para mayores de 18 años</desc>
! if ($oldDesc =~ /Clasificación:\s(.*)(\n|\r)?/i) {
$TempItem=$1;
$TempItem=~ s/^\s//;
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('rating');
! $newNodo->addChild( $doc->createAttribute('system',"Argentina") );
my $newSubNodo = XML::LibXML::Element->new('value');
! $newSubNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $newSubNodo);
! $programa->addChild ( $newNodo );
$newNodo="";
}
--- 486,521 ----
! # video?
! # audio?
! # previously-shown?
if ($newNodo_PS ne "") {
! $programa->addChild ($newNodo_PS );
}
! # premiere?
! # last-chance?
! # new?
! # subtitles*
! # rating*
# Clasificación: Apta para todo público</desc>
# Clasificación: Sólo apta para mayores de 13 años</desc>
# Clasificación: Sólo apta para mayores de 16 años</desc>
# Clasificación: Sólo apta para mayores de 18 años</desc>
! if ($oldDesc =~ /Clasificación:\s(.*)(\n|\r)?/i) {
$TempItem=$1;
$TempItem=~ s/^\s//;
$TempItem=~ s/\s$//;
$newNodo = XML::LibXML::Element->new('rating');
! $newNodo->addChild( $doc->createAttribute('system',"Argentina") );
my $newSubNodo = XML::LibXML::Element->new('value');
! $newSubNodo->addChild ( $doc->createTextNode( "$TempItem" ) );
! $newNodo->addChild( $newSubNodo);
! $programa->addChild ( $newNodo );
$newNodo="";
}
***************
*** 527,531 ****
#/(.*)\. (.*)/) {
! # print "o: $curProgname\n";
# print "T:$1\n";
# print "St:$2\n";
--- 527,531 ----
#/(.*)\. (.*)/) {
! # print "o: $curProgname\n";
# print "T:$1\n";
# print "St:$2\n";
***************
*** 560,564 ****
# addSubElm ( $pet, 'dob', $dob );
# addSubElm ( $pet, 'price', $price );
! #}
--- 560,564 ----
# addSubElm ( $pet, 'dob', $dob );
# addSubElm ( $pet, 'price', $price );
! #}
Index: tv_sort
===================================================================
RCS file: /cvsroot/xmltv/xmltv/filter/tv_sort,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** tv_sort 8 Jun 2015 17:41:14 -0000 1.34
--- tv_sort 12 Jul 2015 00:46:37 -0000 1.35
***************
*** 121,125 ****
my $opt_duplicate_error = 0;
GetOptions('help' => \$opt_help, 'output=s' => \$opt_output,
! 'by-channel' => \$opt_by_channel,
'duplicate-error' => \$opt_duplicate_error )
or usage(0);
--- 121,125 ----
my $opt_duplicate_error = 0;
GetOptions('help' => \$opt_help, 'output=s' => \$opt_output,
! 'by-channel' => \$opt_by_channel,
'duplicate-error' => \$opt_duplicate_error )
or usage(0);
***************
*** 234,238 ****
if ($opt_duplicate_error) {
print STDERR "Duplicate program found:\n" .
! " $first->{title}->[0]->[0]\t" .
"at $first->{start}-|$first->{stop}\n";
}
--- 234,238 ----
if ($opt_duplicate_error) {
print STDERR "Duplicate program found:\n" .
! " $first->{title}->[0]->[0]\t" .
"at $first->{start}-|$first->{stop}\n";
}
***************
*** 355,359 ****
return undef;
}
!
return $ai <=> $bi;
}
--- 355,359 ----
return undef;
}
!
return $ai <=> $bi;
}
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
xmltv-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xmltv-commit