summaryrefslogtreecommitdiff
path: root/includes/process.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/process.js')
-rw-r--r--includes/process.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/includes/process.js b/includes/process.js
index 0c34f94..14dc963 100644
--- a/includes/process.js
+++ b/includes/process.js
@@ -139,7 +139,7 @@ function timeToString(time) {
album: substitute(metadata['format']['tags']['ALBUM'] ?? metadata['format']['tags']['album'] ?? "Unknown album"),
artist: (substitute(metadata['format']['tags']['ARTIST'] ?? metadata['format']['tags']['artist'] ?? "Unknown artist")).replaceAll(";", ", ").replaceAll(" & ", ", ").replaceAll("&", ", ").replaceAll(", and ", ", "),
albumArtist: (substitute(metadata['format']['tags']['album_artist'] ?? metadata['format']['tags']['ARTIST'] ?? metadata['format']['tags']['artist'] ?? "Unknown artist")).replaceAll(";", ", ").replaceAll("&", ", ").replaceAll(", and ", ", "),
- date: parseInt(((metadata['format']['tags']['DATE'] ?? metadata['format']['tags']['date']).split("-")[0]).substring(0, 4)) ?? 0,
+ date: parseInt(((metadata['format']['tags']['DATE'] ?? metadata['format']['tags']['date'] ?? "0").split("-")[0]).substring(0, 4)) ?? 0,
track: parseInt(metadata['format']['tags']['track']) ?? 0,
disc: parseInt(metadata['format']['tags']['disc']) ?? 1,
copyright: metadata['format']['tags']['COPYRIGHT'] ?? metadata['format']['tags']['copyright'] ?? "",
@@ -217,16 +217,16 @@ function timeToString(time) {
console.log("Collecting albums...");
for (let song of Object.keys(songs)) {
- if (Object.values(albums).filter(i => i.title === songs[song].album).length > 0) {
+ if (Object.values(albums).filter(i => i.title === songs[song].album && i.artist === songs[song].albumArtist).length > 0) {
Object.values(albums).filter(i => i.title === songs[song].album)[0].tracks.push(song);
Object.values(albums).filter(i => i.title === songs[song].album)[0].hiRes = Object.values(albums).filter(i => i.title === songs[song].album)[0].hiRes || songs[song].hiRes;
} else {
let albumID = uuid();
if (fs.existsSync("/opt/mist")) {
- fs.copyFileSync("/opt/mist/jpeg/" + song + ".jpg", "/opt/mist/jpeg/" + albumID + ".jpg")
+ if (fs.existsSync("/opt/mist/jpeg/" + song + ".jpg")) fs.copyFileSync("/opt/mist/jpeg/" + song + ".jpg", "/opt/mist/jpeg/" + albumID + ".jpg");
} else {
- fs.copyFileSync("../assets/content/" + song + ".jpg", "../assets/content/" + albumID + ".jpg")
+ if (fs.existsSync("../assets/content/" + song + ".jpg")) fs.copyFileSync("../assets/content/" + song + ".jpg", "../assets/content/" + albumID + ".jpg");
}
albums[albumID] = {
@@ -254,6 +254,7 @@ function timeToString(time) {
}
}
+ console.log("Linking...");
let idList = [...Object.keys(songs), ...Object.keys(albums)];
if (fs.existsSync("/opt/mist")) {
@@ -314,6 +315,18 @@ function timeToString(time) {
album["tracks"] = [...new Set(album["tracks"])].filter(i => songs[i]).sort((a, b) => {
return songs[a]['track'] - songs[b]['track'];
});
+
+ if (fs.existsSync("/opt/mist")) {
+ if (!fs.existsSync("/opt/mist/jpeg/" + albumID + ".jpg")) fs.copyFileSync("../assets/default.jpg", "/opt/mist/jpeg/" + albumID + ".jpg");
+ } else {
+ if (!fs.existsSync("../assets/content/" + albumID + ".jpg")) fs.copyFileSync("../assets/default.jpg", "../assets/content/" + albumID + ".jpg");
+ }
+ }
+
+ for (let albumID of Object.keys(albums)) {
+ if (albums[albumID]["tracks"].length === 0) {
+ delete albums[albumID];
+ }
}
console.log("Writing metadata...");