From bbaad2f17dedf3394065f9bea3eb30fc85df2fae Mon Sep 17 00:00:00 2001 From: Susanna Maria Hepp Date: Tue, 27 Dec 2016 13:22:16 +0100 Subject: [PATCH] Introduce force option in acousticbrainz --- beetsplug/acousticbrainz.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/beetsplug/acousticbrainz.py b/beetsplug/acousticbrainz.py index 9985ade87..9f5232953 100644 --- a/beetsplug/acousticbrainz.py +++ b/beetsplug/acousticbrainz.py @@ -107,7 +107,8 @@ class AcousticPlugin(plugins.BeetsPlugin): def __init__(self): super(AcousticPlugin, self).__init__() - self.config.add({'auto': True}) + self.config.add({'auto': True,'force': False}) + if self.config['auto']: self.register_listener('import_task_files', self.import_task_files) @@ -118,7 +119,13 @@ class AcousticPlugin(plugins.BeetsPlugin): def func(lib, opts, args): items = lib.items(ui.decargs(args)) - self._fetch_info(items, ui.should_write()) + self._fetch_info(items, ui.should_write(),opts.force_refetch or self.config['force']) + + cmd.parser.add_option( + u'-f', u'--force', dest='force_refetch', + action='store_true', default=False, + help=u'always fetch acousticbrainz data', + ) cmd.func = func return [cmd] @@ -151,15 +158,16 @@ class AcousticPlugin(plugins.BeetsPlugin): return data - def _fetch_info(self, items, write): + def _fetch_info(self, items, write, force): """Fetch additional information from AcousticBrainz for the `item`s. """ for item in items: - mood_str = item.get('mood_acoustic', u'') - if len(mood_str) != 0: - self._log.info(u'Already set acousticbrainz tag for {} ', item) - continue + if not force: + mood_str = item.get('mood_acoustic', u'') + if len(mood_str) != 0: + self._log.info(u'Already set acousticbrainz tag for {} ', item) + continue if not item.mb_trackid: continue