From bb324edee7568ddedbac7fa92fb9781526bd0125 Mon Sep 17 00:00:00 2001 From: ibratabian17 Date: Thu, 12 Jun 2025 21:12:28 +0700 Subject: [PATCH] Refactor MPD generation for song previews Update `generateSongdb` to directly use existing `mapPreviewMpd` values if available, falling back to `vp8`. Rename `generateMPD` to `getMPD` and `getMultiMPD` to accept a `song` object instead of `codename` for better data handling. This change streamlines MPD retrieval and generation, making it more robust. --- core/lib/songdb.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/lib/songdb.js b/core/lib/songdb.js index 5208fb1..812bb5e 100644 --- a/core/lib/songdb.js +++ b/core/lib/songdb.js @@ -57,11 +57,17 @@ songdbF.generateSongdb = function (platform = 'pc', version = '2017', style = fa const newDb = {}; Object.keys(songdbF.db).forEach(codename => { + const check = { + missing: false, + log: [ + + ] + } let song = { ...songdbF.db[codename] }; let assets = songdbF.getAsset(platform, codename, style); song.assets = assets; // USE Platform Specific Assets - if (2020 >= version) song.mapPreviewMpd = songdbF.generateMPD(codename, 'vp8'); + if (2020 >= version) song.mapPreviewMpd = song?.mapPreviewMpd?.vp8 ? song.mapPreviewMpd.vp8 : song.mapPreviewMpd; // Handle custom type name localization if (song.customTypeNameId) { @@ -87,16 +93,16 @@ songdbF.generateSongdb = function (platform = 'pc', version = '2017', style = fa }; // Function to handle MPD generation for video encoding -songdbF.getMultiMPD = function (codename) { +songdbF.getMultiMPD = function (song) { return { - "vp8": songdbF.generateMPD(codename, 'vp8'), - "vp9": songdbF.generateMPD(codename, 'vp9') + "vp8": songdbF.getMPD(song, 'vp8'), + "vp9": songdbF.getMPD(song, 'vp9') }; }; // Generate MPD XML dynamically -songdbF.generateMPD = function (codename, codec) { - return `\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n`; +songdbF.getMPD = function (song, codec) { + return song.mapPreviewMpd[codec] ? song.mapPreviewMpd[codec] : "vp8"; }; // Generate URLs if not available