mirror of
https://github.com/beetbox/beets.git
synced 2025-12-26 02:24:33 +01:00
Added command line options to query explicit for albums and / or tracks.
This commit is contained in:
parent
fc95fb86a1
commit
0b2334f8e8
1 changed files with 32 additions and 21 deletions
|
|
@ -380,34 +380,45 @@ class LastGenrePlugin(plugins.BeetsPlugin):
|
|||
u'-s', u'--source', dest='source', type='string',
|
||||
help=u'genre source: artist, album, or track'
|
||||
)
|
||||
lastgenre_cmd.parser.add_option(
|
||||
u'-A', u'--tracks', action='store_true', default=False,
|
||||
help=u'match tracks instead of albums'
|
||||
)
|
||||
lastgenre_cmd.parser.add_option(
|
||||
u'-a', u'--albums', action='store_true', default=True,
|
||||
help=u'match albums instead of tracks'
|
||||
)
|
||||
|
||||
def lastgenre_func(lib, opts, args):
|
||||
write = ui.should_write()
|
||||
self.config.set_args(opts)
|
||||
|
||||
for album in lib.albums(ui.decargs(args)):
|
||||
album.genre, src = self._get_genre(album)
|
||||
self._log.info(u'genre for album {0} ({1}): {0.genre}',
|
||||
album, src)
|
||||
album.store()
|
||||
if opts.albums:
|
||||
for album in lib.albums(ui.decargs(args)):
|
||||
album.genre, src = self._get_genre(album)
|
||||
self._log.info(u'genre for album {0} ({1}): {0.genre}',
|
||||
album, src)
|
||||
album.store()
|
||||
|
||||
for item in album.items():
|
||||
# If we're using track-level sources, also look up each
|
||||
# track on the album.
|
||||
if 'track' in self.sources:
|
||||
item.genre, src = self._get_genre(item)
|
||||
item.store()
|
||||
self._log.info(u'genre for track {0} ({1}): {0.genre}',
|
||||
item, src)
|
||||
for item in album.items():
|
||||
# If we're using track-level sources, also look up each
|
||||
# track on the album.
|
||||
if 'track' in self.sources:
|
||||
item.genre, src = self._get_genre(item)
|
||||
item.store()
|
||||
self._log.info(u'genre for track {0} ({1}): {0.genre}',
|
||||
item, src)
|
||||
|
||||
if write:
|
||||
item.try_write()
|
||||
|
||||
if opts.tracks:
|
||||
for item in lib.items(ui.decargs(args)):
|
||||
item.genre, src = self._get_genre(item)
|
||||
self._log.debug(u'added last.fm item genre ({0}): {1}', src,
|
||||
item.genre)
|
||||
item.store()
|
||||
|
||||
if write:
|
||||
item.try_write()
|
||||
|
||||
for item in lib.items(ui.decargs(args)):
|
||||
item.genre, src = self._get_genre(item)
|
||||
self._log.debug(u'added last.fm item genre ({0}): {1}', src,
|
||||
item.genre)
|
||||
item.store()
|
||||
lastgenre_cmd.func = lastgenre_func
|
||||
return [lastgenre_cmd]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue