diff options
author | Elliot Smith <elliot.smith@intel.com> | 2015-10-06 20:05:21 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-10-11 05:33:03 +0100 |
commit | ce9011a9dea4d4f8040170c28031cfbcadfbfd81 (patch) | |
tree | 8702c96e96d90f52d208eb0ea535872ba9906cb3 /bitbake/lib | |
parent | 466bbec24250086fb014fc34649da94f78d7f00f (diff) | |
download | poky-ce9011a9dea4d4f8040170c28031cfbcadfbfd81.tar.gz |
bitbake: toaster: Use Python's mimetypes module
filemagic is used to guess the mimetype of files when a user
requests a download. However, this adds a dependency on an
external library.
Python does have a mimetypes module, though this guesses the
mimetype rather than doing anything clever with the actual
file content. But for our purposes, it's more than adequate.
(NB Django also uses this module when serving static files.)
Use this instead of relying on any external code, and remove
the filemagic dependency.
(Bitbake rev: 0dd0ac25d54c73f13812db04826b57b3d16ea43f)
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index db791cfd80..6e5815595f 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
@@ -47,19 +47,26 @@ import json | |||
47 | from os.path import dirname | 47 | from os.path import dirname |
48 | from functools import wraps | 48 | from functools import wraps |
49 | import itertools | 49 | import itertools |
50 | import mimetypes | ||
50 | 51 | ||
51 | import magic | ||
52 | import logging | 52 | import logging |
53 | 53 | ||
54 | logger = logging.getLogger("toaster") | 54 | logger = logging.getLogger("toaster") |
55 | 55 | ||
56 | class MimeTypeFinder(object): | 56 | class MimeTypeFinder(object): |
57 | _magic = magic.Magic(flags = magic.MAGIC_MIME_TYPE) | 57 | # setting this to False enables additional non-standard mimetypes |
58 | # to be included in the guess | ||
59 | _strict = False | ||
58 | 60 | ||
59 | # returns the mimetype for a file path | 61 | # returns the mimetype for a file path as a string, |
62 | # or 'application/octet-stream' if the type couldn't be guessed | ||
60 | @classmethod | 63 | @classmethod |
61 | def get_mimetype(self, path): | 64 | def get_mimetype(self, path): |
62 | return self._magic.id_filename(path) | 65 | guess = mimetypes.guess_type(path, self._strict) |
66 | guessed_type = guess[0] | ||
67 | if guessed_type == None: | ||
68 | guessed_type = 'application/octet-stream' | ||
69 | return guessed_type | ||
63 | 70 | ||
64 | # all new sessions should come through the landing page; | 71 | # all new sessions should come through the landing page; |
65 | # determine in which mode we are running in, and redirect appropriately | 72 | # determine in which mode we are running in, and redirect appropriately |