Refactor: More DRY formats implementations

This commit is contained in:
Philipp Wolfer
2018-09-13 14:46:28 +02:00
committed by Laurent Monin
parent b0217ee946
commit 8a4ceded69
5 changed files with 10 additions and 48 deletions

View File

@@ -63,6 +63,8 @@ class File(QtCore.QObject, Item):
metadata_images_changed = QtCore.pyqtSignal()
NAME = None
UNDEFINED = -1
PENDING = 0
NORMAL = 1
@@ -549,7 +551,10 @@ class File(QtCore.QObject, Item):
metadata['~channels'] = file.info.channels
if hasattr(file.info, 'bits_per_sample') and file.info.bits_per_sample:
metadata['~bits_per_sample'] = file.info.bits_per_sample
metadata['~format'] = self.__class__.__name__.replace('File', '')
if self.NAME:
metadata['~format'] = self.NAME
else:
metadata['~format'] = self.__class__.__name__.replace('File', '')
self._add_path_to_metadata(metadata)
def _add_path_to_metadata(self, metadata):

View File

@@ -253,10 +253,6 @@ class WavPackFile(APEv2File):
NAME = "WavPack"
_File = mutagen.wavpack.WavPack
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
def _save_and_rename(self, old_filename, metadata):
"""Includes an additional check for WavPack correction files"""
wvc_filename = old_filename.replace(".wv", ".wvc")
@@ -292,10 +288,6 @@ class MonkeysAudioFile(APEv2File):
NAME = "Monkey's Audio"
_File = mutagen.monkeysaudio.MonkeysAudio
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
class TAKFile(APEv2File):
@@ -303,7 +295,3 @@ class TAKFile(APEv2File):
EXTENSIONS = [".tak"]
NAME = "Tom's lossless Audio Kompressor"
_File = tak.TAK
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME

View File

@@ -598,7 +598,7 @@ class MP3File(ID3File):
_File = mutagen.mp3.MP3
def _get_file(self, filename):
return mutagen.mp3.MP3(filename, ID3=compatid3.CompatID3)
return self._File(filename, ID3=compatid3.CompatID3)
def _info(self, metadata, file):
super()._info(metadata, file)
@@ -616,11 +616,7 @@ class TrueAudioFile(ID3File):
_File = mutagen.trueaudio.TrueAudio
def _get_file(self, filename):
return mutagen.trueaudio.TrueAudio(filename, ID3=compatid3.CompatID3)
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
return self._File(filename, ID3=compatid3.CompatID3)
class DSFFile(ID3File):
@@ -631,11 +627,7 @@ class DSFFile(ID3File):
_File = mutagen.dsf.DSF
def _get_file(self, filename):
return mutagen.dsf.DSF(filename, known_frames=compatid3.known_frames)
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
return self._File(filename, known_frames=compatid3.known_frames)
def _get_tags(self, filename):
file = self._get_file(filename)
@@ -667,6 +659,3 @@ class AiffFile(DSFFile):
EXTENSIONS = [".aiff", ".aif", ".aifc"]
NAME = "Audio Interchange File Format (AIFF)"
_File = mutagen.aiff.AIFF
def _get_file(self, filename):
return mutagen.aiff.AIFF(filename, known_frames=compatid3.known_frames)

View File

@@ -298,10 +298,6 @@ class OggFLACFile(VCommentFile):
NAME = "Ogg FLAC"
_File = mutagen.oggflac.OggFLAC
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
class OggSpeexFile(VCommentFile):
@@ -310,10 +306,6 @@ class OggSpeexFile(VCommentFile):
NAME = "Speex"
_File = mutagen.oggspeex.OggSpeex
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
class OggTheoraFile(VCommentFile):
@@ -322,10 +314,6 @@ class OggTheoraFile(VCommentFile):
NAME = "Ogg Theora"
_File = mutagen.oggtheora.OggTheora
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
class OggVorbisFile(VCommentFile):
@@ -334,10 +322,6 @@ class OggVorbisFile(VCommentFile):
NAME = "Ogg Vorbis"
_File = mutagen.oggvorbis.OggVorbis
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
class OggOpusFile(VCommentFile):
@@ -346,10 +330,6 @@ class OggOpusFile(VCommentFile):
NAME = "Ogg Opus"
_File = mutagen.oggopus.OggOpus
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
def OggAudioFile(filename):
"""Generic Ogg audio file."""

View File

@@ -37,7 +37,7 @@ class WAVFile(File):
metadata['~bits_per_sample'] = f.getsampwidth() * 8
metadata['~sample_rate'] = f.getframerate()
metadata.length = 1000 * f.getnframes() // f.getframerate()
metadata['~format'] = 'Microsoft WAVE'
metadata['~format'] = self.NAME
self._add_path_to_metadata(metadata)
return metadata