r697 - in vdr/vdr-xxv/trunk/debian: . patches

Tobias Grimm pkg-vdr-dvb-changes@lists.alioth.debian.org
Fri, 24 Jun 2005 23:16:28 +0000


Author: tiber-guest
Date: 2005-06-24 23:16:27 +0000 (Fri, 24 Jun 2005)
New Revision: 697

Added:
   vdr/vdr-xxv/trunk/debian/patches/99_records_vdr-1.3.26.dpatch
Modified:
   vdr/vdr-xxv/trunk/debian/changelog
   vdr/vdr-xxv/trunk/debian/patches/00list
Log:
Fixed bug with vdr 1.3.26


Modified: vdr/vdr-xxv/trunk/debian/changelog
===================================================================
--- vdr/vdr-xxv/trunk/debian/changelog	2005-06-23 20:57:05 UTC (rev 696)
+++ vdr/vdr-xxv/trunk/debian/changelog	2005-06-24 23:16:27 UTC (rev 697)
@@ -1,3 +1,9 @@
+vdr-xxv (0.42-2) unstable; urgency=low
+
+  * Added patch from Hulk, which fixes a bug with recordings using vdr 1.3.26
+
+ -- Debian VDR Team <pkg-vdr-dvb-devel@lists.alioth.debian.org>  Sat, 25 Jun 2005 01:16:08 +0200
+
 vdr-xxv (0.42-1) unstable; urgency=low
 
   * Thomas Schmidt <tschmidt@debian.org>

Modified: vdr/vdr-xxv/trunk/debian/patches/00list
===================================================================
--- vdr/vdr-xxv/trunk/debian/patches/00list	2005-06-23 20:57:05 UTC (rev 696)
+++ vdr/vdr-xxv/trunk/debian/patches/00list	2005-06-24 23:16:27 UTC (rev 697)
@@ -1,3 +1,5 @@
 01_libpath
 02_secure-grab
 04_mplayer-log
+
+99_records_vdr-1.3.26

