mglib/mglib/mime.py

47 lines
1.0 KiB
Python

import logging
from . import wrapper
from .conf import settings
logger = logging.getLogger(__name__)
class Mime(wrapper.Wrapper):
def __init__(self, filepath):
super().__init__(exec_name=settings.BINARY_FILE)
self.filepath = filepath
def get_cmd(self):
cmd = super().get_cmd()
cmd.extend(['--mime-type'])
cmd.extend(['-b'])
cmd.extend([self.filepath])
return cmd
def is_tiff(self):
return self.guess() == 'image/tiff'
def is_pdf(self):
return self.guess() == 'application/pdf'
def is_image(self):
"""
Returns true if MIME type is one of following:
* image/png
* image/jpg
"""
return self.guess() in ('image/png', 'image/jpg', 'image/jpeg')
def guess(self):
cmd = self.get_cmd()
complete = self.run(cmd)
return complete.stdout.strip()
def __str__(self):
mime_type = self.guess()
return f"Mime({self.filepath}, {mime_type})"