def __song_key(self): return ( self("~#disc"), self("~#track"), human(self("artistsort")), self.get("musicbrainz_artistid", ""), human(self.get("title", "")), self.get("~filename"), )
def sort_by_func(tag): """Returns a fast sort function for a specific tag (or pattern). Some keys are already in the sort cache, so we can use them.""" def artist_sort(song): return song.sort_key[1][2] if callable(tag): return lambda song: human(tag(song)) elif tag == "artistsort": return artist_sort elif tag in FILESYSTEM_TAGS: return lambda song: fsn2text(song(tag)) elif tag.startswith("~#") and "~" not in tag[2:]: return lambda song: song(tag) return lambda song: human(song(tag))
def sort_by_func(tag): """Returns a fast sort function for a specific tag (or pattern). Some keys are already in the sort cache, so we can use them.""" def artist_sort(song): return song.sort_key[1][2] if callable(tag): return lambda song: human(tag(song)) elif tag == "artistsort": return artist_sort elif tag in FILESYSTEM_TAGS: return lambda song: fsdecode(song(tag), note=False) elif tag.startswith("~#") and "~" not in tag[2:]: return lambda song: song(tag) return lambda song: human(song(tag))
def album_key(self): return (human(self("albumsort", "")), human(self("albumartistsort", "")), self.get("album_grouping_key") or self.get("labelid") or self.get("musicbrainz_albumid") or "")
def __song_key(self): return (self("~#disc"), self("~#track"), human(self("artistsort")), self.get("musicbrainz_artistid", ""), human(self.get("title", "")), self.get("~filename"))
def album_key(self) -> AlbumKey: id_val: str = (self.get("album_grouping_key") or self.get("labelid") or self.get("musicbrainz_albumid", "")) # type: ignore return id_val, human(self("albumsort", "")), human(self("albumartistsort", ""))