Code cleanup

This commit is contained in:
drigato 2014-11-12 14:42:34 -05:00
parent 5cf5ff4fa1
commit c132cac43d
5 changed files with 35 additions and 22 deletions

View File

@ -85,7 +85,7 @@ class ApiController extends Zend_Controller_Action
// Make sure we don't have some wrong result beecause of caching
clearstatcache();
if ($media->getPropelOrm()->isValidFile()) {
if ($media->getPropelOrm()->isValidPhysicalFile()) {
$filename = $media->getPropelOrm()->getFilename();
//Download user left clicks a track and selects Download.
@ -168,15 +168,9 @@ class ApiController extends Zend_Controller_Action
//http://www.php.net/manual/en/function.ob-end-flush.php
while (@ob_end_flush());
/*$cur = $begin;
fseek($fm, $begin, 0);
while (!feof($fm) && $cur <= $end && (connection_status() == 0)) {
echo fread($fm, min(1024 * 16, ($end - $cur) + 1));
$cur += 1024 * 16;
}*/
while(!feof($fm)) {
// NOTE: We can't use fseek here because it does not work with streams
// (a.k.a. Files stored on Amazon S3)
while(!feof($fm) && (connection_status() == 0)) {
echo fread($fm, 1024 * 8);
}
}

View File

@ -761,7 +761,19 @@ SQL;
}
}
private static function createFileScheduleEvent(&$data, $item, $media_id, $uri, $object_name=null)
/**
*
* Appends schedule "events" to an array of schedule events that gets
* sent to PYPO. Each schedule event contains information PYPO and
* Liquidsoap need for playout.
*
* @param Array $data array to be filled with schedule info - $item(s)
* @param Array $item schedule info about one track
* @param Integer $media_id scheduled item's cc_files id
* @param String $uri path to the scheduled item's physical location
* @param String $amazonS3ResourceId scheduled item's Amazon S3 resource id, if applicable
*/
private static function createFileScheduleEvent(&$data, $item, $media_id, $uri, $amazonS3ResourceId)
{
$start = self::AirtimeTimeToPypoTime($item["start"]);
$end = self::AirtimeTimeToPypoTime($item["end"]);
@ -797,8 +809,8 @@ SQL;
'replay_gain' => $replay_gain,
'independent_event' => $independent_event
);
if (!is_null($object_name)) {
$schedule_item["object_name"] = $object_name;
if (!is_null($amazonS3ResourceId)) {
$schedule_item["amazonS3_resource_id"] = $amazonS3ResourceId;
}
if ($schedule_item['cue_in'] > $schedule_item['cue_out']) {
@ -934,11 +946,8 @@ SQL;
$file = $storedFile->getPropelOrm();
$uri = $file->getAbsoluteFilePath();
$object_name = null;
if ($file instanceof CloudFile) {
$object_name = $storedFile->getResourceId();
}
self::createFileScheduleEvent($data, $item, $media_id, $uri, $object_name);
$amazonS3ResourceId = $file->getResourceId();
self::createFileScheduleEvent($data, $item, $media_id, $uri, $amazonS3ResourceId);
}
elseif (!is_null($item['stream_id'])) {
//row is type "webstream"

View File

@ -111,7 +111,7 @@ class CcFiles extends BaseCcFiles {
/**
* Checks if the file is a regular file that can be previewed and downloaded.
*/
public function isValidFile()
public function isValidPhysicalFile()
{
return is_file($this->getAbsoluteFilePath());
}
@ -130,4 +130,14 @@ class CcFiles extends BaseCcFiles {
}
}
/**
*
* This function refers to the file's Amazon S3 resource id.
* Returns null because cc_files are stored on local disk.
*/
public function getResourceId()
{
return null;
}
} // CcFiles

View File

@ -93,7 +93,7 @@ class CloudFile extends BaseCloudFile
/**
* Checks if the file is a regular file that can be previewed and downloaded.
*/
public function isValidFile()
public function isValidPhysicalFile()
{
$ch = curl_init();
curl_setopt_array($ch, array(

View File

@ -136,9 +136,9 @@ class PypoFile(Thread):
"""
If an object_name exists the file is stored on Amazon S3
"""
if 'object_name' in media_item:
if 'amazonS3_resource_id' in media_item:
csd = CloudStorageDownloader()
csd.download_obj(media_item['dst'], media_item['object_name'])
csd.download_obj(media_item['dst'], media_item['amazonS3_resource_id'])
media_item['file_ready'] = True
else:
self.copy_file(media_item)