From b68e658e27ae3c6e799342e69dfe3ee45cd53d7b Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 11 May 2026 21:23:46 -0300 Subject: content, data: Track.excludingURLs --- src/data/things/Track.js | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'src/data/things/Track.js') diff --git a/src/data/things/Track.js b/src/data/things/Track.js index 6a31cfe6..b0c8d955 100644 --- a/src/data/things/Track.js +++ b/src/data/things/Track.js @@ -383,7 +383,31 @@ export class Track extends Thing { }, ], - urls: urls(), + excludingURLs: { + flags: {update: true, expose: true}, + + update: { + validate: + is(...[ + 'quietly', + 'generic', + 'not clearly public', + 'paid bonus track', + ]), + }, + }, + + urls: [ + { + dependencies: ['excludingURLs'], + compute: (continuation, {excludingURLs}) => + (excludingURLs + ? continuation.exit([]) + : continuation()), + }, + + urls(), + ], // > Update & expose - Artworks @@ -1034,6 +1058,10 @@ export class Track extends Thing { property: 'needsLyrics', }, + 'Excluding URLs': { + property: 'excludingURLs', + }, + 'URLs': { property: 'urls', transform: parseURLs, @@ -1165,6 +1193,11 @@ export class Track extends Thing { 'Cover Artists', ], }, + + {message: `Don't include URLs alongside Excluding URLs`, fields: [ + 'URLs', + 'Excluding URLs', + ]}, ], }; -- cgit 1.3.0-6-gf8a5