diff --git a/setup.cfg b/setup.cfg index cfd9f32..0cc7d7c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,6 +29,7 @@ install_requires = sphinx bs4 lxml + python-magic importlib-metadata; python_version<"3.8" [options.entry_points] diff --git a/zundler/embed.py b/zundler/embed.py index feff2d7..ba006a7 100644 --- a/zundler/embed.py +++ b/zundler/embed.py @@ -249,9 +249,13 @@ def embed_css_resources(css, filename): def mime_type_from_bytes(buffer): - from io import BytesIO - from sphinx.util.images import guess_mimetype_for_stream - mime_type = guess_mimetype_for_stream(BytesIO(buffer)) + try: + import magic + mime_type = magic.Magic(mime=True).from_buffer(buffer) + except Exception as e: + logger.error("Error while guessing mime type: " + str(buffer[:10]) + '...') + logger.error(str(e)) + return 'application/octet-stream' return mime_type