From: yomguy <> Date: Tue, 22 Sep 2009 09:26:07 +0000 (+0000) Subject: export api is now waiting for tuples as metadata X-Git-Tag: 1.1~634 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=3c84c3b1c2c8a09b2d161d78a1038c9d37aca300;p=telemeta.git export api is now waiting for tuples as metadata --- diff --git a/telemeta/export/api.py b/telemeta/export/api.py index 2697bd46..8e8b77e1 100644 --- a/telemeta/export/api.py +++ b/telemeta/export/api.py @@ -79,7 +79,9 @@ class IExporter(Interface): 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. diff --git a/telemeta/export/flac.py b/telemeta/export/flac.py index 1c8cd289..24f2a552 100644 --- a/telemeta/export/flac.py +++ b/telemeta/export/flac.py @@ -103,11 +103,13 @@ class FlacExporter(ExporterCore): 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: diff --git a/telemeta/export/mp3.py b/telemeta/export/mp3.py index bd751c8a..03cddc34 100644 --- a/telemeta/export/mp3.py +++ b/telemeta/export/mp3.py @@ -141,13 +141,12 @@ class Mp3Exporter(ExporterCore): 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): diff --git a/telemeta/export/ogg.py b/telemeta/export/ogg.py index cc16df0c..88ce688f 100644 --- a/telemeta/export/ogg.py +++ b/telemeta/export/ogg.py @@ -115,13 +115,13 @@ class OggExporter(ExporterCore): 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):