=== modified file 'elisa-plugins/elisa/plugins/database/models.py' --- elisa-plugins/elisa/plugins/database/models.py 2009-09-30 12:26:12 +0000 +++ elisa-plugins/elisa/plugins/database/models.py 2009-10-29 19:09:55 +0000 @@ -82,23 +82,26 @@ section = {'coverart_extensions': ['jpeg', 'jpg', 'png', 'gif'], 'coverart_filenames': ['front', 'cover', 'poster']} config.set_section('music_library', section) - extensions = section['coverart_extensions'] - filenames = section['coverart_filenames'] + extensions = [x.lower() for x in section['coverart_extensions']] + filenames = [x.lower() for x in section['coverart_filenames']] def iterate_candidates(track_path): + if not track_path : + return directory = os.path.dirname(track_path) - found = None + files = os.listdir(directory) + #Note - we check the names and extensions in order, so that + #(by default) "front" is used in preference to "cover" then + #"poster" etc, and "jpeg" over "jpg" over "png" over "gif". for ext in extensions: - for filename in filenames: - candidate = os.path.join(directory, - "%s.%s" % (filename, ext)) - if os.path.isfile(candidate) and os.access(candidate, - os.R_OK): - found = MediaUri("file://%s" % candidate) - break - if found: - break - return found + for base in filenames: + for filename in files : + if (base, ext) == os.path.splitext(filename.lower()) : + candidate = os.path.join(directory,filename) + if os.path.isfile(candidate) \ + and os.access(candidate, os.R_OK): + return MediaUri("file://%s" % candidate) + #No matches, return None def check_album_directory(result): return iterate_candidates(result)