From 3c84c3b1c2c8a09b2d161d78a1038c9d37aca300 Mon Sep 17 00:00:00 2001 From: yomguy <> Date: Tue, 22 Sep 2009 09:26:07 +0000 Subject: [PATCH] export api is now waiting for tuples as metadata --- telemeta/export/api.py | 4 +++- telemeta/export/flac.py | 10 ++++++---- telemeta/export/mp3.py | 13 ++++++------- telemeta/export/ogg.py | 12 ++++++------ 4 files changed, 21 insertions(+), 18 deletions(-) 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): -- 2.39.5