diff options
| -rw-r--r-- | src/content/dependencies/generateGroupGalleryPageAlbumGrid.js | 53 | ||||
| -rw-r--r-- | src/strings-default.yaml | 2 |
2 files changed, 33 insertions, 22 deletions
diff --git a/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js b/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js index 9e25049e..7a8edb5d 100644 --- a/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js +++ b/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js @@ -35,17 +35,18 @@ export default { styles: albums.map(album => album.style), - tracks: - albums.map(album => album.tracks.length), - allWarnings: query.artworks.flatMap(artwork => artwork?.contentWarnings), + hideDuration: + albums.map(album => album.hideDuration), + + tracks: + albums.map(album => album.tracks.length), + durations: albums.map(album => - (album.hideDuration - ? null - : album.style === 'single' + (album.style === 'single' ? album.tracks[0]?.duration ?? null : getTotalDuration(album.tracks))), @@ -80,24 +81,32 @@ export default { info: stitchArrays({ style: data.styles, + hideDuration: data.hideDuration, tracks: data.tracks, duration: data.durations, - }).map(({style, tracks, duration}) => - (!duration - ? null - : style === 'single' && tracks > 1 - ? language.$(capsule, 'details.albumLength.single.withMultipleTracks', { - time: language.formatDuration(duration), - tracks: language.countTracks(tracks, {unit: true}), - }) - : style === 'single' - ? language.$(capsule, 'details.albumLength.single', { - time: language.formatDuration(duration), - }) - : language.$(capsule, 'details.albumLength', { - tracks: language.countTracks(tracks, {unit: true}), - time: language.formatDuration(duration), - }))), + }).map(({style, hideDuration, tracks, duration}) => + language.encapsulate(capsule, 'details.albumLength', capsule => + (hideDuration + ? null + : !duration && !tracks + ? null + : style === 'single' && tracks > 1 && duration + ? language.$(capsule, 'single.withMultipleTracks', { + time: language.formatDuration(duration), + tracks: language.countTracks(tracks, {unit: true}), + }) + : style === 'single' && duration + ? language.$(capsule, 'single', { + time: language.formatDuration(duration), + }) + : duration && tracks + ? language.$(capsule, { + time: language.formatDuration(duration), + tracks: language.countTracks(tracks, {unit: true}), + }) + : language.$(capsule, 'tracksOnly', { + tracks: language.countTracks(tracks, {unit: true}), + })))), revealAllWarnings: data.allWarnings, })), diff --git a/src/strings-default.yaml b/src/strings-default.yaml index e718aee6..965bf29f 100644 --- a/src/strings-default.yaml +++ b/src/strings-default.yaml @@ -1017,6 +1017,8 @@ misc: single, {TIME} albumLength.single.withMultipleTracks: >- single, {TRACKS}, {TIME}+ + albumLength.tracksOnly: >- + {TRACKS} coverArtists: "Artwork by {ARTISTS}" coverArtists.customLabel: "{LABEL} by {ARTISTS}" |