fix(front): consistent image urls generation in all sizes
This commit is contained in:
		
							parent
							
								
									3b1b707cff
								
							
						
					
					
						commit
						8cfead746d
					
				|  | @ -1398,6 +1398,7 @@ VERSATILEIMAGEFIELD_RENDITION_KEY_SETS = { | ||||||
|     ], |     ], | ||||||
|     "attachment_square": [ |     "attachment_square": [ | ||||||
|         ("original", "url"), |         ("original", "url"), | ||||||
|  |         ("small_square_crop", "crop__50x50"), | ||||||
|         ("medium_square_crop", "crop__200x200"), |         ("medium_square_crop", "crop__200x200"), | ||||||
|         ("large_square_crop", "crop__600x600"), |         ("large_square_crop", "crop__600x600"), | ||||||
|     ], |     ], | ||||||
|  |  | ||||||
|  | @ -257,6 +257,13 @@ class Attachment(models.Model): | ||||||
|         proxy_url = reverse("api:v1:attachments-proxy", kwargs={"uuid": self.uuid}) |         proxy_url = reverse("api:v1:attachments-proxy", kwargs={"uuid": self.uuid}) | ||||||
|         return federation_utils.full_url(proxy_url + "?next=original") |         return federation_utils.full_url(proxy_url + "?next=original") | ||||||
| 
 | 
 | ||||||
|  |     @property | ||||||
|  |     def download_url_small_square_crop(self): | ||||||
|  |         if self.file: | ||||||
|  |             return utils.media_url(self.file.crop["50x50"].url) | ||||||
|  |         proxy_url = reverse("api:v1:attachments-proxy", kwargs={"uuid": self.uuid}) | ||||||
|  |         return federation_utils.full_url(proxy_url + "?next=small_square_crop") | ||||||
|  | 
 | ||||||
|     @property |     @property | ||||||
|     def download_url_medium_square_crop(self): |     def download_url_medium_square_crop(self): | ||||||
|         if self.file: |         if self.file: | ||||||
|  |  | ||||||
|  | @ -298,6 +298,7 @@ class AttachmentSerializer(serializers.Serializer): | ||||||
|         urls = {} |         urls = {} | ||||||
|         urls["source"] = o.url |         urls["source"] = o.url | ||||||
|         urls["original"] = o.download_url_original |         urls["original"] = o.download_url_original | ||||||
|  |         urls["small_square_crop"] = o.download_url_small_square_crop | ||||||
|         urls["medium_square_crop"] = o.download_url_medium_square_crop |         urls["medium_square_crop"] = o.download_url_medium_square_crop | ||||||
|         urls["large_square_crop"] = o.download_url_large_square_crop |         urls["large_square_crop"] = o.download_url_large_square_crop | ||||||
|         return urls |         return urls | ||||||
|  |  | ||||||
|  | @ -176,7 +176,12 @@ class AttachmentViewSet( | ||||||
|             return r |             return r | ||||||
| 
 | 
 | ||||||
|         size = request.GET.get("next", "original").lower() |         size = request.GET.get("next", "original").lower() | ||||||
|         if size not in ["original", "medium_square_crop", "large_square_crop"]: |         if size not in [ | ||||||
|  |             "original", | ||||||
|  |             "small_square_crop", | ||||||
|  |             "medium_square_crop", | ||||||
|  |             "large_square_crop", | ||||||
|  |         ]: | ||||||
|             size = "original" |             size = "original" | ||||||
| 
 | 
 | ||||||
|         try: |         try: | ||||||
|  |  | ||||||
|  | @ -111,6 +111,9 @@ class GetArtistInfo2Serializer(serializers.Serializer): | ||||||
|         if artist.mbid: |         if artist.mbid: | ||||||
|             payload["musicBrainzId"] = TagValue(artist.mbid) |             payload["musicBrainzId"] = TagValue(artist.mbid) | ||||||
|         if artist.attachment_cover: |         if artist.attachment_cover: | ||||||
|  |             payload["smallImageUrl"] = TagValue( | ||||||
|  |                 artist.attachment_cover.download_url_small_square_crop | ||||||
|  |             ) | ||||||
|             payload["mediumImageUrl"] = TagValue( |             payload["mediumImageUrl"] = TagValue( | ||||||
|                 artist.attachment_cover.download_url_medium_square_crop |                 artist.attachment_cover.download_url_medium_square_crop | ||||||
|             ) |             ) | ||||||
|  |  | ||||||
|  | @ -195,6 +195,9 @@ def test_attachment_serializer_existing_file(factories, to_api_date): | ||||||
|         "urls": { |         "urls": { | ||||||
|             "source": attachment.url, |             "source": attachment.url, | ||||||
|             "original": federation_utils.full_url(attachment.file.url), |             "original": federation_utils.full_url(attachment.file.url), | ||||||
|  |             "small_square_crop": federation_utils.full_url( | ||||||
|  |                 attachment.file.crop["50x50"].url | ||||||
|  |             ), | ||||||
|             "medium_square_crop": federation_utils.full_url( |             "medium_square_crop": federation_utils.full_url( | ||||||
|                 attachment.file.crop["200x200"].url |                 attachment.file.crop["200x200"].url | ||||||
|             ), |             ), | ||||||
|  |  | ||||||
|  | @ -156,6 +156,9 @@ def test_get_artist_info_2_serializer(factories): | ||||||
| 
 | 
 | ||||||
|     expected = { |     expected = { | ||||||
|         "musicBrainzId": artist.mbid, |         "musicBrainzId": artist.mbid, | ||||||
|  |         "smallImageUrl": renderers.TagValue( | ||||||
|  |             artist.attachment_cover.download_url_small_square_crop | ||||||
|  |         ), | ||||||
|         "mediumImageUrl": renderers.TagValue( |         "mediumImageUrl": renderers.TagValue( | ||||||
|             artist.attachment_cover.download_url_medium_square_crop |             artist.attachment_cover.download_url_medium_square_crop | ||||||
|         ), |         ), | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ const firstArtist = artist_credit.length > 0 ? artist_credit[0].artist : null | ||||||
| 
 | 
 | ||||||
| const store = useStore() | const store = useStore() | ||||||
| const imageUrl = computed(() => props.album.cover?.urls.original | const imageUrl = computed(() => props.album.cover?.urls.original | ||||||
|   ? store.getters['instance/absoluteUrl'](props.album.cover?.urls.large_square_crop) |   ? store.getters['instance/absoluteUrl'](props.album.cover?.urls.medium_square_crop) | ||||||
|   : defaultCover |   : defaultCover | ||||||
| ) | ) | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  | @ -25,11 +25,11 @@ const cover = computed(() => { | ||||||
|   const artistCover = artist.attachment_cover ?? undefined |   const artistCover = artist.attachment_cover ?? undefined | ||||||
| 
 | 
 | ||||||
|   const albumCover = albums.value?.find( |   const albumCover = albums.value?.find( | ||||||
|     (album: Album) => album.cover?.urls.medium_square_crop |     (album: Album) => album.cover?.urls | ||||||
|   )?.cover |   )?.cover | ||||||
| 
 | 
 | ||||||
|   const trackCover = tracks.value?.find( |   const trackCover = tracks.value?.find( | ||||||
|     (track: Track) => track.cover |     (track: Track) => track.cover?.urls | ||||||
|   )?.cover |   )?.cover | ||||||
| 
 | 
 | ||||||
|   const fallback: Cover = { |   const fallback: Cover = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 ArneBo
						ArneBo