Files
OpenParty/database/Platforms/songdbsGen.js
ibratabian17 ea941aaaad initial
2024-06-15 19:57:02 +08:00

63 lines
2.4 KiB
JavaScript

//This script will automatically generate songdb for specific platform
const fs = require('fs')
const path = require('path')
function mergeJSON(obj1, obj2) {
// Create a shallow copy of obj1 to avoid modifying it directly
var merged = Object.assign({}, obj1);
for (var key in obj2) {
if (obj2.hasOwnProperty(key)) {
if (typeof obj2[key] === 'object' && obj1.hasOwnProperty(key) && typeof obj1[key] === 'object') {
// Recursive merge if both values are objects
merged[key] = mergeJSON(obj1[key], obj2[key]);
} else {
// Only assign the value if it doesn't exist in obj1
if (!obj1.hasOwnProperty(key)) {
merged[key] = obj2[key];
}
}
}
}
return merged;
}
function generateSongdb(){
var tempAssets = {
"banner_bkgImageUrl": "",
"coach1ImageUrl": "",
"coverImageUrl": "",
"coverKidsImageUrl": "",
"coverKids_smallImageUrl": "",
"cover_1024ImageUrl": "",
"cover_smallImageUrl": "",
"expandBkgImageUrl": "",
"expandCoachImageUrl": "",
"map_bkgImageUrl": "",
"phoneCoach1ImageUrl": "",
"phoneCoverImageUrl": ""
}
var origin = mergeJSON(JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdb_nx.json'))), JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdbs.json'))))
var originpc = JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdb_pc.json')))
var originx1 = JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdb_xone.json')))
var originps4 = JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdb_ps4.json')))
var origincommon = JSON.parse(fs.readFileSync(path.join(__dirname, 'openparty-all/unused/songdb_common.json')))
var pc = {}
Object.keys(origin).forEach((currentSong) => {
const a = origin[currentSong]
const assets = a.assets
a.assets = {
nx: assets,
x1: originx1[currentSong] ? originx1[currentSong].assets : originpc[currentSong] ? originpc[currentSong].assets : tempAssets,
ps4: originps4[currentSong] ? originps4[currentSong].assets : tempAssets,
common: origincommon[currentSong] ? origincommon[currentSong].assets : tempAssets
}
pc[currentSong] = a;
})
var o = fs.writeFileSync(path.join(__dirname, 'openparty-all/songdbs.json'), JSON.stringify(pc, null, 2))
}
generateSongdb()