Пример #1
0
 def __song_key(self):
     return (
         self("~#disc"),
         self("~#track"),
         human(self("artistsort")),
         self.get("musicbrainz_artistid", ""),
         human(self.get("title", "")),
         self.get("~filename"),
     )
Пример #2
0
    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))
Пример #3
0
    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))
Пример #4
0
 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 "")
Пример #5
0
 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 "")
Пример #6
0
 def __song_key(self):
     return (self("~#disc"), self("~#track"), human(self("artistsort")),
             self.get("musicbrainz_artistid",
                      ""), human(self.get("title",
                                          "")), self.get("~filename"))
Пример #7
0
 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", ""))