diff --git a/airtime_mvc/application/controllers/UpgradeController.php b/airtime_mvc/application/controllers/UpgradeController.php index 4a745b657..3e92ed2b2 100644 --- a/airtime_mvc/application/controllers/UpgradeController.php +++ b/airtime_mvc/application/controllers/UpgradeController.php @@ -18,7 +18,7 @@ class UpgradeController extends Zend_Controller_Action } //Begin upgrade - $filename = "/etc/airtime/airtime.conf"; + $filename = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf"; $values = parse_ini_file($filename, true); $username = $values['database']['dbuser']; diff --git a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py index 1e29830d6..71462c45d 100644 --- a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py +++ b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py @@ -49,9 +49,6 @@ class MetadataAnalyzer(Analyzer): mime_magic = magic.Magic(mime=True) metadata["mime"] = mime_magic.from_file(filename) - if isinstance(info, mutagen.mp3.MPEGInfo): - print "mode is: " + str(info.mode) - #Try to get the number of channels if mutagen can... try: #Special handling for getting the # of channels from MP3s. It's in the "mode" field diff --git a/python_apps/airtime_analyzer/install/upstart/airtime_analyzer.conf b/python_apps/airtime_analyzer/install/upstart/airtime_analyzer.conf index 03bba725c..6fccc21c9 100644 --- a/python_apps/airtime_analyzer/install/upstart/airtime_analyzer.conf +++ b/python_apps/airtime_analyzer/install/upstart/airtime_analyzer.conf @@ -6,5 +6,8 @@ stop on runlevel [!2345] respawn +env LANG='en_US.UTF-8' +env LC_ALL='en_US.UTF-8' + exec su www-data -c "airtime_analyzer" diff --git a/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py b/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py index ba7b6f202..cafa07b47 100644 --- a/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py +++ b/python_apps/airtime_analyzer/tests/analyzer_pipeline_tests.py @@ -22,15 +22,15 @@ def test_basic(): q = multiprocessing.Queue() #This actually imports the file into the "./Test Artist" directory. AnalyzerPipeline.run_analysis(q, DEFAULT_AUDIO_FILE, u'.', filename) - results = q.get() - assert results['track_title'] == u'Test Title' - assert results['artist_name'] == u'Test Artist' - assert results['album_title'] == u'Test Album' - assert results['year'] == u'1999' - assert results['genre'] == u'Test Genre' - assert results['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't. - assert results['length_seconds'] == 3.90925 - assert results["length"] == str(datetime.timedelta(seconds=results["length_seconds"])) + metadata = q.get() + assert metadata['track_title'] == u'Test Title' + assert metadata['artist_name'] == u'Test Artist' + assert metadata['album_title'] == u'Test Album' + assert metadata['year'] == u'1999' + assert metadata['genre'] == u'Test Genre' + assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't. + assert abs(metadata['length_seconds'] - 3.9) < 0.1 + assert metadata["length"] == str(datetime.timedelta(seconds=metadata["length_seconds"])) assert os.path.exists(DEFAULT_IMPORT_DEST) @raises(TypeError) diff --git a/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py b/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py index 8baad0c54..6e59ae15a 100644 --- a/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py +++ b/python_apps/airtime_analyzer/tests/metadata_analyzer_tests.py @@ -25,7 +25,7 @@ def test_mp3_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 64000 - assert metadata['length_seconds'] == 3.90925 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't. assert metadata['track_total'] == u'10' # MP3s can have a track_total #Mutagen doesn't extract comments from mp3s it seems @@ -35,7 +35,7 @@ def test_mp3_jointstereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -44,7 +44,7 @@ def test_mp3_simplestereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -53,7 +53,7 @@ def test_mp3_dualmono(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -63,7 +63,7 @@ def test_ogg_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 80000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'application/ogg' assert metadata['comment'] == u'Test Comment' @@ -72,7 +72,7 @@ def test_ogg_stereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 112000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'application/ogg' assert metadata['comment'] == u'Test Comment' @@ -84,7 +84,7 @@ def test_aac_mono(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 80000 - assert metadata['length_seconds'] == 3.8394104308390022 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'video/mp4' assert metadata['comment'] == u'Test Comment' ''' @@ -94,7 +94,7 @@ def test_aac_stereo(): check_default_metadata(metadata) assert metadata['channels'] == 2 assert metadata['bit_rate'] == 102619 - assert metadata['length_seconds'] == 3.8626303854875284 + assert abs(metadata['length_seconds'] - 3.8) < 0.1 assert metadata['mime'] == 'video/mp4' assert metadata['comment'] == u'Test Comment' @@ -110,7 +110,7 @@ def test_mp3_utf8(): assert metadata['track_number'] == u'1' assert metadata['channels'] == 2 assert metadata['bit_rate'] == 128000 - assert metadata['length_seconds'] == 3.90075 + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' assert metadata['track_total'] == u'10' # MP3s can have a track_total @@ -143,7 +143,11 @@ def test_mp3_bad_channels(): check_default_metadata(metadata) assert metadata['channels'] == 1 assert metadata['bit_rate'] == 64000 - assert metadata['length_seconds'] == 3.90925 + print metadata['length_seconds'] + assert abs(metadata['length_seconds'] - 3.9) < 0.1 assert metadata['mime'] == 'audio/mpeg' # Not unicode because MIMEs aren't. assert metadata['track_total'] == u'10' # MP3s can have a track_total #Mutagen doesn't extract comments from mp3s it seems + +def test_unparsable_file(): + MetadataAnalyzer.analyze(u'README.rst', dict())