mime_types: Add audio and image types missing from Python library.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2024-06-18 14:41:37 -07:00
committed by Tim Abbott
parent f6c9b515c7
commit fb4ad1422e
6 changed files with 19 additions and 5 deletions

View File

@@ -4,7 +4,6 @@ import os
import shutil
from concurrent.futures import ProcessPoolExecutor, as_completed
from datetime import datetime, timezone
from mimetypes import guess_type
from typing import Any, Dict, List, Optional, Set, Tuple
import bmemcached
@@ -28,6 +27,7 @@ from zerver.lib.export import DATE_FIELDS, Field, Path, Record, TableData, Table
from zerver.lib.markdown import markdown_convert
from zerver.lib.markdown import version as markdown_version
from zerver.lib.message import get_last_message_id
from zerver.lib.mime_types import guess_type
from zerver.lib.push_notifications import sends_notifications_directly
from zerver.lib.remote_server import maybe_enqueue_audit_log_upload
from zerver.lib.server_initialization import create_internal_realm, server_initialized

14
zerver/lib/mime_types.py Normal file
View File

@@ -0,0 +1,14 @@
import sys
from mimetypes import add_type
from mimetypes import guess_type as guess_type
add_type("audio/flac", ".flac")
add_type("audio/mp4", ".m4a")
add_type("audio/wav", ".wav")
add_type("audio/webm", ".weba")
add_type("image/apng", ".apng")
if sys.version_info < (3, 11): # nocoverage
# https://github.com/python/cpython/issues/89802
add_type("image/avif", ".avif")
add_type("image/webp", ".webp")

View File

@@ -1,7 +1,6 @@
import logging
import os
from concurrent.futures import ProcessPoolExecutor, as_completed
from mimetypes import guess_type
import bmemcached
from django.conf import settings
@@ -9,6 +8,7 @@ from django.core.cache import cache
from django.db import connection
from zerver.lib.avatar_hash import user_avatar_path
from zerver.lib.mime_types import guess_type
from zerver.lib.upload.s3 import S3UploadBackend, upload_image_to_s3
from zerver.models import Attachment, RealmEmoji, UserProfile

View File

@@ -1,7 +1,6 @@
import io
import logging
from datetime import datetime
from mimetypes import guess_type
from typing import IO, Any, BinaryIO, Callable, Iterator, List, Optional, Tuple, Union
from urllib.parse import unquote, urljoin
@@ -10,6 +9,7 @@ from django.core.files.uploadedfile import UploadedFile
from django.utils.translation import gettext as _
from zerver.lib.exceptions import ErrorCode, JsonableError
from zerver.lib.mime_types import guess_type
from zerver.lib.outgoing_http import OutgoingSession
from zerver.lib.upload.base import ZulipUploadBackend
from zerver.models import Attachment, Message, Realm, RealmEmoji, ScheduledMessage, UserProfile

View File

@@ -2,7 +2,6 @@ import logging
import os
import secrets
from datetime import datetime
from mimetypes import guess_type
from typing import IO, Any, BinaryIO, Callable, Iterator, List, Literal, Optional, Tuple
from urllib.parse import urljoin, urlsplit, urlunsplit
@@ -14,6 +13,7 @@ from mypy_boto3_s3.service_resource import Bucket, Object
from typing_extensions import override
from zerver.lib.avatar_hash import user_avatar_path
from zerver.lib.mime_types import guess_type
from zerver.lib.upload.base import (
INLINE_MIME_TYPES,
MEDIUM_AVATAR_SIZE,

View File

@@ -2,7 +2,6 @@ import base64
import binascii
import os
from datetime import timedelta
from mimetypes import guess_type
from typing import List, Optional, Union
from urllib.parse import quote, urlsplit
@@ -28,6 +27,7 @@ from zerver.context_processors import get_valid_realm_from_request
from zerver.decorator import zulip_redirect_to_login
from zerver.lib.attachments import validate_attachment_request
from zerver.lib.exceptions import JsonableError
from zerver.lib.mime_types import guess_type
from zerver.lib.response import json_success
from zerver.lib.storage import static_path
from zerver.lib.upload import (