summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2010-09-29 15:10:22 +0000
committerAndreas Brachold <vdr07@deltab.de>2010-09-29 15:10:22 +0000
commitcfc075ab3769c96f7a60f6bbb3e76e72ffb8b49d (patch)
tree95857ffa63221851e38208af8072146ec48f8a3d
parent077bfb773516ce03460433b3c31281805ea28c41 (diff)
downloadxxv-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.pm18
-rw-r--r--lib/XXV/MODULES/CHANNELS.pm38
-rw-r--r--lib/XXV/MODULES/EPG.pm2
-rw-r--r--lib/XXV/MODULES/REMOTE.pm9
-rw-r--r--lib/XXV/MODULES/STREAM.pm18
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});