mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-06 01:14:56 -04:00
Convert media repo's FileInfo to attrs. (#10785)
This is mostly an internal change, but improves type hints in the media code.
This commit is contained in:
parent
319b8b6bef
commit
b996782df5
5 changed files with 138 additions and 106 deletions
|
@ -26,6 +26,7 @@ from synapse.rest.media.v1.media_storage import MediaStorage
|
|||
|
||||
from ._base import (
|
||||
FileInfo,
|
||||
ThumbnailInfo,
|
||||
parse_media_id,
|
||||
respond_404,
|
||||
respond_with_file,
|
||||
|
@ -114,7 +115,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
thumbnail_infos,
|
||||
media_id,
|
||||
media_id,
|
||||
url_cache=media_info["url_cache"],
|
||||
url_cache=bool(media_info["url_cache"]),
|
||||
server_name=None,
|
||||
)
|
||||
|
||||
|
@ -149,11 +150,12 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
server_name=None,
|
||||
file_id=media_id,
|
||||
url_cache=media_info["url_cache"],
|
||||
thumbnail=True,
|
||||
thumbnail_width=info["thumbnail_width"],
|
||||
thumbnail_height=info["thumbnail_height"],
|
||||
thumbnail_type=info["thumbnail_type"],
|
||||
thumbnail_method=info["thumbnail_method"],
|
||||
thumbnail=ThumbnailInfo(
|
||||
width=info["thumbnail_width"],
|
||||
height=info["thumbnail_height"],
|
||||
type=info["thumbnail_type"],
|
||||
method=info["thumbnail_method"],
|
||||
),
|
||||
)
|
||||
|
||||
t_type = file_info.thumbnail_type
|
||||
|
@ -173,7 +175,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
desired_height,
|
||||
desired_method,
|
||||
desired_type,
|
||||
url_cache=media_info["url_cache"],
|
||||
url_cache=bool(media_info["url_cache"]),
|
||||
)
|
||||
|
||||
if file_path:
|
||||
|
@ -210,11 +212,12 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
file_info = FileInfo(
|
||||
server_name=server_name,
|
||||
file_id=media_info["filesystem_id"],
|
||||
thumbnail=True,
|
||||
thumbnail_width=info["thumbnail_width"],
|
||||
thumbnail_height=info["thumbnail_height"],
|
||||
thumbnail_type=info["thumbnail_type"],
|
||||
thumbnail_method=info["thumbnail_method"],
|
||||
thumbnail=ThumbnailInfo(
|
||||
width=info["thumbnail_width"],
|
||||
height=info["thumbnail_height"],
|
||||
type=info["thumbnail_type"],
|
||||
method=info["thumbnail_method"],
|
||||
),
|
||||
)
|
||||
|
||||
t_type = file_info.thumbnail_type
|
||||
|
@ -271,7 +274,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
thumbnail_infos,
|
||||
media_id,
|
||||
media_info["filesystem_id"],
|
||||
url_cache=None,
|
||||
url_cache=False,
|
||||
server_name=server_name,
|
||||
)
|
||||
|
||||
|
@ -285,7 +288,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
thumbnail_infos: List[Dict[str, Any]],
|
||||
media_id: str,
|
||||
file_id: str,
|
||||
url_cache: Optional[str] = None,
|
||||
url_cache: bool,
|
||||
server_name: Optional[str] = None,
|
||||
) -> None:
|
||||
"""
|
||||
|
@ -299,7 +302,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
desired_type: The desired content-type of the thumbnail.
|
||||
thumbnail_infos: A list of dictionaries of candidate thumbnails.
|
||||
file_id: The ID of the media that a thumbnail is being requested for.
|
||||
url_cache: The URL cache value.
|
||||
url_cache: True if this is from a URL cache.
|
||||
server_name: The server name, if this is a remote thumbnail.
|
||||
"""
|
||||
if thumbnail_infos:
|
||||
|
@ -318,13 +321,16 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
respond_404(request)
|
||||
return
|
||||
|
||||
# The thumbnail property must exist.
|
||||
assert file_info.thumbnail is not None
|
||||
|
||||
responder = await self.media_storage.fetch_media(file_info)
|
||||
if responder:
|
||||
await respond_with_responder(
|
||||
request,
|
||||
responder,
|
||||
file_info.thumbnail_type,
|
||||
file_info.thumbnail_length,
|
||||
file_info.thumbnail.type,
|
||||
file_info.thumbnail.length,
|
||||
)
|
||||
return
|
||||
|
||||
|
@ -351,18 +357,18 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
server_name,
|
||||
file_id=file_id,
|
||||
media_id=media_id,
|
||||
t_width=file_info.thumbnail_width,
|
||||
t_height=file_info.thumbnail_height,
|
||||
t_method=file_info.thumbnail_method,
|
||||
t_type=file_info.thumbnail_type,
|
||||
t_width=file_info.thumbnail.width,
|
||||
t_height=file_info.thumbnail.height,
|
||||
t_method=file_info.thumbnail.method,
|
||||
t_type=file_info.thumbnail.type,
|
||||
)
|
||||
else:
|
||||
await self.media_repo.generate_local_exact_thumbnail(
|
||||
media_id=media_id,
|
||||
t_width=file_info.thumbnail_width,
|
||||
t_height=file_info.thumbnail_height,
|
||||
t_method=file_info.thumbnail_method,
|
||||
t_type=file_info.thumbnail_type,
|
||||
t_width=file_info.thumbnail.width,
|
||||
t_height=file_info.thumbnail.height,
|
||||
t_method=file_info.thumbnail.method,
|
||||
t_type=file_info.thumbnail.type,
|
||||
url_cache=url_cache,
|
||||
)
|
||||
|
||||
|
@ -370,8 +376,8 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
await respond_with_responder(
|
||||
request,
|
||||
responder,
|
||||
file_info.thumbnail_type,
|
||||
file_info.thumbnail_length,
|
||||
file_info.thumbnail.type,
|
||||
file_info.thumbnail.length,
|
||||
)
|
||||
else:
|
||||
logger.info("Failed to find any generated thumbnails")
|
||||
|
@ -385,7 +391,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
desired_type: str,
|
||||
thumbnail_infos: List[Dict[str, Any]],
|
||||
file_id: str,
|
||||
url_cache: Optional[str],
|
||||
url_cache: bool,
|
||||
server_name: Optional[str],
|
||||
) -> Optional[FileInfo]:
|
||||
"""
|
||||
|
@ -398,7 +404,7 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
desired_type: The desired content-type of the thumbnail.
|
||||
thumbnail_infos: A list of dictionaries of candidate thumbnails.
|
||||
file_id: The ID of the media that a thumbnail is being requested for.
|
||||
url_cache: The URL cache value.
|
||||
url_cache: True if this is from a URL cache.
|
||||
server_name: The server name, if this is a remote thumbnail.
|
||||
|
||||
Returns:
|
||||
|
@ -495,12 +501,13 @@ class ThumbnailResource(DirectServeJsonResource):
|
|||
file_id=file_id,
|
||||
url_cache=url_cache,
|
||||
server_name=server_name,
|
||||
thumbnail=True,
|
||||
thumbnail_width=thumbnail_info["thumbnail_width"],
|
||||
thumbnail_height=thumbnail_info["thumbnail_height"],
|
||||
thumbnail_type=thumbnail_info["thumbnail_type"],
|
||||
thumbnail_method=thumbnail_info["thumbnail_method"],
|
||||
thumbnail_length=thumbnail_info["thumbnail_length"],
|
||||
thumbnail=ThumbnailInfo(
|
||||
width=thumbnail_info["thumbnail_width"],
|
||||
height=thumbnail_info["thumbnail_height"],
|
||||
type=thumbnail_info["thumbnail_type"],
|
||||
method=thumbnail_info["thumbnail_method"],
|
||||
length=thumbnail_info["thumbnail_length"],
|
||||
),
|
||||
)
|
||||
|
||||
# No matching thumbnail was found.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue