diff --git a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/bin/SABnzbd-Suite.py b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/bin/SABnzbd-Suite.py index 5735b0503a..441f3cba23 100755 --- a/packages/addons/service/downloadmanager/SABnzbd-Suite/source/bin/SABnzbd-Suite.py +++ b/packages/addons/service/downloadmanager/SABnzbd-Suite/source/bin/SABnzbd-Suite.py @@ -182,270 +182,290 @@ except: signal.signal(signal.SIGCHLD, signal.SIG_DFL) os.environ['PYTHONPATH'] = str(os.environ.get('PYTHONPATH')) + ':' + pPylib -# write SABnzbd settings -# ---------------------- +# SABnzbd start +try: + # write SABnzbd settings + # ---------------------- + sabNzbdConfig = ConfigObj(pSabNzbdSettings,create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['misc'] = {} + defaultConfig['misc']['disable_api_key'] = '0' + defaultConfig['misc']['check_new_rel'] = '0' + defaultConfig['misc']['auto_browser'] = '0' + defaultConfig['misc']['username'] = user + defaultConfig['misc']['password'] = pwd + defaultConfig['misc']['port'] = '8081' + defaultConfig['misc']['https_port'] = '9081' + defaultConfig['misc']['https_cert'] = 'server.cert' + defaultConfig['misc']['https_key'] = 'server.key' + defaultConfig['misc']['host'] = host + defaultConfig['misc']['web_dir'] = 'Plush' + defaultConfig['misc']['web_dir2'] = 'Plush' + defaultConfig['misc']['web_color'] = 'gold' + defaultConfig['misc']['web_color2'] = 'gold' + defaultConfig['misc']['log_dir'] = 'logs' + defaultConfig['misc']['admin_dir'] = 'admin' + defaultConfig['misc']['nzb_backup_dir'] = 'backup' + defaultConfig['misc']['script_dir'] = 'scripts' -sabNzbdConfig = ConfigObj(pSabNzbdSettings,create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['misc'] = {} -defaultConfig['misc']['disable_api_key'] = '0' -defaultConfig['misc']['check_new_rel'] = '0' -defaultConfig['misc']['auto_browser'] = '0' -defaultConfig['misc']['username'] = user -defaultConfig['misc']['password'] = pwd -defaultConfig['misc']['port'] = '8081' -defaultConfig['misc']['https_port'] = '9081' -defaultConfig['misc']['https_cert'] = 'server.cert' -defaultConfig['misc']['https_key'] = 'server.key' -defaultConfig['misc']['host'] = host -defaultConfig['misc']['web_dir'] = 'Plush' -defaultConfig['misc']['web_dir2'] = 'Plush' -defaultConfig['misc']['web_color'] = 'gold' -defaultConfig['misc']['web_color2'] = 'gold' -defaultConfig['misc']['log_dir'] = 'logs' -defaultConfig['misc']['admin_dir'] = 'admin' -defaultConfig['misc']['nzb_backup_dir'] = 'backup' -defaultConfig['misc']['script_dir'] = 'scripts' - -if firstLaunch: - defaultConfig['misc']['download_dir'] = pSabNzbdIncomplete - defaultConfig['misc']['complete_dir'] = pSabNzbdComplete - servers = {} - servers['localhost'] = {} - servers['localhost']['host'] = 'localhost' - servers['localhost']['port'] = '119' - servers['localhost']['enable'] = '0' - categories = {} - categories['tv'] = {} - categories['tv']['name'] = 'tv' - categories['tv']['script'] = 'sabToSickBeard.py' - categories['tv']['priority'] = '-100' - categories['movies'] = {} - categories['movies']['name'] = 'movies' - categories['movies']['dir'] = 'movies' - categories['movies']['priority'] = '-100' - categories['music'] = {} - categories['music']['name'] = 'music' - categories['music']['dir'] = 'music' - categories['music']['priority'] = '-100' - defaultConfig['servers'] = servers - defaultConfig['categories'] = categories - -sabNzbdConfig.merge(defaultConfig) -sabNzbdConfig.write() - -# also keep the autoProcessTV config up to date -autoProcessConfig = ConfigObj(os.path.join(pSabNzbdScripts, 'autoProcessTV.cfg'), create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['SickBeard'] = {} -defaultConfig['SickBeard']['host'] = 'localhost' -defaultConfig['SickBeard']['port'] = '8082' -defaultConfig['SickBeard']['username'] = user -defaultConfig['SickBeard']['password'] = pwd -autoProcessConfig.merge(defaultConfig) -autoProcessConfig.write() - -# launch SABnzbd and get the API key -# ---------------------------------- -if "true" in sabnzbd_launch: - logging.debug('Launching SABnzbd...') - subprocess.call(sabnzbd,close_fds=True) - logging.debug('...done') - -# SABnzbd will only complete the .ini file when we first access the web interface if firstLaunch: - loadWebInterface('http://' + sabNzbdHost,user,pwd) - sabNzbdConfig.reload() - sabNzbdApiKey = sabNzbdConfig['misc']['api_key'] - logging.debug('SABnzbd api key: ' + sabNzbdApiKey) + defaultConfig['misc']['download_dir'] = pSabNzbdIncomplete + defaultConfig['misc']['complete_dir'] = pSabNzbdComplete + servers = {} + servers['localhost'] = {} + servers['localhost']['host'] = 'localhost' + servers['localhost']['port'] = '119' + servers['localhost']['enable'] = '0' + categories = {} + categories['tv'] = {} + categories['tv']['name'] = 'tv' + categories['tv']['script'] = 'sabToSickBeard.py' + categories['tv']['priority'] = '-100' + categories['movies'] = {} + categories['movies']['name'] = 'movies' + categories['movies']['dir'] = 'movies' + categories['movies']['priority'] = '-100' + categories['music'] = {} + categories['music']['name'] = 'music' + categories['music']['dir'] = 'music' + categories['music']['priority'] = '-100' + defaultConfig['servers'] = servers + defaultConfig['categories'] = categories -# write SickBeard settings -# ------------------------ + sabNzbdConfig.merge(defaultConfig) + sabNzbdConfig.write() -sickBeardConfig = ConfigObj(pSickBeardSettings,create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['General'] = {} -defaultConfig['General']['launch_browser'] = '0' -defaultConfig['General']['version_notify'] = '0' -defaultConfig['General']['log_dir'] = 'logs' -defaultConfig['General']['web_port'] = '8082' -defaultConfig['General']['web_host'] = host -defaultConfig['General']['web_username'] = user -defaultConfig['General']['web_password'] = pwd -if "true" in sabnzbd_launch: - defaultConfig['SABnzbd'] = {} - defaultConfig['SABnzbd']['sab_username'] = user - defaultConfig['SABnzbd']['sab_password'] = pwd - defaultConfig['SABnzbd']['sab_apikey'] = sabNzbdApiKey - defaultConfig['SABnzbd']['sab_host'] = 'http://' + sabNzbdHost + '/' -defaultConfig['XBMC'] = {} -defaultConfig['XBMC']['use_xbmc'] = '1' -defaultConfig['XBMC']['xbmc_host'] = '127.0.0.1:' + xbmcPort -defaultConfig['XBMC']['xbmc_username'] = xbmcUser -defaultConfig['XBMC']['xbmc_password'] = xbmcPwd + # also keep the autoProcessTV config up to date + autoProcessConfig = ConfigObj(os.path.join(pSabNzbdScripts, 'autoProcessTV.cfg'), create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['SickBeard'] = {} + defaultConfig['SickBeard']['host'] = 'localhost' + defaultConfig['SickBeard']['port'] = '8082' + defaultConfig['SickBeard']['username'] = user + defaultConfig['SickBeard']['password'] = pwd + autoProcessConfig.merge(defaultConfig) + autoProcessConfig.write() -if firstLaunch: - defaultConfig['General']['metadata_xbmc'] = '1|1|1|1|1|1' - defaultConfig['General']['nzb_method'] = 'sabnzbd' - defaultConfig['General']['keep_processed_dir'] = '0' - defaultConfig['General']['use_banner'] = '1' - defaultConfig['General']['rename_episodes'] = '1' - defaultConfig['General']['naming_ep_name'] = '0' - defaultConfig['General']['naming_use_periods'] = '1' - defaultConfig['General']['naming_sep_type'] = '1' - defaultConfig['General']['naming_ep_type'] = '1' - defaultConfig['General']['root_dirs'] = '0|/storage/tvshows' - defaultConfig['SABnzbd']['sab_category'] = 'tv' - # workaround: on first launch, sick beard will always add - # 'http://' and trailing '/' on its own - defaultConfig['SABnzbd']['sab_host'] = sabNzbdHost - defaultConfig['XBMC']['xbmc_notify_ondownload'] = '1' - defaultConfig['XBMC']['xbmc_update_library'] = '1' + # launch SABnzbd and get the API key + # ---------------------------------- + if "true" in sabnzbd_launch: + logging.debug('Launching SABnzbd...') + subprocess.call(sabnzbd,close_fds=True) + logging.debug('...done') -sickBeardConfig.merge(defaultConfig) -sickBeardConfig.write() + # SABnzbd will only complete the .ini file when we first access the web interface + if firstLaunch: + loadWebInterface('http://' + sabNzbdHost,user,pwd) + sabNzbdConfig.reload() + sabNzbdApiKey = sabNzbdConfig['misc']['api_key'] + logging.debug('SABnzbd api key: ' + sabNzbdApiKey) +except Exception,e: + print 'SABnzbd: exception occurred:', e +# SABnzbd end -# launch SickBeard -# ---------------- -if "true" in sickbeard_launch: - logging.debug('Launching SickBeard...') - subprocess.call(sickBeard,close_fds=True) - logging.debug('...done') +# SickBeard start +try: + # write SickBeard settings + # ------------------------ + sickBeardConfig = ConfigObj(pSickBeardSettings,create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['General'] = {} + defaultConfig['General']['launch_browser'] = '0' + defaultConfig['General']['version_notify'] = '0' + defaultConfig['General']['log_dir'] = 'logs' + defaultConfig['General']['web_port'] = '8082' + defaultConfig['General']['web_host'] = host + defaultConfig['General']['web_username'] = user + defaultConfig['General']['web_password'] = pwd + if "true" in sabnzbd_launch: + defaultConfig['SABnzbd'] = {} + defaultConfig['SABnzbd']['sab_username'] = user + defaultConfig['SABnzbd']['sab_password'] = pwd + defaultConfig['SABnzbd']['sab_apikey'] = sabNzbdApiKey + defaultConfig['SABnzbd']['sab_host'] = 'http://' + sabNzbdHost + '/' + defaultConfig['XBMC'] = {} + defaultConfig['XBMC']['use_xbmc'] = '1' + defaultConfig['XBMC']['xbmc_host'] = '127.0.0.1:' + xbmcPort + defaultConfig['XBMC']['xbmc_username'] = xbmcUser + defaultConfig['XBMC']['xbmc_password'] = xbmcPwd -# write CouchPotato settings -# -------------------------- + if firstLaunch: + defaultConfig['General']['metadata_xbmc'] = '1|1|1|1|1|1' + defaultConfig['General']['nzb_method'] = 'sabnzbd' + defaultConfig['General']['keep_processed_dir'] = '0' + defaultConfig['General']['use_banner'] = '1' + defaultConfig['General']['rename_episodes'] = '1' + defaultConfig['General']['naming_ep_name'] = '0' + defaultConfig['General']['naming_use_periods'] = '1' + defaultConfig['General']['naming_sep_type'] = '1' + defaultConfig['General']['naming_ep_type'] = '1' + defaultConfig['General']['root_dirs'] = '0|/storage/tvshows' + defaultConfig['SABnzbd']['sab_category'] = 'tv' + # workaround: on first launch, sick beard will always add + # 'http://' and trailing '/' on its own + defaultConfig['SABnzbd']['sab_host'] = sabNzbdHost + defaultConfig['XBMC']['xbmc_notify_ondownload'] = '1' + defaultConfig['XBMC']['xbmc_update_library'] = '1' -couchPotatoConfig = ConfigObj(pCouchPotatoSettings,create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['global'] = {} -defaultConfig['global']['launchbrowser'] = 'False' -defaultConfig['global']['updater'] = 'False' -defaultConfig['global']['password'] = pwd -defaultConfig['global']['username'] = user -defaultConfig['global']['port'] = '8083' -defaultConfig['global']['host'] = host -if "true" in sabnzbd_launch: - defaultConfig['Sabnzbd'] = {} - defaultConfig['Sabnzbd']['username'] = user - defaultConfig['Sabnzbd']['password'] = pwd - defaultConfig['Sabnzbd']['apikey'] = sabNzbdApiKey - defaultConfig['Sabnzbd']['host'] = sabNzbdHost -defaultConfig['XBMC'] = {} -defaultConfig['XBMC']['enabled'] = 'True' -defaultConfig['XBMC']['host'] = '127.0.0.1:' + xbmcPort -defaultConfig['XBMC']['username'] = xbmcUser -defaultConfig['XBMC']['password'] = xbmcPwd + sickBeardConfig.merge(defaultConfig) + sickBeardConfig.write() -if firstLaunch: - defaultConfig['Sabnzbd']['category'] = 'movies' - defaultConfig['Sabnzbd']['ppdir'] = pSabNzbdCompleteMov - defaultConfig['Renamer'] = {} - defaultConfig['Renamer']['enabled'] = 'True' - defaultConfig['Renamer']['download'] = pSabNzbdCompleteMov - defaultConfig['Renamer']['destination'] = '/storage/videos' - defaultConfig['Renamer']['separator'] = '.' - defaultConfig['Renamer']['cleanup'] = 'True' + # launch SickBeard + # ---------------- + if "true" in sickbeard_launch: + logging.debug('Launching SickBeard...') + subprocess.call(sickBeard,close_fds=True) + logging.debug('...done') +except Exception,e: + print 'SickBeard: exception occurred:', e +# SickBeard end -couchPotatoConfig.merge(defaultConfig) -couchPotatoConfig.write() +# CouchPotato start +try: + # write CouchPotato settings + # -------------------------- + couchPotatoConfig = ConfigObj(pCouchPotatoSettings,create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['global'] = {} + defaultConfig['global']['launchbrowser'] = 'False' + defaultConfig['global']['updater'] = 'False' + defaultConfig['global']['password'] = pwd + defaultConfig['global']['username'] = user + defaultConfig['global']['port'] = '8083' + defaultConfig['global']['host'] = host + if "true" in sabnzbd_launch: + defaultConfig['Sabnzbd'] = {} + defaultConfig['Sabnzbd']['username'] = user + defaultConfig['Sabnzbd']['password'] = pwd + defaultConfig['Sabnzbd']['apikey'] = sabNzbdApiKey + defaultConfig['Sabnzbd']['host'] = sabNzbdHost + defaultConfig['XBMC'] = {} + defaultConfig['XBMC']['enabled'] = 'True' + defaultConfig['XBMC']['host'] = '127.0.0.1:' + xbmcPort + defaultConfig['XBMC']['username'] = xbmcUser + defaultConfig['XBMC']['password'] = xbmcPwd -# launch CouchPotato -# ------------------ -if "true" in couchpotato_launch and "0" in couchpotato_version: - logging.debug('Launching CouchPotato...') - subprocess.call(couchPotato,close_fds=True) - logging.debug('...done') + if firstLaunch: + defaultConfig['Sabnzbd']['category'] = 'movies' + defaultConfig['Sabnzbd']['ppdir'] = pSabNzbdCompleteMov + defaultConfig['Renamer'] = {} + defaultConfig['Renamer']['enabled'] = 'True' + defaultConfig['Renamer']['download'] = pSabNzbdCompleteMov + defaultConfig['Renamer']['destination'] = '/storage/videos' + defaultConfig['Renamer']['separator'] = '.' + defaultConfig['Renamer']['cleanup'] = 'True' -#convert password to md5 -md5pwd = hashlib.md5(pwd).hexdigest() + couchPotatoConfig.merge(defaultConfig) + couchPotatoConfig.write() -# write CouchPotatoServer settings -# -------------------------- + # launch CouchPotato + # ------------------ + if "true" in couchpotato_launch and "0" in couchpotato_version: + logging.debug('Launching CouchPotato...') + subprocess.call(couchPotato,close_fds=True) + logging.debug('...done') +except Exception,e: + print 'CouchPotato: exception occurred:', e +# CouchPotato end -couchPotatoServerConfig = ConfigObj(pCouchPotatoServerSettings,create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['newznab'] = {} -defaultConfig['newznab']['api_key'] = '' -defaultConfig['core'] = {} -defaultConfig['core']['username'] = user -defaultConfig['core']['password'] = md5pwd -defaultConfig['core']['port'] = '8083' -defaultConfig['core']['launchbrowser'] = '0' -defaultConfig['core']['host'] = host -defaultConfig['core']['data_dir'] = pAddonHome -defaultConfig['core']['permission_folder'] = '0644' -defaultConfig['core']['permission_file'] = '0644' -defaultConfig['core']['show_wizard'] = '0' -defaultConfig['core']['debug'] = '0' -defaultConfig['core']['development'] = '0' -defaultConfig['updater'] = {} -defaultConfig['updater']['enabled'] = '0' -defaultConfig['updater']['notification'] = '0' -defaultConfig['updater']['automatic'] = '0' -if "true" in sabnzbd_launch: - defaultConfig['Sabnzbd'] = {} - defaultConfig['Sabnzbd']['username'] = user - defaultConfig['Sabnzbd']['password'] = pwd - defaultConfig['Sabnzbd']['api_key'] = sabNzbdApiKey - defaultConfig['Sabnzbd']['host'] = sabNzbdHost -defaultConfig['xbmc'] = {} -defaultConfig['xbmc']['enabled'] = '1' -defaultConfig['xbmc']['host'] = '127.0.0.1:' + xbmcPort -defaultConfig['xbmc']['username'] = xbmcUser -defaultConfig['xbmc']['password'] = xbmcPwd +# CouchPotatoServer start +try: + #convert password to md5 + md5pwd = hashlib.md5(pwd).hexdigest() -if firstLaunch: - defaultConfig['Sabnzbd']['category'] = 'movies' - defaultConfig['Sabnzbd']['pp_directory'] = pSabNzbdCompleteMov - defaultConfig['Renamer'] = {} - defaultConfig['Renamer']['enabled'] = 'True' - defaultConfig['Renamer']['download'] = pSabNzbdCompleteMov - defaultConfig['Renamer']['destination'] = '/storage/videos' - defaultConfig['Renamer']['separator'] = '.' - defaultConfig['Renamer']['cleanup'] = 'False' + # write CouchPotatoServer settings + # -------------------------- + couchPotatoServerConfig = ConfigObj(pCouchPotatoServerSettings,create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['newznab'] = {} + defaultConfig['newznab']['api_key'] = '' + defaultConfig['core'] = {} + defaultConfig['core']['username'] = user + defaultConfig['core']['password'] = md5pwd + defaultConfig['core']['port'] = '8083' + defaultConfig['core']['launchbrowser'] = '0' + defaultConfig['core']['host'] = host + defaultConfig['core']['data_dir'] = pAddonHome + defaultConfig['core']['permission_folder'] = '0644' + defaultConfig['core']['permission_file'] = '0644' + defaultConfig['core']['show_wizard'] = '0' + defaultConfig['core']['debug'] = '0' + defaultConfig['core']['development'] = '0' + defaultConfig['updater'] = {} + defaultConfig['updater']['enabled'] = '0' + defaultConfig['updater']['notification'] = '0' + defaultConfig['updater']['automatic'] = '0' + if "true" in sabnzbd_launch: + defaultConfig['Sabnzbd'] = {} + defaultConfig['Sabnzbd']['username'] = user + defaultConfig['Sabnzbd']['password'] = pwd + defaultConfig['Sabnzbd']['api_key'] = sabNzbdApiKey + defaultConfig['Sabnzbd']['host'] = sabNzbdHost + defaultConfig['xbmc'] = {} + defaultConfig['xbmc']['enabled'] = '1' + defaultConfig['xbmc']['host'] = '127.0.0.1:' + xbmcPort + defaultConfig['xbmc']['username'] = xbmcUser + defaultConfig['xbmc']['password'] = xbmcPwd -couchPotatoServerConfig.merge(defaultConfig) -couchPotatoServerConfig.write() + if firstLaunch: + defaultConfig['Sabnzbd']['category'] = 'movies' + defaultConfig['Sabnzbd']['pp_directory'] = pSabNzbdCompleteMov + defaultConfig['Renamer'] = {} + defaultConfig['Renamer']['enabled'] = 'True' + defaultConfig['Renamer']['download'] = pSabNzbdCompleteMov + defaultConfig['Renamer']['destination'] = '/storage/videos' + defaultConfig['Renamer']['separator'] = '.' + defaultConfig['Renamer']['cleanup'] = 'False' -# launch CouchPotatoServer -# ------------------ -if "true" in couchpotato_launch and "1" in couchpotato_version: - logging.debug('Launching CouchPotatoServer...') - subprocess.call(couchPotatoServer,close_fds=True) - logging.debug('...done') + couchPotatoServerConfig.merge(defaultConfig) + couchPotatoServerConfig.write() -# write Headphones settings -# ------------------------- + # launch CouchPotatoServer + # ------------------ + if "true" in couchpotato_launch and "1" in couchpotato_version: + logging.debug('Launching CouchPotatoServer...') + subprocess.call(couchPotatoServer,close_fds=True) + logging.debug('...done') +except Exception,e: + print 'CouchPotatoServer: exception occurred:', e +# CouchPotatoServer end -headphonesConfig = ConfigObj(pHeadphonesSettings,create_empty=True) -defaultConfig = ConfigObj() -defaultConfig['General'] = {} -defaultConfig['General']['launch_browser'] = '0' -defaultConfig['General']['http_port'] = '8084' -defaultConfig['General']['http_host'] = host -defaultConfig['General']['http_username'] = user -defaultConfig['General']['http_password'] = pwd -if "true" in sabnzbd_launch: - defaultConfig['SABnzbd'] = {} - defaultConfig['SABnzbd']['sab_apikey'] = sabNzbdApiKey - defaultConfig['SABnzbd']['sab_host'] = sabNzbdHost - defaultConfig['SABnzbd']['sab_username'] = user - defaultConfig['SABnzbd']['sab_password'] = pwd +# Headphones start +try: + # write Headphones settings + # ------------------------- + headphonesConfig = ConfigObj(pHeadphonesSettings,create_empty=True) + defaultConfig = ConfigObj() + defaultConfig['General'] = {} + defaultConfig['General']['launch_browser'] = '0' + defaultConfig['General']['http_port'] = '8084' + defaultConfig['General']['http_host'] = host + defaultConfig['General']['http_username'] = user + defaultConfig['General']['http_password'] = pwd + if "true" in sabnzbd_launch: + defaultConfig['SABnzbd'] = {} + defaultConfig['SABnzbd']['sab_apikey'] = sabNzbdApiKey + defaultConfig['SABnzbd']['sab_host'] = sabNzbdHost + defaultConfig['SABnzbd']['sab_username'] = user + defaultConfig['SABnzbd']['sab_password'] = pwd -if firstLaunch: - defaultConfig['SABnzbd']['sab_category'] = 'music' - defaultConfig['General']['music_dir'] = '/storage/music' - defaultConfig['General']['destination_dir'] = '/storage/music' - defaultConfig['General']['download_dir'] = '/storage/downloads/music' - defaultConfig['General']['move_files'] = '1' - defaultConfig['General']['rename_files'] = '1' + if firstLaunch: + defaultConfig['SABnzbd']['sab_category'] = 'music' + defaultConfig['General']['music_dir'] = '/storage/music' + defaultConfig['General']['destination_dir'] = '/storage/music' + defaultConfig['General']['download_dir'] = '/storage/downloads/music' + defaultConfig['General']['move_files'] = '1' + defaultConfig['General']['rename_files'] = '1' -headphonesConfig.merge(defaultConfig) -headphonesConfig.write() + headphonesConfig.merge(defaultConfig) + headphonesConfig.write() -# launch Headphones -# ----------------- -if "true" in headphones_launch: - logging.debug('Launching Headphones...') - subprocess.call(headphones,close_fds=True) - logging.debug('...done') + # launch Headphones + # ----------------- + if "true" in headphones_launch: + logging.debug('Launching Headphones...') + subprocess.call(headphones,close_fds=True) + logging.debug('...done') +except Exception,e: + print 'Headphones: exception occurred:', e +# Headphones end