diff --git a/.gitignore b/.gitignore index e146528..66273be 100644 --- a/.gitignore +++ b/.gitignore @@ -91,4 +91,6 @@ ENV/ # Secret files (for credentials used in testing) *.secret pytooter_clientcred.txt -pytooter_usercred.txt \ No newline at end of file +pytooter_usercred.txtPipfile +Pipfile.lock +Pipfile diff --git a/mastodon/Mastodon.py b/mastodon/Mastodon.py index e6d8268..a2035c9 100644 --- a/mastodon/Mastodon.py +++ b/mastodon/Mastodon.py @@ -31,6 +31,11 @@ try: except ImportError: from urlparse import urlparse +try: + import magic +except ImportError: + magic = None + ### # Version check functions, including decorator and parser ### @@ -2529,3 +2534,11 @@ class MastodonRatelimitError(MastodonError): class MastodonMalformedEventError(MastodonError): """Raised when the server-sent event stream is malformed""" pass + +def guess_type(media_file): + mime_type = None + if magic: + mime_type = magic.from_file(media_file, mime=True) + else: + mime_type = mimetypes.guess_type(media_file)[0] + return mime_type diff --git a/setup.py b/setup.py index e49c26c..009063d 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,8 @@ setup(name='Mastodon.py', 'requests', 'python-dateutil', 'six', - 'pytz', + 'pytz', + 'python-magic', 'decorator>=4.0.0', 'http_ece>=1.0.5', 'cryptography>=1.6.0'