From e239c9e1ded521acb8b025701bc3d3b5a6084e37 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 26 Jul 2011 21:53:41 +0200 Subject: Add support for Flac fileformat --- lib/audio.py | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/audio.py b/lib/audio.py index d146fad..55562cc 100644 --- a/lib/audio.py +++ b/lib/audio.py @@ -1,9 +1,14 @@ -import parser +''' + Care about audio fileformat +''' +from mutagen.flac import FLAC +import parser +import shutil class MpegAudioStripper(parser.GenericParser): ''' - mpeg audio file (mp3, ...) + Represent mpeg audio file (mp3, ...) ''' def _should_remove(self, field): if field.name in ("id3v1", "id3v2"): @@ -12,4 +17,39 @@ class MpegAudioStripper(parser.GenericParser): return False class FlacStripper(parser.GenericParser): - pass + ''' + Represent a Flac audio file + ''' + def remove_all(self): + ''' + Remove the "metadata" block from the file + ''' + if self.backup is True: + shutil.copy2(self.filename, self.output) + self.filename = self.output + + mfile = FLAC(self.filename) + mfile.delete() + mfile.save() + + def is_clean(self): + ''' + Check if the "metadata" block is present in the file + ''' + mfile = FLAC(self.filename) + if mfile.tags is None: + return True + else: + return False + + def get_meta(self): + ''' + Return the content of the metadata block if present + ''' + metadata = {} + mfile = FLAC(self.filename) + if mfile.tags is None: + return metadata + for key, value in mfile.tags: + metadata[key] = value + return metadata -- cgit v1.3