diff --git a/beets/library.py b/beets/library.py index d0571ed3a..bbb6452fe 100644 --- a/beets/library.py +++ b/beets/library.py @@ -1506,9 +1506,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 @@ -1528,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'' diff --git a/docs/changelog.rst b/docs/changelog.rst index 2b8ede053..7081a2ddb 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -92,6 +92,9 @@ 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. + :bug:`3043` .. _python-itunes: https://github.com/ocelma/python-itunes