zulip/zerver/lib
Hariom Verma 107da5402c url preview: Replace YouTube URLs with their titles.
Modified by punchagan to:
* Replace URLs with titles only if the inline url embed previews are turned on
* Add a test for youtube titles replacing URLs

The titles for the videos are fetched asynchronously after the message has been
sent via the code that fetches metadata for open graph previews. So, the URLs
are replaced with titles only if the inline embed url previews feature is
enabled.

Ideally, YouTube previews should be shown only if inline url previews are
enabled, but this feature is in beta, while YouTube previews are pretty stable.
Once this feature is out of beta, YouTube previews should be shown only if the
url previews feature is turned on.

YouTube preview image is calculated as soon as the message is sent, while the
title needs to be fetched using a network request. This means that the URL is
replaced only after the data has been fetched from the request, and happens a
couple of seconds after the message has been rendered.

Closes #7549
2019-07-12 19:14:19 -07:00
..
bugdown url preview: Replace YouTube URLs with their titles. 2019-07-12 19:14:19 -07:00
url_preview url preview: Rename type_ variable to oembed_resource_type. 2019-06-02 14:31:39 -07:00
webhooks webhooks: Eliminate the usage of a headers.py file. 2019-06-26 10:35:14 -07:00
__init__.py
actions.py notification bot: Inline prep_stream_welcome_message. 2019-07-11 14:16:56 -07:00
addressee.py messages: Add support for passing user IDs for pm-with clause. 2019-06-17 17:38:51 -07:00
alert_words.py alert_words: Performance improvements in looking for alert_words. 2019-03-01 15:36:39 -08:00
api_test_helpers.py openapi: Standardize URL format to use {var_name} syntax. 2019-07-11 11:01:40 -07:00
attachments.py
avatar.py ldap: Fix LDAP avatar synchronization to check if avatar has changed. 2019-07-02 17:52:48 -07:00
avatar_hash.py ldap: Fix LDAP avatar synchronization to check if avatar has changed. 2019-07-02 17:52:48 -07:00
bot_config.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
bot_lib.py streams: Refactor multi-option helpers into separate functions. 2019-02-12 11:10:26 -08:00
bot_storage.py python: Stop importing Length from the wrong file. 2019-02-02 17:09:10 -08:00
bulk_create.py stream-descriptions: Create wrapper for rendering stream descriptions. 2019-03-06 17:16:14 -08:00
cache.py user_info: Add `bot_owner_id` to user info dataset. 2019-05-28 12:41:52 -07:00
cache_helpers.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
camo.py camo: Add endpoint to handle camo requests. 2019-01-04 10:27:04 -08:00
ccache.py str_utils: Move force_bytes into ccache.py. 2018-05-15 19:07:32 -07:00
context_managers.py
create_user.py email: Set email based on realm email_address_visibility. 2019-02-04 18:45:10 -08:00
db.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
debug.py mypy: Set local_partial_types = True. 2018-05-21 22:41:00 -07:00
dev_ldap_directory.py dev_ldap: Add custom profile data. 2019-01-29 16:01:30 -08:00
digest.py models: Rename Subscription.in_home_view field to is_muted. 2019-05-12 22:08:10 -07:00
domains.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
email_mirror.py email_mirror: Rename "include-footers" option to "include-footer". 2019-07-08 20:10:21 -07:00
email_mirror_helpers.py email_mirror: Rename "include-footers" option to "include-footer". 2019-07-08 20:10:21 -07:00
email_notifications.py emails: Include stream topic details in missed message subject. 2019-07-09 11:51:20 -07:00
emoji.py lint: Fix calls to _() on computed strings. 2019-04-23 15:23:03 -07:00
error_notify.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
events.py models: Add `external_account` in custom profile field types. 2019-07-09 17:21:54 -07:00
exceptions.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
export.py export.py: Call upload_backend only when we know which backend to use. 2019-07-10 17:48:54 -07:00
external_accounts.py models: Add `external_account` in custom profile field types. 2019-07-09 17:21:54 -07:00
feedback.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
fix_unreads.py models: Rename Subscription.in_home_view field to is_muted. 2019-05-12 22:08:10 -07:00
generate_test_data.py test-backend: Move `test_messages.json` to `var/<uuid>/test-backend`. 2019-06-24 12:23:09 -07:00
hotspots.py docs: Mention bug in ALWAYS_SEND_ALL_HOTSPOTS feature. 2019-02-27 10:21:30 -08:00
html_diff.py
html_to_text.py html_to_text: Add delimiters between text from different elements. 2019-05-01 17:35:20 -07:00
i18n.py i18n: Move static/locale back to locale. 2019-07-02 14:57:55 -07:00
import_realm.py import: Fix check for whether data-user-id is present. 2019-06-18 11:13:32 -07:00
initial_password.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
integrations.py webhooks: Add Buildbot integration. 2019-04-27 15:19:16 -07:00
json_encoder_for_html.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
logging_util.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
management.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
mdiff.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
mention.py markdown: Change syntax of silent mentions ( _@person -> @_person). 2019-02-20 10:41:42 -08:00
message.py models: Rename Subscription.in_home_view field to is_muted. 2019-05-12 22:08:10 -07:00
migrate.py migrate, create_large_indexes: Use CREATE INDEX IF NOT EXISTS. 2019-06-26 11:01:30 -07:00
mobile_auth_otp.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
name_restrictions.py signup: Add opayq.com to disposable domain whitelist. 2018-08-13 10:56:47 -07:00
narrow.py search: Add stop words to page_params. 2019-02-05 10:23:28 -08:00
onboarding.py onboarding: Update initial messages and stream descriptions. 2019-03-21 12:34:24 -07:00
openapi.py openapi: Add test to see if code exists for documented endpoints. 2019-07-08 12:58:21 -07:00
outgoing_webhook.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
parallel.py
profile.py
push_notifications.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
queue.py requirements: Upgrade pika from 0.12.0 to 0.13.0. 2019-01-31 10:04:07 -08:00
rate_limiter.py rate_limiter: Create a general rate_limit_request_by_entity function. 2019-05-30 16:50:11 -07:00
realm_description.py html_to_text: Add delimiters between text from different elements. 2019-05-01 17:35:20 -07:00
realm_icon.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
realm_logo.py settings: Add support for uploading logo for night mode. 2019-02-18 15:15:57 -08:00
redis_utils.py
remote_server.py production: Add optional support for submitting usage statistics. 2019-02-26 17:35:10 -08:00
request.py openapi: Remove a few "buggy" endpoints in the validation test. 2019-07-08 12:34:31 -07:00
request.pyi openapi: Remove a few "buggy" endpoints in the validation test. 2019-07-08 12:34:31 -07:00
response.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
rest.py report: Allow error-reporting views from unauthed users. 2018-12-16 15:44:48 -08:00
retention.py retention: Archive cross-realm personal messages. 2019-07-08 20:03:20 -07:00
send_email.py models: Extract get_human_admin_users function. 2019-06-20 14:32:30 -07:00
sessions.py sessions: Suppress coverage error until we can debug. 2018-12-01 10:08:57 -08:00
soft_deactivation.py soft deactivation: Remove useless conditional. 2019-05-08 14:40:33 -07:00
sqlalchemy_utils.py mypy: Set local_partial_types = True. 2018-05-21 22:41:00 -07:00
statistics.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
storage.py storage: Transfer responsibility for hash-naming webpack files to webpack. 2019-07-03 14:16:17 -07:00
stream_recipient.py
stream_subscription.py models: Rename notification to `enable_stream_audible_notifications`. 2019-06-12 16:24:51 -07:00
stream_topic.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
streams.py lint: Fix calls to _() on computed strings. 2019-04-23 15:23:03 -07:00
subdomains.py get_realm: raise DoesNotExist instead of returning None. 2019-05-06 21:58:16 -07:00
test_classes.py tests: Use TEST_WORKER_DIR for file access. 2019-07-12 17:42:18 -07:00
test_data.source.txt
test_fixtures.py test_fixtures: Add logic for removing stale test directories. 2019-07-12 17:42:18 -07:00
test_helpers.py url preview: Confirm content-type before trying to show previews. 2019-05-13 13:45:17 -07:00
test_runner.py test_upload: Refactor test_upload output to new filepath. 2019-07-12 17:35:44 -07:00
tex.py tex: Bundle KaTeX CLI using Webpack. 2019-07-02 16:50:03 -07:00
thumbnail.py camo: Add endpoint to handle camo requests. 2019-01-04 10:27:04 -08:00
timeout.py
timestamp.py
timezone.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
topic.py onboarding: Simplify get_turtle_message. 2019-03-21 12:33:32 -07:00
topic_mutes.py Extract topic_match_sa() helper. 2018-11-07 10:03:53 -08:00
transfer.py python: Remove unused imports. 2019-02-22 16:54:36 -08:00
type_debug.py zerver/lib: Change use of typing.Text to str. 2018-05-10 14:19:49 -07:00
types.py models: Add `external_account` in custom profile field types. 2019-07-09 17:21:54 -07:00
unminify.py minify-js: Remove; everything has been migrated to Webpack. 2019-07-03 13:58:21 -07:00
upload.py export/upload: Refactor tarball upload logic to upload_backend. 2019-07-03 15:40:35 -07:00
url_encoding.py topic -> subject: Extract get_topic_from_message_info(). 2018-11-14 23:24:06 -08:00
user_agent.py user_agent: Use re.X to make the regex a little more readable. 2018-12-05 14:58:13 -08:00
user_groups.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
user_status.py user status: Add "status_text" support in the backend. 2019-01-24 09:46:35 -08:00
users.py lint: Fix calls to _() on computed strings. 2019-04-23 15:23:03 -07:00
utils.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
validator.py models: Add `external_account` in custom profile field types. 2019-07-09 17:21:54 -07:00
video_calls.py zoom: Fix handling of 201 status codes from zoom API. 2019-01-16 15:37:06 -08:00
widget.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
zcommand.py zcommand: Fix broken switch mode message. 2018-08-08 11:29:49 -07:00
zephyr.py python: Remove now-unnecessary str_utils library. 2018-11-27 11:57:54 -08:00