From 479ac8741f6be49c3493b85e46d2387f63a02a7e Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 8 Dec 2023 20:04:54 -0400 Subject: organize miscellaneous per-kind-of-thing code alphabetically --- src/data/things/language.js | 3 +- src/data/yaml.js | 111 ++++++++++++++++++++++++++++++-------------- src/gen-thumbs.js | 8 ++-- src/url-spec.js | 14 ++++-- 4 files changed, 90 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/data/things/language.js b/src/data/things/language.js index d7e8a1a6..6c15e282 100644 --- a/src/data/things/language.js +++ b/src/data/things/language.js @@ -542,12 +542,11 @@ Object.assign(Language.prototype, { countAdditionalFiles: countHelper('additionalFiles', 'files'), countAlbums: countHelper('albums'), countArtworks: countHelper('artworks'), - countDays: countHelper('days'), - countFlashes: countHelper('flashes'), countCommentaryEntries: countHelper('commentaryEntries', 'entries'), countContributions: countHelper('contributions'), countCoverArts: countHelper('coverArts'), countDays: countHelper('days'), + countFlashes: countHelper('flashes'), countMonths: countHelper('months'), countTimesReferenced: countHelper('timesReferenced'), countTimesUsed: countHelper('timesUsed'), diff --git a/src/data/yaml.js b/src/data/yaml.js index 82b7faf2..c79ce53b 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -44,14 +44,13 @@ function inspect(value, opts = {}) { // --> YAML data repository structure constants -export const WIKI_INFO_FILE = 'wiki-info.yaml'; -export const BUILD_DIRECTIVE_DATA_FILE = 'build-directives.yaml'; -export const HOMEPAGE_LAYOUT_DATA_FILE = 'homepage.yaml'; +export const ART_TAG_DATA_FILE = 'tags.yaml'; export const ARTIST_DATA_FILE = 'artists.yaml'; export const FLASH_DATA_FILE = 'flashes.yaml'; -export const NEWS_DATA_FILE = 'news.yaml'; -export const ART_TAG_DATA_FILE = 'tags.yaml'; export const GROUP_DATA_FILE = 'groups.yaml'; +export const HOMEPAGE_LAYOUT_DATA_FILE = 'homepage.yaml'; +export const NEWS_DATA_FILE = 'news.yaml'; +export const WIKI_INFO_FILE = 'wiki-info.yaml'; export const DATA_ALBUM_DIRECTORY = 'album'; export const DATA_STATIC_PAGE_DIRECTORY = 'static-page'; @@ -1538,7 +1537,63 @@ export async function loadAndProcessDataDocuments({dataPath}) { export function linkWikiDataArrays(wikiData, { XXX_decacheWikiData = false, } = {}) { - function assignWikiData(things, ...keys) { + const linkWikiDataSpec = new Map([ + [wikiData.albumData, [ + 'artTagData', + 'artistData', + 'groupData', + ]], + + [wikiData.artTagData, [ + 'albumData', + 'trackData', + ]], + + [wikiData.artistData, [ + 'albumData', + 'artistData', + 'flashData', + 'trackData', + ]], + + [wikiData.flashData, [ + 'artistData', + 'flashActData', + 'trackData', + ]], + + [wikiData.flashActData, [ + 'flashData', + ]], + + [wikiData.groupData, [ + 'albumData', + 'groupCategoryData', + ]], + + [wikiData.groupCategoryData, [ + 'groupData', + ]], + + [wikiData.homepageLayout?.rows, [ + 'albumData', + 'groupData', + ]], + + [wikiData.trackData, [ + 'albumData', + 'artTagData', + 'artistData', + 'flashData', + 'trackData', + ]], + + [[wikiData.wikiInfo], [ + 'groupData', + ]], + ]); + + for (const [things, keys] of linkWikiDataSpec.entries()) { if (things === undefined) return; for (let i = 0; i < things.length; i++) { const thing = things[i]; @@ -1550,20 +1605,6 @@ export function linkWikiDataArrays(wikiData, { } } } - - const WD = wikiData; - - assignWikiData([WD.wikiInfo], 'groupData'); - - assignWikiData(WD.albumData, 'artistData', 'artTagData', 'groupData'); - assignWikiData(WD.trackData, 'albumData', 'artistData', 'artTagData', 'flashData', 'trackData'); - assignWikiData(WD.artistData, 'albumData', 'artistData', 'flashData', 'trackData'); - assignWikiData(WD.groupData, 'albumData', 'groupCategoryData'); - assignWikiData(WD.groupCategoryData, 'groupData'); - assignWikiData(WD.flashData, 'artistData', 'flashActData', 'trackData'); - assignWikiData(WD.flashActData, 'flashData'); - assignWikiData(WD.artTagData, 'albumData', 'trackData'); - assignWikiData(WD.homepageLayout?.rows, 'albumData', 'groupData'); } export function sortWikiDataArrays(wikiData) { @@ -1667,10 +1708,6 @@ export function filterDuplicateDirectories(wikiData) { // data array. export function filterReferenceErrors(wikiData) { const referenceSpec = [ - ['wikiInfo', processWikiInfoDocument, { - divideTrackListsByGroups: 'group', - }], - ['albumData', processAlbumDocument, { artistContribs: '_contrib', coverArtistContribs: '_contrib', @@ -1682,17 +1719,6 @@ export function filterReferenceErrors(wikiData) { commentary: '_commentary', }], - ['trackData', processTrackDocument, { - artistContribs: '_contrib', - contributorContribs: '_contrib', - coverArtistContribs: '_contrib', - referencedTracks: '_trackNotRerelease', - sampledTracks: '_trackNotRerelease', - artTags: 'artTag', - originalReleaseTrack: '_trackNotRerelease', - commentary: '_commentary', - }], - ['groupCategoryData', processGroupCategoryDocument, { groups: 'group', }], @@ -1710,6 +1736,21 @@ export function filterReferenceErrors(wikiData) { ['flashActData', processFlashActDocument, { flashes: 'flash', }], + + ['trackData', processTrackDocument, { + artistContribs: '_contrib', + contributorContribs: '_contrib', + coverArtistContribs: '_contrib', + referencedTracks: '_trackNotRerelease', + sampledTracks: '_trackNotRerelease', + artTags: 'artTag', + originalReleaseTrack: '_trackNotRerelease', + commentary: '_commentary', + }], + + ['wikiInfo', processWikiInfoDocument, { + divideTrackListsByGroups: 'group', + }], ]; function getNestedProp(obj, key) { diff --git a/src/gen-thumbs.js b/src/gen-thumbs.js index e6c1f5c2..4b2f934d 100644 --- a/src/gen-thumbs.js +++ b/src/gen-thumbs.js @@ -779,16 +779,16 @@ export function getExpectedImagePaths(mediaPath, {urls, wikiData}) { ]) .filter(Boolean), - wikiData.trackData - .filter(track => track.hasUniqueCoverArt) - .map(track => fromRoot.to('media.trackCover', track.album.directory, track.directory, track.coverArtFileExtension)), - wikiData.artistData .filter(artist => artist.hasAvatar) .map(artist => fromRoot.to('media.artistAvatar', artist.directory, artist.avatarFileExtension)), wikiData.flashData .map(flash => fromRoot.to('media.flashArt', flash.directory, flash.coverArtFileExtension)), + + wikiData.trackData + .filter(track => track.hasUniqueCoverArt) + .map(track => fromRoot.to('media.trackCover', track.album.directory, track.directory, track.coverArtFileExtension)), ].flat(); sortByName(paths, {getName: path => path}); diff --git a/src/url-spec.js b/src/url-spec.js index 699f2bef..ea5337a2 100644 --- a/src/url-spec.js +++ b/src/url-spec.js @@ -26,8 +26,8 @@ const urlSpec = { home: '', album: 'album/<>/', - albumGallery: 'album/<>/gallery/', albumCommentary: 'commentary/album/<>/', + albumGallery: 'album/<>/gallery/', artist: 'artist/<>/', artistGallery: 'artist/<>/gallery/', @@ -35,6 +35,7 @@ const urlSpec = { commentaryIndex: 'commentary/', flashIndex: 'flash/', + flash: 'flash/<>/', flashActGallery: 'flash-act/<>/', @@ -43,13 +44,17 @@ const urlSpec = { groupGallery: 'group/<>/gallery/', listingIndex: 'list/', + listing: 'list/<>/', newsIndex: 'news/', + newsEntry: 'news/<>/', staticPage: '<>/', + tag: 'tag/<>/', + track: 'track/<>/', }, }, @@ -76,17 +81,16 @@ const urlSpec = { root: '', path: '<>', + albumAdditionalFile: 'album-additional/<>/<>', + albumBanner: 'album-art/<>/banner.<>', albumCover: 'album-art/<>/cover.<>', albumWallpaper: 'album-art/<>/bg.<>', - albumBanner: 'album-art/<>/banner.<>', - - trackCover: 'album-art/<>/<>.<>', artistAvatar: 'artist-avatar/<>.<>', flashArt: 'flash-art/<>.<>', - albumAdditionalFile: 'album-additional/<>/<>', + trackCover: 'album-art/<>/<>.<>', }, }, -- cgit 1.3.0-6-gf8a5