From 54624a879d7502738e35f414f8f1ba6a159eec0f Mon Sep 17 00:00:00 2001 From: David Logie Date: Tue, 25 Sep 2018 10:18:53 +0100 Subject: [PATCH 1/3] Make `%aunique` work with `-f/--format` options. --- beets/library.py | 13 +++++++++++-- docs/changelog.rst | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/beets/library.py b/beets/library.py index d0571ed3a..c911bbaa5 100644 --- a/beets/library.py +++ b/beets/library.py @@ -1395,6 +1395,8 @@ class Library(dbcore.Database): """ if isinstance(item_or_id, int): album_id = item_or_id + elif isinstance(item_or_id, Album): + album_id = item_or_id.id else: album_id = item_or_id.album_id if album_id is None: @@ -1506,9 +1508,16 @@ class DefaultTemplateFunctions(object): # Fast paths: no album, no item or library, or memoized value. if not self.item or not self.lib: return u'' - if self.item.album_id is None: + + if isinstance(self.item, Item): + album_id = self.item.album_id + elif isinstance(self.item, Album): + album_id = self.item.id + + if album_id is None: return u'' - memokey = ('aunique', keys, disam, self.item.album_id) + + memokey = ('aunique', keys, disam, album_id) memoval = self.lib._memotable.get(memokey) if memoval is not None: return memoval diff --git a/docs/changelog.rst b/docs/changelog.rst index 2d456ae88..a5805da80 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -88,6 +88,8 @@ Fixes: :bug:`2504` :bug:`3029` * Avoid a crash when archive extraction fails during import. :bug:`3041` +* The ``%aunique`` template function now works correctly with the + ``-f/--format`` option. .. _python-itunes: https://github.com/ocelma/python-itunes From 760bdd54204230f8ccc2e5d1434d52699d600bad Mon Sep 17 00:00:00 2001 From: David Logie Date: Thu, 27 Sep 2018 10:29:43 +0100 Subject: [PATCH 2/3] Add a reference to the bug. --- docs/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index a5805da80..4cf4072fe 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -90,6 +90,7 @@ Fixes: :bug:`3041` * The ``%aunique`` template function now works correctly with the ``-f/--format`` option. + :bug:`3043` .. _python-itunes: https://github.com/ocelma/python-itunes From b347908af7182368694a778505f40bd892ec4616 Mon Sep 17 00:00:00 2001 From: David Logie Date: Thu, 27 Sep 2018 14:54:23 +0100 Subject: [PATCH 3/3] Address PR comments. --- beets/library.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/beets/library.py b/beets/library.py index c911bbaa5..bbb6452fe 100644 --- a/beets/library.py +++ b/beets/library.py @@ -1395,8 +1395,6 @@ class Library(dbcore.Database): """ if isinstance(item_or_id, int): album_id = item_or_id - elif isinstance(item_or_id, Album): - album_id = item_or_id.id else: album_id = item_or_id.album_id if album_id is None: @@ -1537,7 +1535,7 @@ class DefaultTemplateFunctions(object): bracket_l = u'' bracket_r = u'' - album = self.lib.get_album(self.item) + album = self.lib.get_album(album_id) if not album: # Do nothing for singletons. self.lib._memotable[memokey] = u''