From 2ab50a6e764cf71bfdc831dfaa80887e8f8cb3ef Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 6 Mar 2013 13:11:14 +0100 Subject: Heavy refactoring of mutagen-powered formats --- MAT/audio.py | 74 ++++++++++++++---------------------------------------------- 1 file changed, 17 insertions(+), 57 deletions(-) (limited to 'MAT/audio.py') diff --git a/MAT/audio.py b/MAT/audio.py index ed849ee..4df33dd 100644 --- a/MAT/audio.py +++ b/MAT/audio.py @@ -1,15 +1,15 @@ ''' Care about audio fileformat ''' + try: from mutagen.flac import FLAC from mutagen.oggvorbis import OggVorbis except ImportError: pass - import parser -import shutil +import mutagenpowered class MpegAudioStripper(parser.GenericParser): @@ -17,84 +17,44 @@ class MpegAudioStripper(parser.GenericParser): Represent mpeg audio file (mp3, ...) ''' def _should_remove(self, field): - if field.name in ("id3v1", "id3v2"): - return True - else: - return False + return field.name in ("id3v1", "id3v2") -class OggStripper(parser.GenericParser): +class OggStripper(mutagenpowered.MutagenStripper): ''' Represent an ogg vorbis file ''' - def remove_all(self): - if self.backup is True: - shutil.copy2(self.filename, self.output) - self.filename = self.output - - mfile = OggVorbis(self.filename) - mfile.delete() - mfile.save() - return True - - def is_clean(self): - ''' - Check if the "metadata" block is present in the file - ''' - mfile = OggVorbis(self.filename) - if mfile.tags == []: - return True - else: - return False - - def get_meta(self): - ''' - Return the content of the metadata block if present - ''' - metadata = {} - mfile = OggVorbis(self.filename) - for key, value in mfile.tags: - metadata[key] = value - return metadata + def _create_mfile(self): + self.mfile = OggVorbis(self.filename) -class FlacStripper(parser.GenericParser): +class FlacStripper(mutagenpowered.MutagenStripper): ''' Represent a Flac audio file ''' + def _create_mfile(self): + self.mfile = FLAC(self.filename) + 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.clear_pictures() - mfile.save() + super(FlacStripper, self).remove_all() + self.mfile.clear_pictures() + self.mfile.save() return True def is_clean(self): ''' Check if the "metadata" block is present in the file ''' - mfile = FLAC(self.filename) - if mfile.tags is None and mfile.pictures == []: - return True - else: - return False + return super(FlacStripper, self).is_clean() and not self.mfile.pictures def get_meta(self): ''' Return the content of the metadata block if present ''' - metadata = {} - mfile = FLAC(self.filename) - if mfile.tags is not None: - if mfile.pictures != []: - metadata['picture :'] = 'yes' - for key, value in mfile.tags: - metadata[key] = value + metadata = super(FlacStripper, self).get_meta() + if self.mfile.pictures: + metadata['picture:'] = 'yes' return metadata -- cgit v1.3