summary refs log tree commit diff
path: root/docs/development
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2021-09-22 13:35:31 +0100
committerDavid Robertson <davidr@element.io>2021-09-22 13:35:31 +0100
commita8340692aba9eab439e989d1c2512e107abe455f (patch)
treef2d206753cf79498065bef6556b870a949484bf8 /docs/development
parentMerge remote-tracking branch 'origin/dmr/cache-eviction-hack' into matrix-org... (diff)
parentInclude outlier status in `str(event)` for V2/V3 events (#10879) (diff)
downloadsynapse-a8340692aba9eab439e989d1c2512e107abe455f.tar.xz
Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixes
Diffstat (limited to 'docs/development')
-rw-r--r--docs/development/url_previews.md21
1 files changed, 13 insertions, 8 deletions
diff --git a/docs/development/url_previews.md b/docs/development/url_previews.md

index bbe05e281c..aff3813609 100644 --- a/docs/development/url_previews.md +++ b/docs/development/url_previews.md
@@ -25,16 +25,14 @@ When Synapse is asked to preview a URL it does the following: 3. Kicks off a background process to generate a preview: 1. Checks the database cache by URL and timestamp and returns the result if it has not expired and was successful (a 2xx return code). - 2. Checks if the URL matches an oEmbed pattern. If it does, fetch the oEmbed - response. If this is an image, replace the URL to fetch and continue. If - if it is HTML content, use the HTML as the document and continue. - 3. If it doesn't match an oEmbed pattern, downloads the URL and stores it - into a file via the media storage provider and saves the local media - metadata. - 5. If the media is an image: + 2. Checks if the URL matches an [oEmbed](https://oembed.com/) pattern. If it + does, update the URL to download. + 3. Downloads the URL and stores it into a file via the media storage provider + and saves the local media metadata. + 4. If the media is an image: 1. Generates thumbnails. 2. Generates an Open Graph response based on image properties. - 6. If the media is HTML: + 5. If the media is HTML: 1. Decodes the HTML via the stored file. 2. Generates an Open Graph response from the HTML. 3. If an image exists in the Open Graph response: @@ -42,6 +40,13 @@ When Synapse is asked to preview a URL it does the following: provider and saves the local media metadata. 2. Generates thumbnails. 3. Updates the Open Graph response based on image properties. + 6. If the media is JSON and an oEmbed URL was found: + 1. Convert the oEmbed response to an Open Graph response. + 2. If a thumbnail or image is in the oEmbed response: + 1. Downloads the URL and stores it into a file via the media storage + provider and saves the local media metadata. + 2. Generates thumbnails. + 3. Updates the Open Graph response based on image properties. 7. Stores the result in the database cache. 4. Returns the result.