summaryrefslogtreecommitdiff
path: root/convert.pl
diff options
context:
space:
mode:
Diffstat (limited to 'convert.pl')
-rwxr-xr-xconvert.pl64
1 files changed, 64 insertions, 0 deletions
diff --git a/convert.pl b/convert.pl
new file mode 100755
index 0000000..84303f0
--- /dev/null
+++ b/convert.pl
@@ -0,0 +1,64 @@
+#!/usr/bin/perl
+
+use strict;
+
+if(scalar(@ARGV) != 3) {
+ print("Usage: convert.pl <vdradmin-am config> <timers in> <timers out>\n");
+ print("\t<vdradmin-am config> VDRAdmin-AM's vdradmind.conf\n");
+ print("\t<timers in> Source timers.conf\n");
+ print("\t<timers out> Destination timers.conf\n");
+ exit 1;
+}
+
+my %CONFIG;
+my $CONFFILE = @ARGV[0];
+my $timers_in = @ARGV[1];
+my $timers_out = @ARGV[2];
+
+ReadConfig();
+
+print("Converting $timers_in to $timers_out\n");
+my $in = open(FH_IN, "<$timers_in") if(-e "$timers_in");
+my $out = open(FH_OUT, ">$timers_out");
+if($in and $out) {
+ while(<FH_IN>) {
+ chomp;
+ s/#.*//;
+ s/^\s+//;
+ s/\s+$//;
+ next unless length;
+ my ($status, $channel, $day, $start, $stop, $priority, $lifetime, $file, $aux) = split(":", $_);
+ my $autotimer = 1 if($status & 0x8000);
+ my $active = $status & 0x7FFF;
+ my $event_id = $status >> 16;
+ if($autotimer) {
+ $autotimer = 2 if($event_id);
+ $aux .= "|" if($aux);
+ $aux .= "<vdradmin-am><epgid>$event_id</epg_id><autotimer>$autotimer</autotimer><bstart>$CONFIG{TM_MARGIN_BEGIN}</bstart><bstop>$CONFIG{TM_MARGIN_END}</bstop></vdradmin-am>";
+ }
+ print(FH_OUT "$active:$channel:$day:$start:$stop:$priority:$lifetime:$file:$aux\n");
+ }
+ close(FH_IN);
+ close(FH_OUT);
+ print("\nNOTE:\n");
+ print("Please check the new timers.conf for errors before replacing the old timers.conf!\n");
+} else {
+ print("Failed to open files!\n");
+ exit 1;
+}
+
+sub ReadConfig {
+ if(-e $CONFFILE) {
+ open(CONF, $CONFFILE);
+ while(<CONF>) {
+ chomp;
+ my($key, $value) = split(/ \= /, $_, 2);
+ $CONFIG{$key} = $value;
+ }
+ close(CONF);
+ } else {
+ print "$CONFFILE doesn't exist. Exiting\n";
+ exit(1);
+ }
+ return(0);
+}