diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2010-08-24 17:27:10 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2010-08-24 17:27:10 +0000 |
| commit | e503819f62d4156bb9a9e194d79624ef217da921 (patch) | |
| tree | 83c4997701dfb64e0b4cee47be880312d917357a /lib/XXV/MODULES/RECORDS.pm | |
| parent | 1d05d26b9065a1b7c202a7878668c7bace17b986 (diff) | |
| download | xxv-e503819f62d4156bb9a9e194d79624ef217da921.tar.gz xxv-e503819f62d4156bb9a9e194d79624ef217da921.tar.bz2 | |
SHARE: show level on any skins
CONFIG: show moduls description on editing preferences
USER: refactoring createTmpDir
RECORDS: refactoring status handler
SHARE: change order of topten view
Diffstat (limited to 'lib/XXV/MODULES/RECORDS.pm')
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 102 |
1 files changed, 58 insertions, 44 deletions
diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index 80bc31d..b9d9286 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -167,7 +167,7 @@ sub module { rconvert => { description => gettext("Convert recording 'rid'"), short => 'rc', - callback => sub{ $self->convert(@_) }, + callback => sub{ $self->reccmds(@_) }, Level => 'user', DenyClass => 'redit', }, @@ -378,6 +378,58 @@ sub _init { 1; } +# ------------------ +sub status { +# ------------------ + my $self = shift || return error('No object defined!'); + my $lastReportTime = shift; + + my $total = 0; + my $unseen = 0; + { + my $sth = $self->{dbh}->prepare("SELECT SQL_CACHE count(*) as count,SUM(FIND_IN_SET('new',status)) as unseen from RECORDS"); + if(!$sth->execute()) + { + error sprintf("Couldn't execute query: %s.",$sth->errstr); + } else { + my $erg = $sth->fetchrow_hashref(); + $total = $erg->{count} if($erg && $erg->{count}); + $unseen = $erg->{unseen} if($erg && $erg->{unseen}); + } + } + my $sql = qq| +SELECT SQL_CACHE + r.hash as __Id, + r.eventid as __EventId, + e.title, + e.subtitle, + FROM_UNIXTIME(e.duration,'%h:%i:%s') as Duration, + e.starttime as __RecordStart +FROM + RECORDS as r, + OLDEPG as e +WHERE + e.eventid = r.eventid + and UNIX_TIMESTAMP(e.starttime) > ? +ORDER BY + e.starttime asc +|; + + my $sth = $self->{dbh}->prepare($sql); + $sth->execute($lastReportTime) + or return error sprintf("Couldn't execute query: %s.",$sth->errstr); + my $fields = $sth->{'NAME'}; + my $erg = $sth->fetchall_arrayref(); + unshift(@$erg, $fields); + return { + message => sprintf(gettext('%d new recordings since last report time %s'), + (scalar @$erg -1), datum($lastReportTime)) + ,table => $erg + ,complete => $total + ,unseen => $unseen + }; +} + sub _watch_recorder { my $self = shift || return error('No object defined!'); @@ -760,7 +812,7 @@ sub _readData { my $db_data; unless($forceUpdate) { # read database for compare with vdr data - my $sql = qq|SELECT SQL_CACHE r.eventid as eventid, r.id as id, + my $sql = qq|SELECT SQL_CACHE r.eventid as eventid, r.id as id, UNIX_TIMESTAMP(e.starttime) as starttime, e.duration, r.status, CONCAT_WS("~",e.title,e.subtitle) as title, @@ -1349,7 +1401,7 @@ sub _infofile { my $filever = shift; my $f; - if($filever == 2) { + if($filever && $filever == 2) { $f = "info"; } else { $f = "info.vdr"; @@ -1716,7 +1768,7 @@ sub createOldEventId { audio => $info->{audio} || "", }; - $attr->{eventid} = $self->{dbh}->selectrow_arrayref('SELECT SQL_CACHE max(eventid)+1 from OLDEPG')->[0]; + $attr->{eventid} = $self->{dbh}->selectrow_arrayref('SELECT SQL_CACHE max(eventid)+1 from OLDEPG')->[0]; $attr->{eventid} = 0x70000000 if(not defined $attr->{eventid} or $attr->{eventid} < 0x6FFFFFFF ); lg sprintf('Create event "%s" into OLDEPG', $subtitle ? $title .'~'. $subtitle : $title); @@ -2470,7 +2522,7 @@ WHERE } $info->{aux} = $self->{keywords}->mergexml($info->{aux},'keywords',$info->{keywords}); - + $info->{filever} = $rec->{filever}; $self->saveinfo($rec->{path},$info) or return con_err($console,sprintf(gettext("Couldn't write file '%s' : %s"), $self->_infofile($rec->{path},$rec->{filever}),$!)); @@ -2594,7 +2646,7 @@ sub _loadreccmds { } # ------------------ -sub convert { +sub reccmds { # ------------------ my $self = shift || return error('No object defined!'); my $console = shift || return error('No console defined!'); @@ -2696,44 +2748,6 @@ WHERE } # ------------------ -sub status { -# ------------------ - my $self = shift || return error('No object defined!'); - my $lastReportTime = shift; - - my $sql = qq| -SELECT SQL_CACHE - r.hash as __Id, - r.eventid as __EventId, - e.title, - e.subtitle, - FROM_UNIXTIME(e.duration,'%h:%i:%s') as Duration, - e.starttime as __RecordStart -FROM - RECORDS as r, - OLDEPG as e -WHERE - e.eventid = r.eventid - and UNIX_TIMESTAMP(e.starttime) > ? -ORDER BY - e.starttime asc -|; - - my $sth = $self->{dbh}->prepare($sql); - $sth->execute($lastReportTime) - or return error sprintf("Couldn't execute query: %s.",$sth->errstr); - my $fields = $sth->{'NAME'}; - my $erg = $sth->fetchall_arrayref(); - unshift(@$erg, $fields); - return { - message => sprintf(gettext('%d new recordings since last report time %s'), - (scalar @$erg -1), datum($lastReportTime)), - table => $erg, - }; -} - - -# ------------------ sub IdToData { # ------------------ my $self = shift || return error('No object defined!'); |
