Add support for wav files
This commit is contained in:
parent
693408f1a6
commit
ee704db2ff
@ -6,7 +6,7 @@ from typing import Dict, Union
|
||||
|
||||
import mutagen
|
||||
|
||||
from . import abstract, parser_factory
|
||||
from . import abstract, parser_factory, video
|
||||
|
||||
|
||||
class MutagenParser(abstract.AbstractParser):
|
||||
@ -77,3 +77,14 @@ class FLACParser(MutagenParser):
|
||||
meta[name] = p.get_meta() if p else 'harmful data' # type: ignore
|
||||
os.remove(fname)
|
||||
return meta
|
||||
|
||||
|
||||
class WAVParser(video.AbstractFFmpegParser):
|
||||
mimetypes = {'audio/x-wav', }
|
||||
meta_allowlist = {'AvgBytesPerSec', 'BitsPerSample', 'Directory',
|
||||
'Duration', 'Encoding', 'ExifToolVersion',
|
||||
'FileAccessDate', 'FileInodeChangeDate',
|
||||
'FileModifyDate', 'FileName', 'FilePermissions',
|
||||
'FileSize', 'FileType', 'FileTypeExtension',
|
||||
'MIMEType', 'NumChannels', 'SampleRate', 'SourceFile',
|
||||
}
|
||||
|
BIN
tests/data/dirty.wav
Normal file
BIN
tests/data/dirty.wav
Normal file
Binary file not shown.
@ -127,6 +127,11 @@ class TestGetMeta(unittest.TestCase):
|
||||
self.assertEqual(meta['Model'], 'C7070WZ')
|
||||
self.assertEqual(meta['ModifyDate'], '2005:12:26 17:09:35')
|
||||
|
||||
def test_wav(self):
|
||||
p = audio.WAVParser('./tests/data/dirty.wav')
|
||||
meta = p.get_meta()
|
||||
self.assertEqual(meta['Artist'], 'jvoisin')
|
||||
|
||||
def test_mp3(self):
|
||||
p = audio.MP3Parser('./tests/data/dirty.mp3')
|
||||
meta = p.get_meta()
|
||||
@ -301,6 +306,11 @@ class TestCleaning(unittest.TestCase):
|
||||
'parser': images.JPGParser,
|
||||
'meta': {'Comment': 'Created with GIMP'},
|
||||
'expected_meta': {},
|
||||
}, {
|
||||
'name': 'wav',
|
||||
'parser': audio.WAVParser,
|
||||
'meta': {'Comment': 'Zomg, a comment!'},
|
||||
'expected_meta': {},
|
||||
}, {
|
||||
'name': 'mp3',
|
||||
'parser': audio.MP3Parser,
|
||||
|
Loading…
Reference in New Issue
Block a user