File: convert_info_vdr.pl

package info (click to toggle)
vdr-plugin-epgsearch 2.2.0%2Bgit20170817-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,788 kB
  • sloc: ansic: 23,630; perl: 1,330; sh: 634; makefile: 226
file content (78 lines) | stat: -rwxr-xr-x 1,818 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/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;

## <Einstellungen>

my $backup=1;  # Backup erstellen? 1=Ja (info.bak), 0=Nein
my $keepdata=1; # Die epgsearch-Daten in summary behalten? 1=Ja, 0=Nein

## </Einstellungen>

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 geffnet werden: $DateiAlt");

my $Zeile = "";
my $epgsearch = "";
my $neuformat = 0;
my $aux = "";

printf ("Konvertiere %s\n",$DateiAlt);

while(<DATEI>) {

  $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>".$epgsearch."</epgsearch>";
  print NEU sprintf("%s\n",$aux);
} elsif ( $neuformat == 1  ) {
  print NEU sprintf("%s\n",$aux);
}

print NEU sprintf("@ <epgsearch>%s</epgsearch>\n",$epgsearch) if ( $neuformat == 0 && $epgsearch ne "" );

close(DATEI);
close(NEU);

rename $DateiAlt, $DateiBak if ( ! -e $DateiBak && $backup == 1 );
rename $DateiNeu, $DateiAlt;