From e073f6972c322ac53f974029f0916fe644b09cbe Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 20 Sep 2020 14:01:29 +0300 Subject: [PATCH] Make magic optional --- sticker/pack.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sticker/pack.py b/sticker/pack.py index a91c986..48b6dee 100644 --- a/sticker/pack.py +++ b/sticker/pack.py @@ -5,13 +5,18 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. from typing import Dict, Optional from hashlib import sha256 +import mimetypes import argparse import os.path import asyncio import string import json -import magic +try: + import magic +except ImportError: + print("[Warning] Magic is not installed, using file extensions to guess mime types") + magic = None from .lib import matrix, util @@ -31,7 +36,11 @@ async def upload_sticker(file: str, directory: str, old_stickers: Dict[str, matr path = os.path.join(directory, file) if not os.path.isfile(path): return None - mime = magic.from_file(path, mime=True) + + if magic: + mime = magic.from_file(path, mime=True) + else: + mime, _ = mimetypes.guess_type(file) if not mime.startswith("image/"): return None