##// END OF EJS Templates
Use python-magic to get file types
neko259 -
r1369:224c8f01 default
parent child Browse files
Show More
@@ -1,3 +1,5 b''
1 import magic
2
1 3 from django.db import models
2 4
3 5 from boards import utils
@@ -15,7 +17,8 b' class AttachmentManager(models.Manager):'
15 17 if len(existing) > 0:
16 18 attachment = existing[0]
17 19 else:
18 file_type = file.name.split(FILE_EXTENSION_DELIMITER)[-1].lower()
20 file_type = magic.from_buffer(file.chunks().__next__(), mime=True)\
21 .decode().split('/')[-1]
19 22 attachment = Attachment.objects.create(
20 23 file=file, mimetype=file_type, hash=file_hash)
21 24
@@ -128,10 +128,14 b' def validate_file_size(size: int):'
128 128
129 129 def get_upload_filename(model_instance, old_filename):
130 130 # TODO Use something other than random number in file name
131 if hasattr(model_instance, 'file_type'):
132 extension = model_instance.file_type
133 else:
134 extension = old_filename.split(FILE_EXTENSION_DELIMITER)[-1:][0]
131 135 new_name = '{}{}.{}'.format(
132 136 str(int(time.mktime(time.gmtime()))),
133 137 str(int(random() * 1000)),
134 old_filename.split(FILE_EXTENSION_DELIMITER)[-1:][0])
138 extension)
135 139
136 140 directory = UPLOAD_DIRS[type(model_instance).__name__]
137 141
@@ -1,3 +1,4 b''
1 magic
1 2 pytube
2 3 requests
3 4 adjacent
General Comments 0
You need to be logged in to leave comments. Login now