markdown: Use re-exported guess_type to ensure adding EXTRA_MIME_TYPES.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2025-10-08 12:54:49 -07:00
committed by Tim Abbott
parent 66466760a0
commit b8f8056f56
2 changed files with 14 additions and 2 deletions

View File

@@ -52,6 +52,19 @@ rules:
languages: [python] languages: [python]
severity: ERROR severity: ERROR
- id: use-wrapped-mimetypes
pattern-either:
- pattern: mimetypes.guess_type
- pattern: mimetypes.guess_file_type
- pattern: mimetypes.guess_all_extensions
- pattern: mimetypes.guess_extension
message: Use zerver.lib.mime_types (to ensure our EXTRA_MIME_TYPES are added)
languages: [python]
severity: ERROR
paths:
exclude:
- zerver/lib/mime_types.py
- id: dont-import-models-in-migrations - id: dont-import-models-in-migrations
patterns: patterns:
- pattern-not: from zerver.lib.migrate import $X - pattern-not: from zerver.lib.migrate import $X

View File

@@ -1,7 +1,6 @@
# Zulip's main Markdown implementation. See docs/subsystems/markdown.md for # Zulip's main Markdown implementation. See docs/subsystems/markdown.md for
# detailed documentation on our Markdown syntax. # detailed documentation on our Markdown syntax.
import logging import logging
import mimetypes
import re import re
import time import time
from collections import deque from collections import deque
@@ -1032,7 +1031,7 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor):
if not self.zmd.image_preview_enabled: if not self.zmd.image_preview_enabled:
return False return False
url_type = mimetypes.guess_type(url)[0] url_type = guess_type(url)[0]
# Support only video formats (containers) that are supported cross-browser and cross-device. As per # Support only video formats (containers) that are supported cross-browser and cross-device. As per
# https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#index_of_media_container_formats_file_types # https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#index_of_media_container_formats_file_types
# MP4 and WebM are the only formats that are widely supported. # MP4 and WebM are the only formats that are widely supported.