diff --git a/beets/mediafile.py b/beets/mediafile.py index 7b52d12ce..61f731e8d 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -434,6 +434,8 @@ class MediaFile(object): self.type = 'flac' elif type(self.mgfile).__name__ == 'OggVorbis': self.type = 'ogg' + elif type(self.mgfile).__name__ == 'MonkeysAudio': + self.type = 'ape' else: raise FileTypeError('file type %s unsupported by MediaFile' % type(self.mgfile).__name__) @@ -520,7 +522,8 @@ class MediaFile(object): mp4 = StorageStyle('trkn', packing = packing.TUPLE, pack_pos = 0), - etc = StorageStyle('tracknumber') + etc = [StorageStyle('track'), + StorageStyle('tracknumber')] ) tracktotal = MediaField(out_type = int, mp3 = StorageStyle('TRCK', diff --git a/test/rsrc/full.ape b/test/rsrc/full.ape new file mode 100644 index 000000000..5b47f23eb Binary files /dev/null and b/test/rsrc/full.ape differ diff --git a/test/test_mediafile.py b/test/test_mediafile.py index 9c76a799f..f0cfdeb36 100644 --- a/test/test_mediafile.py +++ b/test/test_mediafile.py @@ -267,6 +267,7 @@ test_files = { 'mp3': ['full', 'partial', 'min'], 'flac': ['full', 'partial', 'min'], 'ogg': ['full'], + 'ape': ['full'], } def suite():