source is the audio/video source file absolute path. For audio that
should be a WAV file
- metadata is a dictionary
+ metadata is a tuple containing tuples for each descriptor return by
+ the dc.Ressource of the item, in the model order :
+ ((name1, value1),(name2, value2),(name1, value3), ...)
The returned file path is not meant to be permanent in any way, it
should be considered temporary/volatile by the caller.
def write_tags(self, file):
media = FLAC(file)
- for tag in self.metadata.keys():
- if tag == 'COMMENT':
- media['DESCRIPTION'] = unicode(self.metadata[tag])
+ for tag in self.metadata:
+ name = tag[0]
+ value = clean_word(tag[1])
+ if name == 'COMMENT':
+ media['DESCRIPTION'] = unicode(value)
else:
- media[tag] = unicode(self.metadata[tag])
+ media[name] = unicode(value)
try:
media.save()
except:
else:
args.append('-S -c -o')
- for tag in self.metadata.keys():
- if tag in self.dub2args_dict.keys():
- arg = self.dub2args_dict[tag]
- value = clean_word(self.metadata[tag])
- args.append('--' + arg)
- args.append('"' + value + '"')
-
+ for tag in self.metadata:
+ name = tag[0]
+ value = clean_word(tag[1])
+ if name in self.dub2args_dict.keys():
+ arg = self.dub2args_dict[name]
+ args.append('--' + arg + ' "' + value + '"')
return args
def process(self, item_id, source, metadata, options=None):
else:
args.append('-Q -b '+self.bitrate_default)
- for tag in self.metadata.keys():
- value = clean_word(self.metadata[tag])
- args.append('-c %s="%s"' % (tag, value))
- if tag in self.dub2args_dict.keys():
- arg = self.dub2args_dict[tag]
+ for tag in self.metadata:
+ name = tag[0]
+ value = clean_word(tag[1])
+ args.append('-c %s="%s"' % (name, value))
+ if name in self.dub2args_dict.keys():
+ arg = self.dub2args_dict[name]
args.append('-c %s="%s"' % (arg, value))
-
return args
def process(self, item_id, source, metadata, options=None):