Exemplo n.º 1
0
Arquivo: asf.py Projeto: nkoep/blaplay
    def _save(self):
        try:
            audio = _Asf(self.uri)
            tags = audio.tags
        except (IOError, AsfError):
            return False

        try:
            for tag in self._deleted_tags:
                try:
                    del audio[tag]
                except KeyError:
                    pass
            self._deleted_tags.clear()
        except AttributeError:
            pass

        for identifier in self.keys_tags():
            try:
                values = self.get(identifier)
                if not values:
                    raise KeyError
            except KeyError:
                continue

            try:
                tag = self.__literal_to_tag[identifier]
            except KeyError:
                tag = identifier
            tags[tag] = values

        audio.save()
        return True
Exemplo n.º 2
0
Arquivo: asf.py Projeto: nkoep/blaplay
    def _read_tags(self):
        try:
            audio = _Asf(self.uri)
        except AsfError:
            raise TagParseError

        for key, values in (audio.tags or {}).iteritems():
            try:
                values = map(unicode, values)
                self[self.__tag_to_literal[key]] = values
            except UnicodeDecodeError:
                pass
            except KeyError:
                self[key] = values

        self._parse_info(audio.info)
        self[FORMAT] = "WMA"
        self[ENCODING] = "lossy"