#!/usr/bin/perl
#
# Dieses Script konvertiert die info.vdrs in das Format, das
# vdr >= 1.3.44 und epgsearch >= 0.9.14 verwenden.
#
# Aufrufen:
#
# find "/video" -path "*.rec" -exec convert_info_vdr.pl "{}" \;
#
# Bitte die beiden Variablen unter Einstellungen anpassen!
#
# Mike Constabel vejoun @ vdrportal
# 2006-03-01
#
use strict;
##
my $backup=1; # Backup erstellen? 1=Ja (info.bak), 0=Nein
my $keepdata=1; # Die epgsearch-Daten in summary behalten? 1=Ja, 0=Nein
##
die("Kein Parameter, bitte Anleitung im Script lesen.") if ! $ARGV[0];
my $Pfad=$ARGV[0];
my $DateiAlt=$Pfad."/info.vdr";
my $DateiNeu=$Pfad."/info.neu";
my $DateiBak=$Pfad."/info.bak";
open(DATEI,"<".$DateiAlt) || die("Datei nicht gefunden: $DateiAlt");
open(NEU,">".$DateiNeu) || die("Datei kann nicht geöffnet werden: $DateiAlt");
my $Zeile = "";
my $epgsearch = "";
my $neuformat = 0;
my $aux = "";
printf ("Konvertiere %s\n",$DateiAlt);
while() {
$Zeile = $_;
print NEU $Zeile if $Zeile =~ /^[CETSX] .+/;
$epgsearch = $1 if $Zeile =~ /^D .*(Kanal.+Suchtimer.+S-ID.+)$/;
if ( $Zeile =~ /^(D .+)\|Kanal.+Suchtimer.+S-ID.+$/ && ! $keepdata ) {
print NEU sprintf("%s\n",$1);
} elsif ( $Zeile =~ /^(D .+)$/ ) {
print NEU sprintf("%s\n",$1);
}
if ( $Zeile =~ /^(@ .+)$/ ) {
$neuformat=1;
$aux = $1;
}
}
if ( $neuformat == 1 && $aux !~ /epgsearch/ && $epgsearch ne "" ) {
$aux .= "".$epgsearch."";
print NEU sprintf("%s\n",$aux);
} elsif ( $neuformat == 1 ) {
print NEU sprintf("%s\n",$aux);
}
print NEU sprintf("@ %s\n",$epgsearch) if ( $neuformat == 0 && $epgsearch ne "" );
close(DATEI);
close(NEU);
rename $DateiAlt, $DateiBak if ( ! -e $DateiBak && $backup == 1 );
rename $DateiNeu, $DateiAlt;