Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
Conflicts: airtime_mvc/application/models/Block.php airtime_mvc/public/css/styles.css
This commit is contained in:
commit
20f5fe6480
32 changed files with 5963 additions and 3894 deletions
|
@ -26,61 +26,61 @@ class Application_Model_Block implements Application_Model_LibraryEditable
|
|||
* info needed to insert a new block element.
|
||||
*/
|
||||
private $blockItem = array(
|
||||
"id" => "",
|
||||
"pos" => "",
|
||||
"id" => "",
|
||||
"pos" => "",
|
||||
"cliplength" => "",
|
||||
"cuein" => "00:00:00",
|
||||
"cueout" => "00:00:00",
|
||||
"fadein" => "0.0",
|
||||
"fadeout" => "0.0",
|
||||
"cuein" => "00:00:00",
|
||||
"cueout" => "00:00:00",
|
||||
"fadein" => "0.0",
|
||||
"fadeout" => "0.0",
|
||||
);
|
||||
|
||||
//using propel's phpNames.
|
||||
private $categories = array(
|
||||
"dc:title" => "Name",
|
||||
"dc:creator" => "Creator",
|
||||
"dc:title" => "Name",
|
||||
"dc:creator" => "Creator",
|
||||
"dc:description" => "Description",
|
||||
"dcterms:extent" => "Length"
|
||||
);
|
||||
|
||||
private static $modifier2CriteriaMap = array(
|
||||
"contains" => Criteria::ILIKE,
|
||||
"contains" => Criteria::ILIKE,
|
||||
"does not contain" => Criteria::NOT_ILIKE,
|
||||
"is" => Criteria::EQUAL,
|
||||
"is not" => Criteria::NOT_EQUAL,
|
||||
"starts with" => Criteria::ILIKE,
|
||||
"ends with" => Criteria::ILIKE,
|
||||
"is greater than" => Criteria::GREATER_THAN,
|
||||
"is less than" => Criteria::LESS_THAN,
|
||||
"is in the range" => Criteria::CUSTOM);
|
||||
"is" => Criteria::EQUAL,
|
||||
"is not" => Criteria::NOT_EQUAL,
|
||||
"starts with" => Criteria::ILIKE,
|
||||
"ends with" => Criteria::ILIKE,
|
||||
"is greater than" => Criteria::GREATER_THAN,
|
||||
"is less than" => Criteria::LESS_THAN,
|
||||
"is in the range" => Criteria::CUSTOM);
|
||||
|
||||
private static $criteria2PeerMap = array(
|
||||
0 => "Select criteria",
|
||||
"album_title" => "DbAlbumTitle",
|
||||
"artist_name" => "DbArtistName",
|
||||
"bit_rate" => "DbBitRate",
|
||||
"bpm" => "DbBpm",
|
||||
"comments" => "DbComments",
|
||||
"composer" => "DbComposer",
|
||||
"conductor" => "DbConductor",
|
||||
"utime" => "DbUtime",
|
||||
"mtime" => "DbMtime",
|
||||
"lptime" => "DbLPtime",
|
||||
"disc_number" => "DbDiscNumber",
|
||||
"genre" => "DbGenre",
|
||||
"isrc_number" => "DbIsrcNumber",
|
||||
"label" => "DbLabel",
|
||||
"language" => "DbLanguage",
|
||||
"length" => "DbLength",
|
||||
"lyricist" => "DbLyricist",
|
||||
"mood" => "DbMood",
|
||||
"name" => "DbName",
|
||||
"orchestra" => "DbOrchestra",
|
||||
"rating" => "DbRating",
|
||||
"sample_rate" => "DbSampleRate",
|
||||
"track_title" => "DbTrackTitle",
|
||||
0 => "Select criteria",
|
||||
"album_title" => "DbAlbumTitle",
|
||||
"artist_name" => "DbArtistName",
|
||||
"bit_rate" => "DbBitRate",
|
||||
"bpm" => "DbBpm",
|
||||
"composer" => "DbComposer",
|
||||
"conductor" => "DbConductor",
|
||||
"copyright" => "DbCopyright",
|
||||
"encoded_by" => "DbEncodedBy",
|
||||
"utime" => "DbUtime",
|
||||
"mtime" => "DbMtime",
|
||||
"lptime" => "DbLPtime",
|
||||
"genre" => "DbGenre",
|
||||
"info_url" => "DbInfoUrl",
|
||||
"isrc_number" => "DbIsrcNumber",
|
||||
"label" => "DbLabel",
|
||||
"language" => "DbLanguage",
|
||||
"length" => "DbLength",
|
||||
"mime" => "DbMime",
|
||||
"mood" => "DbMood",
|
||||
"owner_id" => "DbOwnerId",
|
||||
"replay_gain" => "DbReplayGain",
|
||||
"sample_rate" => "DbSampleRate",
|
||||
"track_title" => "DbTrackTitle",
|
||||
"track_number" => "DbTrackNumber",
|
||||
"year" => "DbYear"
|
||||
"year" => "DbYear"
|
||||
);
|
||||
|
||||
public function __construct($id=null, $con=null)
|
||||
|
@ -191,14 +191,28 @@ class Application_Model_Block implements Application_Model_LibraryEditable
|
|||
Logging::info("Getting contents for block {$this->id}");
|
||||
|
||||
$files = array();
|
||||
$sql = <<<"EOT"
|
||||
SELECT pc.id as id, pc.position, pc.cliplength as length, pc.cuein, pc.cueout, pc.fadein, pc.fadeout, bl.type, f.length as orig_length,
|
||||
f.id as item_id, f.track_title, f.artist_name as creator, f.file_exists as exists, f.filepath as path, f.mime as mime FROM cc_blockcontents AS pc
|
||||
LEFT JOIN cc_files AS f ON pc.file_id=f.id
|
||||
LEFT JOIN cc_block AS bl ON pc.block_id = bl.id
|
||||
WHERE pc.block_id = :block_id
|
||||
ORDER BY pc.position;
|
||||
EOT;
|
||||
$sql = <<<SQL
|
||||
SELECT pc.id AS id,
|
||||
pc.position,
|
||||
pc.cliplength AS LENGTH,
|
||||
pc.cuein,
|
||||
pc.cueout,
|
||||
pc.fadein,
|
||||
pc.fadeout,
|
||||
bl.type,
|
||||
f.LENGTH AS orig_length,
|
||||
f.id AS item_id,
|
||||
f.track_title,
|
||||
f.artist_name AS creator,
|
||||
f.file_exists AS EXISTS,
|
||||
f.filepath AS path,
|
||||
f.mime as mime
|
||||
FROM cc_blockcontents AS pc
|
||||
LEFT JOIN cc_files AS f ON pc.file_id=f.id
|
||||
LEFT JOIN cc_block AS bl ON pc.block_id = bl.id
|
||||
WHERE pc.block_id = :block_id
|
||||
ORDER BY pc.position;
|
||||
SQL;
|
||||
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql, array(':block_id'=>$this->id));
|
||||
|
||||
|
@ -290,20 +304,20 @@ EOT;
|
|||
$hour = "00";
|
||||
if ($modifier == "minutes") {
|
||||
if ($value >59) {
|
||||
$hour = intval($value/60);
|
||||
$hour = intval($value/60);
|
||||
$value = $value%60;
|
||||
|
||||
}
|
||||
} elseif ($modifier == "hours") {
|
||||
$mins = $value * 60;
|
||||
if ($mins >59) {
|
||||
$hour = intval($mins/60);
|
||||
$hour = str_pad($hour, 2, "0", STR_PAD_LEFT);
|
||||
$hour = intval($mins/60);
|
||||
$hour = str_pad($hour, 2, "0", STR_PAD_LEFT);
|
||||
$value = $mins%60;
|
||||
}
|
||||
}
|
||||
$hour = str_pad($hour, 2, "0", STR_PAD_LEFT);
|
||||
$value = str_pad($value, 2, "0", STR_PAD_LEFT);
|
||||
$hour = str_pad($hour, 2, "0", STR_PAD_LEFT);
|
||||
$value = str_pad($value, 2, "0", STR_PAD_LEFT);
|
||||
$length = $hour.":".$value.":00";
|
||||
}
|
||||
|
||||
|
@ -315,7 +329,7 @@ EOT;
|
|||
$result = CcBlockcriteriaQuery::create()->filterByDbBlockId($this->id)
|
||||
->filterByDbCriteria('limit')->findOne();
|
||||
$modifier = $result->getDbModifier();
|
||||
$value = $result->getDbValue();
|
||||
$value = $result->getDbValue();
|
||||
|
||||
return array($value, $modifier);
|
||||
}
|
||||
|
@ -323,10 +337,12 @@ EOT;
|
|||
// this function returns sum of all track length under this block.
|
||||
public function getStaticLength()
|
||||
{
|
||||
$sql = "SELECT SUM(cliplength) as length FROM cc_blockcontents WHERE block_id = :block_id";
|
||||
$sql = <<<SQL
|
||||
SELECT SUM(cliplength) AS LENGTH
|
||||
FROM cc_blockcontents
|
||||
WHERE block_id = :block_id
|
||||
SQL;
|
||||
$result = Application_Common_Database::prepareAndExecute($sql, array(':block_id'=>$this->id), 'all', PDO::FETCH_NUM);
|
||||
Logging::info($result);
|
||||
|
||||
return $result[0][0];
|
||||
}
|
||||
|
||||
|
@ -357,11 +373,11 @@ EOT;
|
|||
$file = CcFilesQuery::create()->findPK($p_item, $this->con);
|
||||
|
||||
if (isset($file) && $file->getDbFileExists()) {
|
||||
$entry = $this->blockItem;
|
||||
$entry["id"] = $file->getDbId();
|
||||
$entry["pos"] = $pos;
|
||||
$entry = $this->blockItem;
|
||||
$entry["id"] = $file->getDbId();
|
||||
$entry["pos"] = $pos;
|
||||
$entry["cliplength"] = $file->getDbLength();
|
||||
$entry["cueout"] = $file->getDbLength();
|
||||
$entry["cueout"] = $file->getDbLength();
|
||||
|
||||
return $entry;
|
||||
} else {
|
||||
|
@ -736,10 +752,10 @@ EOT;
|
|||
throw new Exception("Block item does not exist.");
|
||||
}
|
||||
|
||||
$oldCueIn = $row->getDBCuein();
|
||||
$oldCueIn = $row->getDBCuein();
|
||||
$oldCueOut = $row->getDbCueout();
|
||||
$fadeIn = $row->getDbFadein();
|
||||
$fadeOut = $row->getDbFadeout();
|
||||
$fadeIn = $row->getDbFadein();
|
||||
$fadeOut = $row->getDbFadeout();
|
||||
|
||||
$file = $row->getCcFiles($this->con);
|
||||
$origLength = $file->getDbLength();
|
||||
|
@ -1038,18 +1054,14 @@ EOT;
|
|||
public function hasItemLimit()
|
||||
{
|
||||
list($value, $modifier) = $this->getLimitValueAndModifier();
|
||||
if ($modifier == 'items') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return ($modifier == 'items');
|
||||
}
|
||||
|
||||
public function storeCriteriaIntoDb($p_criteriaData)
|
||||
{
|
||||
// delete criteria under $p_blockId
|
||||
CcBlockcriteriaQuery::create()->findByDbBlockId($this->id)->delete();
|
||||
Logging::info($p_criteriaData);
|
||||
//Logging::info($p_criteriaData);
|
||||
//insert modifier rows
|
||||
if (isset($p_criteriaData['criteria'])) {
|
||||
$critKeys = array_keys($p_criteriaData['criteria']);
|
||||
|
@ -1114,12 +1126,12 @@ EOT;
|
|||
|
||||
public function getListOfFilesUnderLimit()
|
||||
{
|
||||
$info = $this->getListofFilesMeetCriteria();
|
||||
$files = $info['files'];
|
||||
$limit = $info['limit'];
|
||||
$info = $this->getListofFilesMeetCriteria();
|
||||
$files = $info['files'];
|
||||
$limit = $info['limit'];
|
||||
|
||||
$insertList = array();
|
||||
$totalTime = 0;
|
||||
$totalTime = 0;
|
||||
$totalItems = 0;
|
||||
|
||||
// this moves the pointer to the first element in the collection
|
||||
|
@ -1145,32 +1157,32 @@ EOT;
|
|||
public function getCriteria()
|
||||
{
|
||||
$criteriaOptions = array(
|
||||
0 => "Select criteria",
|
||||
"album_title" => "Album",
|
||||
"bit_rate" => "Bit Rate",
|
||||
"bpm" => "Bpm",
|
||||
"comments" => "Comments",
|
||||
"composer" => "Composer",
|
||||
"conductor" => "Conductor",
|
||||
"artist_name" => "Creator",
|
||||
"disc_number" => "Disc Number",
|
||||
"genre" => "Genre",
|
||||
"isrc_number" => "ISRC",
|
||||
"label" => "Label",
|
||||
"language" => "Language",
|
||||
"mtime" => "Last Modified",
|
||||
"lptime" => "Last Played",
|
||||
"length" => "Length",
|
||||
"lyricist" => "Lyricist",
|
||||
"mood" => "Mood",
|
||||
"name" => "Name",
|
||||
"orchestra" => "Orchestra",
|
||||
"rating" => "Rating",
|
||||
"sample_rate" => "Sample Rate",
|
||||
"track_title" => "Title",
|
||||
0 => "Select criteria",
|
||||
"album_title" => "Album",
|
||||
"bit_rate" => "Bit Rate (Kbps)",
|
||||
"bpm" => "BPM",
|
||||
"composer" => "Composer",
|
||||
"conductor" => "Conductor",
|
||||
"copyright" => "Copyright",
|
||||
"artist_name" => "Creator",
|
||||
"encoded_by" => "Encoded By",
|
||||
"genre" => "Genre",
|
||||
"isrc_number" => "ISRC",
|
||||
"label" => "Label",
|
||||
"language" => "Language",
|
||||
"mtime" => "Last Modified",
|
||||
"lptime" => "Last Played",
|
||||
"length" => "Length",
|
||||
"mime" => "Mime",
|
||||
"mood" => "Mood",
|
||||
"owner_id" => "Owner",
|
||||
"replay_gain" => "Replay Gain",
|
||||
"sample_rate" => "Sample Rate (kHz)",
|
||||
"track_title" => "Title",
|
||||
"track_number" => "Track Number",
|
||||
"utime" => "Uploaded",
|
||||
"year" => "Year"
|
||||
"utime" => "Uploaded",
|
||||
"info_url" => "Website",
|
||||
"year" => "Year"
|
||||
);
|
||||
|
||||
// Load criteria from db
|
||||
|
@ -1200,12 +1212,13 @@ EOT;
|
|||
$storedCrit = $this->getCriteria();
|
||||
|
||||
$qry = CcFilesQuery::create();
|
||||
$qry->useFkOwnerQuery("subj", "left join");
|
||||
|
||||
if (isset($storedCrit["crit"])) {
|
||||
foreach ($storedCrit["crit"] as $crit) {
|
||||
$i = 0;
|
||||
foreach ($crit as $criteria) {
|
||||
$spCriteriaPhpName = self::$criteria2PeerMap[$criteria['criteria']];
|
||||
//$spCriteriaPhpName = self::$criteria2PeerMap[$criteria['criteria']];
|
||||
$spCriteria = $criteria['criteria'];
|
||||
$spCriteriaModifier = $criteria['modifier'];
|
||||
|
||||
|
@ -1274,6 +1287,9 @@ EOT;
|
|||
$spCriteriaModifier = self::$modifier2CriteriaMap[$spCriteriaModifier];
|
||||
|
||||
try {
|
||||
if ($spCriteria == "owner_id") {
|
||||
$spCriteria = "subj.login";
|
||||
}
|
||||
if ($i > 0) {
|
||||
$qry->addOr($spCriteria, $spCriteriaValue, $spCriteriaModifier);
|
||||
} else {
|
||||
|
|
|
@ -192,12 +192,8 @@ class Application_Model_Datatables
|
|||
$r['length'] = $pl->getLength();
|
||||
} elseif ($r['ftype'] == "block") {
|
||||
$bl = new Application_Model_Block($r['id']);
|
||||
if ($bl->isStatic()) {
|
||||
$r['bl_type'] = 'static';
|
||||
} else {
|
||||
$r['bl_type'] = 'dynamic';
|
||||
}
|
||||
$r['length'] = $bl->getLength();
|
||||
$r['bl_type'] = $bl->isStatic() ? 'static' : 'dynamic';
|
||||
$r['length'] = $bl->getLength();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -226,11 +226,7 @@ class Application_Model_Preference
|
|||
public static function GetDefaultTransitionFade()
|
||||
{
|
||||
$transition_fade = self::getValue("default_transition_fade");
|
||||
if ($transition_fade == "") {
|
||||
$transition_fade = "00.000000";
|
||||
}
|
||||
|
||||
return $transition_fade;
|
||||
return ($transition_fade == "") ? "00.000000" : $transition_fade;
|
||||
}
|
||||
|
||||
public static function SetStreamLabelFormat($type)
|
||||
|
@ -332,11 +328,7 @@ class Application_Model_Preference
|
|||
public static function GetAllow3rdPartyApi()
|
||||
{
|
||||
$val = self::getValue("third_party_api");
|
||||
if (strlen($val) == 0) {
|
||||
return "0";
|
||||
} else {
|
||||
return $val;
|
||||
}
|
||||
return (strlen($val) == 0 ) ? "0" : $val;
|
||||
}
|
||||
|
||||
public static function SetPhone($phone)
|
||||
|
@ -447,6 +439,8 @@ class Application_Model_Preference
|
|||
$image = @file_get_contents($imagePath);
|
||||
$image = base64_encode($image);
|
||||
self::setValue("logoImage", $image);
|
||||
} else {
|
||||
Logging::warn("Attempting to set imagePath to empty string");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -786,11 +780,7 @@ class Application_Model_Preference
|
|||
public static function GetWeekStartDay()
|
||||
{
|
||||
$val = self::getValue("week_start_day");
|
||||
if (strlen($val) == 0) {
|
||||
return "0";
|
||||
} else {
|
||||
return $val;
|
||||
}
|
||||
return (strlen($val) == 0) ? "0" : $val;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -808,11 +798,7 @@ class Application_Model_Preference
|
|||
public static function GetStreamUpdateTimestemp()
|
||||
{
|
||||
$update_time = self::getValue("stream_update_timestamp");
|
||||
if ($update_time == null) {
|
||||
$update_time = 0;
|
||||
}
|
||||
|
||||
return $update_time;
|
||||
return ($update_time == null) ? 0 : $update_time;
|
||||
}
|
||||
|
||||
public static function GetClientId()
|
||||
|
@ -824,6 +810,8 @@ class Application_Model_Preference
|
|||
{
|
||||
if (is_numeric($id)) {
|
||||
self::setValue("client_id", $id);
|
||||
} else {
|
||||
Logging::warn("Attempting to set client_id to invalid value: $id");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -894,11 +882,7 @@ class Application_Model_Preference
|
|||
public static function GetCalendarTimeInterval()
|
||||
{
|
||||
$val = self::getValue("calendar_time_interval", true /* user specific */);
|
||||
if (strlen($val) == 0) {
|
||||
$val = "30";
|
||||
}
|
||||
|
||||
return $val;
|
||||
return (strlen($val) == 0) ? "30" : $val;
|
||||
}
|
||||
|
||||
public static function SetDiskQuota($value)
|
||||
|
@ -909,11 +893,7 @@ class Application_Model_Preference
|
|||
public static function GetDiskQuota()
|
||||
{
|
||||
$val = self::getValue("disk_quota");
|
||||
if (strlen($val) == 0) {
|
||||
$val = "0";
|
||||
}
|
||||
|
||||
return $val;
|
||||
return (strlen($val) == 0) ? 0 : $val;
|
||||
}
|
||||
|
||||
public static function SetLiveSteamMasterUsername($value)
|
||||
|
@ -944,11 +924,7 @@ class Application_Model_Preference
|
|||
public static function GetSourceStatus($sourcename)
|
||||
{
|
||||
$value = self::getValue($sourcename);
|
||||
if ($value == null || $value == "false") {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return !($value == null || $value == "false");
|
||||
}
|
||||
|
||||
public static function SetSourceSwitchStatus($sourcename, $status)
|
||||
|
@ -959,11 +935,7 @@ class Application_Model_Preference
|
|||
public static function GetSourceSwitchStatus($sourcename)
|
||||
{
|
||||
$value = self::getValue($sourcename."_switch");
|
||||
if ($value == null || $value == "off") {
|
||||
return "off";
|
||||
} else {
|
||||
return "on";
|
||||
}
|
||||
return ($value == null || $value == "off") ? 'off' : 'on';
|
||||
}
|
||||
|
||||
public static function SetMasterDJSourceConnectionURL($value)
|
||||
|
@ -1036,12 +1008,7 @@ class Application_Model_Preference
|
|||
public static function GetEnableSystemEmail()
|
||||
{
|
||||
$v = self::getValue("enable_system_email");
|
||||
|
||||
if ($v === "") {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $v;
|
||||
return ($v === "") ? 0 : $v;
|
||||
}
|
||||
|
||||
public static function SetSystemEmail($value)
|
||||
|
|
|
@ -10,10 +10,14 @@ class Application_Model_Schedule
|
|||
public function IsFileScheduledInTheFuture($p_fileId)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$sql = "SELECT COUNT(*) FROM ".$CC_CONFIG["scheduleTable"]
|
||||
." WHERE file_id = :file_id AND ends > NOW() AT TIME ZONE 'UTC'";
|
||||
$count = Application_Common_Database::prepareAndExecute($sql, array(':file_id'=>$p_fileId), 'column');
|
||||
|
||||
$sql = <<<SQL
|
||||
SELECT COUNT(*)
|
||||
FROM cc_schedule
|
||||
WHERE file_id = :file_id
|
||||
AND ends > NOW() AT TIME ZONE 'UTC'
|
||||
SQL;
|
||||
$count = Application_Common_Database::prepareAndExecute( $sql, array(
|
||||
':file_id'=>$p_fileId), 'column');
|
||||
return (is_numeric($count) && ($count != '0'));
|
||||
}
|
||||
|
||||
|
@ -177,7 +181,7 @@ SELECT ft.artist_name,
|
|||
ft.track_title,
|
||||
st.starts AS starts,
|
||||
st.ends AS ends
|
||||
FROM $CC_CONFIG[scheduleTable] st
|
||||
FROM cc_schedule st
|
||||
LEFT JOIN $CC_CONFIG[filesTable] ft ON st.file_id = ft.id
|
||||
LEFT JOIN $CC_CONFIG[showInstances] sit ON st.instance_id = sit.id
|
||||
-- this and the next line are necessary since we can overbook shows.
|
||||
|
@ -559,16 +563,20 @@ SQL;
|
|||
$dt->add(new DateInterval("PT24H"));
|
||||
$range_end = $dt->format("Y-m-d H:i:s");
|
||||
|
||||
$predicates = " WHERE st.ends > :startTime1"
|
||||
." AND st.starts < :rangeEnd"
|
||||
." AND st.playout_status > 0"
|
||||
." AND si.ends > :startTime2"
|
||||
." ORDER BY st.starts"
|
||||
." LIMIT 3";
|
||||
$predicates = <<<SQL
|
||||
WHERE st.ends > :startTime1
|
||||
AND st.starts < :rangeEnd
|
||||
AND st.playout_status > 0
|
||||
AND si.ends > :startTime2
|
||||
ORDER BY st.starts LIMIT 3
|
||||
SQL;
|
||||
|
||||
$sql = $baseQuery.$predicates;
|
||||
$sql = " ".$baseQuery.$predicates;
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql,
|
||||
array(':startTime1'=>$p_startTime, ':rangeEnd'=>$range_end, ':startTime2'=>$p_startTime));
|
||||
array(
|
||||
':startTime1' => $p_startTime,
|
||||
':rangeEnd' => $range_end,
|
||||
':startTime2' => $p_startTime));
|
||||
}
|
||||
|
||||
return $rows;
|
||||
|
@ -626,21 +634,21 @@ SQL;
|
|||
private static function createFileScheduleEvent(&$data, $item, $media_id, $uri)
|
||||
{
|
||||
$start = self::AirtimeTimeToPypoTime($item["start"]);
|
||||
$end = self::AirtimeTimeToPypoTime($item["end"]);
|
||||
$end = self::AirtimeTimeToPypoTime($item["end"]);
|
||||
|
||||
$schedule_item = array(
|
||||
'id' => $media_id,
|
||||
'type' => 'file',
|
||||
'row_id' => $item["id"],
|
||||
'uri' => $uri,
|
||||
'fade_in' => Application_Model_Schedule::WallTimeToMillisecs($item["fade_in"]),
|
||||
'fade_out' => Application_Model_Schedule::WallTimeToMillisecs($item["fade_out"]),
|
||||
'cue_in' => Application_Common_DateHelper::CalculateLengthInSeconds($item["cue_in"]),
|
||||
'cue_out' => Application_Common_DateHelper::CalculateLengthInSeconds($item["cue_out"]),
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'show_name' => $item["show_name"],
|
||||
'replay_gain' => is_null($item["replay_gain"]) ? "0": $item["replay_gain"],
|
||||
'id' => $media_id,
|
||||
'type' => 'file',
|
||||
'row_id' => $item["id"],
|
||||
'uri' => $uri,
|
||||
'fade_in' => Application_Model_Schedule::WallTimeToMillisecs($item["fade_in"]),
|
||||
'fade_out' => Application_Model_Schedule::WallTimeToMillisecs($item["fade_out"]),
|
||||
'cue_in' => Application_Common_DateHelper::CalculateLengthInSeconds($item["cue_in"]),
|
||||
'cue_out' => Application_Common_DateHelper::CalculateLengthInSeconds($item["cue_out"]),
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'show_name' => $item["show_name"],
|
||||
'replay_gain' => is_null($item["replay_gain"]) ? "0": $item["replay_gain"],
|
||||
'independent_event' => true
|
||||
);
|
||||
self::appendScheduleItem($data, $start, $schedule_item);
|
||||
|
@ -649,7 +657,7 @@ SQL;
|
|||
private static function createStreamScheduleEvent(&$data, $item, $media_id, $uri)
|
||||
{
|
||||
$start = self::AirtimeTimeToPypoTime($item["start"]);
|
||||
$end = self::AirtimeTimeToPypoTime($item["end"]);
|
||||
$end = self::AirtimeTimeToPypoTime($item["end"]);
|
||||
|
||||
//create an event to start stream buffering 5 seconds ahead of the streams actual time.
|
||||
$buffer_start = new DateTime($item["start"], new DateTimeZone('UTC'));
|
||||
|
@ -658,24 +666,24 @@ SQL;
|
|||
$stream_buffer_start = self::AirtimeTimeToPypoTime($buffer_start->format("Y-m-d H:i:s"));
|
||||
|
||||
$schedule_item = array(
|
||||
'start' => $stream_buffer_start,
|
||||
'end' => $stream_buffer_start,
|
||||
'uri' => $uri,
|
||||
'row_id' => $item["id"],
|
||||
'type' => 'stream_buffer_start',
|
||||
'start' => $stream_buffer_start,
|
||||
'end' => $stream_buffer_start,
|
||||
'uri' => $uri,
|
||||
'row_id' => $item["id"],
|
||||
'type' => 'stream_buffer_start',
|
||||
'independent_event' => true
|
||||
);
|
||||
|
||||
self::appendScheduleItem($data, $start, $schedule_item);
|
||||
|
||||
$schedule_item = array(
|
||||
'id' => $media_id,
|
||||
'type' => 'stream_output_start',
|
||||
'row_id' => $item["id"],
|
||||
'uri' => $uri,
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'show_name' => $item["show_name"],
|
||||
'id' => $media_id,
|
||||
'type' => 'stream_output_start',
|
||||
'row_id' => $item["id"],
|
||||
'uri' => $uri,
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'show_name' => $item["show_name"],
|
||||
'independent_event' => true
|
||||
);
|
||||
self::appendScheduleItem($data, $start, $schedule_item);
|
||||
|
@ -688,19 +696,19 @@ SQL;
|
|||
$stream_end = self::AirtimeTimeToPypoTime($dt->format("Y-m-d H:i:s"));
|
||||
|
||||
$schedule_item = array(
|
||||
'start' => $stream_end,
|
||||
'end' => $stream_end,
|
||||
'uri' => $uri,
|
||||
'type' => 'stream_buffer_end',
|
||||
'start' => $stream_end,
|
||||
'end' => $stream_end,
|
||||
'uri' => $uri,
|
||||
'type' => 'stream_buffer_end',
|
||||
'independent_event' => true
|
||||
);
|
||||
self::appendScheduleItem($data, $stream_end, $schedule_item);
|
||||
|
||||
$schedule_item = array(
|
||||
'start' => $stream_end,
|
||||
'end' => $stream_end,
|
||||
'uri' => $uri,
|
||||
'type' => 'stream_output_end',
|
||||
'start' => $stream_end,
|
||||
'end' => $stream_end,
|
||||
'uri' => $uri,
|
||||
'type' => 'stream_output_end',
|
||||
'independent_event' => true
|
||||
);
|
||||
self::appendScheduleItem($data, $stream_end, $schedule_item);
|
||||
|
@ -942,7 +950,8 @@ SQL;
|
|||
* Another clean-up is to move all the form manipulation to the proper form class.....
|
||||
* -Martin
|
||||
*/
|
||||
public static function addUpdateShow($data, $controller, $validateStartDate, $originalStartDate=null, $update=false, $instanceId=null)
|
||||
public static function addUpdateShow($data, $controller, $validateStartDate,
|
||||
$originalStartDate=null, $update=false, $instanceId=null)
|
||||
{
|
||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||
$user = new Application_Model_User($userInfo->id);
|
||||
|
@ -1076,6 +1085,7 @@ SQL;
|
|||
}
|
||||
} else {
|
||||
if ($isAdminOrPM) {
|
||||
Logging::info( $data );
|
||||
Application_Model_Show::create($data);
|
||||
}
|
||||
|
||||
|
@ -1086,12 +1096,12 @@ SQL;
|
|||
return true;
|
||||
}
|
||||
} else {
|
||||
$controller->view->what = $formWhat;
|
||||
$controller->view->when = $formWhen;
|
||||
$controller->view->what = $formWhat;
|
||||
$controller->view->when = $formWhen;
|
||||
$controller->view->repeats = $formRepeats;
|
||||
$controller->view->who = $formWho;
|
||||
$controller->view->style = $formStyle;
|
||||
$controller->view->live = $formLive;
|
||||
$controller->view->who = $formWho;
|
||||
$controller->view->style = $formStyle;
|
||||
$controller->view->live = $formLive;
|
||||
|
||||
if (!$isSaas) {
|
||||
$controller->view->rr = $formRecord;
|
||||
|
@ -1104,47 +1114,52 @@ SQL;
|
|||
}
|
||||
}
|
||||
|
||||
public static function checkOverlappingShows($show_start, $show_end, $update=false, $instanceId=null)
|
||||
public static function checkOverlappingShows($show_start, $show_end,
|
||||
$update=false, $instanceId=null)
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
|
||||
$overlapping = false;
|
||||
|
||||
$con = Propel::getConnection();
|
||||
|
||||
/* If a show is being edited, exclude it from the query
|
||||
* In both cases (new and edit) we only grab shows that
|
||||
* are scheduled 2 days prior
|
||||
*/
|
||||
//$se = $show_end->format('Y-m-d H:i:s');
|
||||
if ($update) {
|
||||
$stmt = $con->prepare("SELECT id, starts, ends FROM {$CC_CONFIG['showInstances']}
|
||||
where (ends <= :show_end1
|
||||
or starts <= :show_end2)
|
||||
and date(starts) >= (date(:show_end3) - INTERVAL '2 days')
|
||||
and modified_instance = false and id != :instanceId order by ends");
|
||||
|
||||
$stmt->execute(array(
|
||||
':show_end1' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end2' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end3' => $show_end->format('Y-m-d H:i:s'),
|
||||
':instanceId' => $instanceId
|
||||
));
|
||||
$sql = <<<SQL
|
||||
SELECT id,
|
||||
starts,
|
||||
ends
|
||||
FROM cc_show_instances
|
||||
WHERE (ends <= :show_end1
|
||||
OR starts <= :show_end2)
|
||||
AND date(starts) >= (date(:show_end3) - INTERVAL '2 days')
|
||||
AND modified_instance = FALSE
|
||||
AND id != :instanceId
|
||||
ORDER BY ends
|
||||
SQL;
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql, array(
|
||||
':show_end1' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end2' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end3' => $show_end->format('Y-m-d H:i:s'),
|
||||
':instanceId' => $instanceId
|
||||
), 'all');
|
||||
} else {
|
||||
$stmt = $con->prepare("SELECT id, starts, ends FROM
|
||||
{$CC_CONFIG['showInstances']}
|
||||
where (ends <= :show_end1 or starts <= :show_end2)
|
||||
and date(starts) >= (date(:show_end3) - INTERVAL '2 days')
|
||||
and modified_instance = false order by ends");
|
||||
$sql = <<<SQL
|
||||
SELECT id,
|
||||
starts,
|
||||
ends
|
||||
FROM cc_show_instances
|
||||
WHERE (ends <= :show_end1
|
||||
OR starts <= :show_end2)
|
||||
AND date(starts) >= (date(:show_end3) - INTERVAL '2 days')
|
||||
AND modified_instance = FALSE
|
||||
ORDER BY ends
|
||||
SQL;
|
||||
|
||||
$stmt->execute(array(
|
||||
':show_end1' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end2' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end3' => $show_end->format('Y-m-d H:i:s')
|
||||
));
|
||||
$rows = Application_Common_Database::prepareAndExecute($sql, array(
|
||||
':show_end1' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end2' => $show_end->format('Y-m-d H:i:s'),
|
||||
':show_end3' => $show_end->format('Y-m-d H:i:s')), 'all');
|
||||
}
|
||||
$rows = $stmt->fetchAll();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$start = new DateTime($row["starts"], new DateTimeZone('UTC'));
|
||||
$end = new DateTime($row["ends"], new DateTimeZone('UTC'));
|
||||
|
|
|
@ -129,17 +129,21 @@ class Application_Model_Show
|
|||
{
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$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 = :show_id";
|
||||
$sql = <<<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 = :show_id
|
||||
SQL;
|
||||
|
||||
$hosts = Application_Common_Database::prepareAndExecute( $sql,
|
||||
array( ':show_id' => $this->getId() ), 'all');
|
||||
|
||||
$res = array_map( function($host) {
|
||||
return $host['first_name']." ".$host['last_name'];
|
||||
}, $hosts);
|
||||
|
||||
$res = array();
|
||||
foreach ($hosts as $host) {
|
||||
$res[] = $host['first_name']." ".$host['last_name'];
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
@ -147,9 +151,11 @@ class Application_Model_Show
|
|||
{
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$sql = "SELECT subjs_id
|
||||
FROM cc_show_hosts
|
||||
WHERE show_id = :show_id";
|
||||
$sql = <<<SQL
|
||||
SELECT subjs_id
|
||||
FROM cc_show_hosts
|
||||
WHERE show_id = :show_id
|
||||
SQL;
|
||||
|
||||
$hosts = Application_Common_Database::prepareAndExecute(
|
||||
$sql, array( ':show_id' => $this->getId() ), 'all');
|
||||
|
@ -281,11 +287,16 @@ SQL;
|
|||
->filterByDbShowId($this->_showId)
|
||||
->update(array('DbLastShow' => $timeinfo[0]));
|
||||
|
||||
$sql = "UPDATE cc_show_instances
|
||||
SET modified_instance = TRUE
|
||||
WHERE starts >= '{$day_timestamp}' AND show_id = {$this->_showId}";
|
||||
$sql = <<<SQL
|
||||
UPDATE cc_show_instances
|
||||
SET modified_instance = TRUE
|
||||
WHERE starts >= :dayTimestamp::TIMESTAMP
|
||||
AND show_id = :showId
|
||||
SQL;
|
||||
|
||||
$con->exec($sql);
|
||||
Application_Common_Database::prepareAndExecute( $sql, array(
|
||||
':dayTimestamp' => $day_timestamp,
|
||||
':showId' => $this->getId()), 'execute');
|
||||
|
||||
// check if we can safely delete the show
|
||||
$showInstancesRow = CcShowInstancesQuery::create()
|
||||
|
@ -294,7 +305,9 @@ SQL;
|
|||
->findOne();
|
||||
|
||||
if (is_null($showInstancesRow)) {
|
||||
$sql = "DELETE FROM cc_show WHERE id = :show_id";
|
||||
$sql = <<<SQL
|
||||
DELETE FROM cc_show WHERE id = :show_id
|
||||
SQL;
|
||||
Application_Common_Database::prepareAndExecute(
|
||||
$sql, array( 'show_id' => $this->_showId ), "execute");
|
||||
$con->exec($sql);
|
||||
|
@ -771,7 +784,7 @@ SQL;
|
|||
$sql = <<<SQL
|
||||
SELECT id
|
||||
FROM cc_show_instances
|
||||
WHERE show_id :showId
|
||||
WHERE show_id = :showId
|
||||
AND starts > :timestamp::TIMESTAMP
|
||||
AND modified_instance != TRUE
|
||||
SQL;
|
||||
|
@ -779,9 +792,11 @@ SQL;
|
|||
array( ':showId' => $this->getId(),
|
||||
':timestamp' => gmdate("Y-m-d H:i:s")), "all");
|
||||
|
||||
return array_map( function($i) {
|
||||
return $i['id'];
|
||||
}, $rows);
|
||||
$res = array();
|
||||
foreach ($rows as $r) {
|
||||
$res[] = $r['id'];
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/* Called when a show's duration is changed (edited).
|
||||
|
@ -879,9 +894,11 @@ SQL;
|
|||
{
|
||||
$showDays = CcShowDaysQuery::create()->filterByDbShowId(
|
||||
$this->getId())->find();
|
||||
return array_map( function($showDay) {
|
||||
return $showDay->getDbDay();
|
||||
}, $showDays);
|
||||
$res = array();
|
||||
foreach ($showDays as $showDay) {
|
||||
$res[] = $showDay->getDbDay();
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
/* Only used for shows that aren't repeating.
|
||||
|
@ -953,14 +970,14 @@ SQL;
|
|||
$sql = <<<SQL
|
||||
SELECT id
|
||||
FROM cc_show_instances
|
||||
WHERE date(starts) = date(TIMESTAMP :timestamp)
|
||||
WHERE date(starts) = date(:timestamp::TIMESTAMP)
|
||||
AND show_id = :showId
|
||||
AND rebroadcast = 0;
|
||||
SQL;
|
||||
try {
|
||||
$row = Application_Common_Database::prepareAndExecute( $sql,
|
||||
array( 'showId' => $this->getId(),
|
||||
':timestamp' => $timestamp ), 'column');
|
||||
array( ':showId' => $this->getId(),
|
||||
':timestamp' => $timestamp ), 'column');
|
||||
return CcShowInstancesQuery::create()
|
||||
->findPk($row);
|
||||
} catch (Exception $e) {
|
||||
|
|
|
@ -43,7 +43,7 @@ class Application_Model_StoredFile
|
|||
"bit_rate" => "DbBitRate",
|
||||
"sample_rate" => "DbSampleRate",
|
||||
"mime" => "DbMime",
|
||||
"md5" => "DbMd5",
|
||||
//"md5" => "DbMd5",
|
||||
"ftype" => "DbFtype",
|
||||
"language" => "DbLanguage",
|
||||
"replay_gain" => "DbReplayGain",
|
||||
|
@ -84,6 +84,12 @@ class Application_Model_StoredFile
|
|||
$this->_file->save();
|
||||
}
|
||||
|
||||
public static function createWithFile($f) {
|
||||
$storedFile = new Application_Model_StoredFile();
|
||||
$storedFile->_file = $f;
|
||||
return $storedFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set multiple metadata values using defined metadata constants.
|
||||
*
|
||||
|
@ -226,6 +232,7 @@ class Application_Model_StoredFile
|
|||
return;
|
||||
}
|
||||
if (isset($this->_dbMD[$p_category])) {
|
||||
// TODO : fix this crust -- RG
|
||||
$propelColumn = $this->_dbMD[$p_category];
|
||||
$method = "set$propelColumn";
|
||||
$this->_file->$method($p_value);
|
||||
|
@ -315,12 +322,13 @@ class Application_Model_StoredFile
|
|||
*/
|
||||
public function getPlaylists()
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$sql = "SELECT playlist_id "
|
||||
." FROM cc_playlist"
|
||||
." WHERE file_id = :file_id";
|
||||
$sql = <<<SQL
|
||||
SELECT playlist_id
|
||||
FROM cc_playlist
|
||||
WHERE file_id = :file_id
|
||||
SQL;
|
||||
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindParam(':file_id', $this->id, PDO::PARAM_INT);
|
||||
|
@ -332,14 +340,13 @@ class Application_Model_StoredFile
|
|||
throw new Exception("Error: $msg");
|
||||
}
|
||||
|
||||
$playlists = array();
|
||||
if (is_array($ids) && count($ids) > 0) {
|
||||
foreach ($ids as $id) {
|
||||
$playlists[] = Application_Model_Playlist::Recall($id);
|
||||
}
|
||||
return array_map( function ($id) {
|
||||
return Application_Model_Playlist::Recall($id);
|
||||
}, $ids);
|
||||
} else {
|
||||
return array();
|
||||
}
|
||||
|
||||
return $playlists;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -533,81 +540,29 @@ class Application_Model_StoredFile
|
|||
return $storedFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch instance of StoreFile object.<br>
|
||||
* Should be supplied with only ONE parameter, all the rest should
|
||||
* be NULL.
|
||||
*
|
||||
* @param int $p_id
|
||||
* local id
|
||||
* @param string $p_gunid - TODO: Remove this!
|
||||
* global unique id of file
|
||||
* @param string $p_md5sum
|
||||
* MD5 sum of the file
|
||||
* @param boolean $exist
|
||||
* When this is true, it check against only files with file_exist is 'true'
|
||||
* @return Application_Model_StoredFile|NULL
|
||||
* Return NULL if the object doesnt exist in the DB.
|
||||
*/
|
||||
public static function Recall($p_id=null, $p_gunid=null, $p_md5sum=null, $p_filepath=null, $exist=false)
|
||||
{
|
||||
if (isset($p_id)) {
|
||||
$file = CcFilesQuery::create()->findPK(intval($p_id));
|
||||
} elseif (isset($p_md5sum)) {
|
||||
if ($exist) {
|
||||
$file = CcFilesQuery::create()
|
||||
->filterByDbMd5($p_md5sum)
|
||||
->filterByDbFileExists(true)
|
||||
->findOne();
|
||||
} else {
|
||||
$file = CcFilesQuery::create()
|
||||
->filterByDbMd5($p_md5sum)
|
||||
->findOne();
|
||||
}
|
||||
} elseif (isset($p_filepath)) {
|
||||
$path_info = Application_Model_MusicDir::splitFilePath($p_filepath);
|
||||
|
||||
if (is_null($path_info)) {
|
||||
return null;
|
||||
}
|
||||
$music_dir = Application_Model_MusicDir::getDirByPath($path_info[0]);
|
||||
|
||||
$file = CcFilesQuery::create()
|
||||
->filterByDbDirectory($music_dir->getId())
|
||||
->filterByDbFilepath($path_info[1])
|
||||
->findOne();
|
||||
public static function Recall($p_id=null, $p_gunid=null, $p_md5sum=null,
|
||||
$p_filepath=null) {
|
||||
if( isset($p_id ) ) {
|
||||
$f = CcFilesQuery::create()->findPK(intval($p_id));
|
||||
return is_null($f) ? null : self::createWithFile($f);
|
||||
} elseif ( isset($p_gunid) ) {
|
||||
throw new Exception("You should never use gunid ($gunid) anymore");
|
||||
} elseif ( isset($p_md5sum) ) {
|
||||
throw new Exception("Searching by md5($p_md5sum) is disabled");
|
||||
} elseif ( isset($p_filepath) ) {
|
||||
return is_null($f) ? null : self::createWithFile(
|
||||
Application_Model_StoredFile::RecallByFilepath($p_filepath));
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (isset($file)) {
|
||||
$storedFile = new Application_Model_StoredFile();
|
||||
$storedFile->_file = $file;
|
||||
|
||||
return $storedFile;
|
||||
} else {
|
||||
return null;
|
||||
throw new Exception("No arguments passsed to Recall");
|
||||
}
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
$info = pathinfo($this->getFilePath());
|
||||
|
||||
return $info['filename'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the Application_Model_StoredFile by looking up the MD5 value.
|
||||
*
|
||||
* @param string $p_md5sum
|
||||
* @return Application_Model_StoredFile|NULL
|
||||
*/
|
||||
public static function RecallByMd5($p_md5sum, $exist=false)
|
||||
{
|
||||
return Application_Model_StoredFile::Recall(null, null, $p_md5sum, null, $exist);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the Application_Model_StoredFile by looking up its filepath.
|
||||
*
|
||||
|
@ -616,7 +571,18 @@ class Application_Model_StoredFile
|
|||
*/
|
||||
public static function RecallByFilepath($p_filepath)
|
||||
{
|
||||
return Application_Model_StoredFile::Recall(null, null, null, $p_filepath);
|
||||
$path_info = Application_Model_MusicDir::splitFilePath($p_filepath);
|
||||
|
||||
if (is_null($path_info)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$music_dir = Application_Model_MusicDir::getDirByPath($path_info[0]);
|
||||
$file = CcFilesQuery::create()
|
||||
->filterByDbDirectory($music_dir->getId())
|
||||
->filterByDbFilepath($path_info[1])
|
||||
->findOne();
|
||||
return is_null($file) ? null : self::createWithFile($file);
|
||||
}
|
||||
|
||||
public static function RecallByPartialFilepath($partial_path)
|
||||
|
@ -649,7 +615,7 @@ class Application_Model_StoredFile
|
|||
$displayColumns = array("id", "track_title", "artist_name", "album_title", "genre", "length",
|
||||
"year", "utime", "mtime", "ftype", "track_number", "mood", "bpm", "composer", "info_url",
|
||||
"bit_rate", "sample_rate", "isrc_number", "encoded_by", "label", "copyright", "mime",
|
||||
"language", "filepath", "owner", "conductor", "replay_gain", "lptime"
|
||||
"language", "filepath", "owner_id", "conductor", "replay_gain", "lptime"
|
||||
);
|
||||
|
||||
//Logging::info($datatables);
|
||||
|
@ -680,7 +646,7 @@ class Application_Model_StoredFile
|
|||
$blSelect[] = "login AS ".$key;
|
||||
$fileSelect[] = $key;
|
||||
$streamSelect[] = "login AS ".$key;
|
||||
} elseif ($key === "owner") {
|
||||
} elseif ($key === "owner_id") {
|
||||
$plSelect[] = "login AS ".$key;
|
||||
$blSelect[] = "login AS ".$key;
|
||||
$fileSelect[] = "sub.login AS $key";
|
||||
|
@ -1024,11 +990,8 @@ class Application_Model_StoredFile
|
|||
|
||||
public static function getFileCount()
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$sql = "SELECT count(*) as cnt FROM cc_files WHERE file_exists";
|
||||
|
||||
return $con->query($sql)->fetchColumn(0);
|
||||
}
|
||||
|
||||
|
@ -1101,10 +1064,14 @@ class Application_Model_StoredFile
|
|||
try {
|
||||
$con = Propel::getConnection();
|
||||
|
||||
$sql = "SELECT soundcloud_id as id, soundcloud_upload_time"
|
||||
." FROM CC_FILES"
|
||||
." WHERE (id != -2 and id != -3) and"
|
||||
." (soundcloud_upload_time >= (now() - (INTERVAL '1 day')))";
|
||||
$sql = <<<SQL
|
||||
SELECT soundcloud_id AS id,
|
||||
soundcloud_upload_time
|
||||
FROM CC_FILES
|
||||
WHERE (id != -2
|
||||
AND id != -3)
|
||||
AND (soundcloud_upload_time >= (now() - (INTERVAL '1 day')))
|
||||
SQL;
|
||||
|
||||
$rows = $con->query($sql)->fetchAll();
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable
|
|||
$di = new DateInterval("PT{$hours}H{$min}M{$sec}S");
|
||||
|
||||
return $di->format("%Hh %Im");
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue