Merge branch '2.1.x' of dev.sourcefabric.org:airtime into 2.1.x
This commit is contained in:
commit
6d056daa2f
7
CREDITS
7
CREDITS
|
@ -1,3 +1,10 @@
|
|||
=======
|
||||
CREDITS
|
||||
=======
|
||||
Version 2.1.3
|
||||
-------------
|
||||
Same as previous version.
|
||||
|
||||
=======
|
||||
CREDITS
|
||||
=======
|
||||
|
|
12
changelog
12
changelog
|
@ -1,3 +1,15 @@
|
|||
2.1.3 - July 4th, 2012
|
||||
* Changes
|
||||
* Clarify inputs and output labels under stream settings
|
||||
* Bug Fixes
|
||||
* Fix playout engine crashing in rare cases after the system is restarted
|
||||
* Fix entries in the Calendar unable to have multiple icons (recorded icon, soundcloud icon etc.)
|
||||
* Fixed unwatching a watched folder with a large number of files (50,000+) can take a long time
|
||||
* Fixed files deleted in the Web UI would delete files from the disk in watched folders
|
||||
* Fixed jQuery widgets not showing the incorrectly showing the past Sunday on Sunday
|
||||
* Fixed dragging and dropping tracks into a live show could cause to web UI to become unsynchronized from what is actually playing
|
||||
* Fixed unable to receive mono streams for Master or Show source rebroadcasts
|
||||
|
||||
2.1.2 - June 18th, 2012
|
||||
* Bug Fixes
|
||||
* Fixed problem where playout engine may not retrieve program schedule after extended periods of user inactivity.
|
||||
|
|
|
@ -152,10 +152,6 @@ fi
|
|||
if [ -e /etc/init.d/airtime-playout ]; then
|
||||
invoke-rc.d airtime-playout stop > /dev/null 2>&1
|
||||
fi
|
||||
if [ -e /etc/init.d/airtime-show-recorder ]; then
|
||||
invoke-rc.d airtime-show-recorder stop > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
|
||||
#export these variables to make them available in sub bash scripts
|
||||
export DO_UPGRADE
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<?php
|
||||
|
||||
define('AIRTIME_VERSION', '2.1.2');
|
||||
define('AIRTIME_VERSION', '2.1.3');
|
||||
|
|
|
@ -112,5 +112,9 @@ if (strcmp($version, "2.1.2") < 0){
|
|||
passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-2.1.2/airtime-upgrade.php");
|
||||
pause();
|
||||
}
|
||||
if (strcmp($version, "2.1.3") < 0){
|
||||
passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-2.1.3/airtime-upgrade.php");
|
||||
pause();
|
||||
}
|
||||
|
||||
echo "******************************* Upgrade Complete *******************************".PHP_EOL;
|
||||
|
|
|
@ -20,7 +20,7 @@ from configobj import ConfigObj
|
|||
import string
|
||||
import hashlib
|
||||
|
||||
AIRTIME_VERSION = "2.1.2"
|
||||
AIRTIME_VERSION = "2.1.3"
|
||||
|
||||
def api_client_factory(config, logger=None):
|
||||
if logger != None:
|
||||
|
|
|
@ -89,10 +89,10 @@ class MediaMonitorCommon:
|
|||
def make_file_readable(self, pathname, is_dir):
|
||||
if is_dir:
|
||||
#set to 755
|
||||
os.chmod(pathname, stat.S_IRUSR|stat.S_IWUSR|stat.S_IXUSR | stat.S_IRGRP|stat.S_IXGRP | stat.S_IROTH|stat.S_IXOTH)
|
||||
os.chmod(pathname, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
|
||||
else:
|
||||
#set to 644
|
||||
os.chmod(pathname, stat.S_IRUSR|stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH)
|
||||
os.chmod(pathname, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH)
|
||||
|
||||
def make_readable(self, pathname):
|
||||
"""
|
||||
|
@ -195,7 +195,7 @@ class MediaMonitorCommon:
|
|||
self.logger.error("Trying %s", new_filepath)
|
||||
|
||||
if(os.path.exists(new_filepath)):
|
||||
i = i+1;
|
||||
i = i + 1;
|
||||
else:
|
||||
filepath = new_filepath
|
||||
break
|
||||
|
@ -231,7 +231,7 @@ class MediaMonitorCommon:
|
|||
md['MDATA_KEY_TRACKNUMBER'] = "%02d" % (int(md['MDATA_KEY_TRACKNUMBER']))
|
||||
|
||||
#format bitrate as 128kbps
|
||||
md['MDATA_KEY_BITRATE'] = str(md['MDATA_KEY_BITRATE']/1000)+"kbps"
|
||||
md['MDATA_KEY_BITRATE'] = str(md['MDATA_KEY_BITRATE'] / 1000) + "kbps"
|
||||
|
||||
filepath = None
|
||||
#file is recorded by Airtime
|
||||
|
|
|
@ -429,7 +429,7 @@ class PypoFetch(Thread):
|
|||
fileExt = os.path.splitext(media_item['uri'])[1]
|
||||
dst = os.path.join(download_dir, media_item['id'] + fileExt)
|
||||
media_item['dst'] = dst
|
||||
media_item['started_copying'] = False
|
||||
media_item['file_ready'] = False
|
||||
media_filtered[key] = media_item
|
||||
|
||||
self.media_prepare_queue.put(copy.copy(media_filtered))
|
||||
|
|
|
@ -60,22 +60,28 @@ class PypoFile(Thread):
|
|||
except Exception, e:
|
||||
dst_exists = False
|
||||
|
||||
media_item['already_exist'] = False
|
||||
do_copy = False
|
||||
if dst_exists:
|
||||
if src_size != dst_size:
|
||||
do_copy = True
|
||||
else:
|
||||
self.logger.debug("file %s already exists in local cache as %s, skipping cpoying..." % (src, dst))
|
||||
media_item['already_exist'] = True
|
||||
self.logger.debug("file %s already exists in local cache as %s, skipping copying..." % (src, dst))
|
||||
else:
|
||||
do_copy = True
|
||||
|
||||
media_item['file_ready'] = not do_copy
|
||||
|
||||
if do_copy:
|
||||
self.logger.debug("copying from %s to local cache %s" % (src, dst))
|
||||
try:
|
||||
|
||||
media_item['started_copying'] = True
|
||||
"""
|
||||
List file as "ready" before it starts copying because by the time
|
||||
Liquidsoap is ready to play this file, it should have at least started
|
||||
copying (and can continue copying while Liquidsoap reads from the beginning
|
||||
of the file)
|
||||
"""
|
||||
media_item['file_ready'] = True
|
||||
|
||||
"""
|
||||
copy will overwrite dst if it already exists
|
||||
|
|
|
@ -340,11 +340,11 @@ class PypoPush(Thread):
|
|||
give up on it.
|
||||
"""
|
||||
iter_num = 0
|
||||
while not media_item['started_copying'] and iter_num < 50:
|
||||
while not media_item['file_ready'] and iter_num < 50:
|
||||
time.sleep(0.1)
|
||||
iter_num += 1
|
||||
|
||||
if media_item['started_copying'] or media_item['already_exist']:
|
||||
if media_item['file_ready']:
|
||||
self.telnet_to_liquidsoap(media_item)
|
||||
else:
|
||||
self.logger.warn("File %s did not become ready in less than 5 seconds. Skipping...", media_item['dst'])
|
||||
|
|
Loading…
Reference in New Issue