From 10218aeeb5c2ad71e3bd489e91e5b75e946e0e00 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Tue, 21 Dec 2010 18:28:17 -0500 Subject: [PATCH] Commit so that I may access project from a different computer. Many things do not work/ are incomplete!!! -Added unfinalized API for getting schedule and currently playing item. --- application/configs/navigation.php | 6 ++ .../controllers/ScheduleController.php | 12 ++- application/models/Schedule.php | 91 +++++++++++++++++-- .../schedule/get-current-playlist.phtml | 3 + .../scripts/schedule/get-scheduler-time.phtml | 86 ++++++++++++++++++ pypo/pypo-cli.py | 2 +- 6 files changed, 190 insertions(+), 10 deletions(-) create mode 100644 application/views/scripts/schedule/get-current-playlist.phtml create mode 100644 application/views/scripts/schedule/get-scheduler-time.phtml diff --git a/application/configs/navigation.php b/application/configs/navigation.php index c2990f357..0d95dcda6 100644 --- a/application/configs/navigation.php +++ b/application/configs/navigation.php @@ -58,6 +58,12 @@ $pages = array( ) ) ), + array( + 'label' => 'Test', + 'module' => 'default', + 'controller' => 'Schedule', + 'action' => 'get-scheduler-time' + ), array( 'label' => 'Schedule', 'module' => 'default', diff --git a/application/controllers/ScheduleController.php b/application/controllers/ScheduleController.php index 97b4fd727..d3ffae065 100644 --- a/application/controllers/ScheduleController.php +++ b/application/controllers/ScheduleController.php @@ -18,7 +18,8 @@ class ScheduleController extends Zend_Controller_Action ->addActionContext('resize-show', 'json') ->addActionContext('delete-show', 'json') ->addActionContext('schedule-show', 'json') - ->addActionContext('clear-show', 'json') + ->addActionContext('clear-show', 'json') + ->addActionContext('get-current-playlist', 'json') ->initContext(); } @@ -173,6 +174,15 @@ class ScheduleController extends Zend_Controller_Action } } + public function getSchedulerTimeAction() + { + $this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript'); + } + + public function getCurrentPlaylistAction() + { + $this->view->entries = Schedule::GetPlayOrderRange(); + } } diff --git a/application/models/Schedule.php b/application/models/Schedule.php index b5398809b..f54844024 100644 --- a/application/models/Schedule.php +++ b/application/models/Schedule.php @@ -351,7 +351,7 @@ class Schedule { /** - * Returns array indexed numberically of: + * Returns array indexed by: * "playlistId"/"playlist_id" (aliases to the same thing) * "start"/"starts" (aliases to the same thing) as YYYY-MM-DD HH:MM:SS.nnnnnn * "end"/"ends" (aliases to the same thing) as YYYY-MM-DD HH:MM:SS.nnnnnn @@ -369,7 +369,7 @@ class Schedule { * @param string $p_toDateTime * In the format YYYY-MM-DD HH:MM:SS.nnnnnn * @param boolean $p_playlistsOnly - * Retreive playlists as a single item. + * Retrieve playlists as a single item. * @return array * Returns empty array if nothing found */ @@ -412,19 +412,94 @@ class Schedule { return $rows; } - public function getSchedulerTime() { - + + /** + * Returns the date of the server in the format + * "YYYY-MM-DD HH:mm:SS". + * + * Note: currently assuming that Web Server and Scheduler are on the + * same host. + * + * @return date Current server time. + */ + public static function GetSchedulerTime() { + return date("Y-m-d H:i:s"); } - public function getCurrentlyPlaying() { + /** + * Returns current playlist. + * + * Note: Total playlist length is prev + next + 1 + * + * @param int $prev + * @param int $next + * @return date + */ + public static function GetPlayOrderRange($prev = 1, $next = 1) { + if (!is_int($prev) || !is_int($next)){ + //must enter integers to specify ranges + return "{}"; + } + $timeNow = Schedule::GetSchedulerTime(); + $currentSong = Schedule::getCurrentlyPlaying(); + return array("schedulerTime"=>$timeNow,"previous"=>Schedule::getPreviousItems($timeNow), + "current"=>Schedule::getCurrentlyPlaying($timeNow), + "next"=>Schedule::getNextItems($timeNow)); } - public function getNextItem($nextCount = 1) { - + private static function GetPreviousItems($timeNow, $prevCount = 1){ + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT * FROM ".$CC_CONFIG["scheduleTable"] + ." WHERE (starts < TIMESTAMP '$timeNow')" + ." ORDER BY id" + ." LIMIT $prevCount"; + $rows = $CC_DBC->GetAll($sql); + foreach ($rows as &$row) { + $row["count"] = "1"; + $row["playlistId"] = $row["playlist_id"]; + $row["start"] = $row["starts"]; + $row["end"] = $row["ends"]; + $row["id"] = $row["group_id"]; + } + return $rows; } - public function getStatus() { + private static function GetCurrentlyPlaying($timeNow){ + global $CC_CONFIG, $CC_DBC; + + $sql = "SELECT * FROM ".$CC_CONFIG["scheduleTable"] + ." WHERE (starts < TIMESTAMP '$timeNow') " + ." AND (ends > TIMESTAMP '$timeNow')"; + $rows = $CC_DBC->GetAll($sql); + foreach ($rows as &$row) { + $row["count"] = "1"; + $row["playlistId"] = $row["playlist_id"]; + $row["start"] = $row["starts"]; + $row["end"] = $row["ends"]; + $row["id"] = $row["group_id"]; + } + return $rows; + } + + private static function GetNextItems($timeNow, $nextCount = 1) { + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT * FROM ".$CC_CONFIG["scheduleTable"] + ." WHERE (starts > TIMESTAMP '$timeNow')" + ." ORDER BY id" + ." LIMIT $nextCount"; + $rows = $CC_DBC->GetAll($sql); + foreach ($rows as &$row) { + $row["count"] = "1"; + $row["playlistId"] = $row["playlist_id"]; + $row["start"] = $row["starts"]; + $row["end"] = $row["ends"]; + $row["id"] = $row["group_id"]; + } + return $rows; + } + + public static function GetStatus() { } diff --git a/application/views/scripts/schedule/get-current-playlist.phtml b/application/views/scripts/schedule/get-current-playlist.phtml new file mode 100644 index 000000000..789c0e6d5 --- /dev/null +++ b/application/views/scripts/schedule/get-current-playlist.phtml @@ -0,0 +1,3 @@ +entries; +?> diff --git a/application/views/scripts/schedule/get-scheduler-time.phtml b/application/views/scripts/schedule/get-scheduler-time.phtml new file mode 100644 index 000000000..8cff686e4 --- /dev/null +++ b/application/views/scripts/schedule/get-scheduler-time.phtml @@ -0,0 +1,86 @@ +
+ +0% +
diff --git a/pypo/pypo-cli.py b/pypo/pypo-cli.py index 3ef5fd095..f57a35a42 100755 --- a/pypo/pypo-cli.py +++ b/pypo/pypo-cli.py @@ -106,7 +106,7 @@ class Global: def selfcheck(self): self.api_client = api_client.api_client_factory(config) if (not self.api_client.is_server_compatible()): - sys.exit() + sys.exit() """