From ae4c9203e66b3985070cfc3f1664d67877210180 Mon Sep 17 00:00:00 2001 From: Lucas Bickel Date: Fri, 17 Mar 2017 02:10:04 +0100 Subject: [PATCH] Refactor override preference Properly defaults the preference to be true and always return a boolean value since that is what celery will be expecting. --- .../application/forms/GeneralPreferences.php | 4 --- airtime_mvc/application/models/Preference.php | 7 ++--- .../airtime-celery/airtime-celery/tasks.py | 29 +++++++++++++------ 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/airtime_mvc/application/forms/GeneralPreferences.php b/airtime_mvc/application/forms/GeneralPreferences.php index f580a0d2a..c6ec16aae 100644 --- a/airtime_mvc/application/forms/GeneralPreferences.php +++ b/airtime_mvc/application/forms/GeneralPreferences.php @@ -144,10 +144,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm $allowedCorsUrls->setValue($allowedCorsUrlsValue); $this->addElement($allowedCorsUrls); - - - - $locale = new Zend_Form_Element_Select("locale"); $locale->setLabel(_("Default Language")); $locale->setMultiOptions(Application_Model_Locale::getLocales()); diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php index 18d3aee9c..e6474af4e 100644 --- a/airtime_mvc/application/models/Preference.php +++ b/airtime_mvc/application/models/Preference.php @@ -358,8 +358,7 @@ class Application_Model_Preference { self::setValue("third_party_api", $bool); } - - + public static function GetAllow3rdPartyApi() { $val = self::getValue("third_party_api"); @@ -374,11 +373,9 @@ class Application_Model_Preference public static function GetPodcastAlbumOverride() { $val = self::getValue("podcast_album_override"); - return (strlen($val) == 0 ) ? "1" : $val; + return $val === '1' ? true : false; } - - public static function SetPhone($phone) { self::setValue("phone", $phone); diff --git a/python_apps/airtime-celery/airtime-celery/tasks.py b/python_apps/airtime-celery/airtime-celery/tasks.py index 018109a23..10b8ca2d1 100644 --- a/python_apps/airtime-celery/airtime-celery/tasks.py +++ b/python_apps/airtime-celery/airtime-celery/tasks.py @@ -157,15 +157,10 @@ def podcast_download(id, url, callback_url, api_key, podcast_name, album_overrid # currently hardcoded for mp3s may want to add support for oggs etc m = MP3(audiofile.name, ID3=EasyID3) logger.debug('podcast_download loaded mp3 {0}'.format(audiofile.name)) - # replace the album id3 tag with the podcast name if the album tag is empty - try: - m['album'] - except KeyError: - logger.debug('setting new album name to {0} in podcast'.format(podcast_name.encode('ascii', 'ignore'))) - m['album'] = podcast_name - # if the album override option is enabled replace the album id3 tag with the podcast name even if the album tag contains data - if album_override is True: - m['album'] = podcast_name + + # replace album title as needed + m = podcast_override_album(m, podcast_name, album_override) + m.save() filetypeinfo = m.pprint() logger.info('filetypeinfo is {0}'.format(filetypeinfo.encode('ascii', 'ignore'))) @@ -181,6 +176,22 @@ def podcast_download(id, url, callback_url, api_key, podcast_name, album_overrid obj['status'] = 0 return json.dumps(obj) +def podcast_override_album(m, podcast_name, override): + """ + Override m['album'] if empty or forced with override arg + """ + # if the album override option is enabled replace the album id3 tag with the podcast name even if the album tag contains data + if override is True: + logger.debug('overriding album name to {0} in podcast'.format(podcast_name.encode('ascii', 'ignore'))) + m['album'] = podcast_name + else: + # replace the album id3 tag with the podcast name if the album tag is empty + try: + m['album'] + except KeyError: + logger.debug('setting new album name to {0} in podcast'.format(podcast_name.encode('ascii', 'ignore'))) + m['album'] = podcast_name + return m def get_filename(r): """