mirror of
https://github.com/fergalmoran/picard.git
synced 2026-01-08 09:33:59 +00:00
Refactor: More DRY formats implementations
This commit is contained in:
committed by
Laurent Monin
parent
b0217ee946
commit
8a4ceded69
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."""
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user