diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2010-09-29 15:10:22 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2010-09-29 15:10:22 +0000 |
| commit | cfc075ab3769c96f7a60f6bbb3e76e72ffb8b49d (patch) | |
| tree | 95857ffa63221851e38208af8072146ec48f8a3d | |
| parent | 077bfb773516ce03460433b3c31281805ea28c41 (diff) | |
| download | xxv-cfc075ab3769c96f7a60f6bbb3e76e72ffb8b49d.tar.gz xxv-cfc075ab3769c96f7a60f6bbb3e76e72ffb8b49d.tar.bz2 | |
EPG: now order by recorder
REMOTE: switch allow select recorder
CHANNELS: group channel list by recorder
STREAM: livestream allow select recorder
| -rw-r--r-- | lib/XXV/MODULES/AUTOTIMER.pm | 18 | ||||
| -rw-r--r-- | lib/XXV/MODULES/CHANNELS.pm | 38 | ||||
| -rw-r--r-- | lib/XXV/MODULES/EPG.pm | 2 | ||||
| -rw-r--r-- | lib/XXV/MODULES/REMOTE.pm | 9 | ||||
| -rw-r--r-- | lib/XXV/MODULES/STREAM.pm | 18 |
5 files changed, 42 insertions, 43 deletions
diff --git a/lib/XXV/MODULES/AUTOTIMER.pm b/lib/XXV/MODULES/AUTOTIMER.pm index 1997444..dc0c3e1 100644 --- a/lib/XXV/MODULES/AUTOTIMER.pm +++ b/lib/XXV/MODULES/AUTOTIMER.pm @@ -1390,20 +1390,14 @@ sub _timerexists { # Avoid Timer already defined (the timer with the same data again do not put on) my $sql = "SELECT SQL_CACHE count(*) as cc from TIMERS where channel = ? - and UNIX_TIMESTAMP(starttime) = ? - and UNIX_TIMESTAMP(stoptime) = ? - "; -# and priority = ? -# and lifetime = ? -# and ( -# ( flags & 1 = '0' ) -# or ( file = ? ) -# ) + AND ((UNIX_TIMESTAMP(starttime) = ? + AND UNIX_TIMESTAMP(stoptime) = ?) + OR eventid = ?)"; my $sth = $obj->{dbh}->prepare($sql); - $sth->execute($eventdata->{channel},$eventdata->{starttime},$eventdata->{stoptime}, -# $eventdata->{priority},$eventdata->{lifetime}, -# $eventdata->{file} + $sth->execute($eventdata->{channel}, + $eventdata->{starttime},$eventdata->{stoptime}, + $eventdata->{eventid} ) or return error sprintf("Couldn't execute query: %s.",$sth->errstr); my $erg = $sth->fetchrow_hashref(); diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm index a65de26..0d968d0 100644 --- a/lib/XXV/MODULES/CHANNELS.pm +++ b/lib/XXV/MODULES/CHANNELS.pm @@ -621,24 +621,25 @@ sub list { $sql = qq| SELECT SQL_CACHE c.hash as \'$f{'id'}\', + c.id as _cid, c.name as \'$f{'name'}\', c.grp as \'$f{'grp'}\', c.pos as \'$f{'pos'}\', - cg.name as __GrpName, - ( SELECT - r.host - FROM RECORDER as r - WHERE r.id = c.vid - LIMIT 1) as __host + cg.name as __GrpName from CHANNELS as c, - CHANNELGROUPS as cg + CHANNELGROUPS as cg, + RECORDER as r WHERE c.name LIKE ? AND c.grp = cg.id AND c.vid = cg.vid + AND r.id = c.vid + AND r.active = 'y' + GROUP BY + c.id ORDER BY - c.vid, + c.grp asc, r.id asc, |; } else { $sql = qq| @@ -660,20 +661,19 @@ SELECT SQL_CACHE c.grp as \'$f{'grp'}\', c.pos as \'$f{'pos'}\', cg.name as __GrpName, - ( SELECT - r.host - FROM RECORDER as r - WHERE r.id = c.vid - LIMIT 1) as __host + r.host as __host from CHANNELS as c, - CHANNELGROUPS as cg + CHANNELGROUPS as cg, + RECORDER as r WHERE c.name LIKE ? AND c.grp = cg.id AND c.vid = cg.vid + AND r.id = c.vid + AND r.active = 'y' ORDER BY - c.vid, + r.id asc, |; } @@ -687,8 +687,10 @@ ORDER BY } } $sql .= $sortby; - $sql .= " desc" - if(exists $params->{desc} && $params->{desc} == 1); + if(exists $params->{desc} && $params->{desc} == 1) + { $sql .= " desc"; } + else + { $sql .= " asc"; } my $rows; my $limit = $console->{cgi} && $console->{cgi}->param('limit') ? CORE::int($console->{cgi}->param('limit')) : 0; @@ -964,7 +966,7 @@ sub PosToHash { my $vid = shift; if($vid) { - my $sth = $self->{dbh}->prepare('SELECT SQL_CACHE hash as id from CHANNELS where vid = ? AND pos = ?'); + my $sth = $self->{dbh}->prepare('SELECT SQL_CACHE hash from CHANNELS where vid = ? AND pos = ?'); $sth->execute($vid,$pos) or return error sprintf("Couldn't execute query: %s.",$sth->errstr); my $erg = $sth->fetchrow_hashref(); diff --git a/lib/XXV/MODULES/EPG.pm b/lib/XXV/MODULES/EPG.pm index d9121c6..03c057f 100644 --- a/lib/XXV/MODULES/EPG.pm +++ b/lib/XXV/MODULES/EPG.pm @@ -1331,7 +1331,7 @@ WHERE $sql .= qq| GROUP BY c.id -ORDER BY c.vid, c.pos +ORDER BY g.id, c.vid, c.pos |; my $rows; diff --git a/lib/XXV/MODULES/REMOTE.pm b/lib/XXV/MODULES/REMOTE.pm index 42ca655..c78146f 100644 --- a/lib/XXV/MODULES/REMOTE.pm +++ b/lib/XXV/MODULES/REMOTE.pm @@ -215,7 +215,7 @@ sub remote { my $params = shift; my $vdr = $self->{svdrp}->primary_hosts(); - if($params->{vdr}) { + if($params && $params->{vdr}) { $vdr = $params->{vdr}; } @@ -272,8 +272,13 @@ sub switch { my $cid = shift || ''; my $params = shift; + my $vdr = $self->{svdrp}->primary_hosts(); + if($params && $params->{vdr}) { + $vdr = $params->{vdr}; + } + my $cmod = main::getModule('CHANNELS'); - my $hash = $cmod->ToHash($cid, $params && $params->{vdr} ? $params->{vdr} : undef); + my $hash = $cmod->ToHash($cid, $vdr); return con_err($console, sprintf(gettext("Channel '%s' does not exist in the database!"),$cid)) unless($hash); diff --git a/lib/XXV/MODULES/STREAM.pm b/lib/XXV/MODULES/STREAM.pm index f93c2e9..622dcfc 100644 --- a/lib/XXV/MODULES/STREAM.pm +++ b/lib/XXV/MODULES/STREAM.pm @@ -200,18 +200,16 @@ sub livestream { return $console->err(gettext("Can't stream files!")) unless($console->can('datei')); - my $cmod = main::getModule('CHANNELS'); - unless($cid and $cid =~ /^[0-9a-f]{32}$/) { - unless(index($cid, '-') > -1) { - $cid = $cmod->PosToHash($cid); - } else { - $cid = $cmod->CIDToHash($cid); - } + my $vdr = $self->{svdrp}->primary_hosts(); + if($params && $params->{vdr}) { + $vdr = $params->{vdr}; } - return $console->err(sprintf(gettext("This channel '%s' does not exist!"),$cid)) - unless($cid); - my $channel = $cmod->GetChannel($cid); + my $cmod = main::getModule('CHANNELS'); + my $hash = $cmod->ToHash($cid, $vdr); + return con_err($console, sprintf(gettext("Channel '%s' does not exist in the database!"),$cid)) + unless($hash); + my $channel = $cmod->GetChannel($hash, $vdr); if($self->{widget} ne 'external' && (!$params || !(exists $params->{player}))) { my $data = sprintf("?cmd=livestream&__player=1&data=%s",$channel->{hash}); |
