diff --git a/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php b/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php index 97b235dc6..63b16d821 100644 --- a/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php @@ -586,9 +586,17 @@ class uiScheduler extends uiCalendar { } // fn copyPlfromSP + /** + * Get the currently playing clip or one that is coming up. + * + * Note: just use methods here which work without valid authentification. + * + * @param int $distance + * 0=current clip; 1=next clip ... + * @return array + */ public function getNowNextClip($distance=0) { - // just use methods which work without valid authentification $datetime = strftime('%Y-%m-%dT%H:%M:%S'); $xmldatetime = str_replace('-', '', $datetime); $pl = $this->displayScheduleMethod($xmldatetime, $xmldatetime); @@ -607,22 +615,20 @@ class uiScheduler extends uiCalendar { return FALSE; } - list($duration['h'], $duration['m'], $duration['s']) = explode(':', Playlist::secondsToPlaylistTime(Playlist::playlistTimeToSeconds($clip['elapsed']) + Playlist::playlistTimeToSeconds($clip['remaining']))); + $secondsElapsed = Playlist::playlistTimeToSeconds($clip['elapsed']); + $secondsRemaining = Playlist::playlistTimeToSeconds($clip['remaining']); + list($duration['h'], $duration['m'], $duration['s']) = explode(':', Playlist::secondsToPlaylistTime($secondsElapsed + $secondsRemaining)); list($elapsed['h'], $elapsed['m'], $elapsed['s']) = explode(':', $clip['elapsed']); list($remaining['h'], $remaining['m'], $remaining['s']) = explode(':', $clip['remaining']); $duration = array_map('round', $duration); $elapsed = array_map('round', $elapsed); $remaining = array_map('round', $remaining); - - return array( - 'title' => $clip['title'], - 'duration' => $duration, - 'elapsed' => $elapsed, - 'remaining' => $remaining, - 'percentage'=> Playlist::playlistTimeToSeconds($clip['elapsed']) - ? 100 * Playlist::playlistTimeToSeconds($clip['elapsed']) / ( Playlist::playlistTimeToSeconds($clip['elapsed']) + Playlist::playlistTimeToSeconds($clip['remaining'])) - : 100 - ); + $percentage = $secondsElapsed ? (100 * $secondsElapsed / ($secondsElapsed + $secondsRemaining)) : 100; + return array('title' => $clip['title'], + 'duration' => $duration, + 'elapsed' => $elapsed, + 'remaining' => $remaining, + 'percentage'=> $percentage); } // fn getNowNextClip @@ -897,6 +903,11 @@ class uiScheduler extends uiCalendar { $cmd = "{$this->Base->STATIONPREFS['schedulerStartupScript']} status"; exec($cmd, $output); + if (empty($output)) { + $this->scriptError = 'Scheduler startup script does not appear to be valid. Please check the value you have set in "Preferences->System Settings".'; + return FALSE; + } + $message = ""; foreach ($output as $line) { $message .= trim(addslashes($line)).'\n'; }