from os.path import dirname
from functools import wraps
import itertools
+import mimetypes
-import magic
import logging
logger = logging.getLogger("toaster")
class MimeTypeFinder(object):
- _magic = magic.Magic(flags = magic.MAGIC_MIME_TYPE)
+ # setting this to False enables additional non-standard mimetypes
+ # to be included in the guess
+ _strict = False
- # returns the mimetype for a file path
+ # returns the mimetype for a file path as a string,
+ # or 'application/octet-stream' if the type couldn't be guessed
@classmethod
def get_mimetype(self, path):
- return self._magic.id_filename(path)
+ guess = mimetypes.guess_type(path, self._strict)
+ guessed_type = guess[0]
+ if guessed_type == None:
+ guessed_type = 'application/octet-stream'
+ return guessed_type
# all new sessions should come through the landing page;
# determine in which mode we are running in, and redirect appropriately