diff --git a/LICENSE_3RD_PARTY b/LICENSE_3RD_PARTY
index 892af37a1..06dcf9016 100644
--- a/LICENSE_3RD_PARTY
+++ b/LICENSE_3RD_PARTY
@@ -29,8 +29,19 @@ Linked code:
- License: LGPLv3
* Soundcloud php api wrapper
- - https://github.com/mptre/php-soundcloud/blob/master/Services/Soundcloud.php
+ - Web site: https://github.com/mptre/php-soundcloud/blob/master/Services/Soundcloud.php
- License: MIT
+ - Compatible with the GPL: Yes. See http://www.gnu.org/licenses/license-list.html
+
+ * Kombu
+ - Web site: http://pypi.python.org/pypi/kombu/
+ - License: New BSD
+ - Compatible with GPLv3? Yes.
+
+ * PHP-AMQPLIB
+ - Web site: https://github.com/tnc/php-amqplib
+ - License: LGPLv2.1
+ - Compatible with GPLv3? Yes
----------------
Non-linked code:
diff --git a/application/configs/conf.php b/application/configs/conf.php
index 74c3b10ac..b96db1f1d 100644
--- a/application/configs/conf.php
+++ b/application/configs/conf.php
@@ -61,38 +61,6 @@ $CC_CONFIG = array(
'zendPath' => dirname(__FILE__).'/../../library/Zend',
'phingPath' => dirname(__FILE__).'/../../library/phing',
- // name of admin group
- //'AdminsGr' => 'Admins',
-
- // name of station preferences group
-// 'StationPrefsGr'=> 'StationPrefs',
-
- // name of 'all users' group
- //'AllGr' => 'All',
-
- /* ==================================== application-specific configuration */
-// 'objtypes' => array(
-// 'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/),
-// 'File' => array(),
-// 'audioclip' => array(),
-// 'playlist' => array(),
-// ),
-// 'allowedActions'=> array(
-// 'File' => array('editPrivs', 'write', 'read'),
-// 'audioclip' => array('editPrivs', 'write', 'read'),
-// 'playlist' => array('editPrivs', 'write', 'read'),
-// ),
-// 'allActions' => array(
-// 'editPrivs', 'write', 'read', 'subjects'
-// ),
-
- /* =================================================== cron configuration */
- 'cronUserName' => 'www-data',
-# 'lockfile' => dirname(__FILE__).'/cron/cron.lock',
- 'lockfile' => dirname(__FILE__).'/stor/buffer/cron.lock',
- 'cronfile' => dirname(__FILE__).'/cron/croncall.php',
- 'paramdir' => dirname(__FILE__).'/cron/params',
-// 'systemPrefId' => "0", // ID for system prefs in prefs table
);
// Add database table names
@@ -119,11 +87,6 @@ $CC_CONFIG['permSequence'] = $CC_CONFIG['permTable'].'_id';
$CC_CONFIG['subjSequence'] = $CC_CONFIG['subjTable'].'_id';
$CC_CONFIG['smembSequence'] = $CC_CONFIG['smembTable'].'_id';
-// System users/groups - they cannot be deleted
-//$CC_CONFIG['sysSubjs'] = array(
-// 'root', /*$CC_CONFIG['AdminsGr'],*/ /*$CC_CONFIG['AllGr'],*/ $CC_CONFIG['StationPrefsGr']
-//);
-
// Add libs to the PHP path
$old_include_path = get_include_path();
set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath']
diff --git a/application/controllers/ApiController.php b/application/controllers/ApiController.php
index 7f1cf524e..4f5f4eae3 100644
--- a/application/controllers/ApiController.php
+++ b/application/controllers/ApiController.php
@@ -104,8 +104,6 @@ class ApiController extends Zend_Controller_Action
}
public function liveInfoAction(){
- global $CC_CONFIG;
-
// disable the view and the layout
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
@@ -126,6 +124,22 @@ class ApiController extends Zend_Controller_Action
echo $_GET['callback'].'('.json_encode($result).')';
}
+ public function weekInfoAction(){
+ // disable the view and the layout
+ $this->view->layout()->disableLayout();
+ $this->_helper->viewRenderer->setNoRender(true);
+
+ $dow = array("sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday");
+
+ $result = array();
+ for ($i=0; $i<7; $i++){
+ $result[$dow[$i]] = Show_DAL::GetShowsByDayOfWeek($i);
+ }
+
+ header("Content-type: text/javascript");
+ echo $_GET['callback'].'('.json_encode($result).')';
+ }
+
public function scheduleAction()
{
global $CC_CONFIG;
diff --git a/application/models/Schedule.php b/application/models/Schedule.php
index d1d556e1f..d336546a5 100644
--- a/application/models/Schedule.php
+++ b/application/models/Schedule.php
@@ -466,6 +466,30 @@ class Schedule {
{
global $CC_CONFIG, $CC_DBC;
+ $sql = "SELECT DISTINCT"
+ ." pt.name,"
+ ." ft.track_title,"
+ ." ft.artist_name,"
+ ." ft.album_title,"
+ ." st.starts,"
+ ." st.ends,"
+ ." st.clip_length,"
+ ." st.media_item_played,"
+ ." st.group_id,"
+ ." show.name as show_name,"
+ ." st.instance_id"
+ ." FROM $CC_CONFIG[scheduleTable] st"
+ ." LEFT JOIN $CC_CONFIG[filesTable] ft"
+ ." ON st.file_id = ft.id"
+ ." LEFT JOIN $CC_CONFIG[playListTable] pt"
+ ." ON st.playlist_id = pt.id"
+ ." LEFT JOIN $CC_CONFIG[showInstances] si"
+ ." ON st.instance_id = si.id"
+ ." LEFT JOIN $CC_CONFIG[showTable] show"
+ ." ON si.show_id = show.id"
+ ." WHERE st.starts < si.ends";
+
+/*
$sql = "SELECT DISTINCT pt.name, ft.track_title, ft.artist_name, ft.album_title, st.starts, st.ends, st.clip_length, st.media_item_played, st.group_id, show.name as show_name, st.instance_id"
." FROM $CC_CONFIG[scheduleTable] st, $CC_CONFIG[filesTable] ft, $CC_CONFIG[playListTable] pt, $CC_CONFIG[showInstances] si, $CC_CONFIG[showTable] show"
." WHERE st.playlist_id = pt.id"
@@ -473,6 +497,7 @@ class Schedule {
." AND st.instance_id = si.id"
." AND si.show_id = show.id"
." AND st.starts < si.ends";
+*/
if ($timePeriod < 0){
$sql .= " AND st.ends < TIMESTAMP '$timeStamp'"
@@ -628,17 +653,24 @@ class Schedule {
* @param string $p_toDateTime
* In the format "YYYY-MM-DD-HH-mm-SS"
*/
- public static function GetScheduledPlaylists()
+ public static function GetScheduledPlaylists($p_fromDateTime = null, $p_toDateTime = null)
{
global $CC_CONFIG, $CC_DBC;
- $t1 = new DateTime();
- $range_start = $t1->format("Y-m-d H:i:s");
-
- $t2 = new DateTime();
- $t2->add(new DateInterval("PT24H"));
- $range_end = $t2->format("Y-m-d H:i:s");
-
+ if (is_null($p_fromDateTime)) {
+ $t1 = new DateTime();
+ $range_start = $t1->format("Y-m-d H:i:s");
+ } else {
+ $range_start = Schedule::PypoTimeToAirtimeTime($p_fromDateTime);
+ }
+ if (is_null($p_fromDateTime)) {
+ $t2 = new DateTime();
+ $t2->add(new DateInterval("PT24H"));
+ $range_end = $t2->format("Y-m-d H:i:s");
+ } else {
+ $range_end = Schedule::PypoTimeToAirtimeTime($p_toDateTime);
+ }
+
// Scheduler wants everything in a playlist
$data = Schedule::GetItems($range_start, $range_end, true);
$playlists = array();
diff --git a/application/models/Shows.php b/application/models/Shows.php
index 8aa83beae..cf7df53ab 100644
--- a/application/models/Shows.php
+++ b/application/models/Shows.php
@@ -58,6 +58,24 @@ class Show {
$show->setDbBackgroundColor($backgroundColor);
}
+ public function getHosts()
+ {
+ global $CC_DBC;
+
+ $sql = "SELECT first_name, last_name
+ FROM cc_show_hosts LEFT JOIN cc_subjs ON cc_show_hosts.subjs_id = cc_subjs.id
+ WHERE show_id = {$this->_showId}";
+
+ $hosts = $CC_DBC->GetAll($sql);
+
+ $res = array();
+ foreach($hosts as $host) {
+ $res[] = $host['first_name']." ".$host['last_name'];
+ }
+
+ return $res;
+ }
+
public function cancelShow($day_timestamp)
{
global $CC_DBC;
@@ -930,7 +948,31 @@ class Show_DAL {
." OR (si.starts < TIMESTAMP '$timeNow' + INTERVAL '$end seconds' AND si.ends > TIMESTAMP '$timeNow' + INTERVAL '$end seconds'))"
//checking for st.starts IS NULL so that the query also returns shows that do not have any items scheduled.
." AND (st.starts < si.ends OR st.starts IS NULL)"
- ." ORDER BY st.starts";
+ ." ORDER BY si.starts, st.starts";
+
+ return $CC_DBC->GetAll($sql);
+ }
+
+ public static function GetShowsByDayOfWeek($day){
+ //DOW FROM TIMESTAMP
+ //The day of the week (0 - 6; Sunday is 0) (for timestamp values only)
+
+ //SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
+ //Result: 5
+
+ global $CC_CONFIG, $CC_DBC;
+ $sql = "SELECT"
+ ." si.starts as show_starts,"
+ ." si.ends as show_ends,"
+ ." s.name as show_name,"
+ ." s.url as url"
+ ." FROM $CC_CONFIG[showInstances] si"
+ ." LEFT JOIN $CC_CONFIG[showTable] s"
+ ." ON si.show_id = s.id"
+ ." WHERE EXTRACT(DOW FROM si.starts) = $day"
+ ." AND EXTRACT(WEEK FROM si.starts) = EXTRACT(WEEK FROM localtimestamp)";
+
+ //echo $sql;
return $CC_DBC->GetAll($sql);
}
diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php
index ecff91caa..cd98aff60 100644
--- a/application/models/StoredFile.php
+++ b/application/models/StoredFile.php
@@ -1481,7 +1481,8 @@ class StoredFile {
public function getFileUrl()
{
global $CC_CONFIG;
- return "http://".$CC_CONFIG["storageUrlHost"]
+ return "http://$CC_CONFIG[storageUrlHost]"
+ .":$CC_CONFIG[storageUrlPort]"
.$CC_CONFIG["apiPath"]."get-media/file/"
.$this->gunid.".".$this->getFileExtension();
}
diff --git a/build/schema.xml b/build/schema.xml
index f00ad14fb..3bd235e09 100644
--- a/build/schema.xml
+++ b/build/schema.xml
@@ -24,13 +24,6 @@