Merge branch 'master' of dev.sourcefabric.org:airtime

This commit is contained in:
denise 2013-05-08 15:09:10 -04:00
commit 8344f3f3d5
4 changed files with 45 additions and 12 deletions

View File

@ -488,7 +488,7 @@ SQL;
}
foreach ($p_items as $ac) {
Logging::info("Adding audio file {$ac[0]}");
//Logging::info("Adding audio file {$ac[0]}");
try {
if (is_array($ac) && $ac[1] == 'audioclip') {
$res = $this->insertBlockElement($this->buildEntry($ac[0], $pos));
@ -658,7 +658,7 @@ SQL;
public function getFadeInfo($pos)
{
Logging::info("Getting fade info for pos {$pos}");
//Logging::info("Getting fade info for pos {$pos}");
$row = CcBlockcontentsQuery::create()
->joinWith(CcFilesPeer::OM_CLASS)
@ -1275,8 +1275,10 @@ SQL;
$isBlockFull = false;
while ($iterator->valid()) {
$id = $iterator->current()->getDbId();
$length = Application_Common_DateHelper::calculateLengthInSeconds($iterator->current()->getDbLength());
$fileLength = $iterator->current()->getCueLength();
$length = Application_Common_DateHelper::calculateLengthInSeconds($fileLength);
$insertList[] = array('id'=>$id, 'length'=>$length);
$totalTime += $length;
$totalItems++;
@ -1291,8 +1293,11 @@ SQL;
$sizeOfInsert = count($insertList);
// if block is not full and reapeat_track is check, fill up more
// if block is not full and repeat_track is check, fill up more
while (!$isBlockFull && $repeat == 1 && $sizeOfInsert > 0) {
Logging::debug("adding repeated tracks.");
Logging::debug("total time = " . $totalTime);
$randomEleKey = array_rand(array_slice($insertList, 0, $sizeOfInsert));
$insertList[] = $insertList[$randomEleKey];
$totalTime += $insertList[$randomEleKey]['length'];

View File

@ -13,6 +13,20 @@
*/
class CcFiles extends BaseCcFiles {
public function getCueLength()
{
$cuein = $this->getDbCuein();
$cueout = $this->getDbCueout();
$cueinSec = Application_Common_DateHelper::calculateLengthInSeconds($cuein);
$cueoutSec = Application_Common_DateHelper::calculateLengthInSeconds($cueout);
$lengthSec = bcsub($cueoutSec, $cueinSec, 6);
$length = Application_Common_DateHelper::secondsToPlaylistTime($lengthSec);
return $length;
}
public function getDbLength($format = "H:i:s.u")
{
return parent::getDbLength($format);

View File

@ -10,7 +10,11 @@ ls_param="/usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq"
export PYTHONPATH=${api_client_path}
cd /usr/lib/airtime/pypo/bin/liquidsoap_scripts
SCRIPT=`readlink -f $0`
# Absolute directory this script is in
SCRIPTPATH=`dirname $SCRIPT`
cd $SCRIPTPATH/liquidsoap_scripts
python generate_liquidsoap_cfg.py
exec ${ls_path} ${ls_param} 2>&1

View File

@ -1,5 +1,6 @@
import logging
import sys
import time
from api_clients.api_client import AirtimeApiClient
def generate_liquidsoap_config(ss):
@ -26,10 +27,19 @@ def generate_liquidsoap_config(ss):
logging.basicConfig(format='%(message)s')
ac = AirtimeApiClient(logging.getLogger())
try:
ss = ac.get_stream_setting()
generate_liquidsoap_config(ss)
except Exception, e:
logging.error(str(e))
print "Unable to connect to the Airtime server."
sys.exit(1)
attempts = 0
max_attempts = 5
while True:
try:
ss = ac.get_stream_setting()
generate_liquidsoap_config(ss)
break
except Exception, e:
if attempts == max_attempts:
print "Unable to connect to the Airtime server."
logging.error(str(e))
sys.exit(1)
else:
time.sleep(3)
attempts += 1