From af36529554c39a2eefcc2c8723715e2d25b401b8 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sun, 8 Jun 2014 13:39:18 +0200 Subject: Rename the MAT folder to libmat. This commit fixes some issues for dump operating systems who doesn't handle capitalization. --- libmat/audio.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 libmat/audio.py (limited to 'libmat/audio.py') diff --git a/libmat/audio.py b/libmat/audio.py new file mode 100644 index 0000000..dae9d75 --- /dev/null +++ b/libmat/audio.py @@ -0,0 +1,53 @@ +''' Care about audio fileformat +''' + +try: + from mutagen.flac import FLAC + from mutagen.oggvorbis import OggVorbis +except ImportError: + pass + +import parser +import mutagenstripper + + +class MpegAudioStripper(parser.GenericParser): + ''' Represent mpeg audio file (mp3, ...) + ''' + def _should_remove(self, field): + return field.name in ("id3v1", "id3v2") + + +class OggStripper(mutagenstripper.MutagenStripper): + ''' Represent an ogg vorbis file + ''' + def _create_mfile(self): + self.mfile = OggVorbis(self.filename) + + +class FlacStripper(mutagenstripper.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 + ''' + 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 + ''' + 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 = super(FlacStripper, self).get_meta() + if self.mfile.pictures: + metadata['picture:'] = 'yes' + return metadata -- cgit v1.3