SIZE_TAGS = {"~#filesize"} """Size in bytes, defaults to 0""" NUMERIC_ZERO_DEFAULT = {"~#skipcount", "~#playcount", "~#length", "~#bitrate"} """Defaults to 0""" NUMERIC_ZERO_DEFAULT.update(TIME_TAGS) NUMERIC_ZERO_DEFAULT.update(SIZE_TAGS) FILESYSTEM_TAGS = {"~filename", "~basename", "~dirname", "~mountpoint"} """Values are bytes in Linux instead of unicode""" SORT_TO_TAG = dict([(v, k) for (k, v) in iteritems(TAG_TO_SORT)]) """Reverse map, so sort tags can fall back to the normal ones""" PEOPLE_SORT = [TAG_TO_SORT.get(k, k) for k in PEOPLE] """Sources for ~peoplesort, most important first""" VARIOUS_ARTISTS_VALUES = 'V.A.', 'various artists', 'Various Artists' """Values for ~people representing lots of people, most important last""" def decode_value(tag, value): """Returns a unicode representation of the passed value, based on the type and the tag it originated from. Not reversible. """ if tag in FILESYSTEM_TAGS: return fsn2text(value)
TIME_TAGS = {"~#lastplayed", "~#laststarted", "~#added", "~#mtime"} """Time in seconds since epoch, defaults to 0""" SIZE_TAGS = {"~#filesize"} """Size in bytes, defaults to 0""" NUMERIC_ZERO_DEFAULT = {"~#skipcount", "~#playcount", "~#length", "~#bitrate"} """Defaults to 0""" NUMERIC_ZERO_DEFAULT.update(TIME_TAGS) NUMERIC_ZERO_DEFAULT.update(SIZE_TAGS) FILESYSTEM_TAGS = {"~filename", "~basename", "~dirname", "~mountpoint"} """Values are bytes in Linux instead of unicode""" SORT_TO_TAG = dict([(v, k) for (k, v) in TAG_TO_SORT.items()]) """Reverse map, so sort tags can fall back to the normal ones""" PEOPLE_SORT = [TAG_TO_SORT.get(k, k) for k in PEOPLE] """Sources for ~peoplesort, most important first""" VARIOUS_ARTISTS_VALUES = 'V.A.', 'various artists', 'Various Artists' """Values for ~people representing lots of people, most important last""" def decode_value(tag, value): """Returns a unicode representation of the passed value, based on the type and the tag it originated from. Not reversible. """
SIZE_TAGS = {"~#filesize"} """Size in bytes, defaults to 0""" NUMERIC_ZERO_DEFAULT = {"~#skipcount", "~#playcount", "~#length", "~#bitrate"} """Defaults to 0""" NUMERIC_ZERO_DEFAULT.update(TIME_TAGS) NUMERIC_ZERO_DEFAULT.update(SIZE_TAGS) FILESYSTEM_TAGS = {"~filename", "~basename", "~dirname"} """Values are bytes in Linux instead of unicode""" SORT_TO_TAG = dict([(v, k) for (k, v) in iteritems(TAG_TO_SORT)]) """Reverse map, so sort tags can fall back to the normal ones""" PEOPLE_SORT = [TAG_TO_SORT.get(k, k) for k in PEOPLE] """Sources for ~peoplesort, most important first""" VARIOUS_ARTISTS_VALUES = 'V.A.', 'various artists', 'Various Artists' """Values for ~people representing lots of people, most important last""" def decode_value(tag, value): """Returns a unicode representation of the passed value, based on the type and the tag it originated from. Not reversible. """ if isinstance(value, text_type): return value
MIGRATE = {"~#playcount", "~#laststarted", "~#lastplayed", "~#added", "~#skipcount", "~#rating", "~bookmark"} """These get migrated if a song gets reloaded""" PEOPLE = ["artist", "albumartist", "author", "composer", "~performers", "originalartist", "lyricist", "arranger", "conductor"] """Sources of the ~people tag, most important first""" INTERN_NUM_DEFAULT = {"~#lastplayed", "~#laststarted", "~#playcount", "~#skipcount", "~#length", "~#bitrate", "~#filesize"} """Default to 0""" FILESYSTEM_TAGS = {"~filename", "~basename", "~dirname"} """Values are bytes in Linux instead of unicode""" SORT_TO_TAG = dict([(v, k) for (k, v) in TAG_TO_SORT.iteritems()]) """Reverse map, so sort tags can fall back to the normal ones""" PEOPLE_SORT = [TAG_TO_SORT.get(k, k) for k in PEOPLE] """Sources for ~peoplesort, most important first""" VARIOUS_ARTISTS_VALUES = 'V.A.', 'various artists', 'Various Artists' """Values for ~people representing lots of people, most important last""" def decode_value(tag, value): """Returns a unicode representation of the passed value, based on the type and the tag it originated from. Not reversible. """