Added: vdr/vdr-xxv/trunk/debian/patches/99_records_vdr-1.3.26.dpatch
===================================================================
--- vdr/vdr-xxv/trunk/debian/patches/99_records_vdr-1.3.26.dpatch	2005-06-23 20:57:05 UTC (rev 696)
+++ vdr/vdr-xxv/trunk/debian/patches/99_records_vdr-1.3.26.dpatch	2005-06-24 23:16:27 UTC (rev 697)
@@ -0,0 +1,179 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 99_records_vdr-1.3.26.dpatch by Hulk
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fixes bug with recordings on vdr 1.3.26
+
+@DPATCH@
+diff -Nur xxv-0.42.org/html/rlist.tmpl xxv-0.42/html/rlist.tmpl
+--- xxv-0.42.org/html/rlist.tmpl	2005-05-30 10:51:41.000000000 +0200
++++ xxv-0.42/html/rlist.tmpl	2005-06-17 20:13:32.000000000 +0200
+@@ -1,7 +1,5 @@
+ <body class="frame">
+ 
+-<?% trash = param.usage.shift %?>
+-
+ <div id="body">
+ <?% BLOCK time # Show german dateformat without seconds%?>
+ <?% ts = t.match('(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)') %?>
+@@ -59,9 +57,6 @@
+             </td>
+           </tr>
+           <?% END %?>
+-          <tr>
+-            <td class="bottom180"></td>
+-          </tr>
+         </table>
+       </td>
+ 
+@@ -71,9 +66,7 @@
+ <?% END %?>
+ <h1><?% gettext("Stored recordings") %?>
+     <?% IF search.defined %?> : "<?% search %?>" <?% END %?>
+-    &nbsp;<?% param.usage.first.5 %?>&nbsp;
+-    <?% gettext('over') %?>&nbsp;<a href="?cmd=sf"><?% param.usage.first.0 %?></a>
+-    &nbsp;<?% gettext("used") %?>
++    &nbsp;<small>(<?% param.usage %?>)</small>
+ </h1>
+ <?% IF data.size %?>
+ <?% fields = data.shift %?>
+@@ -90,12 +83,12 @@
+ <?% IF browse.defined && browse != "" %?>
+     <?% directorys = browse.split('~') %?>
+     <?% IF directorys.size <= 1 %?>
+-      <a class="sidetext" title="<?% gettext("Back") %?>" href="?cmd=rlist">[^]</a>
++      <a title="<?% gettext("Back") %?>" href="?cmd=rlist">[^]</a>
+     <?% ELSE %?>
+     <?% t = directorys.pop %?>
+     <?% directory = directorys.join('~') %?>
+-      <a class="sidetext" title="<?% gettext("Back") %?>" href="?cmd=rlist">[^]</a>&nbsp;
+-      <a class="sidetext" title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?>">[<<]</a>
++      <a title="<?% gettext("Back") %?>" href="?cmd=rlist">[^]</a>&nbsp;
++      <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?>">[<<]</a>
+     <?% END %?>
+     <br />
+ <?% END %?>
+diff -Nur xxv-0.42.org/lib/XXV/MODULES/RECORDS.pm xxv-0.42/lib/XXV/MODULES/RECORDS.pm
+--- xxv-0.42.org/lib/XXV/MODULES/RECORDS.pm	2005-06-06 18:34:59.000000000 +0200
++++ xxv-0.42/lib/XXV/MODULES/RECORDS.pm	2005-06-17 20:13:24.000000000 +0200
+@@ -236,14 +236,29 @@
+     # Delete old Records
+     $obj->{dbh}->do('DELETE FROM RECORDS');
+ 
++    # Get state from used harddrive (/video)
++    my $stat = $obj->{svdrp}->command('stat disk');
++    if($stat->[1] and $stat->[1] =~ /^250/s) {
++        #250 473807MB 98028MB 79%
++        my ($total, $free, $percent)
++            = $stat->[1] =~ /^250[\-|\s](\S+)\s+(\S+)\s+(\S+)/s;
++
++        $obj->{usage} = sprintf(gettext("Used %s, Total %s, Free %s"),$percent,$total, $free);
++
++    } else {
++        error("Can't get disc state : ".join("\n", @$stat));
++        $obj->{usage} = gettext("Unknown disc capacity!");
++    }
++
+     # Records einlesen
+     my $erg = $obj->{svdrp}->command('lstr');
+ 
+     my @merkIds;
+     foreach my $record (@$erg) {
+-        if(my $anahash = $obj->analyze($record)) {
++        next if($record =~ /^22/);
++        my $anahash = $obj->analyze($record);
++        if(ref $anahash eq 'HASH') {
+             push(@merkIds, $anahash->{EventId});
+-
+             ++$c
+                 if($obj->insert($anahash));
+         }
+@@ -317,21 +332,31 @@
+ # ------------------
+     my $obj = shift || return error ('No Object!' );
+     my $record = shift || return;
+-    my ($id, $day, $month, $hour, $minute, $state, $duration, $title);
++    my ($id, $date, $hour, $minute, $state, $duration, $title);
++    my ($day,$month,$year);
+ 
+     if($record =~ /\s+\d+´\s+/) { # VDR is patched with recording length patch
+         # 250-1  01.11 15:14* 50´ Discovery~Die Rose von Kerrymore Spielfilm D/2000
+-        ($id, $day, $month, $hour, $minute, $state, $duration, $title)
+-            = $record =~ /^250[\-|\s](\d+)\s+(\d+)\.(\d+)\s+(\d+)\:(\d+)(.?)\s*(\d*).*?\s+(.+)/si;
++        ($id, $date, $hour, $minute, $state, $duration, $title)
++            = $record =~ /^250[\-|\s](\d+)\s+([\d|\.]+)\s+(\d+)\:(\d+)(.?)\s*(\d*).*?\s+(.+)/si;
+     } else { # Vanilla VDR
+         # 250-1  01.11 15:14* Discovery~Die Rose von Kerrymore Spielfilm D/2000
+-        ($id, $day, $month, $hour, $minute, $state, $title)
+-            = $record =~ /^250[\-|\s](\d+)\s+(\d+)\.(\d+)\s+(\d+)\:(\d+)(.?).*?\s+(.+)/si;
++        ($id, $date, $hour, $minute, $state, $title)
++            = $record =~ /^250[\-|\s](\d+)\s+([\d|\.]+)\s+(\d+)\:(\d+)(.?).*?\s+(.+)/si;
++    }
++
++    return error("Can't analyze record : ".$record)
++        unless($id);
++
++    # Split date
++    if($date =~ /^(\d+)\.(\d+)$/) { # on DD.MM before 1.3.26
++        ($day,$month) = $date =~ /^(\d+)\.(\d+)$/;
++    } else { # on DD.MM.YY on 1.3.26
++        ($day,$month,$year) = $date =~ /^(\d+)\.(\d+)\.(\d+)$/;
+     }
+-    return unless($id);
+ 
+     my $info = $obj->videoInfo($day, $month, $hour, $minute, $title)
+-        or return error("Can not find recording for Id $id!");
++        or return warn("Can not find recording for Id $id!");
+ 
+     return unless(ref $info eq 'HASH');
+     my @t = split('~', $title);
+@@ -342,8 +367,12 @@
+         $title = join('~',@t);
+     }
+ 
+-    # XXX: Noch werden nicht alle Records korrekt erkannt
+-    my $year = ($info->{mtime}->[5] || 105) + 1900;
++    $year = ($info->{mtime}->[5] || 2005)
++        if(!defined $year);
++    $year += 100
++        if($year < 70); # Adjust year, 0-69 => 100-169 (2000-2069)
++    $year += 1900
++        if($year < 1900); # Adjust year, 70-99 => 1977-1999 ... 2000-2069
+     my $start = timelocal(0,$minute,$hour,$day,$month-1, $year);
+     my $dur = ($duration) ? $duration : (exists $info->{duration}) ? $info->{duration} : 0;
+     my $event = $obj->SearchEpgId( $start, $dur, $title, $subtitle );
+@@ -393,7 +422,7 @@
+     my $obj     = shift || return error ('No object!' );
+     my $day     = shift || return error ('No day!' );
+     my $month   = shift || return error ('No month!' );
+-    my $hour   = shift || return error ('No hour!' );
++    my $hour    = shift || return error ('No hour!' );
+     my $minute  = shift || return error ('No minute!' );
+     my $title   = shift || return error ('No title!' );
+ 
+@@ -716,11 +745,8 @@
+     my $erg = $obj->{dbh}->selectall_arrayref($sql);
+     unshift(@$erg, $fields);
+ 
+-    # Usage
+-    my $mod = main::getModule('STATUS');
+-
+     my $param = {
+-        usage => $mod->videoMounts($obj->{videodir}),
++        usage => $obj->{usage},
+         previewcommand => $obj->{previewcommand},
+         getPreview => sub{ return $obj->getPreviewFiles(@_) },
+     };
+@@ -759,11 +785,8 @@
+     my $erg = $obj->{dbh}->selectall_arrayref($sql);
+     unshift(@$erg, $fields);
+ 
+-    # Usage
+-    my $mod = main::getModule('STATUS');
+-
+     my $param = {
+-        usage => $mod->videoMounts($obj->{videodir}),
++        usage => $obj->{usage},
+         previewcommand => $obj->{previewcommand},
+         getPreview => sub{ return $obj->getPreviewFiles(@_) },
+     };