-# XXX other things should usue this; flac files, for example, should
-# get PART as part of the filelname, same as mp3s.
-class Tags(object):
- def __init__(self):
- self._global = {}
- self._tags = {}
- def __len__(self):
- # All files have at least one track.
- return max(1, len(self._tags))
- def get(self, key, track=None):
- key = key.upper()
- try:
- try:
- return self._tags[track][key]
- except KeyError:
- return self._global[key]
- except KeyError:
- return None
- def gets(self, key, track=None):
- value = self.get(key, track)
- if value == None:
- return None
- return '\n'.join(value)
- def set(self, key, value, track=None):
- key = key.upper()
- if track == None:
- tags = self._global
- else:
- try:
- tags = self._tags[track]
- except KeyError:
- tags = self._tags[track] = {}
- if key not in tags:
- tags[key] = []
- tags[key].append(value)
-