|
|
|
@ -151,7 +151,7 @@ class MediaRepository(object): |
|
|
|
|
"media_length": content_length, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
yield self._generate_thumbnails(None, media_id, media_info) |
|
|
|
|
yield self._generate_thumbnails(None, media_id, media_id, media_info) |
|
|
|
|
|
|
|
|
|
defer.returnValue("mxc://%s/%s" % (self.server_name, media_id)) |
|
|
|
|
|
|
|
|
@ -413,7 +413,7 @@ class MediaRepository(object): |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
yield self._generate_thumbnails( |
|
|
|
|
server_name, media_id, media_info |
|
|
|
|
server_name, media_id, file_id, media_info, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
defer.returnValue(media_info) |
|
|
|
@ -525,24 +525,23 @@ class MediaRepository(object): |
|
|
|
|
defer.returnValue(output_path) |
|
|
|
|
|
|
|
|
|
@defer.inlineCallbacks |
|
|
|
|
def _generate_thumbnails(self, server_name, media_id, media_info, url_cache=False): |
|
|
|
|
def _generate_thumbnails(self, server_name, media_id, file_id, media_info, |
|
|
|
|
url_cache=False): |
|
|
|
|
"""Generate and store thumbnails for an image. |
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
|
server_name(str|None): The server name if remote media, else None if local |
|
|
|
|
media_id(str) |
|
|
|
|
media_info(dict) |
|
|
|
|
url_cache(bool): If we are thumbnailing images downloaded for the URL cache, |
|
|
|
|
server_name (str|None): The server name if remote media, else None if local |
|
|
|
|
media_id (str): The media ID of the content. (This is the same as |
|
|
|
|
the file_id for local content) |
|
|
|
|
file_id (str): Local file ID |
|
|
|
|
media_info (dict) |
|
|
|
|
url_cache (bool): If we are thumbnailing images downloaded for the URL cache, |
|
|
|
|
used exclusively by the url previewer |
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
|
Deferred[dict]: Dict with "width" and "height" keys of original image |
|
|
|
|
""" |
|
|
|
|
media_type = media_info["media_type"] |
|
|
|
|
if server_name: |
|
|
|
|
file_id = media_info["filesystem_id"] |
|
|
|
|
else: |
|
|
|
|
file_id = media_id |
|
|
|
|
requirements = self._get_thumbnail_requirements(media_type) |
|
|
|
|
if not requirements: |
|
|
|
|
return |
|
|
|
|