Fix #1165: Fixed broken mimetype detection during import

This commit is contained in:
Agate 2020-06-21 16:21:16 +02:00
parent 08e9469163
commit 989f66315b
No known key found for this signature in database
GPG Key ID: 6B501DFD73514E14
3 changed files with 14 additions and 7 deletions

View File

@ -874,7 +874,7 @@ class Upload(models.Model):
if self.audio_file:
self.mimetype = utils.guess_mimetype(self.audio_file)
elif self.source and self.source.startswith("file://"):
self.mimetype = mimetypes.guess_type(self.source)[0]
self.mimetype = utils.guess_mimetype_from_name(self.source)
if not self.size and self.audio_file:
self.size = self.audio_file.size
if not self.checksum:

View File

@ -18,12 +18,18 @@ def guess_mimetype(f):
b = min(1000000, f.size)
t = magic.from_buffer(f.read(b), mime=True)
if not t.startswith("audio/"):
# failure, we try guessing by extension
mt, _ = mimetypes.guess_type(f.name)
if mt:
t = mt
else:
t = EXTENSION_TO_MIMETYPE.get(f.name.split(".")[-1])
t = guess_mimetype_from_name(f.name)
return t
def guess_mimetype_from_name(name):
# failure, we try guessing by extension
mt, _ = mimetypes.guess_type(name)
if mt:
t = mt
else:
t = EXTENSION_TO_MIMETYPE.get(name.split(".")[-1])
return t

View File

@ -0,0 +1 @@
Fixed broken mimetype detection during import (#1165)