diff options
author | RaindropsSys <raindrops@equestria.dev> | 2023-10-30 23:08:45 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2023-10-30 23:08:45 +0100 |
commit | 41c51b8bdb9c8e9fa4a7d56f260d594739d4107e (patch) | |
tree | 4bb3e824d636c7cf8cb39fd0e1aa25c49c339164 /includes/process.js | |
parent | 4d4308c46d4f7801c657cc79d2243e1a81831334 (diff) | |
download | mist-41c51b8bdb9c8e9fa4a7d56f260d594739d4107e.tar.gz mist-41c51b8bdb9c8e9fa4a7d56f260d594739d4107e.tar.bz2 mist-41c51b8bdb9c8e9fa4a7d56f260d594739d4107e.zip |
Updated 35 files and added 28 files (automated)
Diffstat (limited to 'includes/process.js')
-rw-r--r-- | includes/process.js | 21 |
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..."); |