diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-04-22 17:04:54 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-04-22 17:06:18 -0300 |
commit | d20cbfbb437816418a7cdcd77248f6c7a15d535c (patch) | |
tree | 4a773528451c2333c426a1bc8235a5f239b7613f | |
parent | a5c631efacdfe0bf923608225a555b7fa6800e87 (diff) |
content: gCAOriginDetails: hide same artists with attachAbove
...and move the custom label into the source line instead, in that case.
-rw-r--r-- | src/content/dependencies/generateCoverArtworkOriginDetails.js | 113 | ||||
-rw-r--r-- | src/strings-default.yaml | 6 |
2 files changed, 74 insertions, 45 deletions
diff --git a/src/content/dependencies/generateCoverArtworkOriginDetails.js b/src/content/dependencies/generateCoverArtworkOriginDetails.js index 08a01cfe..3366a22e 100644 --- a/src/content/dependencies/generateCoverArtworkOriginDetails.js +++ b/src/content/dependencies/generateCoverArtworkOriginDetails.js @@ -13,11 +13,18 @@ export default { query: (artwork) => ({ artworkThingType: artwork.thing.constructor[Thing.referenceType], + + mainArtworkArtistContribs: + (!artwork.isMainArtwork && artwork.mainArtwork + ? artwork.mainArtwork.artistContribs + : null) }), relations: (relation, query, artwork) => ({ credit: - relation('generateArtistCredit', artwork.artistContribs, []), + relation('generateArtistCredit', + artwork.artistContribs, + query.mainArtworkArtistContribs ?? []), source: relation('transformContent', artwork.source), @@ -50,49 +57,67 @@ export default { {class: 'origin-details'}, - [ - language.encapsulate(capsule, 'artworkBy', workingCapsule => { - const workingOptions = {}; - - if (data.label) { - workingCapsule += '.customLabel'; - workingOptions.label = data.label; - } - - if (relations.datetimestamp) { - workingCapsule += '.withYear'; - workingOptions.year = - relations.datetimestamp.slots({ - style: 'year', - tooltip: true, - }); - } - - return relations.credit.slots({ - showAnnotation: true, - showExternalLinks: true, - showChronology: true, - showWikiEdits: true, - - trimAnnotation: false, - - chronologyKind: 'coverArt', + (() => { + const artworkBy = + language.encapsulate(capsule, 'artworkBy', workingCapsule => { + const workingOptions = {}; + + if (data.label) { + workingCapsule += '.customLabel'; + workingOptions.label = data.label; + } + + if (relations.datetimestamp) { + workingCapsule += '.withYear'; + workingOptions.year = + relations.datetimestamp.slots({ + style: 'year', + tooltip: true, + }); + } + + return relations.credit.slots({ + showAnnotation: true, + showExternalLinks: true, + showChronology: true, + showWikiEdits: true, + + trimAnnotation: false, + + chronologyKind: 'coverArt', + + normalStringKey: workingCapsule, + additionalStringOptions: workingOptions, + }); + }); - normalStringKey: workingCapsule, - additionalStringOptions: workingOptions, + const trackArtFromAlbum = + pagePath[0] === 'track' && + data.artworkThingType === 'album' && + language.$(capsule, 'trackArtFromAlbum', { + album: + relations.albumLink.slot('color', false), + }); + + const source = + language.encapsulate(capsule, 'source', workingCapsule => { + const workingOptions = { + [language.onlyIfOptions]: ['source'], + source: relations.source.slot('mode', 'inline'), + }; + + if (html.isBlank(artworkBy) && data.label) { + workingCapsule += '.customLabel'; + workingOptions.label = data.label; + } + + return language.$(workingCapsule, workingOptions); }); - }), - - pagePath[0] === 'track' && - data.artworkThingType === 'album' && - language.$(capsule, 'trackArtFromAlbum', { - album: - relations.albumLink.slot('color', false), - }), - - language.$(capsule, 'source', { - [language.onlyIfOptions]: ['source'], - source: relations.source.slot('mode', 'inline'), - }), - ])), + + return [ + artworkBy, + trackArtFromAlbum, + source, + ]; + })())), }; diff --git a/src/strings-default.yaml b/src/strings-default.yaml index ab49229c..503de24d 100644 --- a/src/strings-default.yaml +++ b/src/strings-default.yaml @@ -925,7 +925,11 @@ misc: artworkBy.customLabel.withYear: >- {LABEL} ({YEAR}) by {ARTISTS} - source: "Via {SOURCE}" + source: >- + Via {SOURCE} + + source.customLabel: >- + {LABEL} via {SOURCE} trackArtFromAlbum: "Album cover for {ALBUM}" |