Esempio n. 1
0
    def write(self,data):
        failed = []
        data = dictools.make_keys_upper(data)


        try: 
            mutagen_tag = mutagen_modules[self.file_type](self.filename)
            new_tag = False
        except:
            new_tag = True
            mutagen_tag = mutagen_modules[self.file_type](self.filename)

        for item in data.keys():
            try:
                frame = self.frames[item]
                mutagen_tag[frame] = unicode(data[item])
                if not new_tag:
                    mutagen_tag.save()
                else: 
                    mutagen_tag.save(self.filename)
            except KeyError:
                failed.append(item)
        return failed
Esempio n. 2
0
    def write(self, data):

        failed = []
        data = dictools.make_keys_upper(data)

        try:
            mutagen_tag = mutagen.id3.ID3(self.filename)
            new_tag = False
        except:
            new_tag = True
            mutagen_tag = mutagen.id3.ID3()

        for item in data.keys():
            try:
                frame = frames[item]
                encoding = frame[3]
                args = []
                for argument in frame[2]:
                    if argument == "text":
                        args.append("text='{0}'".format(unicode(str(data[item])), encodings[encoding]))
                    if argument == "desc":
                        user_frame = frames[item][4].replace("$LIBRARYID$", str(self.user_id))
                        args.append("desc='{0}'".format(unicode(user_frame)))
                    if argument == "lang":
                        args.append("lang='{0}'".format(unicode("eng")))
                code = "mutagen_tag.add(mutagen.id3." + frame[0] + "(encoding=" + str(encoding)
                for argument in args:
                    code += ", " + argument
                code += "))"
                exec(code)
                if not new_tag:
                    mutagen_tag.save()
                else:
                    mutagen_tag.save(self.filename)
            except KeyError:
                failed.append(item)
        return failed