« get me outta code hell

data format cleanup: albums - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-02-04 20:32:24 -0400
committer(quasar) nebula <qznebula@protonmail.com>2023-02-04 20:32:24 -0400
commitbbb9a3ad9c4626b4b9a2559d0e251d1fe1f5ef01 (patch)
treef4e1dce9f7ec83b3dd26a4cb8af8d186d0793855
parent732273af162ff6b97cf4442964223fbf6c2acf5f (diff)
data format cleanup: albums
* Remove `Is Major Release` (`isMajorRelease`)
* Remove major-release code in wiki-data.js
* Tidy `propertyFieldMapping` order

Major releases were useful when albums were being added
to the wiki on the regular, but are unused on HSMusic now,
and alternative approaches get more particular results
(currently hard-coded grid layout for larger icons, and
manually selected albums in homepage rows).
-rw-r--r--src/data/things/album.js2
-rw-r--r--src/data/yaml.js35
-rw-r--r--src/util/wiki-data.js41
3 files changed, 23 insertions, 55 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 0c0c7fb..2a188f2 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -106,7 +106,6 @@ export class Album extends Thing {
     hasCoverArt: Thing.common.flag(true),
     hasTrackArt: Thing.common.flag(true),
     hasTrackNumbers: Thing.common.flag(true),
-    isMajorRelease: Thing.common.flag(false),
     isListedOnHomepage: Thing.common.flag(true),
     isListedInGalleries: Thing.common.flag(true),
 
@@ -192,7 +191,6 @@ export class Album extends Thing {
     bannerDimensions: S.id,
 
     hasTrackArt: S.id,
-    isMajorRelease: S.id,
     isListedOnHomepage: S.id,
 
     commentary: S.id,
diff --git a/src/data/yaml.js b/src/data/yaml.js
index c4fb3ae..18f67c7 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -186,14 +186,20 @@ export const processAlbumDocument = makeProcessDocument(T.Album, {
 
   propertyFieldMapping: {
     name: 'Album',
-
-    color: 'Color',
     directory: 'Directory',
+    date: 'Date',
+    color: 'Color',
     urls: 'URLs',
 
-    artistContribsByRef: 'Artists',
-    coverArtistContribsByRef: 'Cover Artists',
-    trackCoverArtistContribsByRef: 'Default Track Cover Artists',
+    hasCoverArt: 'Has Cover Art',
+    hasTrackArt: 'Has Track Art',
+    hasTrackNumbers: 'Has Track Numbers',
+    isListedOnHomepage: 'Listed on Homepage',
+    isListedInGalleries: 'Listed in Galleries',
+
+    coverArtDate: 'Cover Art Date',
+    trackArtDate: 'Default Track Cover Art Date',
+    dateAddedToWiki: 'Date Added',
 
     coverArtFileExtension: 'Cover Art File Extension',
     trackCoverArtFileExtension: 'Track Art File Extension',
@@ -207,23 +213,14 @@ export const processAlbumDocument = makeProcessDocument(T.Album, {
     bannerFileExtension: 'Banner File Extension',
     bannerDimensions: 'Banner Dimensions',
 
-    date: 'Date',
-    trackArtDate: 'Default Track Cover Art Date',
-    coverArtDate: 'Cover Art Date',
-    dateAddedToWiki: 'Date Added',
-
-    hasCoverArt: 'Has Cover Art',
-    hasTrackArt: 'Has Track Art',
-    hasTrackNumbers: 'Has Track Numbers',
-    isMajorRelease: 'Major Release',
-    isListedOnHomepage: 'Listed on Homepage',
-    isListedInGalleries: 'Listed in Galleries',
+    commentary: 'Commentary',
+    additionalFiles: 'Additional Files',
 
+    artistContribsByRef: 'Artists',
+    coverArtistContribsByRef: 'Cover Artists',
+    trackCoverArtistContribsByRef: 'Default Track Cover Artists',
     groupsByRef: 'Groups',
     artTagsByRef: 'Art Tags',
-    commentary: 'Commentary',
-
-    additionalFiles: 'Additional Files',
   },
 });
 
diff --git a/src/util/wiki-data.js b/src/util/wiki-data.js
index c93cb66..0eb86a1 100644
--- a/src/util/wiki-data.js
+++ b/src/util/wiki-data.js
@@ -424,26 +424,14 @@ export function getArtistAvatar(artist, {to}) {
 // Big-ass homepage row functions
 
 export function getNewAdditions(numAlbums, {wikiData}) {
-  const {albumData} = wikiData;
-
-  // Sort al8ums, in descending order of priority, 8y...
-  //
-  // * D8te of addition to the wiki (descending).
-  // * Major releases first.
-  // * D8te of release (descending).
-  //
-  // Major releases go first to 8etter ensure they show up in the list (and
-  // are usually at the start of the final output for a given d8 of release
-  // too).
-  const sortedAlbums = albumData
+  const sortedAlbums = wikiData.albumData
     .filter((album) => album.isListedOnHomepage)
     .sort((a, b) => {
       if (a.dateAddedToWiki > b.dateAddedToWiki) return -1;
       if (a.dateAddedToWiki < b.dateAddedToWiki) return 1;
-      if (a.isMajorRelease && !b.isMajorRelease) return -1;
-      if (!a.isMajorRelease && b.isMajorRelease) return 1;
       if (a.date > b.date) return -1;
       if (a.date < b.date) return 1;
+      return 0;
     });
 
   // When multiple al8ums are added to the wiki at a time, we want to show
@@ -515,28 +503,13 @@ export function getNewAdditions(numAlbums, {wikiData}) {
     }
   }
 
-  // Finally, do some quick mapping shenanigans to 8etter display the result
-  // in a grid. (This should pro8a8ly 8e a separ8te, shared function, 8ut
-  // whatevs.)
-  return albums.map((album) => ({large: album.isMajorRelease, item: album}));
+  return albums.map((album) => ({item: album}));
 }
 
 export function getNewReleases(numReleases, {wikiData}) {
-  const {albumData} = wikiData;
-
-  const latestFirst = albumData
+  return wikiData.albumData
     .filter((album) => album.isListedOnHomepage)
-    .reverse();
-
-  const majorReleases = latestFirst.filter((album) => album.isMajorRelease);
-  majorReleases.splice(1);
-
-  const otherReleases = latestFirst
-    .filter((album) => !majorReleases.includes(album))
-    .slice(0, numReleases - majorReleases.length);
-
-  return [
-    ...majorReleases.map((album) => ({large: true, item: album})),
-    ...otherReleases.map((album) => ({large: false, item: album})),
-  ];
+    .reverse()
+    .slice(0, numReleases)
+    .map((album) => ({item: album}));
 }