From 4a5b886944a08542dbcbfbb59f37ad1715c24e2b Mon Sep 17 00:00:00 2001 From: wordofglass Date: Sun, 24 Apr 2016 00:35:15 +0200 Subject: [PATCH] Fix two non-guarded import statements in the lyrics plugin These could make the import process crash with a traceback. --- beetsplug/lyrics.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/beetsplug/lyrics.py b/beetsplug/lyrics.py index afda54851..177bf7c1d 100644 --- a/beetsplug/lyrics.py +++ b/beetsplug/lyrics.py @@ -415,7 +415,12 @@ def scrape_lyrics_from_html(html): """Scrape lyrics from a URL. If no lyrics can be found, return None instead. """ - from bs4 import SoupStrainer, BeautifulSoup + try: + from bs4 import SoupStrainer, BeautifulSoup + except ImportError: + # TODO: refactor the plugin to get access to a logger here and log + # a warning + pass if not html: return None @@ -673,7 +678,12 @@ class LyricsPlugin(plugins.BeetsPlugin): if lyrics: self._log.info(u'fetched lyrics: {0}', item) if self.config['bing_client_secret'].get(): - from langdetect import detect + try: + from langdetect import detect + except ImportError: + self._log.warn(u'To use bing translations, you need to ' + u'install the langdetect module. See the ' + u'documentation for further details.') lang_from = detect(lyrics) if self.config['bing_lang_to'].get() != lang_from and (