Gallery-Archivist/backend/utils/files.py

66 lines
1.7 KiB
Python

import mimetypes
def get_mime_type(file_path: str) -> str:
"""
Get the MIME type of a file based on the file path.
Parameters:
file_path (str): The path to the file from which to determine the MIME type.
Returns:
str: The MIME type of the file.
"""
mime_type, encoding = mimetypes.guess_type(file_path)
return mime_type
def categorize_mime_type(mime_type: str) -> str:
image_types = {
"image/jpeg",
"image/png",
"image/bmp",
"image/tiff",
"image/webp",
"image/svg+xml",
"image/heif",
"image/heic",
}
gif_types = {"image/gif"}
video_types = {
"video/mp4",
"video/mpeg",
"video/quicktime",
"video/x-msvideo",
"video/x-matroska",
"video/webm",
"video/ogg",
}
flash_types = {"application/x-shockwave-flash", "application/vnd.adobe.flash.movie"}
archive_types = {
"application/zip",
"application/x-rar-compressed",
"application/x-tar",
"application/gzip",
"application/x-7z-compressed",
"application/x-bzip2",
}
pdf_types = {"application/pdf"}
audio_types = {"audio/mpeg", "audio/wav", "audio/ogg", "audio/flac", "audio/aac"}
if mime_type in image_types:
return "image"
elif mime_type in gif_types:
return "gif"
elif mime_type in video_types:
return "video"
elif mime_type in flash_types:
return "flash"
elif mime_type in archive_types:
return "archive"
elif mime_type in pdf_types:
return "pdf"
elif mime_type in audio_types:
return "audio"
else:
return "other"