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