cc-2263: unable to cancel recording show

-made cancelled recorded shows still upload.
This commit is contained in:
martin 2011-05-18 14:33:11 -04:00
parent 62806fa7ef
commit 3416ba20d9
4 changed files with 57 additions and 53 deletions

View File

@ -64,7 +64,7 @@ class ApiController extends Zend_Controller_Action
$api_key = $this->_getParam('api_key'); $api_key = $this->_getParam('api_key');
$downlaod = $this->_getParam('download'); $downlaod = $this->_getParam('download');
if(!in_array($api_key, $CC_CONFIG["apiKey"])) if(!in_array($api_key, $CC_CONFIG["apiKey"]))
{ {
header('HTTP/1.0 401 Unauthorized'); header('HTTP/1.0 401 Unauthorized');
@ -263,10 +263,10 @@ class ApiController extends Zend_Controller_Action
$end_timestamp = $now->add(new DateInterval("PT2H")); $end_timestamp = $now->add(new DateInterval("PT2H"));
$end_timestamp = $end_timestamp->format("Y-m-d H:i:s"); $end_timestamp = $end_timestamp->format("Y-m-d H:i:s");
$this->view->shows = Show::getShows($today_timestamp, $end_timestamp, $excludeInstance=NULL, $onlyRecord=TRUE); $this->view->shows = Show::getShows($today_timestamp, $end_timestamp, $excludeInstance=NULL, $onlyRecord=TRUE);
$this->view->is_recording = false; $this->view->is_recording = false;
$rows = Show_DAL::GetCurrentShow($today_timestamp); $rows = Show_DAL::GetCurrentShow($today_timestamp);
if (count($rows) > 0){ if (count($rows) > 0){
$this->view->is_recording = ($rows[0]['record'] == 1); $this->view->is_recording = ($rows[0]['record'] == 1);
@ -289,38 +289,47 @@ class ApiController extends Zend_Controller_Action
$file = StoredFile::uploadFile($upload_dir); $file = StoredFile::uploadFile($upload_dir);
$show_instance = $this->_getParam('show_instance'); $show_instance = $this->_getParam('show_instance');
$show_inst = new ShowInstance($show_instance);
$show_inst->setRecordedFile($file->getId()); try {
$show_name = $show_inst->getName(); $show_inst = new ShowInstance($show_instance);
$show_genre = $show_inst->getGenre();
$show_start_time = $show_inst->getShowStart();
if(Application_Model_Preference::GetDoSoundCloudUpload()) $show_inst->setRecordedFile($file->getId());
{ $show_name = $show_inst->getName();
for($i=0; $i<$CC_CONFIG['soundcloud-connection-retries']; $i++) { $show_genre = $show_inst->getGenre();
$show_start_time = $show_inst->getShowStart();
$show = new Show($show_inst->getShowId()); if(Application_Model_Preference::GetDoSoundCloudUpload())
$description = $show->getDescription(); {
$hosts = $show->getHosts(); for($i=0; $i<$CC_CONFIG['soundcloud-connection-retries']; $i++) {
$tags = array_merge($hosts, array($show_name)); $show = new Show($show_inst->getShowId());
$description = $show->getDescription();
$hosts = $show->getHosts();
try { $tags = array_merge($hosts, array($show_name));
$soundcloud = new ATSoundcloud();
$soundcloud_id = $soundcloud->uploadTrack($file->getRealFilePath(), $file->getName(), $description, $tags, $show_start_time, $show_genre); try {
$show_inst->setSoundCloudFileId($soundcloud_id); $soundcloud = new ATSoundcloud();
break; $soundcloud_id = $soundcloud->uploadTrack($file->getRealFilePath(), $file->getName(), $description, $tags, $show_start_time, $show_genre);
} $show_inst->setSoundCloudFileId($soundcloud_id);
catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
$code = $e->getHttpCode();
if(!in_array($code, array(0, 100))) {
break; break;
} }
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
$code = $e->getHttpCode();
if(!in_array($code, array(0, 100))) {
break;
}
}
sleep($CC_CONFIG['soundcloud-connection-wait']); sleep($CC_CONFIG['soundcloud-connection-wait']);
}
} }
} catch (Exception $e){
//we've reached here probably because the show was
//cancelled, and therefore the show instance does not
//exist anymore (ShowInstance constructor threw this error).
//We've done all we can do (upload the file and put it in
//the library), now lets just return.
} }
$this->view->id = $file->getId(); $this->view->id = $file->getId();

View File

@ -1173,16 +1173,21 @@ class Show {
class ShowInstance { class ShowInstance {
private $_instanceId; private $_instanceId;
private $_showInstance;
public function __construct($instanceId) public function __construct($instanceId)
{ {
$this->_instanceId = $instanceId; $this->_instanceId = $instanceId;
$this->_showInstance = CcShowInstancesQuery::create()->findPK($instanceId);
if (is_null($this->_showInstance)){
throw new Exception();
}
} }
public function getShowId() public function getShowId()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbShowId();
return $showInstance->getDbShowId();
} }
public function getShowInstanceId() public function getShowInstanceId()
@ -1192,14 +1197,12 @@ class ShowInstance {
public function isRebroadcast() public function isRebroadcast()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbOriginalShow();
return $showInstance->getDbOriginalShow();
} }
public function isRecorded() public function isRecorded()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbRecord();
return $showInstance->getDbRecord();
} }
public function getName() public function getName()
@ -1216,14 +1219,12 @@ class ShowInstance {
public function getShowStart() public function getShowStart()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbStarts();
return $showInstance->getDbStarts();
} }
public function getShowEnd() public function getShowEnd()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbEnds();
return $showInstance->getDbEnds();
} }
public function getStartDate() public function getStartDate()
@ -1243,21 +1244,18 @@ class ShowInstance {
public function setSoundCloudFileId($p_soundcloud_id) public function setSoundCloudFileId($p_soundcloud_id)
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $this->_showInstance->setDbSoundCloudId($p_soundcloud_id)
$showInstance->setDbSoundCloudId($p_soundcloud_id)
->save(); ->save();
} }
public function getSoundCloudFileId() public function getSoundCloudFileId()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); return $this->_showInstance->getDbSoundCloudId();
return $showInstance->getDbSoundCloudId();
} }
public function getRecordedFile() public function getRecordedFile()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $file_id = $this->_showInstance->getDbRecordedFile();
$file_id = $showInstance->getDbRecordedFile();
if(isset($file_id)) { if(isset($file_id)) {
$file = StoredFile::Recall($file_id); $file = StoredFile::Recall($file_id);
@ -1276,16 +1274,14 @@ class ShowInstance {
public function setShowStart($start) public function setShowStart($start)
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $this->_showInstance->setDbStarts($start)
$showInstance->setDbStarts($start)
->save(); ->save();
RabbitMq::PushSchedule(); RabbitMq::PushSchedule();
} }
public function setShowEnd($end) public function setShowEnd($end)
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $this->_showInstance->setDbEnds($end)
$showInstance->setDbEnds($end)
->save(); ->save();
RabbitMq::PushSchedule(); RabbitMq::PushSchedule();
} }
@ -1293,8 +1289,7 @@ class ShowInstance {
public function updateScheduledTime() public function updateScheduledTime()
{ {
$con = Propel::getConnection(CcShowInstancesPeer::DATABASE_NAME); $con = Propel::getConnection(CcShowInstancesPeer::DATABASE_NAME);
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $this->_showInstance->updateDbTimeFilled($con);
$showInstance->updateDbTimeFilled($con);
} }
public function correctScheduleStartTimes(){ public function correctScheduleStartTimes(){
@ -1539,8 +1534,7 @@ class ShowInstance {
public function getTimeScheduled() public function getTimeScheduled()
{ {
$showInstance = CcShowInstancesQuery::create()->findPK($this->_instanceId); $time = $this->_showInstance->getDbTimeFilled();
$time = $showInstance->getDbTimeFilled();
if(is_null($time)) { if(is_null($time)) {
$time = "00:00:00"; $time = "00:00:00";

View File

@ -188,7 +188,7 @@ class AirtimeInstall
echo "* Creating database tables".PHP_EOL; echo "* Creating database tables".PHP_EOL;
// Put Propel sql files in Database // Put Propel sql files in Database
$command = AirtimeInstall::CONF_DIR_WWW."/library/propel/generator/bin/propel-gen ".AirtimeInstall::CONF_DIR_WWW."/build/ insert-sql 2>propel-error.log"; $command = AirtimeInstall::CONF_DIR_WWW."/library/propel/generator/bin/propel-gen ".AirtimeInstall::CONF_DIR_WWW."/build/ insert-sql";
@exec($command, $output, $results); @exec($command, $output, $results);
} }

View File

@ -73,7 +73,7 @@ class ShowRecorder(Thread):
self.p = Popen(args) self.p = Popen(args)
#blocks at the following lines until the child process #blocks at the following line until the child process
#quits #quits
code = self.p.wait() code = self.p.wait()
self.p = None self.p = None
@ -109,6 +109,7 @@ class ShowRecorder(Thread):
code, filepath = self.record_show() code, filepath = self.record_show()
if code == 0: if code == 0:
self.logger.info("Preparing to upload %s" % filepath)
self.upload_file(filepath) self.upload_file(filepath)
else: else:
self.logger.info("problem recording show") self.logger.info("problem recording show")