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
|
import mutagen
|
||||||
|
|
||||||
from . import abstract, parser_factory
|
from . import abstract, parser_factory, video
|
||||||
|
|
||||||
|
|
||||||
class MutagenParser(abstract.AbstractParser):
|
class MutagenParser(abstract.AbstractParser):
|
||||||
@ -77,3 +77,14 @@ class FLACParser(MutagenParser):
|
|||||||
meta[name] = p.get_meta() if p else 'harmful data' # type: ignore
|
meta[name] = p.get_meta() if p else 'harmful data' # type: ignore
|
||||||
os.remove(fname)
|
os.remove(fname)
|
||||||
return meta
|
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['Model'], 'C7070WZ')
|
||||||
self.assertEqual(meta['ModifyDate'], '2005:12:26 17:09:35')
|
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):
|
def test_mp3(self):
|
||||||
p = audio.MP3Parser('./tests/data/dirty.mp3')
|
p = audio.MP3Parser('./tests/data/dirty.mp3')
|
||||||
meta = p.get_meta()
|
meta = p.get_meta()
|
||||||
@ -301,6 +306,11 @@ class TestCleaning(unittest.TestCase):
|
|||||||
'parser': images.JPGParser,
|
'parser': images.JPGParser,
|
||||||
'meta': {'Comment': 'Created with GIMP'},
|
'meta': {'Comment': 'Created with GIMP'},
|
||||||
'expected_meta': {},
|
'expected_meta': {},
|
||||||
|
}, {
|
||||||
|
'name': 'wav',
|
||||||
|
'parser': audio.WAVParser,
|
||||||
|
'meta': {'Comment': 'Zomg, a comment!'},
|
||||||
|
'expected_meta': {},
|
||||||
}, {
|
}, {
|
||||||
'name': 'mp3',
|
'name': 'mp3',
|
||||||
'parser': audio.MP3Parser,
|
'parser': audio.MP3Parser,
|
||||||
|
Loading…
Reference in New Issue
Block a user