diff options
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 21 | ||||
| -rw-r--r-- | lib/XXV/MODULES/SVDRP.pm | 2 |
2 files changed, 17 insertions, 6 deletions
diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index a763e85..4105ccd 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -592,15 +592,22 @@ sub dot1000 { sub parseData { # ------------------ my $self = shift || return error('No object defined!'); + my $vid = shift || return error('No vid defined!'); my $vdata = shift || return error('No data defined!'); my ($event, $idx, $id, $date, $hour, $minute, $new, $duration, $title, $day, $month, $year); my $data = {}; + my $version = $self->{svdrp}->vdr_version($vid); + foreach my $record (@{$vdata}) { - if($record =~ /\s+\d+\xB4\s+/) { # VDR is patched with recording length patch - ($id, $date, $hour, $minute, $new, $duration, $title) - = $record =~ /^250[\-|\s](\d+)\s+([\d|\.]+)\s+(\d+)\:(\d+)(.?)\s*(\d*).*?\s+(.+)/si; - } else { # Vanilla VDR + if($version >= 10721) { + # 250-1 24.04.11 22:12 2:06* Discovery~Die Rose von Kerrymore Spielfilm D/2000 + ($id, $date, $hour, $minute, $duration, $new, $title) + = $record =~ /^250[\-|\s](\d+)\s+([\d|\.]+)\s+(\d+)\:(\d+)\s+([\d+|\:]+)(.?).*?\s+(.+)/si; + + my ($dh,$dm) = $duration =~ /^(\d+)\:(\d+)$/; + $duration = ($dh * 3600) + ($dm * 60); + } else { # older VDR < 10721 # 250-1 01.11 15:14* Discovery~Die Rose von Kerrymore Spielfilm D/2000 ($id, $date, $hour, $minute, $new, $title) = $record =~ /^250[\-|\s](\d+)\s+([\d|\.]+)\s+(\d+)\:(\d+)(.?).*?\s+(.+)/si; @@ -636,6 +643,10 @@ sub parseData { $event->{starttime} = timelocal(0,$minute,$hour,$day,$month-1, $year); $event->{title} = $title; + if($duration) { + $event->{duration} = $duration; + } + $idx = sprintf("%s~%s",$title,$event->{starttime}); %{$data->{$idx}} = %{$event}; } @@ -816,7 +827,7 @@ sub _readData { my $l = 0; - my $vdrData = $self->parseData($vdata); + my $vdrData = $self->parseData($vid, $vdata); # Adjust waiter max value now. $waiter->max(scalar keys %$vdrData) diff --git a/lib/XXV/MODULES/SVDRP.pm b/lib/XXV/MODULES/SVDRP.pm index b1e0077..5637b56 100644 --- a/lib/XXV/MODULES/SVDRP.pm +++ b/lib/XXV/MODULES/SVDRP.pm @@ -506,7 +506,7 @@ sub vdr_version { && $self->{Cache}->{$vdrid}->{version}) { return $self->{Cache}->{$vdrid}->{version}; } - return 'no'; + return 'unknown'; } sub enum_onlinehosts { |
