mirror of
https://github.com/beetbox/beets.git
synced 2025-12-07 17:16:07 +01:00
Parameter handling
This commit is contained in:
parent
b64059b173
commit
1643eea3f5
2 changed files with 36 additions and 3 deletions
|
|
@ -55,7 +55,11 @@ class AcousticBrainzSubmitPlugin(plugins.BeetsPlugin):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(AcousticBrainzSubmitPlugin, self).__init__()
|
super(AcousticBrainzSubmitPlugin, self).__init__()
|
||||||
|
|
||||||
self.config.add({'extractor': u''})
|
self.config.add({
|
||||||
|
'extractor': u'',
|
||||||
|
'force': False,
|
||||||
|
'dry': False
|
||||||
|
})
|
||||||
|
|
||||||
self.extractor = self.config['extractor'].as_str()
|
self.extractor = self.config['extractor'].as_str()
|
||||||
if self.extractor:
|
if self.extractor:
|
||||||
|
|
@ -98,12 +102,23 @@ class AcousticBrainzSubmitPlugin(plugins.BeetsPlugin):
|
||||||
'absubmit',
|
'absubmit',
|
||||||
help=u'calculate and submit AcousticBrainz analysis'
|
help=u'calculate and submit AcousticBrainz analysis'
|
||||||
)
|
)
|
||||||
|
cmd.parser.add_option(
|
||||||
|
u'-f', u'--force', dest='force_refetch',
|
||||||
|
action='store_true', default=False,
|
||||||
|
help=u're-download data when already present'
|
||||||
|
)
|
||||||
|
cmd.parser.add_option(
|
||||||
|
u'-d', u'--dry', dest='dry_fetch',
|
||||||
|
action='store_true', default=False,
|
||||||
|
help=u'dry run, show files which would be processed'
|
||||||
|
)
|
||||||
cmd.func = self.command
|
cmd.func = self.command
|
||||||
return [cmd]
|
return [cmd]
|
||||||
|
|
||||||
def command(self, lib, opts, args):
|
def command(self, lib, opts, args):
|
||||||
# Get items from arguments
|
# Get items from arguments
|
||||||
items = lib.items(ui.decargs(args))
|
items = lib.items(ui.decargs(args))
|
||||||
|
self.opts=opts
|
||||||
util.par_map(self.analyze_submit, items)
|
util.par_map(self.analyze_submit, items)
|
||||||
|
|
||||||
def analyze_submit(self, item):
|
def analyze_submit(self, item):
|
||||||
|
|
@ -113,12 +128,22 @@ class AcousticBrainzSubmitPlugin(plugins.BeetsPlugin):
|
||||||
|
|
||||||
def _get_analysis(self, item):
|
def _get_analysis(self, item):
|
||||||
mbid = item['mb_trackid']
|
mbid = item['mb_trackid']
|
||||||
|
|
||||||
# If file has no mbid skip it.
|
# If file has no mbid skip it.
|
||||||
|
if not self.opts.force_refetch and not self.config['force']:
|
||||||
|
mood_str = item.get('mood_acoustic', u'')
|
||||||
|
if mood_str:
|
||||||
|
return None
|
||||||
|
|
||||||
if not mbid:
|
if not mbid:
|
||||||
self._log.info(u'Not analysing {}, missing '
|
self._log.info(u'Not analysing {}, missing '
|
||||||
u'musicbrainz track id.', item)
|
u'musicbrainz track id.', item)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
if self.opts.dry_fetch or self.config['dry']:
|
||||||
|
self._log.info(u'dry run - extract item: {}', item)
|
||||||
|
return None
|
||||||
|
|
||||||
# Temporary file to save extractor output to, extractor only works
|
# Temporary file to save extractor output to, extractor only works
|
||||||
# if an output file is given. Here we use a temporary file to copy
|
# if an output file is given. Here we use a temporary file to copy
|
||||||
# the data into a python object and then remove the file from the
|
# the data into a python object and then remove the file from the
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,12 @@ Submitting Data
|
||||||
|
|
||||||
Type::
|
Type::
|
||||||
|
|
||||||
beet absubmit [QUERY]
|
beet absubmit [-f] [-d] [QUERY]
|
||||||
|
|
||||||
to run the analysis program and upload its results.
|
to run the analysis program and upload its results. By default, the command will only look for AcousticBrainz data when the tracks
|
||||||
|
doesn't already have it; the ``-f`` or ``--force`` switch makes it refetch data even
|
||||||
|
when it already exists. You can use the ``-d`` or ``--dry``swtich to check which files will be
|
||||||
|
analyzed, before you start a longer period of processing.
|
||||||
|
|
||||||
The plugin works on music with a MusicBrainz track ID attached. The plugin
|
The plugin works on music with a MusicBrainz track ID attached. The plugin
|
||||||
will also skip music that the analysis tool doesn't support.
|
will also skip music that the analysis tool doesn't support.
|
||||||
|
|
@ -40,6 +43,11 @@ To configure the plugin, make a ``absubmit:`` section in your configuration file
|
||||||
Default: ``no``
|
Default: ``no``
|
||||||
- **extractor**: The absolute path to the `streaming_extractor_music`_ binary.
|
- **extractor**: The absolute path to the `streaming_extractor_music`_ binary.
|
||||||
Default: search for the program in your ``$PATH``
|
Default: search for the program in your ``$PATH``
|
||||||
|
- **force**: Analyse AcousticBrainz data even for tracks that already have
|
||||||
|
it.
|
||||||
|
Default: ``no``.
|
||||||
|
- **dry**: No analyse AcousticBrainz data but print out the files which would be processed
|
||||||
|
Default: ``no``.
|
||||||
|
|
||||||
.. _streaming_extractor_music: https://acousticbrainz.org/download
|
.. _streaming_extractor_music: https://acousticbrainz.org/download
|
||||||
.. _FAQ: https://acousticbrainz.org/faq
|
.. _FAQ: https://acousticbrainz.org/faq
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue