zulip/zerver/lib
Alex Vandiver 9a1f78db22 thumbnail: Support checking for images from streaming sources.
We may not always have trivial access to all of the bytes of the
uploaded file -- for instance, if the file was uploaded previously, or
by some other process.  Downloading the entire image in order to check
its headers is an inefficient use of time and bandwidth.

Adjust `maybe_thumbnail` and dependencies to potentially take a
`pyvips.Source` which supports streaming data from S3 or disk.  This
allows making the ImageAttachment row, if deemed appropriate, based on
only a few KB of data, and not the entire image.
2024-09-17 12:51:30 -07:00
..
markdown mention: Handle mentioning deactivated user groups. 2024-09-11 09:43:56 -07:00
upload thumbnail: Support checking for images from streaming sources. 2024-09-17 12:51:30 -07:00
url_preview ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
webhooks integrations: Add support for release events to GitLab integration. 2024-09-16 09:26:20 -07:00
__init__.py
addressee.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
alert_words.py alert_words: Update remove_alert_word codepath to send event on commit. 2024-07-31 22:33:52 -07:00
async_utils.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
attachments.py upload: Explicitly return a bool and the Attachment object. 2024-09-09 12:40:17 -07:00
avatar.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
avatar_hash.py avatars: Encode version into the filename. 2024-07-07 14:40:07 -07:00
bot_config.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
bot_lib.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
bot_storage.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
bulk_create.py audit-log: Move user group event types to AuditLogEventType enum. 2024-09-09 11:50:13 -07:00
cache.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
cache_helpers.py mypy: Remove use of ValuesQuerySet and QuerySetAny. 2024-08-24 17:30:41 -07:00
camo.py
ccache.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
compatibility.py ruff: Fix PLR6104 Use `+=` to perform an augmented assignment directly. 2024-07-14 13:49:51 -07:00
context_managers.py ruff: Fix SIM117 Use a single `with` statement with multiple contexts. 2024-07-14 13:48:32 -07:00
create_user.py user_profile: Remove 'tutorial_status' field. 2024-08-15 13:31:40 -07:00
data_types.py ruff: Fix UP038 Use `X | Y` in `isinstance` call instead of `(X, Y)`. 2024-07-13 22:28:22 -07:00
db.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
db_connections.py db: Split reset_queries into a new module zerver.lib.db_connections. 2024-04-17 16:49:03 -07:00
debug.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
default_streams.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
dev_ldap_directory.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
digest.py audit-log: Move subscription event types to AuditLogEventType enum. 2024-09-09 11:50:13 -07:00
display_recipient.py mypy: Remove use of ValuesQuerySet and QuerySetAny. 2024-08-24 17:30:41 -07:00
domains.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
drafts.py drafts: Update do_delete_draft to send event on commit. 2024-08-12 12:16:14 -07:00
email_mirror.py upload: Provide the frontend with the less-modified filename. 2024-09-09 12:40:17 -07:00
email_mirror_helpers.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
email_notifications.py ruff: Bump target-version from py38 to py310. 2024-07-13 22:28:22 -07:00
email_validation.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
emoji.py emoji: Use a non-predictable filename. 2024-07-12 13:26:47 -07:00
emoji_utils.py emoji: Match emoji sequences in markdown. 2023-08-23 16:18:15 -07:00
event_schema.py user_groups: Add `creator` and `date_created` field in user groups. 2024-09-13 18:44:58 -07:00
events.py settings: Remove `delete_own_message_policy` realm property. 2024-09-12 09:36:02 -07:00
exceptions.py exceptions: Add new error class to be used for invalid parameter values. 2024-07-19 09:24:54 -07:00
export.py user_groups: Add `creator` and `date_created` field in user groups. 2024-09-13 18:44:58 -07:00
external_accounts.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
fix_unreads.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
generate_test_data.py ruff: Fix PLR6104 Use `+=` to perform an augmented assignment directly. 2024-07-14 13:49:51 -07:00
github.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
home.py presence: Add history_limit_days param to the API. 2024-09-10 13:15:35 -07:00
html_diff.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
html_to_text.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
i18n.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
import_realm.py user_groups: Add `creator` and `date_created` field in user groups. 2024-09-13 18:44:58 -07:00
initial_password.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
integrations.py integration-docs: Update Open Collective for new doc format. 2024-08-15 13:16:14 -07:00
invites.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
logging_util.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
management.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
mdiff.py
mention.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
message.py mypy: Remove use of ValuesQuerySet and QuerySetAny. 2024-08-24 17:30:41 -07:00
message_cache.py edit_history: Remove 'prev_rendered_content_version' field. 2024-08-29 15:37:12 -07:00
migrate.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
mime_types.py emoji: Derive the file extension from a limited set of content-types. 2024-07-12 13:26:47 -07:00
mobile_auth_otp.py ruff: Fix B905 `zip()` without an explicit `strict=` parameter. 2024-07-13 22:28:22 -07:00
muted_users.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
name_restrictions.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
narrow.py message_fetch: Convert module to TypeScript. 2024-08-23 13:34:13 -07:00
narrow_helpers.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
narrow_predicate.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
notes.py ruff: Fix FURB180 Use of `metaclass=abc.ABCMeta`. 2024-07-14 13:53:40 -07:00
notification_data.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
onboarding.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
onboarding_steps.py user_profile: Remove 'tutorial_status' field. 2024-08-15 13:31:40 -07:00
outgoing_http.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
outgoing_webhook.py ruff: Fix FURB180 Use of `metaclass=abc.ABCMeta`. 2024-07-14 13:53:40 -07:00
partial.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
per_request_cache.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
presence.py presence: Add history_limit_days param to the API. 2024-09-10 13:15:35 -07:00
profile.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
push_notifications.py settings: Rework how push notifications service is configured. 2024-07-17 17:14:06 -07:00
pysa.py
query_helpers.py mypy: Remove use of ValuesQuerySet and QuerySetAny. 2024-08-24 17:30:41 -07:00
queue.py ruff: Fix FURB180 Use of `metaclass=abc.ABCMeta`. 2024-07-14 13:53:40 -07:00
rate_limiter.py ruff: Fix B905 `zip()` without an explicit `strict=` parameter. 2024-07-13 22:28:22 -07:00
realm_description.py
realm_icon.py
realm_logo.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
recipient_parsing.py scheduled_messages: Migrate to typed_endpoint. 2024-08-20 10:03:22 -07:00
recipient_users.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
redis_utils.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
remote_server.py settings: Rework how push notifications service is configured. 2024-07-17 17:14:06 -07:00
request.py endpoints: Remove the has_request_variables decorator. 2024-09-05 16:02:12 -07:00
response.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
rest.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
retention.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
safe_session_cached_db.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
scheduled_messages.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
scim.py scim: Extract ROLE_TYPE_TO_NAME dict to UserProfile. 2024-08-20 11:53:24 -07:00
scim_filter.py zerver: Replace uri with url in local variables and comments. 2024-07-14 22:30:28 -07:00
send_email.py custom_email: Add manage_preferences block to the plaintext version. 2024-09-10 09:36:56 -07:00
server_initialization.py settings: Add `can_delete_own_message_group` realm setting. 2024-09-12 09:36:02 -07:00
sessions.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
singleton_bmemcached.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
soft_deactivation.py audit-log: Move subscription event types to AuditLogEventType enum. 2024-09-09 11:50:13 -07:00
sounds.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
sqlalchemy_utils.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
storage.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
stream_color.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
stream_subscription.py mypy: Remove use of ValuesQuerySet and QuerySetAny. 2024-08-24 17:30:41 -07:00
stream_topic.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
stream_traffic.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
streams.py audit-log: Move stream/channel event types to AuditLogEventType enum. 2024-09-09 11:50:13 -07:00
string_validation.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
subdomains.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
subscription_info.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
templates.py ruff: Fix FURB154 Use of repeated consecutive `global`, `nonlocal`. 2024-07-14 13:53:18 -07:00
test_classes.py upload: Provide the frontend with the less-modified filename. 2024-09-09 12:40:17 -07:00
test_console_output.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
test_data.source.txt
test_fixtures.py ruff: Fix FURB142 Use of set.add() in a for loop. 2024-07-14 13:52:59 -07:00
test_helpers.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
test_runner.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
tex.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
thumbnail.py thumbnail: Support checking for images from streaming sources. 2024-09-17 12:51:30 -07:00
timeout.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
timestamp.py python: Consistently use from…import for datetime. 2023-12-05 12:01:18 -08:00
timezone.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
topic.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
topic_sqlalchemy.py narrow: Migrate legacy SQLAlchemy select syntax. 2024-07-16 14:50:30 -07:00
transfer.py upload: Rename "upload_image_to_s3"; it is not only for images. 2024-09-09 12:40:17 -07:00
typed_endpoint.py endpoints: Remove the has_request_variables decorator. 2024-09-05 16:02:12 -07:00
typed_endpoint_validators.py user_settings: Migrate to typed_endpoint. 2024-07-31 17:10:06 -07:00
types.py endpoints: Modify comments mentioning has_request_variables and REQ. 2024-09-05 16:02:12 -07:00
url_decoding.py url_decoding: Add 'is_same_server_message_link' function. 2024-06-17 10:42:32 -07:00
url_encoding.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
url_redirects.py docs: Update help center links for stream to channel rename. 2024-08-27 13:30:28 -07:00
user_agent.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
user_counts.py ruff: Fix UP006 Use `list` instead of `List` for type annotation. 2024-07-13 22:28:22 -07:00
user_groups.py user_groups: Add `creator` and `date_created` field in user groups. 2024-09-13 18:44:58 -07:00
user_message.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
user_status.py ruff: Fix UP007 Use `X | Y` for type annotations. 2024-07-13 22:28:22 -07:00
user_topics.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
users.py users: Allow zero-width-joiners in user names. 2024-09-03 16:34:55 -07:00
utils.py ruff: Fix UP035 Import from `collections.abc`, `typing` instead. 2024-07-13 22:28:22 -07:00
validator.py endpoints: Remove the has_request_variables decorator. 2024-09-05 16:02:12 -07:00
widget.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
zcommand.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
zephyr.py python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
zulip_update_announcements.py audit-log: Move realm event types to AuditLogEventType enum. 2024-09-09 11:50:13 -07:00