mirror of
https://github.com/beetbox/beets.git
synced 2026-01-04 15:03:22 +01:00
Merge pull request #846 from KraYmer/issue836
Cover images prioritization
This commit is contained in:
commit
4eb49d835e
2 changed files with 13 additions and 0 deletions
|
|
@ -153,6 +153,11 @@ def google_art(album):
|
|||
|
||||
# Art from the filesystem.
|
||||
|
||||
def sort_by_keywords_priority(image, cover_names):
|
||||
"""Sorting function for image names. Return indexes of cover names found
|
||||
in the image filename."""
|
||||
return [idx for (idx, x) in enumerate(cover_names) if x in image]
|
||||
|
||||
|
||||
def art_in_path(path, cover_names, cautious):
|
||||
"""Look for album art files in a specified directory."""
|
||||
|
|
@ -167,6 +172,8 @@ def art_in_path(path, cover_names, cautious):
|
|||
images.append(fn)
|
||||
|
||||
# Look for "preferred" filenames.
|
||||
images = sorted(images, key=lambda x: sort_by_keywords_priority(x,
|
||||
cover_names))
|
||||
cover_pat = r"(\b|_)({0})(\b|_)".format('|'.join(cover_names))
|
||||
for fn in images:
|
||||
if re.search(cover_pat, os.path.splitext(fn)[0], re.I):
|
||||
|
|
|
|||
|
|
@ -78,6 +78,12 @@ class FSArtTest(_common.TestCase):
|
|||
fn = fetchart.art_in_path(self.dpath, ('art',), True)
|
||||
self.assertEqual(fn, None)
|
||||
|
||||
def test_precedence_amongst_correct_files(self):
|
||||
_common.touch(os.path.join(self.dpath, 'back.jpg'))
|
||||
_common.touch(os.path.join(self.dpath, 'front.jpg'))
|
||||
_common.touch(os.path.join(self.dpath, 'front-cover.jpg'))
|
||||
fn = fetchart.art_in_path(self.dpath, ('cover', 'front', 'back'), False)
|
||||
self.assertEqual(fn, os.path.join(self.dpath, 'front-cover.jpg'))
|
||||
|
||||
class CombinedTest(_common.TestCase):
|
||||
ASIN = 'xxxx'
|
||||
|
|
|
|||
Loading…
Reference in a new issue