This commit is contained in:
ibratabian17
2024-06-15 19:57:02 +08:00
commit ea941aaaad
79 changed files with 122398 additions and 0 deletions

179
.gitignore vendored Normal file
View File

@@ -0,0 +1,179 @@
# Logs
logs
_.log
npm-debug.log_
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# Runtime data
pids
_.pid
_.seed
\*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
\*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
\*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
\*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.\*
# wrangler project
.dev.vars
.wrangler/
*.code-workspace
# XMLHttprequest cache
.node-xmlhttprequest*
#Run.js cache
*/tmp/logs.txt

22
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Nodemon Launch Server",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "nodemon --ignore 'panel/*'",
"runtimeArgs": [
" "
],
"program": "${workspaceRoot}/openparty.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}

39
README.md Normal file
View File

@@ -0,0 +1,39 @@
# OpenParty
OpenParty is a replacement server code for the Just Dance Unlimited server.
## About
This project is a ibratabian17 effort to provide an alternative server to Just Dance Unlimited. With OpenParty, you can enjoy the JDU experience without relying on official servers. (they killed it omg, shit)
100% handmade legit, Atleast better than JDParty.
## Usage
1. Clone my repsotiry:
```bash
git clone https://github.com/ibratabian17/openparty.git
cd openparty
npm i
```
3. ran thi server:
```bash
node server.js
```
## Struktur Direktori
- **database/Platforms/openparty-all/songdbs.json**: contain songdb
- **database/nohud/chunk.json**: contain no-HUD.
- **database/Platforms/jd2017-{Platform}/**: contain skupackages.
## Credit
- Wodson - JDCosmos Code
- Rama - His Leaked JDU Code
- Devvie - JDO Code
- Connor - JDWorld Code
- Mfadamo - Help me doing the JDU
- alexandregreff - JDU code
- XFelixBlack - JDU Code

218
core/carousel/carousel.js Normal file
View File

@@ -0,0 +1,218 @@
console.log(`[CAROUSEL] Initializing....`);
const { CloneObject, readDatabaseJson } = require('../helper');
const fs = require('fs');
const cClass = require("./classList.json");
const songdb = require("../../database/Platforms/openparty-all/songdbs.json");
const mostPlayed = require(`${__dirname}/../../database/carousel/mostplayed.json`);
var carousel = {}; //avoid list cached
const WEEKLY_PLAYLIST_PREFIX = 'DFRecommendedFU';
function updateMostPlayed(maps) {
const currentWeek = getWeekNumber();
mostPlayed[currentWeek] = mostPlayed[currentWeek] || {};
mostPlayed[currentWeek][maps] = (mostPlayed[currentWeek][maps] || 0) + 1;
fs.writeFileSync(`${__dirname}/../../database/carousel/mostplayed.json`, JSON.stringify(mostPlayed, null, 2));
}
function addCategories(categories) {
carousel.categories.push(Object.assign({}, categories));
}
function generateCategories(name, items, type = "partyMap") {
return {
__class: "Category",
title: name,
act: "ui_carousel",
isc: "grp_row",
items: generatePartymap(items, type).concat(cClass.itemSuffleClass),
};
}
function generatePartymap(arrays, type = "partyMap") {
return arrays.map(mapName => ({
__class: "Item",
isc: "grp_cover",
act: "ui_component_base",
components: [{
__class: "JD_CarouselContentComponent_Song",
mapName
}],
actionList: type
}));
}
function generateInfomap(arrays, type = "infoMap") {
return arrays.map(mapName => ({
__class: "Item",
isc: "grp_cover",
act: "ui_component_base",
components: [{
__class: "JD_CarouselContentComponent_Song",
mapName
}],
actionList: type,
}));
}
function filterSongs(songdbs, filterFunction) {
return songdbs.filter(filterFunction).sort((a, b) => {
const titleA = (songdb[a].title + songdb[a].mapName).toLowerCase();
const titleB = (songdb[b].title + songdb[b].mapName).toLowerCase();
return titleA.localeCompare(titleB);
});
}
// The following function was taken from here: https://stackoverflow.com/questions/16096872/how-to-sort-2-dimensional-array-by-column-value (answer by jahroy)
function compareSecondColumn(a, b) {
if (a[1] === b[1]) {
return 0;
}
else {
return (a[1] < b[1]) ? -1 : 1;
}
}
function sortByTitle(list, word) {
var x = [];
var doesntContainWord = [];
for (var i = 0; i < list.length; i++) {
var titleIndex = songdb[list[i]].title.toLowerCase().indexOf(word);
if (titleIndex === -1) {
doesntContainWord.push(list[i]);
} else {
x.push([list[i], titleIndex]);
}
}
doesntContainWord.sort();
x.sort(compareSecondColumn);
var toReturn = [];
for (var j = 0; j < x.length; j++) {
toReturn[j] = x[j][0];
}
return toReturn.concat(doesntContainWord);
}
function filterSongsBySearch(songdbs, search) {
// Filter songs based on search criteria
return sortByTitle(filterSongs(songdbs, item => {
const song = songdb[item];
return (
song.title.toLowerCase().includes(search.toLowerCase()) ||
song.artist.toLowerCase().includes(search.toLowerCase()) ||
song.mapName.toLowerCase().includes(search.toLowerCase()) ||
song.originalJDVersion == search ||
song.tags.includes(search)
);
}), search.toLowerCase());
}
function filterSongsByFirstLetter(songdbs, filter) {
return filterSongs(songdbs, song => {
const title = songdb[song].title.toLowerCase();
const regex = new RegExp(`^[${filter}].*`);
return regex.test(title);
});
}
function filterSongsByJDVersion(songdbs, version) {
return filterSongs(songdbs, song => songdb[song].originalJDVersion === version);
}
function filterSongsByTags(songdbs, Key) {
return filterSongs(songdbs, song => {
const songData = songdb[song];
return songData && songData.tags && songData.tags.indexOf(Key) > -1;
});
}
function getGlobalPlayedSong() {
try {
return Object.entries(mostPlayed[getWeekNumber()])
.sort((a, b) => b[1] - a[1])
.map(item => item[0]);
} catch (err) {
return [];
}
}
function shuffleArray(array) {
const shuffledArray = array.slice();
for (let i = shuffledArray.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
}
return shuffledArray.slice(0, 24);
}
function processPlaylists(playlists, type = "partyMap") {
playlists.forEach(playlist => {
if (!playlist.name.startsWith(WEEKLY_PLAYLIST_PREFIX)) {
addCategories(generateCategories(`[icon:PLAYLIST]${playlist.name}`, playlist.songlist, type));
}
});
}
function generateWeeklyRecommendedSong(playlists, type = "partyMap") {
playlists.forEach(playlist => {
if (playlist.name === `${WEEKLY_PLAYLIST_PREFIX}${getWeekNumber()}`) {
addCategories(generateCategories(`[icon:PLAYLIST]Weekly: ${playlist.RecommendedName || ""}`, playlist.songlist, type));
}
});
}
function getWeekNumber() {
const now = new Date();
const startOfWeek = new Date(now.getFullYear(), 0, 1);
const daysSinceStartOfWeek = Math.floor((now - startOfWeek) / (24 * 60 * 60 * 1000));
return Math.ceil((daysSinceStartOfWeek + 1) / 7);
}
function addJDVersion(songdbs, type = "partyMap") {
addCategories(generateCategories("ABBA: You Can Dance", filterSongsByJDVersion(songdbs, 4884), type));
addCategories(generateCategories("Just Dance Asia", filterSongsByJDVersion(songdbs, 4514), type));
addCategories(generateCategories("Just Dance Kids", filterSongsByJDVersion(songdbs, 123), type));
for (let year = 2024; year >= 2014; year--) {
addCategories(generateCategories(`Just Dance ${year}`, filterSongsByJDVersion(songdbs, year), type));
}
for (let year = 4; year >= 1; year--) {
addCategories(generateCategories(`Just Dance ${year}`, filterSongsByJDVersion(songdbs, year), type));
}
addCategories(generateCategories("Unplayable Songs", filterSongsByJDVersion(songdbs, 404)));
}
exports.generateCarousel = (search, type = "partyMap") => {
carousel = {};
carousel = CloneObject(cClass.rootClass);
carousel.actionLists = cClass.actionListsClass
const songdbs = Object.keys(songdb)
// Dynamic Carousel System
addCategories(generateCategories("Just Dance Unlimited Mod", filterSongs(songdbs, song => true), type));
addCategories(generateCategories("Recommended For You", CloneObject(shuffleArray(songdbs), type)));
addCategories(generateCategories("[icon:PLAYLIST]Recently Added!", CloneObject(filterSongsByTags(songdbs, 'NEW')), type));
generateWeeklyRecommendedSong(readDatabaseJson("carousel/playlist.json"), type);
processPlaylists(readDatabaseJson("carousel/playlist.json"), type);
addJDVersion(songdbs, type);
addCategories(generateCategories(`Most Played Weekly!`, CloneObject(getGlobalPlayedSong()), type));
addCategories(Object.assign({}, cClass.searchCategoryClass));
if (search !== "") {
addCategories(generateCategories(`[icon:SEARCH_RESULT] Result Of: ${search}`, CloneObject(filterSongsBySearch(songdbs, search)), type));
}
return carousel
}
exports.generateCoopCarousel = (search) => JSON.parse(JSON.stringify(generateCarousel(search, "partyMapCoop")));
exports.generateRivalCarousel = (search) => JSON.parse(JSON.stringify(generateCarousel(search, "partyMap")));
exports.generateSweatCarousel = (search) => JSON.parse(JSON.stringify(generateCarousel(search, "sweatMap")));
exports.generateChallengeCarousel = (search) => JSON.parse(JSON.stringify(generateCarousel(search, "create-challenge")));
exports.updateMostPlayed = (maps) => updateMostPlayed(maps);

View File

@@ -0,0 +1,598 @@
{
"itemClass": {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "",
"isNewSong":true
}
],
"actionList": ""
},
"itemSuffleClass": {
"__class": "Item",
"isc": "grp_shuffle",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_Shuffle"
}
],
"endPos": 3,
"actionList": "NonStop"
},
"rootClass": {
"__class": "JD_CarouselContent",
"categories": [],
"actionLists": {},
"songItemLists": {}
},
"categoriesClass": {
"__class": "Category",
"title": "",
"act": "ui_carousel",
"isc": "grp_row",
"items": []
},
"searchCategoryClass": {
"__class": "Category",
"title": "[icon:SEARCH_FILTER] Search",
"act": "ui_carousel",
"isc": "grp_row_search",
"items": [
{
"__class": "Item",
"act": "ui_component_base",
"components": [],
"isc": "grp_search",
"actionList": "search"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Halloween"
],
"presetTitle": "Halloween",
"trackingTitle": "Halloween"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Princess"
],
"presetTitle": "Princess",
"trackingTitle": "Princess"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Electro"
],
"presetTitle": "Electro",
"trackingTitle": "Electro"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Animals"
],
"presetTitle": "Animals",
"trackingTitle": "Animals"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"TV and Movies"
],
"presetTitle": "TV and Movies",
"trackingTitle": "TV and Movies"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Christmas"
],
"presetTitle": "Christmas",
"trackingTitle": "Christmas"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"80s"
],
"presetTitle": "80s",
"trackingTitle": "80s"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Disco Funk"
],
"presetTitle": "Disco Funk",
"trackingTitle": "Disco Funk"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Kpop"
],
"presetTitle": "K-pop",
"trackingTitle": "K-pop"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Superhero"
],
"presetTitle": "Superhero",
"trackingTitle": "Superhero"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Panda"
],
"presetTitle": "Panda",
"trackingTitle": "Panda"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Solo"
],
"presetTitle": "Solo",
"trackingTitle": "Solo"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Duet"
],
"presetTitle": "Duet",
"trackingTitle": "Duet"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Trio"
],
"presetTitle": "Trio",
"trackingTitle": "Trio"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Quartet"
],
"presetTitle": "Quartet",
"trackingTitle": "Quartet"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 2017"
],
"presetTitle": "Just Dance 2017",
"trackingTitle": "Just Dance 2017"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 2016"
],
"presetTitle": "Just Dance 2016",
"trackingTitle": "Just Dance 2016"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 2015"
],
"presetTitle": "Just Dance 2015",
"trackingTitle": "Just Dance 2015"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 2014"
],
"presetTitle": "Just Dance 2014",
"trackingTitle": "Just Dance 2014"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 4"
],
"presetTitle": "Just Dance 4",
"trackingTitle": "Just Dance 4"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 3"
],
"presetTitle": "Just Dance 3",
"trackingTitle": "Just Dance 3"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 2"
],
"presetTitle": "Just Dance 2",
"trackingTitle": "Just Dance 2"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Just Dance 1"
],
"presetTitle": "Just Dance 1",
"trackingTitle": "Just Dance 1"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
}
]
},
"actionListsClass": {
"search": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerType": "SEARCH",
"title": "Search",
"type": "open-keyboard"
},
{
"__class": "Action",
"bannerContext": "default",
"bannerTheme": "DEFAULT",
"bannerType": "SEARCH",
"title": "Previous Search",
"type": "previous-search"
}
],
"itemType": "search"
},
"sweatMap": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "CONTEXT_SWEAT",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance",
"type": "play-song"
},
{
"__class": "Action",
"bannerContext": "CONTEXT_SWEAT",
"bannerTheme": "DEFAULT",
"bannerType": "song_leaderboard",
"title": "Leaderboard",
"type": "leaderboard"
},
{
"__class": "Action",
"bannerContext": "CONTEXT_SWEAT",
"bannerTheme": "DEFAULT",
"bannerType": "song_licensing",
"title": "Credits",
"type": "credits"
}
],
"itemType": "map"
},
"create-challenge": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "family",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance",
"type": "play-song"
}
],
"itemType": "challengeV2"
},
"create-playlist": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"title": "Add Song",
"type": "add-song"
}
],
"itemType": "map"
},
"searchPreset": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerType": "SEARCH",
"title": "Search preset",
"type": "search-preset"
}
],
"itemType": "search"
},
"NonStop": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerType": "SHUFFLE",
"title": "Dance!",
"type": "start-rowPlaylist"
}
],
"itemType": "map"
},
"infoMap": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song_licensing",
"title": "Credits",
"type": "credits"
}
],
"itemType": "map"
},
"partyMap": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance!",
"type": "play-song"
},
{
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song_leaderboard",
"title": "Leaderboard",
"type": "leaderboard"
},
{
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song_licensing",
"title": "Credits",
"type": "credits"
}
],
"itemType": "map"
},
"partyMapCoop": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "family_coop",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance",
"type": "play-song"
},
{
"__class": "Action",
"bannerContext": "family_coop",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Add to favorites",
"type": "set-favorite"
},
{
"__class": "Action",
"bannerContext": "family_coop",
"bannerTheme": "DEFAULT",
"bannerType": "song_licensing",
"title": "Credits",
"type": "credits"
}
],
"itemType": "map"
}
}
}

32
core/core.js Normal file
View File

@@ -0,0 +1,32 @@
var { main } = require('./var')
var fs = require("fs"); // require https module
function init(app, express) {
const bodyParser = require("body-parser");
app.use(express.json());
app.use(bodyParser.raw());
app.use((err, req, res, next) => {
// shareLog('ERROR', `${err}`)
res.status(500).send('Internal Server Error');
//idk what happened
});
//initialize route module
require('./route/rdefault').initroute(app);
require('./route/account').initroute(app);
require('./route/leaderboard').initroute(app);
require('./route/ubiservices').initroute(app);
//hide error when prod
app.get('*', function(req, res){
res.status(404).send({
'error': 404,
'message': 'Path Not Recognized'
});
});
}
module.exports = {
main, init
}

36
core/helper.js Normal file
View File

@@ -0,0 +1,36 @@
//JDPARTY CLONE OBJECT
const fs = require('fs');
const axios = require('axios');
const downloader = {
};
function CloneObject(ObjectC) {
return JSON.parse(JSON.stringify(ObjectC))
}
function readDatabaseJson(path) {
return JSON.parse(fs.readFileSync(`${__dirname}/../database/${path}`, 'utf8'));
}
downloader.getJson = async (url, options) => {
const response = await axios.get(url, options);
return response.data;
}
function extractSkuIdInfo(url) {
// Split the URL by '/'
const parts = url.split('/');
// Get the last part of the URL
const lastPart = parts[parts.length - 1];
// Remove the file extension (.json)
const filename = lastPart.split('.')[0];
const filenameParts = filename.split('-');
let version = filenameParts[0];
version = version.slice(2);
const platform = filenameParts[1];
const type = filenameParts.slice(2).join('-')
return { version, platform, type };
}
module.exports = {
CloneObject, readDatabaseJson, downloader, extractSkuIdInfo
}

59
core/lib/signUrl.js Normal file
View File

@@ -0,0 +1,59 @@
const crypto = require('crypto');
const secretKey = 'JDPartyLekasAmSuperShai';
exports.generateSignedURL = (originalURL) => {
// Set expiration time (in seconds)
const expirationTime = Math.floor(Date.now() / 1000) + 3600; // 1 hour from now
// Generate the string to sign
const stringToSign = `exp=${expirationTime}~acl=/private/songdb/prod/*`;
// Create HMAC (SHA-256) of the string to sign using the secret key
const hmac = crypto.createHmac('sha256', secretKey);
hmac.update(stringToSign);
const signature = hmac.digest('hex');
// Append the signature and expiration time to the original URL
const signedURL = `${originalURL}?auth=${stringToSign}~hmac=${signature}`;
return signedURL;
}
exports.verifySignedURL = (signedURL) => {
// Extract signature and expiration time from the signed URL
const urlParts = signedURL.split('?');
if (urlParts.length !== 2) {
return false; // Invalid URL format
}
const queryParams = urlParts[1].split('~');
const signatureParam = queryParams.find(param => param.startsWith('auth='));
const hmacParam = queryParams.find(param => param.startsWith('hmac='));
if (!signatureParam || !hmacParam) {
return false; // Signed URL format is invalid
}
const expire = signatureParam.split('=')[2];
const hmac = hmacParam.split('=')[1];
// Extract expiration time from the signature
const expirationTimeStr = expire;
const expirationTime = parseInt(expirationTimeStr, 10);
// Ensure the current time is before the expiration time
if (Date.now() / 1000 > expirationTime) {
return false; // URL has expired
}
// Recreate the string to sign
const stringToSign = `exp=${expirationTimeStr}~acl=/private/songdb/prod/*`;
// Compute HMAC using the secret key
const hmacVerifier = crypto.createHmac('sha256', secretKey);
hmacVerifier.update(stringToSign);
const computedHmac = hmacVerifier.digest('hex');
// Compare computed HMAC with extracted HMAC
return computedHmac === hmac;
}

181
core/lib/songdb.js Normal file
View File

@@ -0,0 +1,181 @@
//Songdbs Property
const songdbF = {}
const main = {
songdb: { "2016": {}, "2017": {}, "2018": {}, "2019": {}, "2020": {}, "2021": {}, "2022": {} },
localisation: require('../../database/Platforms/openparty-all/localisation.json')
}
songdbF.db = require('../../database/Platforms/openparty-all/songdbs.json')
songdbF.missingAssets = { pc: [] }
songdbF.assetsPlaceholder = {
"banner_bkgImageUrl": "https://cdn.discordapp.com/attachments/1119503808653959218/1119518680733192222/New_Project_82_Copy_0ED1403.png",
"coach1ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Coach_1.tga.ckd/5e3b1feb1e38f523cbab509a1590df59.ckd",
"phoneCoach1ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/WantUBack_Coach_1_Phone.png/5541105eacbc52648bd1462e564d2680.png",
"coach2ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Coach_1.tga.ckd/5e3b1feb1e38f523cbab509a1590df59.ckd",
"phoneCoach2ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/WantUBack_Coach_1_Phone.png/5541105eacbc52648bd1462e564d2680.png",
"coach3ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Coach_1.tga.ckd/5e3b1feb1e38f523cbab509a1590df59.ckd",
"phoneCoach3ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/WantUBack_Coach_1_Phone.png/5541105eacbc52648bd1462e564d2680.png",
"coach4ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Coach_1.tga.ckd/5e3b1feb1e38f523cbab509a1590df59.ckd",
"phoneCoach4ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/WantUBack_Coach_1_Phone.png/5541105eacbc52648bd1462e564d2680.png",
"coverImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Cover_Generic.tga.ckd/f61d769f960444bec196d94cfd731185.ckd",
"cover_1024ImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/WantUBack_Cover_1024.png/9e82873097800b27569f197e0ce848cd.png",
"cover_smallImageUrl": "https://cdn.discordapp.com/attachments/1119503808653959218/1119518681039384627/New_Project_82_8981698.png",
"expandBkgImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Cover_AlbumBkg.tga.ckd/6442844a971a9690bd2bf43f1f635696.ckd",
"expandCoachImageUrl": "https://jd-s3.cdn.ubi.com/public/map/WantUBack/x1/WantUBack_Cover_AlbumCoach.tga.ckd/dc01eb7b94e0b10c0f52a0383e51312e.ckd",
"phoneCoverImageUrl": "https://cdn.discordapp.com/attachments/1119503808653959218/1119518681039384627/New_Project_82_8981698.png",
"videoPreviewVideoURL": "",
"map_bkgImageUrl": "https://cdn.discordapp.com/attachments/1119503808653959218/1119518680733192222/New_Project_82_Copy_0ED1403.png"
}
songdbF.generateSongdb = function (platform = 'pc', version = '2017', style = false) {
const newdb = JSON.parse(JSON.stringify({}))
if (parseInt(version) > 2020) {
Object.keys(songdbF.db).forEach(codename => {
var song = JSON.parse(JSON.stringify(songdbF.db[codename]))
var assets = JSON.parse(JSON.stringify(songdbF.getAsset(platform, codename, style)))
if (assets !== songdbF.assetsPlaceholder) {
song.assets = assets
}
songdbF.multimpd = {
"videoEncoding": {
"vp8": `<?xml version=\"1.0\"?>\r\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\" type=\"static\" mediaPresentationDuration=\"PT30S\" minBufferTime=\"PT1S\" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\">\r\n\t<Period id=\"0\" start=\"PT0S\" duration=\"PT30S\">\r\n\t\t<AdaptationSet id=\"0\" mimeType=\"video/webm\" codecs=\"vp8\" lang=\"eng\" maxWidth=\"720\" maxHeight=\"370\" subsegmentAlignment=\"true\" subsegmentStartsWithSAP=\"1\" bitstreamSwitching=\"true\">\r\n\t\t\t<Representation id=\"0\" bandwidth=\"495833\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp8.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1110\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"1\" bandwidth=\"1478538\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp8.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"622-1112\">\r\n\t\t\t\t\t<Initialization range=\"0-622\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"2\" bandwidth=\"2880956\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp8.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"622-1112\">\r\n\t\t\t\t\t<Initialization range=\"0-622\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"3\" bandwidth=\"3428057\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp8.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"622-1112\">\r\n\t\t\t\t\t<Initialization range=\"0-622\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t</AdaptationSet>\r\n\t</Period>\r\n</MPD>\r\n`,
"vp9": `<?xml version=\"1.0\"?>\r\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\" type=\"static\" mediaPresentationDuration=\"PT30S\" minBufferTime=\"PT1S\" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\">\r\n\t<Period id=\"0\" start=\"PT0S\" duration=\"PT30S\">\r\n\t\t<AdaptationSet id=\"0\" mimeType=\"video/webm\" codecs=\"vp9\" lang=\"eng\" maxWidth=\"720\" maxHeight=\"370\" subsegmentAlignment=\"true\" subsegmentStartsWithSAP=\"1\" bitstreamSwitching=\"true\">\r\n\t\t\t<Representation id=\"0\" bandwidth=\"648085\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"1\" bandwidth=\"1492590\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"2\" bandwidth=\"2984529\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"3\" bandwidth=\"5942260\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1118\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t</AdaptationSet>\r\n\t</Period>\r\n</MPD>\r\n`
}
}
song.mapPreviewMpd = songdbF.multimpd
if (song.customTypeNameId) song.customTypeName = main.localisation[song.customTypeNameId] ? main.localisation[song.customTypeNameId].en || "" : `MISSING:${[song.customTypeNameId]}`
//check does previewVideoExist??
if (!song.urls || (song.urls && !song.urls[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm`])) {
var tempaudioPrev = (song.urls && song.urls[`jmcs://jd-contents/${codename}/${codename}_AudioPreview.ogg`]) || ""
song.urls = {
[`jmcs://jd-contents/${codename}/${codename}_AudioPreview.ogg`]: tempaudioPrev,
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm`]: ""
}
}
newdb[codename] = song
});
}
if (parseInt(version) < 2020) {
Object.keys(songdbF.db).forEach(codename => {
var song = JSON.parse(JSON.stringify(songdbF.db[codename]))
var assets = {}
if (platform == "pcdreyn") {
assets = JSON.parse(JSON.stringify(songdbF.getAsset(platform, codename, style, function (platformAssets) {
platformAssets.expandBkgImageUrl = platformAssets.cover_1024ImageUrl
if (platformAssets.song_TitleImageUrl) platformAssets.cover_smallImageUrl = platformAssets.song_TitleImageUrl
return platformAssets
})))
const jDiff = { "1": "Easy", "2": "Medium", "3": "Hard", "4": "Extreme" }
const jCoaches = { "1": "Easy", "2": "Medium", "3": "Hard", "4": "Extreme" }
song.credits = `${song.difficulty}: ${jDiff[song.difficulty]} ${song.coachCount}: ${jCoaches[song.coachCount]}`
} else {
assets = JSON.parse(JSON.stringify(songdbF.getAsset(platform, codename, style)))
}
if (assets !== songdbF.assetsPlaceholder) {
song.assets = assets
}
songdbF.singlempd = `<?xml version=\"1.0\"?>\r\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\" type=\"static\" mediaPresentationDuration=\"PT30S\" minBufferTime=\"PT1S\" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\">\r\n\t<Period id=\"0\" start=\"PT0S\" duration=\"PT30S\">\r\n\t\t<AdaptationSet id=\"0\" mimeType=\"video/webm\" codecs=\"vp9\" lang=\"eng\" maxWidth=\"720\" maxHeight=\"370\" subsegmentAlignment=\"true\" subsegmentStartsWithSAP=\"1\" bitstreamSwitching=\"true\">\r\n\t\t\t<Representation id=\"0\" bandwidth=\"648085\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"1\" bandwidth=\"1492590\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"2\" bandwidth=\"2984529\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"3\" bandwidth=\"5942260\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1118\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t</AdaptationSet>\r\n\t</Period>\r\n</MPD>\r\n`
var vp9Preview = song.mapPreviewMpd && song.mapPreviewMpd.vp9 ? song.mapPreviewMpd.vp9 : false;
song.mapPreviewMpd = vp9Preview || songdbF.singlempd
if (!Array.isArray(song.skuIds)) {
var skuIds = song.skuIds || {}
song.skuIds = Object.values(skuIds)
}
if (!Array.isArray(song.tags)) {
var tags = song.tags || {}
song.tags = Object.values(tags)
}
if (!Array.isArray(song.searchTagsLocIds)) {
var searchTagsLocIds = song.searchTagsLocIds || {}
song.searchTagsLocIds = Object.values(searchTagsLocIds)
} else if (song.searchTagsLocIds == undefined) {
song.searchTagsLocIds = ["30000315"]
}
if (!Array.isArray(song.searchTags)) {
var searchTags = song.searchTags || {}
song.searchTags = Object.values(searchTags)
} else if (song.searchTags == undefined) {
song.searchTags = []
}
if (!Array.isArray(song.jdmAttributes)) {
var jdmAttributes = song.jdmAttributes || {}
song.jdmAttributes = Object.values(jdmAttributes)
}
if (song.customTypeNameId) song.customTypeName = main.localisation[song.customTypeNameId] ? main.localisation[song.customTypeNameId].en || "" : `MISSING:${[song.customTypeNameId]}`
if (!song.urls || (song.urls && !song.urls[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm`])) {
var tempaudioPrev = (song.urls && song.urls[`jmcs://jd-contents/${codename}/${codename}_AudioPreview.ogg`]) || ""
song.urls = {
[`jmcs://jd-contents/${codename}/${codename}_AudioPreview.ogg`]: tempaudioPrev,
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_HIGH.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_LOW.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_MID.vp9.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp8.webm`]: "",
[`jmcs://jd-contents/${codename}/${codename}_MapPreviewNoSoundCrop_ULTRA.vp9.webm`]: ""
}
}
newdb[codename] = song
});
}
return newdb
}
songdbF.getAsset = function (platform, codename, style = false, modifier = function (a) { return a }) {
var CurrentPlatform = platform
var platformAssets = JSON.parse('{}')
if (platform == 'pc') { CurrentPlatform = 'x1' }
if (!songdbF.areAllValuesEmpty(songdbF.db[codename].assets[CurrentPlatform]) || songdbF.db[codename].assets[CurrentPlatform] == {}) {
platformAssets = JSON.parse(JSON.stringify(songdbF.db[codename].assets[CurrentPlatform]));
}
else if (!songdbF.areAllValuesEmpty(songdbF.db[codename].assets.common) || songdbF.db[codename].assets[CurrentPlatform] == {}) {
platformAssets = JSON.parse(JSON.stringify(songdbF.db[codename].assets.common));
}
else {
platformAssets = songdbF.assetsPlaceholder
}
// Return the platformAssets
// Check if style is true or banner_bkgImageUrl is empty, then set banner_bkgImageUrl to map_bkgImageUrl
if (style == true || (!platformAssets.banner_bkgImageUrl || (platformAssets.banner_bkgImageUrl && platformAssets.banner_bkgImageUrl == ""))) {
platformAssets.banner_bkgImageUrl = ""
platformAssets.banner_bkgImageUrl = platformAssets.map_bkgImageUrl
}
platformAssets = JSON.parse(JSON.stringify(modifier(JSON.parse(JSON.stringify(platformAssets)))))
return JSON.parse(JSON.stringify(platformAssets));
}
songdbF.generate = function () {
Object.keys(main.songdb).forEach((version) => {
const a = {}
if (version == 2017) a.pcdreyn = JSON.parse(JSON.stringify(songdbF.generateSongdb('pcdreyn', version, true)))
a.pcparty = JSON.parse(JSON.stringify(songdbF.generateSongdb('pc', version, true)))
a.pc = JSON.parse(JSON.stringify(songdbF.generateSongdb('pc', version, false)))
a.nx = JSON.parse(JSON.stringify(songdbF.generateSongdb('nx', version, false)))
a.wiiu = JSON.parse(JSON.stringify(songdbF.generateSongdb('wiiu', version, false)))
main.songdb[version] = a
})
}
songdbF.areAllValuesEmpty = function (obj) {
for (let key in obj) {
if (obj.hasOwnProperty(key) && obj[key] !== "") {
return false;
}
}
return true;
}
songdbF.generateSonglist = function () {
console.log(`[SONGDB] Processing Songdbs`)
songdbF.generate()
console.log(`[SONGDB] ${Object.keys(main.songdb[2017].pc).length} Maps Loaded`)
return main.songdb
}
module.exports = { songdbF }

137
core/route/account.js Normal file
View File

@@ -0,0 +1,137 @@
// core/route/account.js
//shit implementation, i need to fix it asap
const fs = require("fs");
const axios = require("axios");
const hidepass = btoa('SkROZXh0Q2F1dGlvblBsZWFzZURvTm90U3RlYWxVc2VyRGF0YS4xMg==');
function encrypt(str, secretKey) {
const encodedResult = Buffer.from(str).toString('base64');
let result = '';
for (let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i) ^ secretKey.charCodeAt(i % secretKey.length);
result += String.fromCharCode(charCode);
}
return encodedResult;
}
function decrypt(str, secretKey) {
const decodedStr = Buffer.from(str, 'base64').toString('ascii');
let result = '';
for (let i = 0; i < decodedStr.length; i++) {
const charCode = decodedStr.charCodeAt(i) ^ secretKey.charCodeAt(i % secretKey.length);
result += String.fromCharCode(charCode);
}
return result;
}
exports.initroute = (app) => {
const ubiwsurl = "https://public-ubiservices.ubi.com";
const prodwsurl = "https://prod.just-dance.com";
// Endpoint to get profiles based on profileIds
app.get("/profile/v2/profiles", (req, res) => {
const ticket = req.header("Authorization"); // Extract Authorization header
const profilesid = req.query.profileIds.split(','); // Split profileIds into an array
const dataFilePath = 'database/account/profiles/user.json'; // Path to user data file
const encryptedData = fs.readFileSync(dataFilePath, 'utf8'); // Read encrypted user data
let decryptedData;
try {
decryptedData = JSON.parse(encryptedData); // Parse decrypted user data
} catch (err) {
decryptedData = {}; // Set empty object if data cannot be parsed
}
// Map over profileIds to retrieve corresponding user profiles or create default profiles
const responseProfiles = profilesid.map(profileId => {
const userProfile = decryptedData[profileId]; // Get user profile based on profileId
if (userProfile) {
return { ...userProfile, ip: req.ip }; // Add IP to userProfile but not in the response
} else {
const defaultProfile = { ip: req.ip }; // Create a default profile with IP address
decryptedData[profileId] = defaultProfile; // Add default profile to decrypted data
return {}; // Return an empty object (don't include defaultProfile in response)
}
});
const encryptedUserProfiles = JSON.stringify(decryptedData); // Stringify decrypted data
fs.writeFileSync(dataFilePath, encryptedUserProfiles); // Write updated data to file
res.send(responseProfiles); // Send response containing user profiles
});
// Endpoint to update or create a user profile
app.post("/profile/v2/profiles", (req, res) => {
const ticket = req.header("Authorization"); // Extract Authorization header
const content = req.body; // Extract content from request body
const dataFilePath = 'database/account/profiles/user.json'; // Path to user data file
const encryptedData = fs.readFileSync(dataFilePath, 'utf8'); // Read encrypted user data
let decryptedData;
try {
decryptedData = JSON.parse(encryptedData); // Parse decrypted user data
} catch (err) {
decryptedData = {}; // Set empty object if data cannot be parsed
}
// Find a matching profile based on name or IP address (only one profile)
// Check whether this user is a cracked game user
if (content.name === "ALI123") {
return res.status(400).send({
error: "Cracked user is not allowed to use profiles"
}); // Send 400 status with error message
}
const matchedProfileId = Object.keys(decryptedData).find(profileId => {
const userProfile = decryptedData[profileId]; // Get user profile based on profileId
return userProfile.name === content.name || userProfile.ip === req.ip; // Check for name or IP match
});
if (matchedProfileId) {
decryptedData[matchedProfileId] = content; // Update existing profile with posted content
const encryptedUserProfiles = JSON.stringify(decryptedData); // Stringify decrypted data
fs.writeFileSync(dataFilePath, encryptedUserProfiles); // Write updated data to file
res.send(encryptedUserProfiles); // Send updated encrypted data as response
} else {
res.status(404).send("Profile not found."); // Send 404 status if profile not found
}
});
app.delete("/profile/v2/favorites/maps/:MapName", async (req, res) => {
try {
var MapName = req.params.MapName;
var ticket = req.header("Authorization");
var SkuId = req.header("X-SkuId");
var response = await axios.delete(
prodwsurl + "/profile/v2/favorites/maps/" + MapName,
{
headers: {
"X-SkuId": SkuId,
Authorization: ticket,
},
}
);
res.send(response.data);
} catch (error) {
res.status(500).send(error.message);
}
});
app.get("/v3/profiles/sessions", async (req, res) => {
try {
var ticket = req.header("Authorization");
var appid = req.header("Ubi-AppId");
var response = await axios.get(ubiwsurl + "/v3/profiles/sessions", {
headers: {
"Content-Type": "application/json",
"Ubi-AppId": appid,
Authorization: ticket,
},
});
res.send(response.data);
} catch (error) {
res.status(500).send(error.message);
}
});
app.post("/profile/v2/filter-players", function (request, response) {
response.send(["00000000-0000-0000-0000-000000000000"]);
});
}

324
core/route/leaderboard.js Normal file
View File

@@ -0,0 +1,324 @@
console.log(`[LEADERBOARD] Initializing....`);
const fs = require("fs");
const axios = require("axios");
const core = {
main: require('../var').main,
CloneObject: require('../helper').CloneObject,
generateCarousel: require('../carousel/carousel').generateCarousel, generateSweatCarousel: require('../carousel/carousel').generateSweatCarousel, generateCoopCarousel: require('../carousel/carousel').generateCoopCarousel, updateMostPlayed: require('../carousel/carousel').updateMostPlayed
}
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
function generateToolNickname() {
const prefixes = ["Wordkeeper", "Special", "Krakenbite", "DinosaurFan", "Definehub", "Termtracker", "Lexiconet", "Vocabvault", "Lingolink", "Glossarygenius", "Thesaurustech", "Synonymster", "Definitionary", "Jargonjot", "Idiomizer", "Phraseforge", "Meaningmaker", "Languageledger", "Etymologyengine", "Grammarguard", "Syntaxsense", "Semanticsearch", "Orthographix", "Phraseology", "Vernacularvault", "Dictionet", "Slangscroll", "Lingualist", "Grammargrid", "Lingoledge", "Termtoolbox", "Wordware", "Lexigizmo", "Synosearch", "Thesaurustech", "Phrasefinder", "Vocabvortex", "Meaningmatrix", "Languageledger", "Etymologist", "Grammargate", "Syntaxsphere", "Semanticsearch", "Orthographix", "Phraseplay", "Vernacularvault", "Dictionator", "Slangstack", "Lingolink", "Grammarguide", "Lingopedia", "Termtracker", "Wordwizard", "Lexilist", "Synomate", "Thesaurustool", "Definitizer", "Jargonjunction", "Idiomgenius", "Phrasemaker", "Meaningmate", "Duolingo", "Languagelink", "Etymoengine", "Grammarguru", "Syntaxsage", "Semanticsuite", "Orthography", "Phrasefinder", "Vocabverse", "Lexipedia", "Synoscribe", "Thesaurusware", "Definitionary", "Jargonscribe", "Idiomster", "Phrasetech", "Meaningmax", "Flop", "Slayguy", "Languagelex", "Etymoedge", "Grammargenie", "Syntaxsync", "Semanticsearch", "Orthography", "Phraseforge", "Vernacularex", "Dictionmaster", "Slangster", "Lingoware", "Grammargraph", "Lingomate", "Termmate", "Wordwork", "Lexixpert", "Synostar", "Thesaurusmax", "OculusVision", "FlowerPower", "RustySilver", "Underfire", "Shakeawake", "Truthhand", "Kittywake", "Definize", "Jargonize", "Idiomify", "Phrasemaster", "Meaningmark", "Lingualine", "Etymogenius", "Grammarguard", "Syntaxsmart", "Semanticsearch", "Orthography", "Phrasedex", "Vocabmax", "Lexilock", "Synomind", "Thesaurusmart", "Definify", "Jargonmatrix", "Idiomnet", "Phraseplay", "Meaningmate", "Lingolink", "Etymoexpert", "Grammargetter", "Syntaxsage", "Semanticsearch", "Orthography", "Phrasepad", "Vernacularvibe", "Dictiondom", "Slangster", "Lingolytics", "Grammargenie", "Lingotutor", "Termtracker", "Wordwarp", "Lexisync", "Synomind", "Thesaurusmate", "Definizer", "Jargonify", "Idiomster", "Phraselab", "Meaningmark", "Languageleaf", "Etymoedge", "Grammargrid", "Syntaxsync", "Semanticsuite", "Orthographix", "Phraseforge", "Vernacularvibe", "Dictiondom", "Slangster", "Lingolytics", "Grammargenie", "Lingotutor", "Termtracker", "Wordwarp", "Lexisync", "Synomind", "Thesaurusmate", "Definizer", "Jargonify", "Idiomster", "Phraselab", "Meaningmark", "Languageleaf", "Etymoedge", "Grammargrid", "Syntaxsync", "Semanticsuite", "Orthographix"];
const suffixes = ["", "K", "Eja", "Guru", "Master", "Expert", "Ninja", "Pro", "Genius", "Champion", "Mega", "Super", "Ultra", "Ok", "Boomer"];
const numbers = Math.floor(Math.random() * 10000); // Generate a random 4-digit number
const randomPrefix = prefixes[Math.floor(Math.random() * prefixes.length)];
const randomSuffix = suffixes[Math.floor(Math.random() * suffixes.length)];
var name = "";
if (Math.floor(Math.random() * 2) == 1) {
return randomPrefix + numbers;
} else {
return randomSuffix + numbers;
}
}
const initroute = (app) => {
app.post("/leaderboard/v1/maps/:mapName/friends", async (req, res) => {
const { mapName } = req.params;
let leaderboardData = {
"__class": "LeaderboardList",
"entries": []
};
try {
leaderboardData.entries.push({
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": 13333,
"name": ">:(",
"avatar": 1,
"country": 0,
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
});
res.json(leaderboardData);
} catch (error) {
console.error("Error:", error.message);
res.status(500).send("Internal Server Error");
}
});
app.get("/leaderboard/v1/maps/:mapName/countries/:country", async (req, res) => {
const { mapName } = req.params;
let leaderboardData = {
"__class": "LeaderboardList",
"entries": []
};
try {
leaderboardData.entries.push(
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
});
res.json(leaderboardData);
} catch (error) {
console.error("Error:", error.message);
res.status(500).send("Internal Server Error");
}
});
app.get("/leaderboard/v1/maps/:mapName/world", async (req, res) => {
const { mapName } = req.params;
let leaderboardData = {
"__class": "LeaderboardList",
"entries": []
};
try {
leaderboardData.entries.push(
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
},
{
"__class": "LeaderboardEntry_Online",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": Math.floor(Math.random() * 1333) + 12000,
"name": generateToolNickname(),
"avatar": Math.floor(Math.random() * 100),
"country": Math.floor(Math.random() * 20),
"platformId": "e3",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0,
"mapName": mapName
});
res.json(leaderboardData);
} catch (error) {
console.error("Error:", error.message);
res.status(500).send("Internal Server Error");
}
});
app.post("/profile/v2/map-ended", (req, res) => {
var codename = req.body;
for (let i = 0; i < codename.length; i++) {
var song = codename[i];
core.updateMostPlayed(song)
if (fs.existsSync("./../../database/leaderboard/dotw/" + song.mapName + ".json")) {
const readFile = fs.readFileSync(
"./../../database/leaderboard/dotw/" + song.mapName + ".json"
);
var JSONParFile = JSON.parse(readFile);
if (JSONParFile.score > song.score) {
res.send(`1`);
}
} else {
var ticket = req.header("Authorization");
var xhr33 = new XMLHttpRequest();
var sku = req.header('X-SkuId');
var gameVer = sku.substring(0, 6);
var prodwsurl = "https://prod.just-dance.com/"
xhr33.open(req.method, prodwsurl + req.url, true);
xhr33.setRequestHeader("X-SkuId", sku);
xhr33.setRequestHeader("Authorization", ticket);
xhr33.setRequestHeader("Content-Type", "application/json");
xhr33.send(JSON.stringify(req.body), null, 2);
var getprofil1 = xhr33.responseText.toString();
for (let i = 0; i < getprofil1.length; i++) {
var profiljson = getprofil1[i];
}
console.log(profiljson)
// Creates the local DOTW file
var profiljson1 = JSON.parse(profiljson);
console.log(profiljson1)
var jsontodancerweek = {
__class: "DancerOfTheWeek",
score: song.score,
profileId: profiljson1.profileId,
gameVersion: gameVer,
rank: profiljson1.rank,
name: profiljson1.name,
avatar: profiljson1.avatar,
country: profiljson1.country,
platformId: profiljson1.platformId,
//"platformId": "2535467426396224",
alias: profiljson1.alias,
aliasGender: profiljson1.aliasGender,
jdPoints: profiljson1.jdPoints,
portraitBorder: profiljson1.portraitBorder,
};
fs.writeFile("./../../database/leaderboard/dotw/" + song.mapName + ".json", jsontodancerweek, function (err) {
if (err) {
console.log(err);
} else {
console.log("DOTW file for" + song.mapName + "created!");
}
}
);
res.send(profiljson);
}
}
});
app.get("/leaderboard/v1/maps/:map/dancer-of-the-week", (req, res) => {
const checkFile = fs.existsSync("./../../database/leaderboard/dotw/" + req.params.map + ".json");
if (checkFile) {
const readFile = fs.readFile("./../../database/leaderboard/dotw/" + req.params.map + ".json");
res.send(readFile);
} else {
res.setHeader('Content-Type', 'application/json; charset=utf-8');
res.setHeader('Access-Control-Allow-Origin', '*');
res.send({
"__class": "DancerOfTheWeek",
"profileId": "00000000-0000-0000-0000-000000000000",
"score": 69,
"gameVersion": "jd2019",
"rank": 1,
"name": "NO DOTW",
"avatar": 1,
"country": 0,
"platformId": "3935074714266132752",
"alias": 0,
"aliasGender": 0,
"jdPoints": 0,
"portraitBorder": 0
});
}
});
};
module.exports = { initroute };

321
core/route/rdefault.js Normal file
View File

@@ -0,0 +1,321 @@
//Game
console.log(`[DEFROUTE] Initializing....`)
var requestCountry = require("request-country");
var md5 = require('md5');
const core = {
main: require('../var').main,
CloneObject: require('../helper').CloneObject,
generateCarousel: require('../carousel/carousel').generateCarousel, generateSweatCarousel: require('../carousel/carousel').generateSweatCarousel, generateCoopCarousel: require('../carousel/carousel').generateCoopCarousel, updateMostPlayed: require('../carousel/carousel').updateMostPlayed,
signer: require('../lib/signUrl')
}
const path = require('path');
const signer = require('../lib/signUrl')
const deployTime = Date.now()
function checkAuth(req, res) {
if (!(req.headers["x-skuid"].startsWith("jd") || req.headers["x-skuid"].startsWith("JD")) || !req.headers["authorization"].startsWith("Ubi")) {
const ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress;
res.status(400).send({
'error': 400,
'message': 'Bad request! Oops you didn\'t specify what file should we give you, try again'
});
return false;
}
return true;
}
function returnSongdb(input, res) {
const songdb = core.main.songdb;
switch (true) {
case input.startsWith("jd2017-pc"):
res.send(songdb['2017'].pc);
break;
case input.startsWith("jd2017-durango"):
res.send(songdb['2017'].pc);
break;
case input.startsWith("jd2017-orbis"):
res.send(songdb['2017'].pc);
break;
case input.startsWith("jd2017-nx"):
res.send(songdb['2017'].nx);
break;
case input.startsWith("openparty-pc"):
res.send(songdb['2017'].pcparty);
break;
case input.startsWith("jd2023pc-next"):
res.send(songdb['2017'].pcdreyn);
break;
case input.startsWith("jd2024pc-next"):
res.send(songdb['2017'].pcdreyn);
break;
case input.startsWith("jd2018-nx"):
res.send(songdb['2018'].nx);
break;
case input.startsWith("jd2019-nx"):
res.send(songdb['2019'].nx);
break;
case input.startsWith("jd2017-nx"):
res.send(songdb['2017'].nx);
break;
case input.startsWith("openparty-nx"):
res.send(songdb['2018'].nx);
break;
case input.startsWith("jd2018-pc"):
res.send(songdb['2017'].pc);
break;
case input.startsWith("JD2021PC"):
res.send(songdb['2017'].pcparty);
break;
case input.startsWith("jd2022-pc"):
res.send(songdb['2017'].pcparty);
break;
case input.startsWith("jd2019-wiiu"):
res.send(songdb['2019'].wiiu);
break;
default:
res.send('Invalid Game');
break;
}
}
exports.initroute = (app, express, server) => {
app.get("/songdb/v1/songs", (req, res) => {
if (checkAuth(req, res)) {
returnSongdb(req.headers["x-skuid"], res);
}
});
app.get("/songdb/v2/songs", (req, res) => {
var sku = req.header('X-SkuId');
const songDBPlatform = sku && sku.startsWith('jd2019-wiiu') ? 'wiiu' : 'nx';
const songDBUrl = signer.generateSignedURL(`https://jdp.justdancenext.xyz/private/songdb/prod/${req.headers["x-skuid"]}.${md5(JSON.stringify(core.main.songdb['2019'][songDBPlatform]))}.json`);
const localizationDB = signer.generateSignedURL(`https://jdp.justdancenext.xyz/private/songdb/prod/localisation.${md5(JSON.stringify(core.main.localisation))}.json`);
res.send({
"requestSpecificMaps": require('../../database/db/requestSpecificMaps.json'),
"localMaps": [],
"songdbUrl": songDBUrl,
"localisationUrl": localizationDB
});
});
app.get("/private/songdb/prod/:filename", (req, res) => {
if (signer.verifySignedURL(req.originalUrl)) {
if (req.path.split('/')[4].startsWith('localisation')) {
res.send(core.main.localisation);
} else {
var sku = req.header('X-SkuId');
const songDBPlatform = sku && sku.startsWith('jd2019-wiiu') ? 'wiiu' : 'nx';
res.send(core.main.songdb['2019'][songDBPlatform]);
}
} else {
res.send('Unauthorizated');
}
});
app.get('/packages/v1/sku-packages', function (req, res) {
if (checkAuth(req, res)) {
if (req.headers["x-skuid"].includes("wiiu")) res.send(core.main.skupackages.wiiu);
if (req.headers["x-skuid"].includes("nx")) res.send(core.main.skupackages.nx);
if (req.headers["x-skuid"].includes("pc")) res.send(core.main.skupackages.pc);
if (req.headers["x-skuid"].includes("durango")) res.send(core.main.skupackages.durango);
if (req.headers["x-skuid"].includes("orbis")) res.send(core.main.skupackages.orbis);
}
});
app.post("/carousel/v2/pages/party", (req, res) => {
var search = ""
if (req.body.searchString != "") {
search = req.body.searchString
} else if (req.body.searchTags != undefined) {
search = req.body.searchTags[0]
} else {
search = ""
}
res.send(core.CloneObject(core.generateCarousel(search, "partyMap")))
});
app.post("/carousel/v2/pages/sweat", (req, res) => {
var search = ""
if (req.body.searchString != "") {
search = req.body.searchString
} else if (req.body.searchTags != undefined) {
search = req.body.searchTags[0]
} else {
search = ""
}
res.send(core.CloneObject(core.generateCarousel(search, "sweatMap")))
});
app.post("/carousel/v2/pages/create-challenge", (req, res) => {
var search = ""
if (req.body.searchString != "") {
search = req.body.searchString
} else if (req.body.searchTags != undefined) {
search = req.body.searchTags[0]
} else {
search = ""
}
res.send(core.CloneObject(core.generateCarousel(search, "create-challenge")))
});
app.post("/carousel/v2/pages/partycoop", (req, res) => {
var search = ""
if (req.body.searchString != "") {
search = req.body.searchString
} else if (req.body.searchTags != undefined) {
search = req.body.searchTags[0]
} else {
search = ""
}
res.send(core.CloneObject(core.generateCarousel(search, "partyMap")))
});
app.post("/carousel/v2/pages/avatars", function (request, response) {
response.send(core.main.avatars);
});
app.post("/carousel/v2/pages/dancerprofile", function (request, response) {
response.send(core.main.dancerprofile);
});
app.post("/carousel/v2/pages/jdtv", function (request, response) {
response.send(core.main.jdtv);
});
app.post("/carousel/v2/pages/jdtv-nx", function (request, response) {
response.send(core.main.jdtv);
});
app.post("/carousel/v2/pages/quests", function (request, response) {
response.send(core.main.quests);
});
app.post("/carousel/v2/pages/jd2019-playlists", (request, response) => {
response.send(core.main.playlists);
});
app.post("/carousel/v2/pages/jd2020-playlists", (request, response) => {
response.send(core.main.playlists);
});
app.post("/carousel/v2/pages/jd2021-playlists", (request, response) => {
response.send(core.main.playlists);
});
app.post("/carousel/v2/pages/jd2022-playlists", (request, response) => {
response.send(core.main.playlists);
});
app.post("/sessions/v1/session", (request, response) => {
response.send({
"pairingCode": "000000",
"sessionId": "00000000-0000-0000-0000-000000000000",
"docId": "0000000000000000000000000000000000000000"
});
});
app.get("/songdb/v1/localisation", function (request, response) {
response.send(core.main.localisation);
});
// Home
app.post("/home/v1/tiles", function (request, response) {
response.send(core.main.home);
});
// Aliases
app.get("/aliasdb/v1/aliases", function (request, response) {
response.send(core.main.aliases);
});
// Playlists
app.get("/playlistdb/v1/playlists", function (request, response) {
response.send(core.main.playlistdb);
});
app.get("/profile/v2/country", function (request, response) {
var country = requestCountry(request);
if (country == false) {
country = "US";
}
response.send('{ "country": "' + country + '" }');
});
app.post("/carousel/v2/pages/sweat", (req, res) => {
res.send(core.main.sweat)
});
app.get('/leaderboard/v1/coop_points/mine', function (req, res) {
res.send(core.main.leaderboard);
});
app.get('/:version/spaces/:SpaceID/entities', function (req, res) {
res.send(core.main.entities);
});
app.post("/subscription/v1/refresh", (req, res) => {
res.send(core.main.subscription);
});
app.get("/questdb/v1/quests", (req, res) => {
var sku = req.header('X-SkuId');
if (sku && sku.startsWith('jd2017-nx-all')) {
res.send(core.main.questsnx);
} else {
res.send(core.main.questspc);
}
});
app.get("/session-quest/v1/", (request, response) => {
response.send({
"__class": "SessionQuestService::QuestData",
"newReleases": []
});
});
app.get("/customizable-itemdb/v1/items", (req, res) => {
res.send(core.main.items);
});
app.post("/carousel/v2/pages/upsell-videos", (req, res) => {
res.send(core.main.upsellvideos);
});
app.get("/constant-provider/v1/sku-constants", (req, res) => {
res.send(core.main.block);
});
app.get("/dance-machine/v1/blocks", (req, res) => {
if (req.headers["x-skuid"].includes("pc")) {
res.send(core.main.dancemachine_pc);
}
else if (req.headers["x-skuid"].includes("pc")) {
res.send(core.main.dancemachine_nx);
}
else {
res.send('Invalid Game')
}
});
app.get('/content-authorization/v1/maps/*', (req, res) => {
if (checkAuth(req, res)) {
var maps = req.url.split("/").pop();
const chunk = require('../../database/nohud/chunk.json');
try {
if (chunk[maps]) {
var placeholder = core.CloneObject(require('../../database/nohud/placeholder.json'))
placeholder.urls = chunk[maps]
res.send(placeholder);
} else {
var placeholder = JSON.stringify(core.CloneObject(require('../../database/nohud/placeholder.json')))
var placeholder = core.CloneObject(require('../../database/nohud/placeholder.json'))
placeholder.urls = {}
res.send(placeholder);
}
} catch (err) {
console.error(err)
}
}
});
app.post("/carousel/:version/packages", (req, res) => {
res.send(core.main.packages);
});
app.get("/com-video/v1/com-videos-fullscreen", (req, res) => {
res.send([]);
});
};

90
core/route/ubiservices.js Normal file
View File

@@ -0,0 +1,90 @@
//Game
console.log(`[UBISOURCE] Initializing....`)
const core = {
main: require('../var').main,
CloneObject: require('../helper').CloneObject,
generateCarousel: require('../carousel/carousel').generateCarousel, generateSweatCarousel: require('../carousel/carousel').generateSweatCarousel, generateCoopCarousel: require('../carousel/carousel').generateCoopCarousel, updateMostPlayed: require('../carousel/carousel').updateMostPlayed,
signer: require('../lib/signUrl')
}
const { v4: uuidv4 } = require('uuid');
exports.initroute = (app, express, server) => {
const prodwsurl = "https://public-ubiservices.ubi.com/"
app.get('/:version/applications/:appId/configuration', function (req, res) {
res.send(core.main.configuration);
});
app.get('/:version/applications/:appId', function (req, res) {
res.send(core.main.configurationnx);
});
app.post("/v3/profiles/sessions", async (req, res) => {
const sessionId = uuidv4(); // Regenerate UUID for sessionId
const now = new Date();
const expiration = new Date(now.getTime() + 3 * 60 * 60 * 1000); // 3 hours from now
// Retrieve client IP from request headers
const clientIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
// You can also retrieve client country from request headers or any other source
res.send({
"platformType": "uplay",
"ticket": "ew0KICAidmVyIjogIjIiLA0KICAiYWlkIjogIjExMjM0NTY3LWNkMTMtNGU2My1hMzJkLWJhODFmZjRlYTc1NCIsDQogICJlbnYiOiAiU3RlYW0iLA0KICAic2lkIjogImI2MzQyMDdlLTQ3NjYtNGQwMS04M2UzLWQwYzg3Y2FhYmQxOSIsDQogICJ0eXBlIjogIlJlZnJlc2giLA0KICAiZW5jIjogIkpXVCIyNTYiLA0KICAiaXYiOiAic3YwSnlEb2MwQ1hCcF8wV3k2NU1nZz09IiwNCiAgImludCI6ICJIMzQ1Mzg1Ig0KfQ==",
"twoFactorAuthenticationTicket": null,
"profileId": "67e8e343-d535-4a6a-bb6e-315c5e028d31",
"userId": "67e8e343-d535-4a6a-bb6e-315c5e028d31",
"nameOnPlatform": "NintendoSwitch",
"environment": "Prod",
"expiration": expiration.toISOString(), // Convert expiration to ISO string
"spaceId": "aaf29a36-17d3-4e69-b93c-7d535a0df492",
"clientIp": clientIp, // Dynamic client IP
"clientIpCountry": "ID", // Dynamic client country (You may replace "ID" with actual logic)
"serverTime": now.toISOString(), // Set serverTime to current time
"sessionId": sessionId,
"sessionKey": "TqCz5+J0w9e8qpLp/PLr9BCfAc30hKlEJbN0Xr+mbZa=",
"rememberMeTicket": null
})
});
app.delete("/v3/profiles/sessions", (req, res) => {
res.send()
})
app.get("/v3/profiles", (req, res) => {
const profId = `67e8e343-d535-4a6a-bb6e-315c5e028d31/userId/${req.query.idOnPlataform}`
res.send({
"profiles": [{
"profileId": profId,
"userId": profId,
"platformType": "uplay",
"idOnPlatform": profId,
"nameOnPlatform": "Ryujinx"
}]
})
});
app.get("/v1/profiles/me/populations", (req, res) => {
const spaceId = `${req.query.spaceIds}/67e8e343-d535-4a6a-bb6e-315c5e028d31`
res.send({
"spaceId": spaceId,
"data": {
"US_SDK_APPLICATION_BUILD_ID": "202007232022",
"US_SDK_DURABLES": []
}
})
});
app.get("/v1/applications/34ad0f04-b141-4793-bdd4-985a9175e70d/parameters", (req, res) => {
res.send(require("../../database/v1/parameters.json"))
});
app.get("/v1/spaces/041c03fa-1735-4ea7-b5fc-c16546d092ca/parameters", (req, res) => {
res.send(require("../../database/v1/parameters2.json"))
});
app.post("/v3/users/:user", (request, response) => {
response.send();
});
};

View File

@@ -0,0 +1,15 @@
import json
def generate_beats(bpm, duration):
# Calculate time per beat
time_per_beat = 60000 / bpm
# Generate an array of beats for 30 seconds
beats_array = [time_per_beat * i for i in range(int(duration / time_per_beat))]
# Multiply each beat by 48
final_array = [round(beat * 48) for beat in beats_array]
return json.dumps(beats_array, separators=(',', ':'))
print(generate_beats(int(input('bpm : ')), int(input('duration in ms : '))))
input()

View File

@@ -0,0 +1,127 @@
import json
def generate_beats(bpm):
# Calculate time per beat
time_per_beat = 60000 / bpm
# Generate an array of beats for 30 seconds
beats_array = [time_per_beat * i for i in range(int(30 * 1000 / time_per_beat))]
# Multiply each beat by 48
final_array = [round(beat * 48) for beat in beats_array]
return json.dumps(final_array, separators=(',', ':'))
codename = input('Codename: ')
songtitle = input('Song Title: ')
songartist = input('Song Artist: ')
mapLength = input('mapLength: ')
coachcount = input('coachCount: ')
difficulty = input('difficulty: ')
originalJDVersion = input('originalJDVersion: ')
lyricsScolor = input('lyricsScolor: ')
customTypeName = input('customTypeName: ')
bpm = int(input('BPM (for preview): '))
if int(coachcount) == 1:
common = '''"map_bkgImageUrl": "",
"banner_bkgImageUrl": "",
"coach1ImageUrl": "",
"phoneCoach1ImageUrl": "",
"coverImageUrl": "",
"cover_smallImageUrl": "",
"expandCoachImageUrl": "",
"phoneCoverImageUrl": ""'''
if int(coachcount) == 2:
common = '''"map_bkgImageUrl": "",
"banner_bkgImageUrl": "",
"coach1ImageUrl": "",
"phoneCoach1ImageUrl": "",
"coach2ImageUrl": "",
"phoneCoach2ImageUrl": "",
"coverImageUrl": "",
"cover_smallImageUrl": "",
"expandCoachImageUrl": "",
"phoneCoverImageUrl": ""'''
if int(coachcount) == 3:
common = '''"map_bkgImageUrl": "",
"banner_bkgImageUrl": "",
"coach1ImageUrl": "",
"phoneCoach1ImageUrl": "",
"coach2ImageUrl": "",
"phoneCoach2ImageUrl": "",
"coach3ImageUrl": "",
"phoneCoach3ImageUrl": "",
"coverImageUrl": "",
"cover_smallImageUrl": "",
"expandCoachImageUrl": "",
"phoneCoverImageUrl": ""'''
if int(coachcount) == 4:
common = '''"map_bkgImageUrl": "",
"banner_bkgImageUrl": "",
"coach1ImageUrl": "",
"phoneCoach1ImageUrl": "",
"coach2ImageUrl": "",
"phoneCoach2ImageUrl": "",
"coach3ImageUrl": "",
"phoneCoach3ImageUrl": "",
"coach4ImageUrl": "",
"phoneCoach4ImageUrl": "",
"coverImageUrl": "",
"cover_smallImageUrl": "",
"expandCoachImageUrl": "",
"phoneCoverImageUrl": ""'''
songdb = '''
"''' + codename + '''": {
"artist": "''' + songartist + '''",
"assets": {
"nx": {},
"x1": {},
"common": {''' +common+'''}
},
"audioPreviewData": "{\\"__class\\":\\"MusicTrackData\\",\\"structure\\":{\\"__class\\":\\"MusicTrackStructure\\",\\"markers\\":''' + generate_beats(bpm) +''',\\"signatures\\":[{\\"__class\\":\\"MusicSignature\\",\\"marker\\":0,\\"beats\\":4}],\\"startBeat\\":0,\\"endBeat\\":60,\\"fadeStartBeat\\":0,\\"useFadeStartBeat\\":false,\\"fadeEndBeat\\":0,\\"useFadeEndBeat\\":false,\\"videoStartTime\\":0,\\"previewEntry\\":0,\\"previewLoopStart\\":0,\\"previewLoopEnd\\":65,\\"volume\\":0,\\"fadeInDuration\\":0,\\"fadeInType\\":0,\\"fadeOutDuration\\":0,\\"fadeOutType\\":0},\\"path\\":\\"\\",\\"url\\":\\"jmcs://jd-contents/''' + codename + '''/''' + codename + '''_AudioPreview.ogg\\"}",
"coachCount": ''' + coachcount + ''',
"credits": "All Credits Goes to ''' + songartist +'''. Placeholder Credits, Generated By Automodder",
"difficulty": ''' + difficulty +''',
"doubleScoringType": -1,
"jdmAttributes": {},
"lyricsColor": "'''+lyricsScolor+'''",
"lyricsType": 0,
"mainCoach": -1,
"mapLength": ''' + mapLength + ''',
"mapName": "''' + codename + '''",
"mapPreviewMpd": {
"videoEncoding": {
"vp8": "<?xml version=\\"1.0\\"?>\\r\\n<MPD xmlns:xsi=\\"http://www.w3.org/2001/XMLSchema-instance\\" xmlns=\\"urn:mpeg:DASH:schema:MPD:2011\\" xsi:schemaLocation=\\"urn:mpeg:DASH:schema:MPD:2011\\" type=\\"static\\" mediaPresentationDuration=\\"PT30S\\" minBufferTime=\\"PT1S\\" profiles=\\"urn:webm:dash:profile:webm-on-demand:2012\\">\\r\\n\\t<Period id=\\"0\\" start=\\"PT0S\\" duration=\\"PT30S\\">\\r\\n\\t\\t<AdaptationSet id=\\"0\\" mimeType=\\"video/webm\\" codecs=\\"vp8\\" lang=\\"eng\\" maxWidth=\\"720\\" maxHeight=\\"370\\" subsegmentAlignment=\\"true\\" subsegmentStartsWithSAP=\\"1\\" bitstreamSwitching=\\"true\\">\\r\\n\\t\\t\\t<Representation id=\\"0\\" bandwidth=\\"494704\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_LOW.vp8.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"638-1127\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-638\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"1\\" bandwidth=\\"1473607\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_MID.vp8.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"2\\" bandwidth=\\"2452716\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_HIGH.vp8.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"3\\" bandwidth=\\"2503315\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_ULTRA.vp8.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t</AdaptationSet>\\r\\n\\t</Period>\\r\\n</MPD>\\r\\n",
"vp9": "<?xml version=\\"1.0\\"?>\\r\\n<MPD xmlns:xsi=\\"http://www.w3.org/2001/XMLSchema-instance\\" xmlns=\\"urn:mpeg:DASH:schema:MPD:2011\\" xsi:schemaLocation=\\"urn:mpeg:DASH:schema:MPD:2011\\" type=\\"static\\" mediaPresentationDuration=\\"PT30S\\" minBufferTime=\\"PT1S\\" profiles=\\"urn:webm:dash:profile:webm-on-demand:2012\\">\\r\\n\\t<Period id=\\"0\\" start=\\"PT0S\\" duration=\\"PT30S\\">\\r\\n\\t\\t<AdaptationSet id=\\"0\\" mimeType=\\"video/webm\\" codecs=\\"vp9\\" lang=\\"eng\\" maxWidth=\\"720\\" maxHeight=\\"370\\" subsegmentAlignment=\\"true\\" subsegmentStartsWithSAP=\\"1\\" bitstreamSwitching=\\"true\\">\\r\\n\\t\\t\\t<Representation id=\\"0\\" bandwidth=\\"649637\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_LOW.vp9.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"1\\" bandwidth=\\"1494556\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_MID.vp9.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"2\\" bandwidth=\\"2985169\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_HIGH.vp9.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1129\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t\\t<Representation id=\\"3\\" bandwidth=\\"5932441\\">\\r\\n\\t\\t\\t\\t<BaseURL>jmcs://jd-contents/''' + codename + '''/''' + codename + '''_MapPreviewNoSoundCrop_ULTRA.vp9.webm</BaseURL>\\r\\n\\t\\t\\t\\t<SegmentBase indexRange=\\"639-1136\\">\\r\\n\\t\\t\\t\\t\\t<Initialization range=\\"0-639\\" />\\r\\n\\t\\t\\t\\t</SegmentBase>\\r\\n\\t\\t\\t</Representation>\\r\\n\\t\\t</AdaptationSet>\\r\\n\\t</Period>\\r\\n</MPD>\\r\\n"
}
},
"mode": 6,
"originalJDVersion": ''' + originalJDVersion + ''',
"packages": {
"mapContent": "''' + codename + '''_mapContent"
},
"parentMapName": "''' + codename + '''",
"skuIds": {},
"songColors": {
"songColor_1A": "444444FF",
"songColor_1B": "111111FF",
"songColor_2A": "AAAAAAFF",
"songColor_2B": "777777FF"
},
"status": 3,
"sweatDifficulty": 1,
"tags": [
"Main",
"subscribedSong"
],
"title": "''' + songtitle + '''",
"urls": {
"jmcs://jd-contents/''' + codename + '''/''' + codename + '''_AudioPreview.ogg": ""
},
"customTypeName": "''' + customTypeName + '''",
"serverChangelist": 696566
}
'''
print(songdb)
input('\n\nPress enter: ')

57
core/scripts/run.js Normal file
View File

@@ -0,0 +1,57 @@
const { spawnSync } = require('child_process');
const fs = require('fs');
let outputLogs = [];
function start() {
const { stdout, stderr, status } = spawnSync('node', ['jduparty.js']);
if (stdout) {
const log = {
method: 'LOG',
url: stdout.toString().trim(),
timestamp: new Date().toISOString()
};
outputLogs.push(log);
fs.writeFileSync('database/tmp/logs.txt', JSON.stringify(outputLogs));
}
if (stderr) {
const log = {
method: 'LOG ERROR',
url: stderr.toString().trim(),
timestamp: new Date().toISOString()
};
outputLogs.push(log);
fs.writeFileSync('database/tmp/logs.txt', JSON.stringify(outputLogs));
}
console.log(`[PARTY] child process exited with code ${status}`);
if (status === 42) { // Replace 42 with your desired exit code
start(); // Restart the process
}
}
function generateLog(req, res, next) {
counted++;
if (!req.url.startsWith('/party/panel/')) {
const log = {
timestamp: new Date().toISOString(),
message: `[PARTY] ${req.method} ${req.url}`
};
requestLogs.push(log);
if (requestLogs.length > 50) {
requestLogs.shift();
}
fs.appendFileSync('database/tmp/logs.txt', `${JSON.stringify(log)}\n`);
}
next();
}
start();
process.on('SIGINT', () => {
process.exit();
});

106
core/scripts/update.js Normal file
View File

@@ -0,0 +1,106 @@
function restartPM2() {
const { exec } = require('child_process');
console.log('[UPDATER] PM2 Process Detected, Running In PM2 Way ...');
console.log('[UPDATER] Pulling Upstream Before Restarting ...');
// Execute Git pull
exec('git pull', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to execute git pull: ${err.message}`);
return;
}
// Check if package.json has been modified
console.log('[UPDATER] Checking package.json ...');
exec('git diff --name-only package.json', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to check for package.json modifications: ${err.message}`);
return;
}
if (stdout.trim() !== '') {
console.log('[UPDATER] package.json has been modified. Running npm install...');
// Execute npm install
exec('npm install', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to execute npm install: ${err.message}`);
return;
}
console.log('[UPDATER] npm install completed successfully.');
});
} else {
console.log('[UPDATER] No modifications detected in packages.json. Skipping npm install.');
}
// Restart Node.js process using PM2
console.log('[UPDATER] Restarting Server');
pm2.connect((err) => {
if (err) {
console.error(`[UPDATER] Failed to connect to PM2: ${err.message}`);
return;
}
console.log('[UPDATER] restarting Node.js process...');
pm2.restart('JDPartyServer', (err) => {
if (err) {
console.error(`[UPDATER] Failed to restart Node.js process: ${err.message}`);
} else {
console.log('[UPDATER] Node.js process restarted successfully.');
}
pm2.disconnect();
});
});
});
});
}
function updateNormal(server) {
const { exec } = require('child_process');
const pm2 = require('pm2');
console.log('[UPDATER] Pulling Upstream Before Starting ...');
// Execute Git pull
exec('git pull', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to execute git pull: ${err.message}`);
return;
}
// Check if package.json has been modified
console.log('[UPDATER] Checking package.json ...');
exec('git diff --name-only package.json', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to check for package.json modifications: ${err.message}`);
return;
}
if (stdout.trim() !== '') {
console.log('[UPDATER] package.json has been modified. Running npm install...');
// Execute npm install
exec('npm install', (err, stdout, stderr) => {
if (err) {
console.error(`[UPDATER] Failed to execute npm install: ${err.message}`);
return;
}
console.log('[UPDATER] npm install completed successfully.');
});
} else {
console.log('[UPDATER] No modifications detected in packages.json. Skipping npm install.');
}
process.exit(42)
});
});
}
function restart(server) {
if (process.env.pm_id == undefined) {
updateNormal(server)
} else {
restartPM2()
}
}
module.exports = {
restart
};

42
core/var.js Normal file
View File

@@ -0,0 +1,42 @@
const axios = require('axios')
const fs = require('fs')
const songdb = require('./lib/songdb').songdbF
console.log(`[VAR] Initializing....`)
const main = {
skupackages: {
pc: require('../database/Platforms/jd2017-pc/sku-packages.json'),
nx: require('../database/Platforms/jd2017-nx/sku-packages.json'),
wiiu: require('../database/Platforms/jd2017-wiiu/sku-packages.json'),
durango: require('../database/Platforms/jd2017-durango/sku-packages.json'),
orbis: require('../database/Platforms/jd2017-orbis/sku-packages.json')
},
entities: require('../database/v2/entities.json'),
configuration: require('../database/v1/configuration.json'),
subscription: require('../database/db/subscription.json'),
packages: require('../database/packages.json'),
block: require('../database/carousel/block.json'),
leaderboard: require("../database/db/leaderboard.json"),
quests: require("../database/db/quests.json"),
questsnx: require("../database/db/quests-nx.json"),
questspc: require("../database/db/quests-pc.json"),
items: require("../database/db/items.json"),
upsellvideos: require("../database/carousel/pages/upsell-videos.json"),
dancemachine_pc: require("../database/db/dancemachine_pc.json"),
dancemachine_nx: require("../database/db/dancemachine_nx.json"),
avatars: require("../database/db/avatars.json"),
dancerprofile: require("../database/db/dancerprofile.json"),
aliases: require("../database/db/aliases.json"),
home: require("../database/db/home.json"),
jdtv: require("../database/db/jdtv.json"),
playlistdb: require("../database/db/playlistdb.json"),
playlists: require("../database/db/playlists.json"),
create_playlist: require("../database/carousel/pages/create_playlist.json"),
songdb: { "2016": {}, "2017": {}, "2018": {}, "2019": {}, "2020": {}, "2021": {}, "2022": {} },
localisation: require('../database/Platforms/openparty-all/localisation.json')
}
main.songdb = songdb.generateSonglist()
module.exports = {
main
}

View File

@@ -0,0 +1,15 @@
var sdb = require('./openparty-all/songdbs.json');
var ahud = require('./jd2017-nx/sku-packages.json');
var bhud = Object.keys(ahud);
var missingElements = [];
for (var key in sdb) {
if (sdb.hasOwnProperty(key) ){
if (bhud.indexOf(key + "_mapContent") === -1) {
missingElements.push(key);
}
}
}
console.log(JSON.stringify(missingElements));

View File

@@ -0,0 +1,15 @@
var sdb = require('./openparty-all/songdbs.json');
var ahud = require('./jd2017-nx/sku-packages.json');
var missingElements = [];
for (var key in ahud) {
if (ahud.hasOwnProperty(key)) {
// Check if the corresponding key without "_mapContent" exists in sdb
if (!sdb[key.replace("_mapContent", "")]) {
if(!key.includes("bossContent") && !key.includes("JDM"))missingElements.push(key);
}
}
}
console.log(JSON.stringify(missingElements));

View File

@@ -0,0 +1,3 @@
{
}

View File

@@ -0,0 +1,8 @@
{
"Despacito_mapContent": {
"md5": "938871f3641338323294848eb01e889d",
"storageType": 0,
"url": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_MAIN_SCENE_NX.zip/938871f3641338323294848eb01e889d.zip",
"version": 8
}
}

View File

@@ -0,0 +1,3 @@
{
}

View File

@@ -0,0 +1,8 @@
{
"Despacito_mapContent": {
"md5": "394a6d87d767aea40764d7f51ab1c127",
"storageType": 0,
"url": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/pc/Despacito_MAIN_SCENE_PC.zip/394a6d87d767aea40764d7f51ab1c127.zip",
"version": 6
}
}

View File

@@ -0,0 +1,3 @@
{
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,121 @@
{"Despacito": {
"artist": "Luis Fonsi & Daddy Yankee",
"assets": {
"nx": {
"banner_bkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_banner_bkg.tga.ckd/261ad36277687ab5412ac7067f4adf25.ckd",
"coach1ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Coach_1.tga.ckd/499a179bbf3011d9cc50532264027525.ckd",
"coach2ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Coach_2.tga.ckd/8dc29e66a381419a31c8df96fabbe5ff.ckd",
"coach3ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Coach_3.tga.ckd/ae10961858d35348e65ca38a671b0f89.ckd",
"coach4ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Coach_4.tga.ckd/d963b51ee137c0d1a07f561d6b540e51.ckd",
"coverImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Cover_Generic.tga.ckd/3b4a5cd3c15fab2ebe8ceb7a9e403922.ckd",
"cover_1024ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Cover_1024.png/e01c321219f1da05abb565cd008d35f7.png",
"cover_smallImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Cover_Online.tga.ckd/3f1945b9e673c58b03fb8a19e4e77ef8.ckd",
"expandBkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Cover_AlbumBkg.tga.ckd/ac65d949f911ae89a89df216c9b4502a.ckd",
"expandCoachImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_Cover_AlbumCoach.tga.ckd/3157921e6ce22ec9c2e03e0f7021b729.ckd",
"phoneCoach1ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_1_Phone.png/e8b90227c95470f1e8a27269a685c899.png",
"phoneCoach2ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_2_Phone.png/a74941ec8bef75883230776d952e9fca.png",
"phoneCoach3ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_3_Phone.png/a656e3ecfcfc7498e4b13e1672617f38.png",
"phoneCoach4ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_4_Phone.png/bcff3e8e426bae94c8c3f0ce6ce48760.png",
"phoneCoverImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Cover_Phone.jpg/37a6d939c5417fc8ffe803221d74c380.jpg",
"videoPreviewVideoURL": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_VideoPreview.webm/f07ae5e9ba18fbf313ef242d2704127d.webm",
"map_bkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/nx/Despacito_map_bkg.tga.ckd/53a1cc4c2c1fbd06eafffa39f21496b2.ckd"
},
"x1": {
"banner_bkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_banner_bkg.tga.ckd/55d95a8308b4a2cd829a81938b15f552.ckd",
"coach1ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Coach_1.tga.ckd/d00a81051c32b768e47119126780c973.ckd",
"coach2ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Coach_2.tga.ckd/815d889ed8979112cdb2389a809ff1cb.ckd",
"coach3ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Coach_3.tga.ckd/641311fea52b557397f9011499b6d4ec.ckd",
"coach4ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Coach_4.tga.ckd/ee075e1cf3811c8d9bf53612fce8d7ac.ckd",
"coverImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Cover_Generic.tga.ckd/a2894ed8b71e8297b25b3a47a9a4eb20.ckd",
"cover_1024ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Cover_1024.png/e01c321219f1da05abb565cd008d35f7.png",
"cover_smallImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Cover_Online.tga.ckd/9c5272fe09b07564ef5cd685a292e990.ckd",
"expandBkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Cover_AlbumBkg.tga.ckd/17aa1cda096bf451fdc8b1fd80016b98.ckd",
"expandCoachImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_Cover_AlbumCoach.tga.ckd/dc40295ceffa079e7433488abd95f696.ckd",
"phoneCoach1ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_1_Phone.png/e8b90227c95470f1e8a27269a685c899.png",
"phoneCoach2ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_2_Phone.png/a74941ec8bef75883230776d952e9fca.png",
"phoneCoach3ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_3_Phone.png/a656e3ecfcfc7498e4b13e1672617f38.png",
"phoneCoach4ImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Coach_4_Phone.png/bcff3e8e426bae94c8c3f0ce6ce48760.png",
"phoneCoverImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_Cover_Phone.jpg/37a6d939c5417fc8ffe803221d74c380.jpg",
"videoPreviewVideoURL": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_VideoPreview.webm/f07ae5e9ba18fbf313ef242d2704127d.webm",
"map_bkgImageUrl": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/x1/Despacito_map_bkg.tga.ckd/c05f8782ce0e8cea0b7f61d485785341.ckd"
},
"common": {}
},
"audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,44064,88080,120432,152832,185184,217536,249888,282240,314592,346992,379344,411696,444048,476399,508751,541103,573503,605855,638207,670559,702911,735263,767663,800015,832367,864719,897071,929423,961775,994175,1026527,1058879,1091230,1123582,1155934,1188334,1220686,1253038,1285390,1317742,1350094,1382494,1414846],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":2},{\"__class\":\"MusicSignature\",\"marker\":2,\"beats\":4}],\"startBeat\":-5,\"endBeat\":333,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":43,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/despacito/despacito_AudioPreview.ogg\"}",
"coachCount": 4,
"credits": "Written by Ramon Ayala, Erika Ender and Luis Fonsi. Published by Los Cangris Inc. (ASCAP) c/o EMI April Music (Canada) Ltd. (SOCAN) and Excelender Songs/Sony/ATV Rhythm (SESAC) and Dafons Songs / Sony/ATV Latin Music Publishing LLC (BMI) both c/o Sony/ATV Music Publishing Canada (SOCAN). All rights reserved. Used with permission. Courtesy of Universal Music Latino under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.",
"difficulty": 1,
"doubleScoringType": -1,
"jdmAttributes": [],
"lyricsColor": "43FFBEFF",
"lyricsType": 0,
"mainCoach": -1,
"mapLength": 228.35299999999998,
"mapName": "Despacito",
"mapPreviewMpd": "<?xml version=\"1.0\"?>\r\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\" type=\"static\" mediaPresentationDuration=\"PT30S\" minBufferTime=\"PT1S\" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\">\r\n\t<Period id=\"0\" start=\"PT0S\" duration=\"PT30S\">\r\n\t\t<AdaptationSet id=\"0\" mimeType=\"video/webm\" codecs=\"vp9\" lang=\"eng\" maxWidth=\"720\" maxHeight=\"370\" subsegmentAlignment=\"true\" subsegmentStartsWithSAP=\"1\" bitstreamSwitching=\"true\">\r\n\t\t\t<Representation id=\"0\" bandwidth=\"648085\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"1\" bandwidth=\"1492590\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"2\" bandwidth=\"2984529\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1111\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"3\" bandwidth=\"5942260\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"621-1118\">\r\n\t\t\t\t\t<Initialization range=\"0-621\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t</AdaptationSet>\r\n\t</Period>\r\n</MPD>\r\n",
"mode": 6,
"originalJDVersion": 2018,
"packages": {
"mapContent": "Despacito_mapContent"
},
"parentMapName": "Despacito",
"skuIds": [
"jd2018-nx-all",
"jd2018-wiiu-noe",
"jd2018-wiiu-noa",
"jd2018-ps4-scee",
"jd2018-xone-emea",
"jd2018-ps4-scea",
"jd2018-xone-ncsa"
],
"songColors": {
"songColor_1A": "89500BFF",
"songColor_1B": "F9CD52FF",
"songColor_2A": "50CBFCFF",
"songColor_2B": "02267AFF"
},
"status": 3,
"sweatDifficulty": 1,
"tags": [
"Main",
"subscribedSong",
"LatinCorner",
"JustDance2018",
"Quartet",
"Easy",
"Fresh",
"Latin",
"Sweat Low",
"Romantic",
"Summer"
],
"title": "Despacito",
"urls": {
"jmcs://jd-contents/Despacito/Despacito_AudioPreview.ogg": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_AudioPreview.ogg/b7e46bd256856fdf802aa84451015c90.ogg",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp8.webm/8e3c668453341a01db89e387ace8d1a3.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp9.webm/fe1996ffcb7a022efe7bf8db1fb0c334.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp8.webm/4b23b3ee2cabe4817381b90fb1024db5.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp9.webm/3aae356f820a9506afcfc4ec48278c9b.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp8.webm/30d09d05502939ba2b2fcfef2dd2f235.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp9.webm/2ec92c2bc7e5a418bcac4d92072ee04a.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp8.webm/f138123f2b9339fb273c36f470987a89.webm",
"jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.bc5f39.workers.dev/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9e36a22c9161bcbbec39022d88d187bb.webm"
},
"serverChangelist": 544216,
"cnlyrics": "噢 噢 不 噢 不 噢 嗨 耶 洋基老爹 来了 是的 你知道我 已经对你深情注视 今天我一定要与你共舞 看 你的目光 在热切呼唤着我 指引着我 我定风雨无阻 你 你就是磁铁 我是金属 正被你吸引 我正周密的策划 只是想想 都会心跳加速 哦耶 我已经喜欢 这种非凡的感觉 所有的感官 都在祈求更多 这样的时光 不能心急 慢慢地 我想贴近你的耳边 慢慢地呼吸 让我向你吐露真言 让你牢记我的诺言 哪怕我不在你身边 慢慢地 我想吻 慢慢地 将你的谜题 画在墙上 成为我手稿的绘板 起来吧 起来吧 每日清晨见你用头发起舞 我想成为你生命的韵律 我想你向你暗示 最喜欢的宝贝 让我越过 直至你忘记你的姓名 如果我向你索求一个吻 请给我 我知道你正在考虑当中 我已尝试了一段时间 宝贝这只是一个吻 给我吧 你知道每每见你 我的心怦怦直跳 你知道我的心 在寻找着跳动的你 来从我这里 尝尝亲吻的滋味 我想 我想 我想 看看你能爱地多深 我并不着急 我想带着旅行的心情 始于风平浪静 之后疾风暴雨 一步一步 温柔再温柔一点 一点一点 我们拥抱 我们亲吻 我发觉是 你对我轻柔的挑逗 一步一步 温柔再温柔一点 一点一点 你的美如同 未完成的拼图 但我余有拼凑的 一角 慢慢地 我想贴近你的耳边 慢慢地呼吸 让我附在你耳边向你吐露真言 让你牢记我的诺言 哪怕我不在你身边 慢慢地 慢慢地 将你的谜题 画在墙上 成为我手稿的绘板 起来吧 起来吧 每日清晨见你用头发起舞 我想成为你生命的韵律 我想你向你暗示 直至你忘记你的姓名 慢慢地 让我们在海滩完成这个仪式 在波多黎各 直到给你 留下属于我的烙印 跳舞吧 一步一步 温柔再温柔一点 一点一点 我们拥抱 你最喜欢 最喜欢的宝贝 直至你忘记你的姓名 洋基老爹 慢慢地",
"jdcReleaseDate": "2021-06-18T12:00:00",
"subartist": "Unknown Artist",
"subcredits": "Ramon Ayala、Erika Ender 和 Luis Fonsi 创作。Los Cangris Inc. (ASCAP) 授权 EMI April Music (Canada) Ltd. (SOCAN) 和 Excelender Songs / Sony/ATV Rhythm (SESAC)、 Dafons Songs / Sony/ATV Latin Music Publishing LLC (BMI) 共同授权 Sony/ATV Music Publishing Canada (SOCAN) 出版发行。保留所有权利。经许可后使用。承蒙 Universal Music Latino 经 Universal Music Enterprises 许可后提供。制作人和其他权利人对其保留所有权利。除另有授权外,禁止复制、租赁、出借、交换此视频游戏或将其用于公开演出、广播和在网上公开发行。",
"subtitle": "慢慢地",
"searchTags": [],
"searchTagsLocIds": [
15285,
15299,
12794,
13024,
15278,
15189,
13032,
15289
]
}}

View File

@@ -0,0 +1,18 @@
import json
def compare_json(a_file, b_file, output_file):
with open(a_file, 'r') as a:
data_a = json.load(a)
with open(b_file, 'r') as b:
data_b = json.load(b)
missing_keys = {key: data_a[key] for key in data_a if key not in data_b}
with open(output_file, 'w') as output:
json.dump(missing_keys, output, indent=4)
a_file = 'jd2017-nx/sku-packages.json'
b_file = 'jd2017-pc/sku-packages.json'
output_file = 'missing_keys.json'
compare_json(a_file, b_file, output_file)

View File

@@ -0,0 +1,26 @@
//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;
}
fs.writeFileSync(path.join(__dirname, 'jd2017-pc/sku-packages.json'), JSON.stringify(mergeJSON(JSON.parse(fs.readFileSync(path.join(__dirname, 'jd2017-pc/sku-packages-a.json'))), JSON.parse(fs.readFileSync(path.join(__dirname, 'jd2017-pc/skuc.json')))), null, 2))

View File

@@ -0,0 +1,63 @@
//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()

View File

@@ -0,0 +1 @@
eyJ1bmRlZmluZWQiOiJbb2JqZWN0IE9iamVjdF1VYmlfdjEgZXdvZ0lDSjJaWElpT2lBaU1TSXNDaUFnSW1GcFpDSTZJQ0l6TkRFM09EbGtOQzFpTkRGbUxUUm1OREF0WVdNM09TMWxNbUpqTkdNNU5HVmhaRFFpTEFvZ0lDSmxibllpT2lBaVVISnZaQ0lzQ2lBZ0luTnBaQ0k2SUNJMk1tTXlPVGhrTXkxaU1HVTFMVFE1WVRBdFlXTmxaUzB6Tm1NeE9EQTJOVGczWVRjaUxBb2dJQ0owZVhBaU9pQWlTbGRGSWl3S0lDQWlaVzVqSWpvZ0lrRXhNamhEUWtNaUxBb2dJQ0pwZGlJNklDSkxRMmR5ZFZoT2F6ZHlXbGxJUm1ZMFZWaFBPSFJSSWl3S0lDQWlhVzUwSWpvZ0lraFRNalUySWl3S0lDQWlhMmxrSWpvZ0lqaGhNV1l3T1RGakxURXdOVEV0TkdSbFlpMDRNelZtTFRVNE0yRmpOekE0TVdZMU1TSUtmUS5sNTA3WWQ5Y2tiSW8wSlBlV3hla3hERGt4RXA3ZFFZN0dZcHN4bE45VDJiNS1ldmNwT0R3Z0tvTTBXVXN5UXJvZWh4T1l6SHg5UjFVRnpnZWROdWVwRTN3N1JjY0g5bTk3VVRXOXowQ2w3WVRBb0xReHRKbThZdXFtcWhSc0JuWGRDRjhvOWU1Y3hRMnU1clJvZzJWclk0UnM2TWxJRFJ5bEhBZWZZSjR6WV9jRVdqSS0xTTNqb3ozVjlkNHJNTVZHZmNhQTZOZERXU1VZeGMxRzIxV3p1VTdmeGhlNEhQVTV3dFFyTXVUMzJlMHNSUmt0NlpxU0QwYkVuUlp3Q2hFODg2ZGcxbG5idjR2cncyZTFFYXVLamt6RnBjNG5qc1c5QU9ub3VVTUFSVVNTbTNGNTdnc1lLendMb0pURGJVaXd6VE9rdm90cFBFZHlzejR3UUo4LTFtTUdtaGpDLWtVU1Z6UXNxWGRlOTFhSzJoSmRrWFlyWmx2X1lVX3NnNFJHWXF1ZHVEeXlGSVFhSWtqWlZxd1M3Szk1Q2VsSHpoSVBoUUozelpMZjZBbHRsYkFGUEpLSk41QV9CTUtpU0ExVGpFUEtmQWU3aXpiU0syWE02MFUweHp4WUw3X1NnaW9yUURvbW5aVy1oTXlIUHM3RDgzNWwtazhsd0VtY2o1YlFTNG45eEpOVHZidVE5S3BVWHlZRm1maXNUVHJFTzVfNk9md0xIbld1b3lIZ0NBZi1mZ3RvamJaMEVpbFVUYlNlMmtvUDNfejJpZzloNy0yVDQyZjhXQ3NXdFE2ekNIazJGSDk3MEVwOG1GN0x4TkZ0aVc5VHFlYzZ3THhjWmpIcGdfbGZPZ1FCcm9rdzVrNlVCbUs5YmpYOF9xTDBya1VXZ2RCc2pIRUJfOE50bVlueHU5ZXh6TFFreGV6bTlRLWM0LTczTWJLMk9kem1hd0U5ODlRVVRmblNVd3UyNVhqanlXSWtqOEFzSndQSHhUMEU5NGpvdzBpVXlRd3lsU0RBa0JTYTkzNEJZT19DdGpYYWNBRW1MbHU3RWJwYTB0Q3lfSy13WEtYS0gwT1JZM3pOMnBnVHRQNjNvNnZnci14eEhxVnZISkdXdW1QS092SGVieFJfeGVBNjM0SmRuNjV6NHdyVFZ3V3A3SnFESzhkWmNFWndvZFd1NnFlMEdjNXpRSW80Q3p0OVNFcENKc21ad0h2cV92SWQwaXFEZW5tb1QxODdMM3d0eElNbTV0dC1qRUNldlpmOGkxMGpqUnhOOU96ckJWS0NZTlBuXzBrS3ZIMXBvZDRpQ2VWMUxSLU1rTlhiTjhsRTNjRnR1WmZweG1URzNhUXdYT3lqclZvT3RFSDBnbVBZVElqWVZjMl8zV1lFLUp6c1NKaTBnQm9ZUnQwcHRfel9oa3p5cHp4blFHeUxUWjY3b09vUWczT2V3d3lwUlp2eEVrNUVydFd6b2RPS0RKNDRjb09wQVh1ZDJ1TEMtN1VTdFJXUXJCTG1FT3JFRE1GMFZGa1FfVVIxVDgxOHM0aUlTSHpvYmdLY0Y4dGxFTm9YSmNOMmFIN0l2Mk1QT2hINVB5OXlraEtIcWZLWlZYbFpoaVNlNWh3cHBqMHhkZDNOcFUyaW9nNXZtQXJHSG52MlB3QjZZRFZwQ1VVZ0QtVnZaLUN2blNlOWdHbk1WdmlKUnktNmZxSHQ5cE53MHFZSVFpRlRiRjFMY2o2Ukxpa1dGMmlnSkJJYkZ5b3dUQVdIaDc3SEcxbng5MThfdGlzQXI1VEtHM2lhTlh1WS1JWUZvakRSOE9kSldTeTVUdVVpb0gzaGZELUd6enNTaDNPbFFxU0JBWlRlZzdJYmhuVGNiMHU2bFBuMmFhc3V3WG1ZT1Z0Ym5yQ1pBbTNROFp6MEZCOEhNWmwxcDdsTVdSRHJtN2tPcFVJVHhHTGFEcWJGa1JvdDVQT1hSTllCdVEtY2lVd0MwRFRVX1NLU21UYzNkYWVhZGRRc1owdTQzbkQwci1DaDVKdUowb3RmNld1X0w0Q19WVVl1bmctYTNHTEQ5ZnpHeFZaX0FkYi1aekdVTUZBM2RuWUNJakl4aWdGSHRvQUF2cFg3ZWpJX3h4UWNfbDlMNGt4UnZiQWJMQWgtekt1RExaWjgzSXNSOUJqUmUzcjZsM1VFQTk2OWIyZlpDaVRMWnA4OFdrdDdPTThoUEYtUF9HVHhhOTVPcTBrNkkzVnRRVEZrQURSSU5PRC1lcU42X3BFN0FsQ2txa1BpUjJvOGJUcl9zOWUzT0VOblMzSFpDSDBBSFhkMmhWWVE4V0xOb1ZEeFB2Rk1UMEs5SnI2U3JoWTlIdm5sdFBxR09PcjR4ZGlRN0RZQTc5ZEg5MEtvdWN5MGp3OFBZQ2xiMFNBM1dMM1ZnSVVub3JyaExWS2NTNFp4bjVoQTlMdldxZVBBZ1phX1lVM0o4ajNhc3lnWFdWMFRQU1RJdE1xSlNsdzFDU2hKeGZXc0FhQkJMWXNBS05QUzlzalpFMjZLNHFiQ2ZVZUMzb2pMS1huRjB0T1dDT3QyQTB5enBQLVhuQTd5VW9JV3dCN290OF9tRXhwVGRfUzFBdkNNQmh3RHJWalJ6YzNQRDFOQks2amhkY09zbkRDeDBydEN1ZU1rQ0FUX1RqMFVwdTItdV9vSWd0YWY2UXUwRUM5YVp2S0F3N2s4RlNjdGFDNjdhYk90V3lSQnh0MUhESVhjc0t2d0FvOU12bXRLVmVrMTdfWXEyazZFdTFGTW9YLTRoMnJpTGhSZVBkX0toUk50Y0s3WVZ3d29wQ29peEpoQjZ1d18yX09PX3VyaWxHM1NWRkUyZ1JQUFN1UThZU2dpS21fRkhUdGZ2R0REQjIwdmY4a21Ya3c5WHZqM2swWDZ4c2VVMVRBZ2xZMGZiY0pTUVNaeElwSGUteWpmdlJuTFpuSGZ5RzYtMm9IU1kzdmMwd1pfU2NNWS05bnRDYVJpelkwZUVXLVNyTlpRenhFdDBuYjdwOUI4dmRsVDNYdnc4dUl1NGZlMHE1bV9BRzVKS293bTNnR1VNTmJvcDBiTHFmNEZMeGN6Q3ZDenl6cG1tUkVvanlmSzgySy01Q2NXckMtRmw5OHRmTjZCR0lkVVZuSWxpRlk3MkdUN2xSVmhkWXVXeEZ0MXN2Zk1BRnBwOXBpWXpoWnkyU2thSWpoTjlVVVdDUlM5S2ZLT195NWt4TDdqdDlLd2Iwb1ZkajQ3WHkteVFremVlazBxcFhnQ05keHRBWWwxN1lycHhrSDlvblNaN3NtRzVhMDM2MXYtMVFodEp3dmlZbi1Vc0JBQ3hNeTZmQkJBUndlTFlCR3l1SFNzTm5NWE5xNWJqMWR1MG1WSmhBLlJxZFRtbi1EWHRtT2poaVMtTFdGTnFpQVdqbjNrVEpxNWMzV2xNaktPYjAifQ==

View File

@@ -0,0 +1,128 @@
{
"ChallengeMatch": {
"CreateChallenge": {
"wait_after_share": 5
}
},
"Friends": {
"FriendListService": {
"refresh_interval": 120
},
"FriendsPresence": {
"max_msg": 6,
"refresh_time": 121
},
"FriendsUGC": {
"max_msg": 5,
"refresh_time": 120
}
},
"Home": {
"Fetch": {
"during_session_tiles_count": 1,
"new_session_tiles_count": 3,
"played_maps_count": 2
}
},
"JDVersion": {
"Override": {
"1": "",
"123": "Kids",
"1230": "Kids 2",
"1234": "Kids 2014",
"31": "Wii",
"32": "Wii 2",
"51": "Wii U",
"2023": "2023 Edition",
"2024": "2024 Edition",
"5001": "Disney Party",
"5002": "Disney Party 2",
"6020": "2020 China",
"6017": "2017 China",
"6015": "2015 China",
"4884": "ABBA: You Can Dance",
"8001": "Michael Jackson: The Experience",
"8002": "Hip Hop Dance Experience",
"8003": "Black Eyed Peas Experience",
"8004": "The Smurfs: Dance Party",
"1000": "Plus",
"9999": "Unlimited"
}
},
"originalJDVersion": {
"Override": {
"1": "",
"123": "Kids",
"1230": "Kids 2",
"1234": "Kids 2014",
"31": "Wii",
"32": "Wii 2",
"51": "Wii U",
"2023": "2023 Edition",
"2024": "2024 Edition",
"5001": "Disney Party",
"5002": "Disney Party 2",
"6020": "2020 China",
"6017": "2017 China",
"6015": "2015 China",
"4884": "ABBA: You Can Dance",
"8001": "Michael Jackson: The Experience",
"8002": "Hip Hop Dance Experience",
"8003": "Black Eyed Peas Experience",
"8004": "The Smurfs: Dance Party",
"1000": "Plus",
"9999": "Unlimited"
}
},
"Quest": {
"minimumScore": {
"value": 1000
},
"questOverride": {
"value": []
},
"sessionCountUntilDiscoveryKill": {
"value": 4
},
"sessionCountUntilFirstDiscoveryKill": {
"value": 2
},
"sessionCountUntilQuestKill": {
"value": 10
}
},
"Subscription_Service": {
"ECTokenFetch": {
"retry_count": 3,
"retry_interval": 598
},
"ServerRefresh": {
"refresh_interval": 600,
"retry_interval": 60,
"retry_interval_s2s": 600
}
},
"Unlockables": {
"AAAMap": {
"LockAAAMap2": 1,
"considerLocking": 1,
"map1": "1",
"map2": "Thumbs"
}
},
"WDF": {
"Recap": {
"recap_retry_interval": 2
},
"UpdateScore": {
"update_failure_allowance": 10,
"update_score_interval": 5
}
},
"Wall": {
"FriendsWall": {
"max_msg": 7,
"refresh_time": 122
}
}
}

View File

@@ -0,0 +1,4 @@
{
"1": {
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,133 @@
{
"__class": "JD_CarouselContent",
"categories": [{
"__class": "Category",
"title": "[icon:CROWN] Just Dance Party",
"act": "ui_carousel",
"isc": "grp_row",
"items": []
},
{
"__class": "Category",
"title": "[icon:SEARCH_FILTER] Search",
"act": "ui_carousel",
"isc": "grp_row_search",
"items": [
{
"__class": "Item",
"act": "ui_component_base",
"components": [],
"isc": "grp_search",
"actionList": "search"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Solo"
],
"presetTitle": "Solo",
"trackingTitle": "Solo"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Duet"
],
"presetTitle": "Duet",
"trackingTitle": "Duet"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Trio"
],
"presetTitle": "Trio",
"trackingTitle": "Trio"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
},
{
"__class": "Item",
"act": "ui_component_base",
"components": [
{
"__class": "JD_CarouselContentComponent_SearchPreset",
"presetTags": [
"Quartet"
],
"presetTitle": "Quartet",
"trackingTitle": "Quartet"
}
],
"isc": "grp_search_preset",
"actionList": "searchPreset"
}
]
}
]
}
],
"actionLists": {
"partyMap": {
"__class": "ActionList",
"actions": [{
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance",
"type": "play-song"
}, {
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Add to favorites",
"type": "set-favorite"
}, {
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song_leaderboard",
"title": "Leaderboard",
"type": "leaderboard"
}, {
"__class": "Action",
"bannerContext": "family_rival",
"bannerTheme": "DEFAULT",
"bannerType": "song_licensing",
"title": "Credits",
"type": "credits"
}
],
"itemType": "map"
}
},
"songItemLists": {}
}

View File

@@ -0,0 +1,303 @@
{
"__class": "JD_CarouselContent",
"categories": [{
"__class": "Category",
"title": "Upsell Videos",
"act": "ui_carousel",
"isc": "grp_row",
"items": [{
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Diggin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Diggin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Diggin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Diggin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Diggin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Cheerleader"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "GangnamStyleDLC"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "LetItGo"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Happy"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "BeautyAndABeatDLC"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "SexyAndIKnowItDLC"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "BlurredLines"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Starships"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "JustDance"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "GoodFeeling"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Rasputin"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "MovesLikeDLC"
}
],
"actionList": "upsell"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "BuiltForThis"
}
],
"actionList": "upsell"
}
]
}, {
"__class": "Category",
"title": "Upsell Videos Kids",
"act": "ui_carousel",
"isc": "grp_row",
"items": [{
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "LetItGo"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "AngryBirds"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "PrinceAli"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Cmon"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "Ghostbusters"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "UnderTheSea"
}
],
"actionList": "kidsMap"
}, {
"__class": "Item",
"isc": "grp_cover",
"act": "ui_component_base",
"components": [{
"__class": "JD_CarouselContentComponent_Song",
"mapName": "CopaCabana"
}
],
"actionList": "kidsMap"
}
]
}, {
"__class": "Category",
"title": "WhatsNew Videos",
"act": "avatar_carousel",
"isc": "avatar_row",
"items": []
}
],
"actionLists": {
"kidsMap": {
"__class": "ActionList",
"actions": [{
"__class": "Action",
"bannerContext": "kids",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Dance",
"type": "play-song"
}
],
"itemType": "map"
},
"upsell": {
"__class": "ActionList",
"actions": [{
"__class": "Action",
"bannerTheme": "DEFAULT",
"bannerType": "song",
"title": "Subscribe",
"type": "display-upsell"
}
],
"itemType": "map"
}
},
"songItemLists": {}
}

View File

@@ -0,0 +1,9 @@
[
{
"name": "Test Playlist",
"RecommendedName": "Test Playlist",
"songlist": [
"Despacito"
]
}
]

3289
database/db/aliases.json Normal file

File diff suppressed because it is too large Load Diff

409
database/db/avatars.json Normal file
View File

@@ -0,0 +1,409 @@
{
"__class": "JD_CarouselContent",
"categories": [
{
"__class": "Category",
"title": "Just Dance 2022",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2022,
"lockType": 0,
"sortBy": 0,
"uuid": "99a0e5f8-61f9-48a7-aff4-a5884887b23d"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2021",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2021,
"lockType": 0,
"sortBy": 0,
"uuid": "e737f5e8-bd4a-4fe7-b035-389de576ff20"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2020",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2020,
"lockType": 0,
"sortBy": 0,
"uuid": "bcea88b1-3dc3-4e06-8cee-feaf56480114"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2019",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2019,
"lockType": 0,
"sortBy": 0,
"uuid": "bcea88b1-3dc3-4e06-8cee-feaf56480114"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2018",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2018,
"lockType": 0,
"sortBy": 0,
"uuid": "1147833f-0634-45ee-a9bf-fbb05d20353b"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2017",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2017,
"lockType": 20,
"sortBy": 0,
"uuid": "c1712549-8b73-44d6-9c17-e3cac56d5590"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2016",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2016,
"lockType": 0,
"sortBy": 0,
"uuid": "33ba21de-94cb-435a-8f4c-95a11509baec"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2015",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2015,
"lockType": 0,
"sortBy": 0,
"uuid": "0c5259c2-4146-44b8-8875-a9541c81abd6"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2014",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 5,
"lockType": 0,
"sortBy": 0,
"uuid": "c0a08068-edf7-419f-b30a-5c1a7f3f107c"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 4",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 4,
"lockType": 0,
"sortBy": 0,
"uuid": "ddffcbe0-8a73-418a-9702-9fea97a10b0e"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 3",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 3,
"lockType": 0,
"sortBy": 0,
"uuid": "d660937f-0d2d-414a-a42c-365e66c308bd"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 2",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2,
"lockType": 0,
"sortBy": 0,
"uuid": "387d5eb9-9df3-4561-a32d-9a7406157c24"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance 1",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 1,
"lockType": 0,
"sortBy": 0,
"uuid": "250d5f55-c963-4833-b0a4-3ddcf5a54b71"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance Kids",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 123,
"lockType": 0,
"sortBy": 0,
"uuid": "ba9fa20d-d995-4a4a-abec-9688d4782a61"
}
}
]
},
{
"__class": "Category",
"title": "ABBA: You Can Dance",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 4884,
"lockType": 0,
"sortBy": 0,
"uuid": "84bb11f5-cdc3-49a6-a996-41020177fc09"
}
}
]
},
{
"__class": "Category",
"title": "Mojo",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": -1,
"lockType": 1,
"sortBy": 1,
"uuid": "657232bf-d5f2-4553-b9d0-c1cf070c8e90"
}
}
]
},
{
"__class": "Category",
"title": "Dance Quest",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2017,
"lockType": 9,
"sortBy": 0,
"uuid": "9a3885fa-b5aa-4362-a6a9-3f0b5b7e9769"
}
},
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 9999,
"lockType": 9,
"sortBy": 0,
"uuid": "04942341-ee4a-4681-a583-9fecf7e2670f"
}
}
]
},
{
"__class": "Category",
"title": "Game mode progression",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": -1,
"lockType": 10,
"sortBy": 0,
"uuid": "ae334024-badd-47f1-8b3d-3a2af9607eb6"
}
}
]
},
{
"__class": "Category",
"title": "Ubisoft Club",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2017,
"lockType": 6,
"sortBy": 0,
"uuid": "8ef22b56-d864-40e4-b061-001c3cdee05d"
}
},
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 2017,
"lockType": 16,
"sortBy": 0,
"uuid": "9071654f-c131-418c-b785-5bc809d1403e"
}
}
]
},
{
"__class": "Category",
"title": "Just Dance Unlimited exclusive",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselCustomizableItemRequest",
"itemType": 0,
"jdVersion": 9999,
"lockType": 0,
"sortBy": 0,
"uuid": "db38fe17-7653-4b89-8e9c-d841a48ece38"
}
}
]
}
],
"actionLists": {},
"songItemLists": {}
}

View File

@@ -0,0 +1,40 @@
[
"3.145.25.236",
"20.244.18.230",
"194.2.155.0/24",
"216.98.48.0/20",
"195.88.182.0/23",
"220.225.106.216/30",
"115.111.211.168/29",
"182.19.70.0/26",
"124.74.128.160/29",
"34.205.220.58/32",
"34.207.6.85/32",
"35.174.158.139/32",
"130.254.84.0/23",
"130.254.64.0/19",
"194.2.155.0",
"216.98.48.0",
"195.88.182.0",
"220.225.106.216",
"115.111.211.168",
"182.19.70.0",
"124.74.128.160",
"34.205.220.58",
"34.207.6.85",
"35.174.158.139",
"130.254.84.0",
"130.254.64.0",
"194.2.155.24",
"216.98.48.20",
"195.88.182.23",
"220.225.106.30",
"115.111.211.29",
"182.19.70.26",
"124.74.128.29",
"34.205.220.32",
"34.207.6.32",
"35.174.158.32",
"130.254.84.23",
"130.254.64.19"
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,123 @@
{
"__class": "JD_CarouselContent",
"categories": [
{
"__class": "Category",
"title": " Dancer Cards",
"act": "ui_carousel",
"isc": "grp_row",
"items": [
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselDancerCardRequest",
"isSaveItem": true,
"uuid": "f02934b9-647d-46b3-9d8f-d9983e7cfd7d"
}
},
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselDancerCardRequest",
"actionListName": "main-dancer-card",
"main": true,
"uuid": "0ff6ad3b-a0fb-4253-b12a-ef01e813874f"
}
},
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselDancerCardRequest",
"actionListName": "dancer-card",
"uuid": "a22c81fd-4e56-439c-a42d-74d17c55a6c0"
}
},
{
"__class": "Item",
"offlineRequest": {
"__class": "JD_CarouselDancerCardRequest",
"actionListName": "create-dancer-card",
"create": true,
"uuid": "69478a6a-20ad-47ee-9cfa-c42af702984a"
}
}
]
}
],
"actionLists": {
"main-dancer-card": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerType": "dancer",
"title": "Change avatar",
"type": "change-avatar"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Change your skin",
"type": "change-skin"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Edit nickname",
"type": "edit-nickname"
}
],
"itemType": "dancer-card"
},
"dancer-card": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerType": "dancer",
"title": "Activate",
"type": "set-as-main"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Change avatar",
"type": "change-avatar"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Change skin",
"type": "change-skin"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Edit nickname",
"type": "edit-nickname"
},
{
"__class": "Action",
"bannerType": "dancer",
"title": "Delete",
"type": "delete-dancer-card"
}
],
"itemType": "dancer-card"
},
"create-dancer-card": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"bannerContext": "CONTEXT_ADD",
"bannerType": "dancer",
"title": "Create Dancer Card",
"type": "create-dancer-card"
}
],
"itemType": "dancer-card"
}
},
"songItemLists": {}
}

73
database/db/home.json Normal file
View File

@@ -0,0 +1,73 @@
{
"__class": "HomeService::HomeData",
"tileList": [{
"__class": "HomeService::HomeTile",
"type": 2,
"creationTime": 1613578222360,
"locked": false,
"new": true,
"lockDuration": 0,
"contentExpiry": 0,
"uuid": "00000000-0000-0000-0000-000000000000",
"newsTileInfo": {
"__class": "HomeService::NewsTileInfo",
"type": 2,
"title": "Welcome to Just Dance Party",
"text": "",
"imageUrl": "https://s3.amazonaws.com/cdn-efds.justdancenext.xyz/assets/icon.png",
"winnerPid": "00000000-0000-0000-0000-000000000000",
"winnerPlatform": "",
"winnerName": "",
"winnerNameSuffix": 0,
"winnerCountry": 4294967295,
"winnerAvatar": 4294967295,
"winnerAlias": 4294967295,
"offlineNewID": ""
}
},
{
"__class": "HomeService::HomeTile",
"type": 2,
"creationTime": 1613578222360,
"locked": false,
"new": true,
"lockDuration": 0,
"contentExpiry": 0,
"uuid": "00000000-0000-0000-0000-000000000000",
"newsTileInfo": {
"__class": "HomeService::NewsTileInfo",
"type": 2,
"title": "Join our Discord server!",
"text": "Here is the link: https://discord.gg/H7SeBSTS",
"imageUrl": "https://cdn.glitch.global/62326fe4-c1d6-4a0d-bf57-06b57a460c36/discord.png",
"winnerPid": "00000000-0000-0000-0000-000000000000",
"winnerPlatform": "",
"winnerName": "",
"winnerNameSuffix": 0,
"winnerCountry": 4294967295,
"winnerAvatar": 4294967295,
"winnerAlias": 4294967295,
"offlineNewID": ""
}
}, {
"__class": "HomeService::HomeTile",
"type": 0,
"creationTime": 1590943627,
"locked": false,
"new": true,
"lockDuration": 0,
"contentExpiry": 0,
"uuid": "00000000-0000-0000-0000-000000000000",
"mapTileInfo": {
"__class": "HomeService::MapTileInfo",
"type": 6,
"mapName": "NeverBe"
}
}],
"timestampLastRequest": 1613578407,
"timestampLastManualContent": 1612964700,
"timestampLastMapContent": 0,
"timestampLastVideoContent": 0,
"timestampLastPlaylistContent": 0,
"timestampLastLocalTrack": 1540857600
}

29204
database/db/items.json Normal file

File diff suppressed because it is too large Load Diff

62965
database/db/jdtv.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
{
"__class": "LeaderboardList",
"entries": [{
"__class": "LeaderboardEntry_Online",
"profileId": "acfe6905-f1e5-4d37-afbf-088794a71938",
"rank": 751,
"score": 251,
"name": "Adrian_Flopper",
"avatar": 376,
"country": 8521,
"platformId": "",
"jdPoints": 23210,
"portraitBorder": 26
}
],
"playerCount": 1
}

574
database/db/playlistdb.json Normal file
View File

@@ -0,0 +1,574 @@
{
"__class": "PlaylistDbResponse",
"db": {
"00sGems": {
"filters": true,
"maps": ["BadRomance", "DynamiteQUAT", "HotNCold", "Girlfriend", "Promiscuous", "TheWeekend", "SomethinStupid", "HeyYa"],
"__class": "PlaylistDbService::Playlist",
"title": "Dancing into the 2000s",
"description": "Y2K never scared us...",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-09-11_00sGems/b225b3ae2dc5380ec756442311ca8693.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"10sGems": {
"filters": true,
"maps": ["BreakFreeDLC", "LittleParty", "SingleLadies", "BeautyAndABeatDLC", "TeenageDream", "Senorita", "PartyRock", "Finesse"],
"__class": "PlaylistDbService::Playlist",
"title": "The 2010s Were Banging",
"description": "Iconic!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_10sGems/189549a9617c54d38fe529962a4778ab.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"70sGems": {
"filters": true,
"maps": ["KungFu", "IWasMadeQUAT", "NeverCanSay", "ThatsTheWay", "HeartOfGlass", "HotStuff", "WalkThisWay", "Alexandrie"],
"__class": "PlaylistDbService::Playlist",
"title": "The Groovy 70s",
"description": "Peace and love, baby! Get your groove on with these golden oldies from the Seventies",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_70sGems/acd0dea3ba60dfe8efa313cd64a61b78.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"80sGems": {
"filters": true,
"maps": ["GimmeGimmeOSC", "LetsGroove", "HoldingOut", "ImStillStanding", "JumpGA", "GirlsJustWant", "Ghostbusters", "SpinMeRound"],
"__class": "PlaylistDbService::Playlist",
"title": "The Epic 80s",
"description": "Watch out for that aesthetic... The Eighties never left",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_80sGems/82666e10558a167afbb3e2ba4d3c6130.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"90sGems": {
"filters": true,
"maps": ["GetGetDown", "Macarena", "Blue", "AlwaysLookOn", "LastChristmas", "Bailando1997", "Cotton", "CantTouchThis"],
"__class": "PlaylistDbService::Playlist",
"title": "The Poppin' 90s",
"description": "Let's take a trip down memory lane!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_90sGems/197d716e79a6cdf1321a4af7f1d0759d.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BeastlyBeats": {
"filters": true,
"maps": ["IstanbulQUAT", "CanCan", "WaterMe", "ConCalma", "Kuliki", "DogsOut", "BabyShark", "DibbyDibby"],
"__class": "PlaylistDbService::Playlist",
"title": "Beastly Beats",
"description": "Hey, if it's got legs, it can dance!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_BeastlyBeats/5cc0e8cf8c4b7e10f6a60bfe09f43c6d.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_1": {
"filters": true,
"maps": ["HeartOfGlass", "GetAround", "LeFreak", "Potato", "EyeOfTheTiger", "Fame", "ThatsTheWay", "GirlsJustWant"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 1",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-23_BestOfJD_1/83959f48fee8b4466455a5a90b761b27.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_14": {
"filters": true,
"maps": ["YMCA", "IWillSurvive", "PoundTheAlarm", "WakeMeUpDLC", "Danse", "Moskau", "Gentleman", "Cmon"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2014",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_14/1924d1ee66b0cf1d39eb28c9bdef1121.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_15": {
"filters": true,
"maps": ["BadRomance", "Macarena", "WalkThisWay", "BreakFreeDLC", "Birthday", "LoveIsAll", "FindYourMove", "BoomClapDLC"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2015",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_15/24778ecdaca186e9db9d7894b958f817.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_16": {
"filters": true,
"maps": ["StadiumFlow", "Cheerleader", "Fancy", "Lights", "ShutUp", "GetUgly", "AngryBirds", "JuntoATi"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2016",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_16/3558dd6d1ed8bb865df12a61d932b9a9.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_17": {
"filters": true,
"maps": ["Groove", "TeDominar", "ILoveRock", "Bonbon", "IntoYou", "DragosteaDinTei", "DontStopMe", "Natoo"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2017",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_17/1bc18fc05cd18feb71e4b2b6b117605f.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_18": {
"filters": true,
"maps": ["GotThat", "Diggy", "Copperhead", "Dharma", "KissingStrangers", "Despacito", "SwishSwish", "Carmen"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2018",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_18/876bb15a8ad0206f1d91a3f013ef51aa.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_19": {
"filters": true,
"maps": ["DDUDU", "MakeMeFeel", "LittleParty", "ImStillStanding", "Criminal", "Finesse", "NotYourOrdinary", "IFeelItComing"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2019",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-24_BestOfJD_19/b0cf98dfe1c66be6dfeb9c6aa741cbf7.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_2": {
"filters": true,
"maps": ["Holiday", "MugsyBaloney", "KattiKalandal", "BigGirl", "MonsterMash", "ProfesseurDLC", "Futebol", "Rockafeller"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 2",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-23_BestOfJD_2/a644b6310a842fc247cc124f458bf548.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_3": {
"filters": true,
"maps": ["BoogieWonderQUAT", "HungarianDance", "CrazyLittle", "JamboMambo", "Mamasita", "PartyRock", "DynamiteQUAT", "SomethinStupid"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 3",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-23_BestOfJD_3/d6c9c2a94e2d6261c1aa7dd997d1d1da.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"BestOfJD_4": {
"filters": true,
"maps": ["IstanbulQUAT", "YouReTheFirst", "GlamorousCusto", "Diggin", "RockNRoll", "WeRWhoWeRDLC", "Oath", "IDidItAgainQUAT"],
"__class": "PlaylistDbService::Playlist",
"title": "Just Dance 4",
"description": "Go back in time for a nostalgic trip!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_BestOfJD_4/0d815e92fb36eedb8c2bc503e2c4ca69.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"CakeManiaCollection": {
"maps": ["KIDSShout", "MagneticMU", "FollowTheLeader", "FollowTheLeaderALT", "BillieJean"],
"__class": "PlaylistDbService::Playlist",
"title": "Season 2: Cake Mania Collection",
"description": "ihir rela leka",
"coverURL": "https://s3.amazonaws.com/cdn-efds.justdancenext.xyz/public/playlists/covers/ceb33ab64809c932d38925e5d719afdd.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Caps": {
"filters": true,
"maps": ["TheChoice", "ItsYou", "DespacitoALT", "CantFeelMyFace", "YoLeLlego", "StuckOnAFeeling", "IDontCare", "FitButYouKnow"],
"__class": "PlaylistDbService::Playlist",
"title": "Cap It Off",
"description": "Pull on that snapback and report to the dance floor!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Caps/ad5ed4269f100412ccc5428c1fe76c11.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Crowns": {
"filters": true,
"maps": ["ILoveRock", "FeelSpecial", "LeanOnALT", "Starships", "Thumbs", "WalkLike", "Alexandrie", "AintMy"],
"__class": "PlaylistDbService::Playlist",
"title": "Royally Cool",
"description": "A Playlist fit for royalty",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Crowns/4ccaaebedb0cc5066dab7f67bdaa6210.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"DisneyHits": {
"filters": true,
"maps": ["JuntoATi", "PrinceAli", "UnderTheSea", "LetItGoDLC", "LetItGo", "Lullaby", "PocoLoco", "HowFar"],
"__class": "PlaylistDbService::Playlist",
"title": "Disney Hits",
"description": "The best from the Mouse House",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_DisneyHits/dfb5881a49e4449c7611a93ccf739d8e.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"EasternInsirations": {
"filters": true,
"maps": ["SayonaraRetake", "KungFunk", "HeyMamaALT", "DDUDU", "NewWorld", "BubblePop", "Zenit", "KillThisLove"],
"__class": "PlaylistDbService::Playlist",
"title": "Eastern Inspirations",
"description": "From India to Bali, to Japan, South Korea, and China... Discover the inspirations for these beautiful worlds",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_EasternInsirations/8a2080935355157da440c2a69296cf6c.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"ElectroBeats": {
"filters": true,
"maps": ["Albatraoz", "Bangarang", "Animals", "Dharma", "DontYouWorryDLC", "Automaton", "RockNRoll", "Radical"],
"__class": "PlaylistDbService::Playlist",
"title": "Electro Beats",
"description": "Hit that electro beat... Do not add water",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_ElectroBeats/c5f92dfbf1eb28f878cfdababdbf745c.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Extreme": {
"filters": true,
"maps": ["JohnWALT", "AnimalsALT", "CircusALT", "DespacitoALT", "SorryALT", "GoodFeelingALT", "TumBumALT", "WalkThisWayALT"],
"__class": "PlaylistDbService::Playlist",
"title": "Extreme Moves",
"description": "Warm up before attempting this Playlist...",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Extreme/791f2360aa195b044af97135391128f6.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Fitness": {
"filters": true,
"maps": ["RabiosaALT", "IAmTheBest", "IDontCare", "IKissedSWT", "SeptemberALT", "DibbyDibby", "Skibidi", "GentlemanSWT"],
"__class": "PlaylistDbService::Playlist",
"title": "Break a Sweat",
"description": "Get through this Playlist, and you're allowed to skip the gym today!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Fitness/904ffea3d6d6136e2ec53aaa2eee638a.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"GirlsBands": {
"filters": true,
"maps": ["Macarena", "BewareOf", "BabyOneMoreQUAT", "QueTirePaLante", "7Rings", "Sorbet", "Circus", "DDUDU"],
"__class": "PlaylistDbService::Playlist",
"title": "Girl Squad",
"description": "Better together!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_GirlsBands/41df8a7a9ce5b65f7504d43dfa42530c.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Guests": {
"filters": true,
"maps": ["Lullaby", "FriendInMe", "BabyShark", "WakeMeUpALT", "LetItGoDLC", "UnderTheSea", "Barbie", "PocoLoco"],
"__class": "PlaylistDbService::Playlist",
"title": "Fave Friends",
"description": "A Playlist featuring our best friends!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Guests/4a59845dc471b30025236c8fa9cdce4c.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"GurlPowa": {
"filters": true,
"maps": ["TillTheWorldEnds", "AintMy", "365", "HeyMama", "BadBoy", "ConAltura", "ILoveRock", "FancyTwice"],
"__class": "PlaylistDbService::Playlist",
"title": "Girl Power",
"description": "The future is female, and so is this Playlist",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_GurlPowa/1ac5770771a887848dc6d7d1c04b709b.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"HappyBirthday": {
"filters": true,
"maps": ["ImStillStanding", "MeToo", "BornThisWay", "Birthday", "TheFinalCountdown", "IWillSurvive", "DontWorry", "Bailando1997"],
"__class": "PlaylistDbService::Playlist",
"title": "Birthday Beats",
"description": "It's your birthday! Or even if it's not, get down to these celebratory beats",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_HappyBirthday/854666933fe5e1933ed379cf61495616.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"HappyTimes": {
"filters": true,
"maps": ["Sugar", "Footloose", "PacaDance", "StopMovin", "InTheNavy", "Fun", "SoyYo", "Happy"],
"__class": "PlaylistDbService::Playlist",
"title": "Happy Vibes",
"description": "Simply happy :)",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_HappyTimes/8f7b8cfe76c96547a1b4591827cffcdb.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"Hats": {
"filters": true,
"maps": ["NineAfternoon", "StepByStep", "SangriaWine", "WakingUp", "HeyMama", "TasteTheFeeling", "BlackMamba", "Joone"],
"__class": "PlaylistDbService::Playlist",
"title": "Put a Lid on It",
"description": "Top off your dancing with these spect-hat-ular songs",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Hats/5ca2f41359fd5d306038e028436b4e6a.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"HeyHandsome": {
"filters": true,
"maps": ["AdoreYou", "IFeelItComing", "FeelIt", "Talk", "Georgia", "WantToWantMe", "RiskyBusiness", "OtherSideSZA"],
"__class": "PlaylistDbService::Playlist",
"title": "Hey Handsome!",
"description": "Do you dance as good as you look?",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_HeyHandsome/0a7c1cab477bbdade35c0aee9f59bc16.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"IndianInspirations": {
"filters": true,
"maps": ["CheapThrillsALT", "KattiKalandal", "JaiHo", "LeanOn", "BewareOf", "BollywoodXmas", "Kurio", "FancyALT"],
"__class": "PlaylistDbService::Playlist",
"title": "South Asian Sounds",
"description": "Love that desi flavor",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_IndianInspirations/88226835fc9082e9859eed6d2ff0a780.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"JD22_PL_Online_Sku_Marathon": {
"filters": [[{
"__class": "JD_CarouselSkuFilter",
"gameVersion": ["jd2022"]
}
]],
"maps": ["Buttons", "Jopping", "TGIF", "China", "Judas", "RockYourBody", "Boombayah", "LoveStory"],
"__class": "PlaylistDbService::Playlist",
"title": "Marathon",
"description": "Test your endurance with longer songs",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/JD22_PL_SKU_Marathon/f02eaa7891a867ada7aa06fcab83b2ed.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"JD22_PL_Online_Sku_Must_Dance_2022": {
"filters": [[{
"__class": "JD_CarouselSkuFilter",
"gameVersion": ["jd2022"]
}
]],
"maps": ["GirlLikeMe", "Judas", "Levitating", "Boombayah", "PopStars", "Mood", "WhoRun", "RockYourBody"],
"__class": "PlaylistDbService::Playlist",
"title": "Get a taste of Just Dance 2022",
"description": "The most iconic songs from Just Dance 2022",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/JD22_PL_SKU_MustDance2022/316ac6c48d5d7c720671978be5ad407a.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"JD22_PL_Online_Sku_Play_and_Go": {
"filters": [[{
"__class": "JD_CarouselSkuFilter",
"gameVersion": ["jd2022"]
}
]],
"maps": ["PopStars", "China", "SmalltownBoy", "ThinkAboutThings", "Levitating", "TGIF", "Chandelier", "Funk"],
"__class": "PlaylistDbService::Playlist",
"title": "Play and Go 2022",
"description": "Get a taste of Just Dance 2022",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/JD22_PL_SKU_PlayAndGo2022/934b911d7aa803ffd6e75c68d346afc7.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"JD22_PL_Online_Sku_Teaming_Up": {
"filters": [[{
"__class": "JD_CarouselSkuFilter",
"gameVersion": ["jd2022"]
}
]],
"maps": ["Jopping", "BlackMam", "China", "LevelUp", "FlashPose", "PopStars", "Jerusalema", "Boombayah"],
"__class": "PlaylistDbService::Playlist",
"title": "Teaming Up",
"description": "Have a blast with your friends!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/JD22_PL_SKU_TeamingUp/25e05327057085a889b715c8d9c78f7a.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"KPop2020": {
"filters": true,
"maps": ["KillThisLove", "BubblePop", "Bang2019", "IAmTheBest", "FeelSpecial", "NewFace", "KickIt", "Gentleman"],
"__class": "PlaylistDbService::Playlist",
"title": "K-pop",
"description": "The essentials of Korean Pop music",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_KPop2020/0a2d0aa52b23d1e73bcf44b867f63701.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"LatinFever": {
"filters": true,
"maps": ["ILikeIt", "Buscando", "Bailar", "ConAltura", "ObsessionRetake", "Havana", "TakiTaki", "Rabiosa"],
"__class": "PlaylistDbService::Playlist",
"title": "Latin Flavors",
"description": "These songs will have you feeling the heat",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_LatinFever/7110e36374d03626b9cd0ac8482ca59e.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"NeonTouch": {
"filters": true,
"maps": ["RockNRoll", "SpectronizerQUAT", "Titanium", "RadicalALT", "Automaton", "Runaway", "LikeIWould", "BlindingLights"],
"__class": "PlaylistDbService::Playlist",
"title": "High Voltage",
"description": "Don't touch, just dance!",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_NeonTouch/7c297bc5877826fb9e6dcf6c5ee21e7a.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"RecoFallback": {
"fallback": true,
"filters": true,
"fixedMapOrder": true,
"maps": ["Bangarang", "MiGente", "HandClap", "GirlLikeMe", "Mood", "TGIF", "Albatraoz", "SaveYourTears"],
"__class": "PlaylistDbService::Playlist",
"title": "Placeholder",
"description": "Placeholder",
"coverURL": "https://ubistatic-a.akamaihd.net/0060/uat/playlist/cover_1561468252.png",
"pinned": false
},
"Sporty": {
"filters": true,
"maps": ["EyeOfTheTiger", "SexyAndIKnowItDLC", "SideToALT", "QueTirePaLante", "WhatAFeeling", "Juice", "AnotherOneALT", "Fame"],
"__class": "PlaylistDbService::Playlist",
"title": "Work Work",
"description": "Athleisure is so in right now",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_Sporty/811d102a359a9e40fd5786c0e92b4a72.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"StreetCred": {
"filters": true,
"maps": ["Finesse", "HabibiYaeni", "Policeman", "YoLeLlego", "FitButYouKnow", "GetUgly", "MiGente", "NotYourOrdinary"],
"__class": "PlaylistDbService::Playlist",
"title": "Street Cred",
"description": "Urban beats to move your feet",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_StreetCred/6f9cdcf081094af09d870056956fc376.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"SuperHeroes": {
"filters": true,
"maps": ["BassaSababa", "CosmicGirl", "HoldingOut", "BreakFreeDLC", "IDidItAgainQUAT", "AnotherOneALT", "WithoutMe", "CantTakeMyEyesALT"],
"__class": "PlaylistDbService::Playlist",
"title": "With Great Power...",
"description": "Get on the dance floor with these Super Girls and Boys",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_SuperHeroes/1383f67fd479b22800f29c53a6bfa327.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"UnidentifiedlivingObjects": {
"filters": true,
"maps": ["RaveIn", "CanCan", "LoveWard", "Vodovorot", "WakeMeUpALT", "SweetSensation", "Blue", "BassaSababa"],
"__class": "PlaylistDbService::Playlist",
"title": "Anyone Can Dance",
"description": "And we mean... ANYONE",
"coverURL": "https://jd-s3.cdn.ubi.com/public/playlists/covers/19-10-29_UnidentifiedlivingObjects/a3035e2a9d08537cceb9dd87f66e764e.png",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"reco-top_played": {
"maps": ["DansVanDeFarao", "Natoo", "Sun", "Buttons", "Chacarron", "Error", "Mood", "Levitating"],
"colors": {
"base_color": "5FB61EFF",
"grad_color": "17CDBAFF"
},
"type": "recommended",
"__class": "PlaylistDbService::Playlist",
"title": "Top Played Worldwide",
"description": "The most popular songs around the world",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"reco-top_replayed": {
"maps": ["TasteTheFeeling", "Buttons", "KickIt", "BangarangALT", "SugarDance", "WantToWantMeALT", "Malibu", "MagicHalloweenKids"],
"colors": {
"base_color": "5FB61EFF",
"grad_color": "17CDBAFF"
},
"type": "recommended",
"__class": "PlaylistDbService::Playlist",
"title": "Top Replayed",
"description": "The songs the community dances to on a loop",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"reco-for_you": {
"maps": ["Levitating", "DansVanDeFarao", "Sun", "Chacarron", "Mood", "USA", "Natoo", "Believer"],
"colors": {
"base_color": "FF4582FF",
"grad_color": "FFA100FF"
},
"type": "recommended",
"__class": "PlaylistDbService::Playlist",
"title": "Recommended for You",
"description": "Songs you will like",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"reco-discover": {
"maps": ["Levitating", "DansVanDeFarao", "Sun", "Chacarron", "Mood", "USA", "Natoo", "Believer"],
"colors": {
"base_color": "5FB61EFF",
"grad_color": "17CDBAFF"
},
"type": "recommended",
"__class": "PlaylistDbService::Playlist",
"title": "Discovery",
"description": "Try something new!",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
},
"reco-top_country": {
"maps": ["Sun", "Chacarron", "Buttons", "Kuliki", "DanceMonkey", "Uno", "Bangarang", "Boombayah"],
"colors": {
"base_color": "BD01ABFF",
"grad_color": "69C2E0FF"
},
"type": "recommended",
"__class": "PlaylistDbService::Playlist",
"title": "Top Country",
"description": "The most popular songs in your country",
"fixedMapOrder": false,
"fallback": false,
"pinned": false
}
}
}

697
database/db/playlists.json Normal file
View File

@@ -0,0 +1,697 @@
{
"__class": "JD_CarouselContent",
"categories": [
{
"__class": "Category",
"title": "Recommended",
"act": "ui_carousel",
"isc": "grp_row",
"categoryType": "playlist",
"items": [
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "reco-top_country",
"displayCode": 1,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "reco-discover",
"displayCode": 2,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "reco-for_you",
"displayCode": 3,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "reco-top_played",
"displayCode": 4,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "reco-top_replayed",
"displayCode": 5,
"displayMethod": "manual"
}
]
}
]
},
{
"__class": "Category",
"title": "Themed Playlists",
"act": "ui_carousel",
"isc": "grp_row",
"categoryType": "playlist",
"items": [
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "00sGems",
"displayCode": 6,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "10sGems",
"displayCode": 7,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "70sGems",
"displayCode": 8,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "80sGems",
"displayCode": 9,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "90sGems",
"displayCode": 10,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BeastlyBeats",
"displayCode": 11,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_1",
"displayCode": 12,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_2",
"displayCode": 13,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_3",
"displayCode": 14,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_4",
"displayCode": 15,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_14",
"displayCode": 16,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_15",
"displayCode": 17,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_16",
"displayCode": 18,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_17",
"displayCode": 19,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_18",
"displayCode": 20,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "BestOfJD_19",
"displayCode": 21,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "CakeManiaCollection",
"displayCode": 22,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Caps",
"displayCode": 23,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Crowns",
"displayCode": 24,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "DisneyHits",
"displayCode": 25,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "EasternInsirations",
"displayCode": 26,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "ElectroBeats",
"displayCode": 27,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Extreme",
"displayCode": 28,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Fitness",
"displayCode": 29,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "GirlsBands",
"displayCode": 30,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Guests",
"displayCode": 31,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "GurlPowa",
"displayCode": 32,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "HappyBirthday",
"displayCode": 33,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "HappyTimes",
"displayCode": 34,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Hats",
"displayCode": 35,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "HeyHandsome",
"displayCode": 36,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "IndianInspirations",
"displayCode": 37,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "KPop2020",
"displayCode": 38,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "LatinFever",
"displayCode": 39,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "NeonTouch",
"displayCode": 40,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "Sporty",
"displayCode": 41,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "StreetCred",
"displayCode": 42,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "SuperHeroes",
"displayCode": 43,
"displayMethod": "manual"
}
]
},
{
"__class": "Item",
"isc": "grp_row",
"act": "ui_carousel",
"actionList": "_None",
"actionListUpsell": "_None",
"components": [
{
"__class": "JD_CarouselContentComponent_Playlist",
"playlistID": "UnidentifiedLivingObjects",
"displayCode": 44,
"displayMethod": "manual"
}
]
}
]
}
],
"actionLists": {
"_None": {
"__class": "ActionList",
"actions": [
{
"__class": "Action",
"title": "None",
"type": "do-nothing"
}
],
"itemType": "map"
}
},
"songItemLists": {}
}

View File

@@ -0,0 +1,31 @@
{
"__class": "OnlineQuestDb",
"quests": [
{
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/quest_logo.png/816427293e03aea07ae754fb359e76df.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/nx/quest_cover.tga.ckd/dee0111206bc753393441e97e19a2be9.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/nx/quest_logo.tga.ckd/a709e1f8a8dbd05a054146299d8bbc7f.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/nx/quest_logo_shaded.tga.ckd/cf05d311fa38bbe31db8fd4d0ee00227.ckd"
},
"id": "30",
"locked": 0,
"playlist": ["BornThisWay", "IKissed", "Titanium"],
"title": "Pride Quest"
},
{
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/quest_logo.png/02234d2f68340f5803c995be4369c7d0.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/nx/quest_cover.tga.ckd/8eb79a90941444236c46f5902b51abb7.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/nx/quest_logo.tga.ckd/36754784ce44fb8978b8a2f39fd6ba2f.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/nx/quest_logo_shaded.tga.ckd/207b98cefea547d70bf36d6ca82ea18a.ckd"
},
"id": "31",
"locked": 0,
"playlist": ["Xmas", "LastChristmas", "BollywoodXmas"],
"title": "Christmas"
}
]
}

344
database/db/quests-pc.json Normal file
View File

@@ -0,0 +1,344 @@
{
"__class": "OnlineQuestDb",
"quests": [
{
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/quest_logo.png/816427293e03aea07ae754fb359e76df.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_cover.tga.ckd/b514e9fabbc39152d2ee9362437a1fb2.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_logo.tga.ckd/9c6630baf9b2ab30e8fd75b0699f2cc8.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_logo_shaded.tga.ckd/aa100767755dfc65ce74708dc09b94c7.ckd"
},
"id": "30",
"locked": 0,
"playlist": ["BornThisWay", "IKissed", "Titanium"],
"title": "Pride Quest"
},
{
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/quest_logo.png/02234d2f68340f5803c995be4369c7d0.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_cover.tga.ckd/e9ad251548b89569b26d874e35b4995e.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_logo.tga.ckd/0ba02470475bdfb34868398bfcd637a4.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_logo_shaded.tga.ckd/dd695d93c4f213aacbe94b0ee60d6c3c.ckd"
},
"id": "31",
"locked": 0,
"playlist": ["Xmas", "LastChristmas", "BollywoodXmas"],
"title": "Christmas"
},
{
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/29/quest_logo.png/338798c51107cf010220f72c654ca171.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/29/pc/quest_cover.tga.ckd/159924ac35e6a6a2c1f23da728d486cc.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/29/pc/quest_logo.tga.ckd/dbcd6b999232ab1e0abf5e21920472f0.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/29/pc/quest_logo_shaded.tga.ckd/13f2bd9d8f3179633b563787d623185d.ckd"
},
"id": "29",
"locked": 0,
"playlist": ["FindYourMove", "MrSaxobeat", "WakeMeUpALT"],
"title": "Watermelon"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/28/quest_logo.png/24d1ec60e83494e05969e83ed7d4e74d.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/28/pc/quest_cover.tga.ckd/9b879d2b3207d89c32cc0fc0baaf3baf.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/28/pc/quest_logo.tga.ckd/7d11df956cb40aae9f30666a640aed95.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/28/pc/quest_logo_shaded.tga.ckd/95a627e06ae3e962f713367014815524.ckd"
},
"id": "28",
"locked": 0,
"playlist": ["BreakFreeDLC", "KaboomPow", "HowDeep"],
"title": "Comics"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/27/quest_logo.png/bf3cec27e8de577f657208cfd51d932e.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/27/pc/quest_cover.tga.ckd/7091424e7cbb1da6b736bb7ffea9ff34.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/27/pc/quest_logo.tga.ckd/82b818785da971cbba0d262da0cd1a73.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/27/pc/quest_logo_shaded.tga.ckd/ce1e9c6e49a146ff5222082d112e6b24.ckd"
},
"id": "27",
"locked": 0,
"playlist": ["AintMy", "Aquarius", "MrSaxobeat"],
"title": "Surfboard"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/26/quest_logo.png/df5720ad8387c4852d848af60994820b.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/26/pc/quest_cover.tga.ckd/a11a110c3d6e00324bfc1dbd90828b7f.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/26/pc/quest_logo.tga.ckd/a7e54eed42f69369a15750b470413582.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/26/pc/quest_logo_shaded.tga.ckd/0c5c79972355cd0a97855132016f5125.ckd"
},
"id": "26",
"locked": 0,
"playlist": ["DontLet", "RockNRollDLC", "TurnUpTheLoveALT"],
"title": "Origami"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/quest_logo.png/816427293e03aea07ae754fb359e76df.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_cover.tga.ckd/b514e9fabbc39152d2ee9362437a1fb2.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_logo.tga.ckd/9c6630baf9b2ab30e8fd75b0699f2cc8.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/25/pc/quest_logo_shaded.tga.ckd/aa100767755dfc65ce74708dc09b94c7.ckd"
},
"id": "25",
"locked": 0,
"playlist": ["HandClap", "JailHouse", "AmericanGirlDLC"],
"title": "Cactus"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/24/quest_logo.png/f9bf9b9dea0a07aead88872148ee7e9d.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/24/pc/quest_cover.tga.ckd/c64c4a33421a5d48e6715f38dfe623f7.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/24/pc/quest_logo.tga.ckd/ed7d9fb1d2b327069f61d5505d22c2d6.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/24/pc/quest_logo_shaded.tga.ckd/d32ef16e1b5c06c89cfa4b0db38b8d16.ckd"
},
"id": "24",
"locked": 0,
"playlist": ["MeToo", "LoveIsAll", "SomethinStupid"],
"title": "Kiss"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/23/quest_logo.png/7628092640bc7f0e1461e6dcf807d2fa.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/23/pc/quest_cover.tga.ckd/c03b910b00cb2d61a21a83a2bf7ede47.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/23/pc/quest_logo.tga.ckd/1100664f144f0b5024091e4d29977b95.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/23/pc/quest_logo_shaded.tga.ckd/440d9fbb0feef0f19c1662f886586172.ckd"
},
"id": "23",
"locked": 0,
"playlist": ["DontWorryMadcon", "Gigolo", "GotMeDancing"],
"title": "Dandy"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/21/quest_logo.png/53e8b57342a6b5ed488714feb9accd28.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/21/pc/quest_cover.tga.ckd/caf1e9f1c011e5740f03dac55f956799.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/21/pc/quest_logo.tga.ckd/611dfe4496f37be09ff25783fbe88749.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/21/pc/quest_logo_shaded.tga.ckd/bf9db0ef763fc0375abfa942c3636113.ckd"
},
"id": "21",
"locked": 0,
"playlist": ["TheGreatest", "CaliforniaGurls", "WantUBack"],
"title": "Unicorn"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/20/quest_logo.png/cae9fe5093b162228e249d0ac951f923.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/20/pc/quest_cover.tga.ckd/b930b1cf962639524ce2a7871630c676.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/20/pc/quest_logo.tga.ckd/7faa506e28513e297720559ec2380fe9.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/20/pc/quest_logo_shaded.tga.ckd/afd285b2a524a077ad439f06708ec88b.ckd"
},
"id": "20",
"locked": 0,
"playlist": ["TimeWarpQUAT", "MonsterMash", "Youth"],
"title": "Zombi"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/19/quest_logo.png/5e68281231e324dd8c15476e612332a3.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/19/pc/quest_cover.tga.ckd/9ecc4616494ebf59eacab34d22be4d1f.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/19/pc/quest_logo.tga.ckd/9a86fa38b320607040a1d25dbfa743a2.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/19/pc/quest_logo_shaded.tga.ckd/58b4949cfb2782fec097c008ad925326.ckd"
},
"id": "19",
"locked": 0,
"playlist": ["Summer", "KetchupSong", "TheWorldDLC"],
"title": "Summer"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/18/quest_logo.png/b1986839a0d5c6a55de4621194b8686c.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/18/pc/quest_cover.tga.ckd/b77701a7d8e3637b22a206cf6f77d738.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/18/pc/quest_logo.tga.ckd/87600b39ff5f8aad2c4afac0ceb417cb.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/18/pc/quest_logo_shaded.tga.ckd/2bc36ac5414da2f024f793eb466aeffa.ckd"
},
"id": "18",
"locked": 0,
"playlist": ["Birthday", "Lollipop", "OhNo"],
"title": "Lollipop"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/17/quest_logo.png/d2b910447666d0f7ad02996c5b1a927a.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/17/pc/quest_cover.tga.ckd/dcb3d330a657f4dda87cc1a9bf3a438f.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/17/pc/quest_logo.tga.ckd/8de883906eeef3163662aba2d4c621fc.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/17/pc/quest_logo_shaded.tga.ckd/97a218cad6ecf28e1b5c98b21e3e9191.ckd"
},
"id": "17",
"locked": 0,
"playlist": ["Maneater", "HoldMyHand", "BeautyAndABeatDLC"],
"title": "Grimoire"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/16/quest_logo.png/c36e933fa8144f76be1f5ebbbebbf698.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/16/pc/quest_cover.tga.ckd/fbc1ab6e28738917420548852154e336.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/16/pc/quest_logo.tga.ckd/95cfb9df65b01ded7438396879fe5457.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/16/pc/quest_logo_shaded.tga.ckd/34eb7a055d4a61d4bfe1e392b40a9f96.ckd"
},
"id": "16",
"locked": 0,
"playlist": ["Domino", "Luftballons", "LoveYouLike"],
"title": "Lily of the Valley"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/15/quest_logo.png/635664f2aa6021ce9df498bc0b7b9406.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/15/pc/quest_cover.tga.ckd/489ec14fed3e6e705d766617cca6c7c3.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/15/pc/quest_logo.tga.ckd/fc600396b9a8d67475fb8d9146e076c7.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/15/pc/quest_logo_shaded.tga.ckd/47d40401a61b3562e402fc3e1db2e702.ckd"
},
"id": "15",
"locked": 0,
"playlist": ["Balance", "AmIWrong", "Gentleman"],
"title": "Cupcake"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/14/quest_logo.png/c0a65c3ee3f1deed33ea802cf6258573.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/14/pc/quest_cover.tga.ckd/0cc249321525cc309424af91273e8d95.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/14/pc/quest_logo.tga.ckd/851972c6213a1d0afd95b0e9349edc4a.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/14/pc/quest_logo_shaded.tga.ckd/eae358efcd2fa9b63e40fdd57c789689.ckd"
},
"id": "14",
"locked": 0,
"playlist": ["BlurredLines", "DontYouWorryDLC", "DynamiteQUAT"],
"title": "Mushroom"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/13/quest_logo.png/74f502356412b40a623d7b95660ae76f.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/13/pc/quest_cover.tga.ckd/8149d51dca9a7b9a321547e8100de201.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/13/pc/quest_logo.tga.ckd/aaf7d376b312436abaf8d762e793ca6c.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/13/pc/quest_logo_shaded.tga.ckd/fbeb1f5454ef05ad9d0dc5038cf8de0c.ckd"
},
"id": "13",
"locked": 0,
"playlist": ["BreakFreeDLC", "PartyRock", "IndiaWaale"],
"title": "Special Easter"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/12/quest_logo.png/5311d0135ede4c0f8347e423047b9778.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/12/pc/quest_cover.tga.ckd/db1a9316ef932e95729b707fa0deddaf.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/12/pc/quest_logo.tga.ckd/de582030f36091eabc583d8af3c4c41f.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/12/pc/quest_logo_shaded.tga.ckd/7baef08ecbf787edd8fbe3eceecf38d7.ckd"
},
"id": "12",
"locked": 0,
"playlist": ["SexyAndIKnowItDLC", "TasteTheFeeling", "Wild"],
"title": "Lucky"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/11/quest_logo.png/abbefb0ab56600e7917e3ba522d2c59b.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/11/jd2016-pc-all/quest_cover.tga.ckd/c567b0c89d8ae453e281dadc8e6308aa.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/11/jd2016-pc-all/quest_logo.tga.ckd/57be10a1e786909f8a7127976ae20ac8.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/11/jd2016-pc-all/quest_logo_shaded.tga.ckd/a2f662a8933e61706dcc08c49fd3851a.ckd"
},
"id": "11",
"locked": 0,
"playlist": ["BoomClapDLC", "YouReTheFirst", "FindYou"],
"title": "Special Valentine"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/quest_logo.png/02234d2f68340f5803c995be4369c7d0.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_cover.tga.ckd/e9ad251548b89569b26d874e35b4995e.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_logo.tga.ckd/0ba02470475bdfb34868398bfcd637a4.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/9/jd2016-pc-all/quest_logo_shaded.tga.ckd/dd695d93c4f213aacbe94b0ee60d6c3c.ckd"
},
"id": "9",
"locked": 0,
"playlist": ["LetItGo", "Xmas", "Rasputin"],
"title": "Special New Year"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/8/quest_logo.png/7cffa3bfde67292fc6db4b6d71135216.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/8/jd2016-pc-all/quest_cover.tga.ckd/53f073649fa623de7a2ce9c2068fee8e.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/8/jd2016-pc-all/quest_logo.tga.ckd/83edfd18c0170287bf4f53ca021632a8.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/8/jd2016-pc-all/quest_logo_shaded.tga.ckd/77c9195cbc07a065cf2bb4f651eed324.ckd"
},
"id": "8",
"locked": 0,
"playlist": ["MovesLikeDLC", "ShutUp", "TurnUpTheLove"],
"title": "Royal Key"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/7/quest_logo.png/10e2e3fa08edae8efebd021f06350cdf.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/7/jd2016-pc-all/quest_cover.tga.ckd/24677a442f399f91b3f940a87b15b247.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/7/jd2016-pc-all/quest_logo.tga.ckd/898de48f6d617d1f416735e0c44e2b70.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/7/jd2016-pc-all/quest_logo_shaded.tga.ckd/533c9c7f5bfc0df7198dd084275d2e94.ckd"
},
"id": "7",
"locked": 0,
"playlist": ["Mad", "HeyYa", "BetterWhen"],
"title": "Castle"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/6/quest_logo.png/6751c7a26488a99c3fa1a3f68744e658.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/6/jd2016-pc-all/quest_cover.tga.ckd/f1a42d8cd25b5ffb9246d19e1bb9c2c9.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/6/jd2016-pc-all/quest_logo.tga.ckd/f6a9aefdc0ea779f745d717c3ac2dc5f.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/6/jd2016-pc-all/quest_logo_shaded.tga.ckd/6e21cbba14f40d5294bfd700818a2a9e.ckd"
},
"id": "6",
"locked": 0,
"playlist": ["GoodFeeling", "IDidItAgainQUAT", "BuiltForThis"],
"title": "Royal"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/5/quest_logo.png/809c25c0e6f365305c15cd47c9a6bb6b.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/5/jd2016-pc-all/quest_cover.tga.ckd/b0a7fbe83595de3ccd1e3b582f18bb51.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/5/jd2016-pc-all/quest_logo.tga.ckd/4a5431acf99c575761caf4f298ebc010.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/5/jd2016-pc-all/quest_logo_shaded.tga.ckd/081b5061adc87f66e2b01381ad7cceba.ckd"
},
"id": "5",
"locked": 0,
"playlist": ["HalloweenQUAT", "IWillSurvive", "Ghostbusters"],
"title": "Special Halloween"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/4/quest_logo.png/fb7b37c10b5527a8b202a94575725295.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/4/jd2016-pc-all/quest_cover.tga.ckd/c7f1e3ffa46db464491b14735803eb13.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/4/jd2016-pc-all/quest_logo.tga.ckd/a90165516797cfbe16b6d258ba2c14ba.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/4/jd2016-pc-all/quest_logo_shaded.tga.ckd/0d461a70699fe07db316c47e0fe7156d.ckd"
},
"id": "4",
"locked": 0,
"playlist": ["Happy", "Cmon", "PoundTheAlarm"],
"title": "Ring"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/3/quest_logo.png/4ddd43c50a3fc4a625e75712541e304d.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/3/jd2016-pc-all/quest_cover.tga.ckd/4f50e3e612b389ecfd6a86ddd94c89b1.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/3/jd2016-pc-all/quest_logo.tga.ckd/37a776c63bd96a87d21fd3bbb4b2af68.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/3/jd2016-pc-all/quest_logo_shaded.tga.ckd/0d89016437bdfca9e0082a3a89acd889.ckd"
},
"id": "3",
"locked": 0,
"playlist": ["JustDance", "Americano", "ThatPower"],
"title": "Scepter"
}, {
"__class": "OnlineQuest",
"assetUrls": {
"phoneImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/2/quest_logo.png/451367e761e147544cbbd7a7f25e777f.png",
"coverImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/2/jd2016-pc-all/quest_cover.tga.ckd/658bb292c680d3b4aaf552e070442de4.ckd",
"logoImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/2/jd2016-pc-all/quest_logo.tga.ckd/dbc4f4818f1055c566307367784fcb6e.ckd",
"logoShadedImageURL": "https://jd-s3.bc5f39.workers.dev/public/quests/2/jd2016-pc-all/quest_logo_shaded.tga.ckd/0d89016437bdfca9e0082a3a89acd889.ckd"
},
"id": "2",
"locked": 0,
"playlist": ["GangnamStyleDLC", "Cheerleader", "BadRomance"],
"title": "Throne"
}
]
}

405
database/db/quests.json Normal file
View File

@@ -0,0 +1,405 @@
{
"__class":"JD_CarouselContent",
"categories":[
{
"__class":"Category",
"title":"Local Dance Quests",
"act":"quest_carousel",
"isc":"quest_row",
"items":[
{
"__class":"Item",
"offlineRequest":{
"__class":"JD_CarouselQuestRequest",
"offline":true,
"uuid":"c5a89b10-6130-45f7-b259-b50202e375a0",
"actionListName":"questUnlocked"
}
}
]
},
{
"__class":"Category",
"title":"Just Dance Unlimited",
"act":"quest_carousel",
"isc":"quest_row_unlimited",
"items":[
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"31"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"30"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"29"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"28"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"27"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"26"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"25"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"24"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"23"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"21"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"20"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"19"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"18"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"17"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"16"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"15"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"14"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"13"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"12"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"11"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"9"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"8"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"7"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"6"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"5"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"4"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"3"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"2"
}
],
"actionList":"questUnlocked"
},
{
"__class":"Item",
"isc":"quest_item",
"act":"ui_component_base",
"components":[
{
"__class":"JD_CarouselContentComponent_Quest",
"questId":"1"
}
],
"actionList":"questUnlocked"
}
]
}
],
"actionLists":{
"questUnlocked":{
"__class":"ActionList",
"actions":[
{
"__class":"Action",
"title":"Dance",
"type":"start-quest"
}
],
"itemType":"quest"
},
"questLocked":{
"__class":"ActionList",
"actions":[
{
"__class":"Action",
"title":"Locked",
"type":"display-upsell-quest"
}
],
"itemType":"quest"
}
},
"songItemLists":{
}
}

View File

@@ -0,0 +1,55 @@
{
"BoysALiar": {
"artist": "PinkPantheress & Ice Spice",
"assets": {
"map_bkgImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/map_bkgImageUrl.png",
"banner_bkgImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/banner_bkgImageUrl.png",
"coach1ImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/coach1ImageUrl.png",
"phoneCoach1ImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/phoneCoach1ImageUrl.png",
"coach2ImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/coach2ImageUrl.png",
"phoneCoach2ImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/phoneCoach2ImageUrl.png",
"coverImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/coverImageUrl.png",
"cover_smallImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/cover_smallImageUrl.png",
"expandCoachImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/expandCoachImageUrl.png",
"phoneCoverImageUrl": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/phoneCoverImageUrl.png"
},
"audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21654,43308,64962,86617,108271,129925,151579,173233,194887,216541,238195,259850,281504,303158,324812,346466,368120,389774,411429,433083,454737,476391,498045,519699,541353,563008,584662,606316,627970,649624,671278,692932,714586,736241,757895,779549,801203,822857,844511,866165,887820,909474,931128,952782,974436,996090,1017744,1039398,1061053,1082707,1104361,1126015,1147669,1169323,1190977,1212632,1234286,1255940,1277594,1299248,1320902,1342556,1364211,1385865,1407519],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":60,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":65,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/BoysALiar/BoysALiar_AudioPreview.ogg\"}",
"coachCount": 2,
"credits": "All Credits Goes to PinkPantheress & Ice Spice. Placeholder Credits, Generated By Automodder",
"difficulty": 2,
"doubleScoringType": -1,
"jdmAttributes": {},
"lyricsColor": "FFE055FF",
"lyricsType": 0,
"mainCoach": -1,
"mapLength": 130.376,
"mapName": "BoysALiar",
"mapPreviewMpd": "<?xml version=\"1.0\"?>\r\n<MPD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:mpeg:DASH:schema:MPD:2011\" xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\" type=\"static\" mediaPresentationDuration=\"PT30S\" minBufferTime=\"PT1S\" profiles=\"urn:webm:dash:profile:webm-on-demand:2012\">\r\n\t<Period id=\"0\" start=\"PT0S\" duration=\"PT30S\">\r\n\t\t<AdaptationSet id=\"0\" mimeType=\"video/webm\" codecs=\"vp9\" lang=\"eng\" maxWidth=\"720\" maxHeight=\"370\" subsegmentAlignment=\"true\" subsegmentStartsWithSAP=\"1\" bitstreamSwitching=\"true\">\r\n\t\t\t<Representation id=\"0\" bandwidth=\"649637\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/BoysALiar/BoysALiar_MapPreviewNoSoundCrop_LOW.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"639-1129\">\r\n\t\t\t\t\t<Initialization range=\"0-639\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"1\" bandwidth=\"1494556\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/BoysALiar/BoysALiar_MapPreviewNoSoundCrop_MID.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"639-1129\">\r\n\t\t\t\t\t<Initialization range=\"0-639\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"2\" bandwidth=\"2985169\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/BoysALiar/BoysALiar_MapPreviewNoSoundCrop_HIGH.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"639-1129\">\r\n\t\t\t\t\t<Initialization range=\"0-639\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t\t<Representation id=\"3\" bandwidth=\"5932441\">\r\n\t\t\t\t<BaseURL>jmcs://jd-contents/BoysALiar/BoysALiar_MapPreviewNoSoundCrop_ULTRA.vp9.webm</BaseURL>\r\n\t\t\t\t<SegmentBase indexRange=\"639-1136\">\r\n\t\t\t\t\t<Initialization range=\"0-639\" />\r\n\t\t\t\t</SegmentBase>\r\n\t\t\t</Representation>\r\n\t\t</AdaptationSet>\r\n\t</Period>\r\n</MPD>\r\n",
"mode": 6,
"originalJDVersion": 2024,
"packages": {
"mapContent": "BoysALiar_mapContent"
},
"parentMapName": "BoysALiar",
"skuIds": {},
"songColors": {
"songColor_1A": "3C147DFF",
"songColor_1B": "180832FF",
"songColor_2A": "E078D1FF",
"songColor_2B": "593053FF"
},
"status": 3,
"sweatDifficulty": 1,
"tags": [
"Main",
"freeSong",
"subscribedSong"
],
"title": "Boy's A Liar pt. 2",
"urls": {
"jmcs://jd-contents/BoysALiar/BoysALiar_AudioPreview.ogg": "https://cdn.bc5f39.workers.dev/maps/public/assets/BoysALiar/BoysALiar_AudioPreview.ogg"
},
"customTypeName": "",
"serverChangelist": 696566
}
}

View File

@@ -0,0 +1,14 @@
{
"validity": true,
"errorCode": "",
"timeLeft": 110320241505,
"expiryTimeStamp": "110320241505",
"platformId": "dffcb770-82e7-4b5d-b3e2-d33172abecea",
"trialActivated": false,
"consoleHasTrial": true,
"trialTimeLeft": 110320241505,
"trialDuration": "110320241505",
"trialIsActive": false,
"needEshopLink": false,
"autoRefresh": true
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,9 @@
{
"Despacito": {
"jmcs://jd-contents/Despacito/Despacito_ULTRA.webm": "https://mirror.bc5f39.workers.dev/https://cdn.glitch.com/c6807563-9703-4452-bd7b-b06e822ec772/Despacito_ULTRA.webm",
"jmcs://jd-contents/Despacito/Despacito_MID.webm": "https://mirror.bc5f39.workers.dev/https://cdn.glitch.com/c6807563-9703-4452-bd7b-b06e822ec772/Despacito_MID.webm",
"jmcs://jd-contents/Despacito/Despacito_LOW.webm": "https://mirror.bc5f39.workers.dev/https://cdn.glitch.com/c6807563-9703-4452-bd7b-b06e822ec772/Despacito_LOW.webm",
"jmcs://jd-contents/Despacito/Despacito_HIGH.webm": "https://mirror.bc5f39.workers.dev/https://cdn.glitch.com/c6807563-9703-4452-bd7b-b06e822ec772/Despacito_HIGH.webm",
"jmcs://jd-contents/Despacito/Despacito.ogg": "https://mirror.bc5f39.workers.dev/https://cdn.glitch.com/c6807563-9703-4452-bd7b-b06e822ec772/Despacito.ogg"
}
}

View File

@@ -0,0 +1,12 @@
{
"__class" : "ContentAuthorizationEntry",
"duration" : 300,
"changelist" : 466919,
"urls" : {
"jmcs://jd-contents/{Placeholder}/{Placeholder}_ULTRA.webm" : "https://cdn.bc5f39.workers.dev/maps/nohud/{Placeholder}/{Placeholder}_ULTRA.webm",
"jmcs://jd-contents/{Placeholder}/{Placeholder}_MID.webm" : "https://cdn.bc5f39.workers.dev/maps/nohud/{Placeholder}/{Placeholder}_MID.webm",
"jmcs://jd-contents/{Placeholder}/{Placeholder}_LOW.webm" : "https://cdn.bc5f39.workers.dev/maps/nohud/{Placeholder}/{Placeholder}_LOW.webm",
"jmcs://jd-contents/{Placeholder}/{Placeholder}_HIGH.webm" : "https://cdn.bc5f39.workers.dev/maps/nohud/{Placeholder}/{Placeholder}_HIGH.webm",
"jmcs://jd-contents/{Placeholder}/{Placeholder}.ogg" : "https://cdn.bc5f39.workers.dev/maps/nohud/{Placeholder}/{Placeholder}.ogg"
}
}

12
database/packages.json Normal file
View File

@@ -0,0 +1,12 @@
{
"__class": "PackageIds",
"packageIds": [
"carnival",
"christmas",
"easter",
"halloween",
"valentine",
"abba_2017",
"kids3"
]
}

40
database/skumerge.js Normal file
View File

@@ -0,0 +1,40 @@
const fs = require('fs');
function mergeSKUs(sku1Data, sku2Data, sku3Data) {
// Parsing SKU data from JSON
const sku1 = JSON.parse(sku1Data);
const sku2 = JSON.parse(sku2Data);
const sku3 = JSON.parse(sku3Data);
// Creating merged SKU object
const mergedSKU = { ...sku1 };
// Merging sku2 into mergedSKU, if keys don't already exist
Object.keys(sku2).forEach(key => {
if (!mergedSKU[key]) {
mergedSKU[key] = sku2[key];
}
});
// Merging sku3 into mergedSKU, if keys don't already exist in sku1 or sku2
Object.keys(sku3).forEach(key => {
if (!mergedSKU[key] && !sku2[key]) {
mergedSKU[key] = sku3[key];
}
});
return mergedSKU;
}
// Reading SKU data from input files
const sku1Data = fs.readFileSync('sku1.json', 'utf8');
const sku2Data = fs.readFileSync('sku2.json', 'utf8');
const sku3Data = fs.readFileSync('sku3.json', 'utf8');
// Merging SKUs
const mergedSKU = mergeSKUs(sku1Data, sku2Data, sku3Data);
// Writing merged SKU back to sku1.json
fs.writeFileSync('sku1.json', JSON.stringify(mergedSKU, null, 2));
console.log('Merged SKUs into sku1.json successfully.');

View File

1
database/tmp/logs.json Normal file
View File

@@ -0,0 +1 @@
[{"method":"LOG","url":"[PARTY] listening on port 8000","timestamp":"2023-05-01T14:47:04.961Z"},{"method":"LOG","url":"[PARTY] Open panel to see more log","timestamp":"2023-05-01T14:47:04.963Z"}]

View File

@@ -0,0 +1,309 @@
{
"configuration": {
"platformConfig": {
"applicationId": "341789d4-b41f-4f40-ac79-e2bc4c94ead4",
"spaceId": "f1ae5b84-db7c-481e-9867-861cf1852dc8",
"platform": "PC",
"uplayGameCode": "",
"environment": "prod"
},
"resources": [],
"legacyUrls": [],
"sandboxes": [],
"uplayServices": [{
"name": "AvatarsUrl",
"url": "http://validation.ubi.com/webservices/uplay/{culture}/avatar/public/{userId}/default/{size}.png"
}, {
"name": "DefaultAvatar146Url",
"url": "http://static2.cdn.ubi.com/gamesites/uplay/v20/api/Avatars/thumbs/default.jpg"
}, {
"name": "DefaultAvatar256Url",
"url": "http://static2.cdn.ubi.com/gamesites/uplay/201211261811/img/avatar/hero_256.png"
}, {
"name": "DefaultAvatarTallUrl",
"url": "http://static2.cdn.ubi.com/gamesites/uplay/201211261811/img/avatar/no_tall.png"
}, {
"name": "MovieBaseUrl",
"url": "http://static8.ubi.com/private/{env}/u/Uplay/"
}, {
"name": "UplayDynamicPanelUrl",
"url": "http://uat-uplay.ubi.com/UplayServices/WinServices/GameClientServices.svc/REST/JSON/ImagePanelRedirection/{spaceId}/{profileId}/{culture}/MyProfile.png?language={language}"
}],
"sdkConfig": {
"timeoutSec": 30,
"keepAliveTimeoutMin": 10,
"httpSafetySleepTime": 0,
"popEventsTimeoutMsec": 5000,
"lspPort": 1200,
"httpRetry": {
"maxCount": 3,
"initialDelayMsec": 5000,
"incrementFactorMsec": 5000,
"randomDelayMsec": 5000
},
"websocketRetry": {
"maxCount": 3,
"initialDelayMsec": 5000,
"incrementFactorMsec": 5000,
"randomDelayMsec": 5000
},
"remoteLogs": {
"ubiservicesLogLevel": "None",
"prodLogLevel": "None"
},
"connectionPingIntervalSec": 3
},
"featuresSwitches": [{
"name": "ApplicationUsed",
"value": true
}, {
"name": "Connection",
"value": true
}, {
"name": "ContentFiltering",
"value": true
}, {
"name": "EntitiesProfile",
"value": true
}, {
"name": "EntitiesSpace",
"value": true
}, {
"name": "Event",
"value": true
}, {
"name": "Everything",
"value": true
}, {
"name": "ExtendSession",
"value": true
}, {
"name": "FixAccountIssues",
"value": true
}, {
"name": "FriendsLookup",
"value": true
}, {
"name": "FriendsRequest",
"value": true
}, {
"name": "Messaging",
"value": true
}, {
"name": "News",
"value": true
}, {
"name": "Populations",
"value": true
}, {
"name": "PrimaryStore",
"value": true
}, {
"name": "Profiles",
"value": true
}, {
"name": "ProfilesExternal",
"value": true
}, {
"name": "SecondaryStore",
"value": true
}, {
"name": "SendPopulationsInPlayerStart",
"value": false
}, {
"name": "SendPrimaryStoreEvent",
"value": true
}, {
"name": "Socialfeed",
"value": true
}, {
"name": "UplayFriends",
"value": true
}, {
"name": "UplayLaunch",
"value": true
}, {
"name": "UplayWin",
"value": true
}, {
"name": "UplayWinActions",
"value": true
}, {
"name": "UplayWinRewards",
"value": true
}, {
"name": "Users",
"value": true
}, {
"name": "UsersManagement",
"value": true
}, {
"name": "WebSocketClient",
"value": true
}],
"punch": {
"detectUrl1": "lb-uat-detect01.ubisoft.com:11000",
"detectUrl2": "lb-uat-detect02.ubisoft.com:11000",
"traversalUrl": "lb-uat-traversal01.ubisoft.com:11005"
},
"events": {
"queues": [{
"name": "A",
"sendPeriodMilliseconds": 30000
}, {
"name": "B",
"sendPeriodMilliseconds": 30000
}, {
"name": "C",
"sendPeriodMilliseconds": 30000
}],
"tags": [],
"comment": null
},
"gatewayResources": [{
"name": "all_connections",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/connections",
"version": 1
}, {
"name": "all_profiles/applications",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/applications",
"version": 2
}, {
"name": "all_profiles/entities",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/entities",
"version": 2
}, {
"name": "all_spaces/entities",
"url": "http://msr-{env}public-ubiservices.ubi.com/{version}/spaces/entities",
"version": 2
}, {
"name": "all_spaces/items",
"url": "https://{env}public-ubiservices.ubi.com/{version}/spaces/items",
"version": 1
}, {
"name": "all_spaces/offers",
"url": "https://{env}public-ubiservices.ubi.com/{version}/spaces/offers",
"version": 1
}, {
"name": "all_walls",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/wall",
"version": 1
}, {
"name": "certificates",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/certificates",
"version": 1
}, {
"name": "configs/events",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/configs/events",
"version": 2
}, {
"name": "connections",
"url": "https://useast1-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/connections",
"version": 1
}, {
"name": "events",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/events",
"version": 2
}, {
"name": "friends",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/me/friends",
"version": 2
}, {
"name": "news",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/me/news",
"version": 1
}, {
"name": "populations",
"url": "https://{env}public-ubiservices.ubi.com/{version}/profiles/me/populations",
"version": 1
}, {
"name": "profiles",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles",
"version": 2
}, {
"name": "profiles/actions",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/actions",
"version": 1
}, {
"name": "profiles/applications",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/me/applications",
"version": 2
}, {
"name": "profiles/entities",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/entities",
"version": 2
}, {
"name": "profiles/inventory",
"url": "https://{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/inventory",
"version": 1
}, {
"name": "profiles/notifications",
"url": "https://useast1-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/notifications",
"version": 2
}, {
"name": "profiles/rewards",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/rewards",
"version": 1
}, {
"name": "remote_logs",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/me/remotelog",
"version": 1
}, {
"name": "sandboxes",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/sandboxes",
"version": 0
}, {
"name": "spaces/actions",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/actions",
"version": 1
}, {
"name": "spaces/entities",
"url": "http://jdp.justdancenext.xyz/{version}/spaces/{spaceId}/entities",
"version": 2
}, {
"name": "spaces/items",
"url": "https://{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/items",
"version": 1
}, {
"name": "spaces/news",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/spaces/news",
"version": 1
}, {
"name": "spaces/offers",
"url": "https://{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/offers",
"version": 1
}, {
"name": "spaces/rewards",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/spaces/{spaceId}/rewards",
"version": 1
}, {
"name": "wall",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/{profileId}/wall",
"version": 1
}, {
"name": "wall/comments",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/wall/{postId}/comments",
"version": 1
}, {
"name": "wall/likes",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/wall/{postId}/likes",
"version": 1
}, {
"name": "wall/post",
"url": "https://msr-{env}public-ubiservices.ubi.com/{version}/profiles/wall/{postId}",
"version": 1
}, {
"name": "websocket/notifications",
"url": "wss://{env}public-ws-ubiservices.ubi.com/{version}/websocket",
"version": 2
}, {
"name": "websocket/server",
"url": "wss://{env}public-ws-ubiservices.ubi.com",
"version": 1
}],
"custom": {
"featuresSwitches": [],
"resources": []
}
}
}

121
database/v1/parameters.json Normal file
View File

@@ -0,0 +1,121 @@
{
"parameters": {
"us-staging": {
"fields": {
"spaceId": "041c03fa-1735-4ea7-b5fc-c16546d092ca"
},
"relatedPopulation": null
},
"us-sdkClientClub": {
"fields": {
"ps4ClubWebsite": "https://static8.cdn.ubi.com/u/sites/uplay/index.html",
"xoneLaunchPath": "Ms-xbl-55C5EE27://default?url=/games/{deepLink}&context={context}&titleid={gameTitleId}&env={clubEnvName}&genomeid={applicationId}&actioncompleted={actionCompletedList}&debug={debug}&spaceId={spaceId}&applicationId={applicationId}",
"dynamicPanelUrl": "https://{env}public-ubiservices.ubi.com/v1/profiles/{profileId}/club/dynamicPanel/MyProfile.png?spaceId={spaceId}&noRedirect=true",
"psApiClubWebsite": "https://static8.cdn.ubi.com/u/sites/uplay/index.html",
"ps4PsnoLaunchPath": "psno://localhost/?response_type=code&client_id=171ca84a-371e-412b-a807-6531f3f1e454&scope=psn%3As2s&redirect_uri={ps4ClubWebsiteUrlEncoded}&state={ps4ClubWebsiteArgumentsPsnoEncoded}",
"psApiPsnoLaunchPath": "psno://localhost/?response_type=code&client_id=171ca84a-371e-412b-a807-6531f3f1e454&scope=psn%3As2s&redirect_uri={psApiClubWebsiteUrlEncoded}&state={psApiClubWebsiteArgumentsPsnoEncoded}",
"stadiaClubWebsiteUrl": "https://static8.cdn.ubi.com/u/sites/UbisoftClub/Stadia/index.html?url=/games/{deepLink}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&env={env}&displayMode={displayMode}&locale={locale}&actioncompleted={actionCompletedList}&jotunVersion={jotunVersion}&jotunBinaryVersion={jotunBinaryVersion}&ticket={ticket}",
"switchClubWebsiteUrl": "https://static8.cdn.ubi.com/u/sites/UbisoftClub/NintendoSwitch/index.html?url=/games/{deepLink}&ussdkversion={usSdkVersionName}&env={clubEnvName}&actioncompleted={actionCompletedList}&forceLang={forceLang}&profileId={profileId}&ticket={ticket}&context={context}&debug={debug}&spaceId={spaceId}&applicationId={applicationId}",
"ps4ClubWebsiteArguments": "url=/games/{deepLink}&spaceId={spaceId}&applicationId={applicationId}&context={context}&env={clubEnvName}&genomeid={applicationId}&actioncompleted={actionCompletedList}&ussdkversion={usSdkVersionName}&debug={debug}{geometry}&ticket={ticket}&profileid={profileId}",
"psApiClubWebsiteArguments": "url=/games/{deepLink}&spaceId={spaceId}&applicationId={applicationId}&context={context}&env={clubEnvName}&genomeid={applicationId}&actioncompleted={actionCompletedList}&ussdkversion={usSdkVersionName}&debug={debug}{geometry}&ticket={ticket}&profileId={profileId}&psEnterButton={psEnterButton}"
},
"relatedPopulation": null
},
"us-sdkClientGlobalAppConfig": {
"fields": {
"mobileDeviceEmailsDaysTTL": 90
},
"relatedPopulation": null
},
"us-sdkClientHttpConfig": {
"fields": {
"maxConcurrentUsRequests": null
},
"relatedPopulation": null
},
"us-sdkClientUplay": {
"fields": {
"ps4UplayUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ubiTicket={ubiTicket}&firstPartyToken={firstPartyToken}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}&psEnterButton={psEnterButton}&platformVariant={platformVariant}",
"ps5UplayUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ubiTicket={ubiTicket}&firstPartyToken={firstPartyToken}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}&platformVariant={platformVariant}",
"psnUplayClientId": "171ca84a-371e-412b-a807-6531f3f1e454",
"iosUplayWebLaunchUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ticket={ticket}&env={environment}&playerSessionId={playerSessionId}&deviceType=phone&isStandalone=false",
"xoneUplayUWPLaunchUrl": "Ms-xbl-55C5EE27://default?isUbisoftConnect=true&baseURL={env}overlay.cdn.ubisoft.com/default/&microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}",
"xoneUplayWebLaunchUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ubiTicket={ubiTicket}&firstPartyToken={firstPartyToken}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}&platformVariant={platformVariant}",
"androidUplayWebLaunchUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ticket={ticket}&env={environment}&playerSessionId={playerSessionId}&deviceType=phone&isStandalone=false",
"iosUplayWebCompletionUrl": "ubisoftconnectscheme:",
"scarlettUplayUWPLaunchUrl": "Ms-xbl-55C5EE27://default?isUbisoftConnect=true&baseURL={env}overlay.cdn.ubisoft.com/default/&microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}",
"scarlettUplayWebLaunchUrl": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&profileId={profileId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ubiTicket={ubiTicket}&firstPartyToken={firstPartyToken}&env={environment}&deviceType=tv&playerSessionId={playerSessionId}&platformVariant={platformVariant}",
"xoneUplayWebCompletionUrl": "about:blank",
"androidUplayWebCompletionUrl": "ubisoftconnectscheme:",
"iosUplayWebLaunchUrlMicroApp": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ticket={ticket}&env={environment}&playerSessionId={playerSessionId}&deviceType=phone&profileId={profileId}&isStandalone=false",
"scarlettUplayWebCompletionUrl": "about:blank",
"androidUplayWebLaunchUrlMicroApp": "https://{env}overlay.cdn.ubisoft.com/default/?microApp={microApp}&microAppParams={microAppParams}&spaceId={spaceId}&applicationId={applicationId}&platform={platform}&locale={locale}&sdkVersion={sdkVersion}&ticket={ticket}&env={environment}&playerSessionId={playerSessionId}&deviceType=phone&profileId={profileId}&isStandalone=false"
},
"relatedPopulation": null
},
"us-sdkClientUrlsPlaceholders": {
"fields": {
"baseurl_ws": {
"China": "wss://public-ws-ubiservices.ubisoft.cn/",
"Standard": "wss://{env}public-ws-ubiservices.ubi.com",
"China_GAAP": "wss://gaap.ubiservices.ubi.com:16000"
},
"baseurl_aws": {
"China": "https://public-ubiservices.ubisoft.cn",
"Standard": "https://jdp.justdancenext.xyz",
"China_GAAP": "https://gaap.ubiservices.ubi.com:12000"
},
"baseurl_msr": {
"China": "https://public-ubiservices.ubisoft.cn",
"Standard": "https://msr-{env}public-ubiservices.ubi.com",
"China_GAAP": "https://gaap.ubiservices.ubi.com:12000"
}
},
"relatedPopulation": null
},
"us-sdkClientLogin": {
"fields": {
"populationHttpRequestOptimizationEnabled": true,
"populationHttpRequestOptimizationRetryCount": 0,
"populationHttpRequestOptimizationRetryTimeoutIntervalMsec": 5000,
"populationHttpRequestOptimizationRetryTimeoutIncrementMsec": 1000
},
"relatedPopulation": null
},
"us-sdkClientFeaturesSwitches": {
"fields": {
"populationsAutomaticUpdate": true,
"forcePrimarySecondaryStoreSyncOnReturnFromBackground": true
},
"relatedPopulation": null
},
"us-sdkClientChina": {
"fields": {
"websocketHost": "public-ws-ubiservices.ubi.com",
"tLogApplicationId": "",
"tLogApplicationKey": "",
"tLogApplicationName": ""
},
"relatedPopulation": null
},
"us-sdkClientFleet": {
"fields": {
"title": "",
"spaces": "https://jdp.justdancenext.xyz/{version}/spaces/{spaceId}/title/{title}/",
"profiles": "https://jdp.justdancenext.xyz/{version}/profiles/{profileId}/title/{title}/",
"spaces_all": "https://jdp.justdancenext.xyz/{version}/spaces/title/{title}/",
"applications": "https://jdp.justdancenext.xyz/{version}/applications/{applicationId}/title/{title}/",
"profiles_all": "https://jdp.justdancenext.xyz/{version}/profiles/title/{title}/",
"applications_all": "https://jdp.justdancenext.xyz/{version}/applications/title/{title}/"
},
"relatedPopulation": null
},
"us-sdkClientUrls": {
"fields": {
"populations": "{baseurl_aws}/{version}/profiles/me/populations",
"profilesToken": "{baseurl_aws}/{version}/profiles/{profileId}/tokens/{token}"
},
"relatedPopulation": null
}
}
}

View File

@@ -0,0 +1,863 @@
{
"parameters": {
"us-sdkClientSettingsSecondaryStoreSync": {
"fields": {
"maxCount": 10,
"restPeriodMsec": 30000,
"retryMaxDelayMsec": 3600000,
"retryRandomDelayMsec": 5000,
"retryInitialDelayMsec": 5000,
"retryIncrementFactorMsec": 5000,
"subscriptionAutomaticSyncPeriodInHoursGDK": 0
},
"relatedPopulation": null
},
"us-sdkClientNotificationsSpaceIds": {
"fields": {
"FriendsService": "abb909cd-ebaa-4ba5-a4a5-afa75cae8195",
"BlocklistService": "45d58365-547f-4b45-ab5b-53ed14cc79ed",
"PlayerPrivilegesService": "2d2f687d-cf94-4757-9157-b8736284c438"
},
"relatedPopulation": null
},
"us-sdkClientSettingsCacheTTL": {
"fields": {
"defaultSec": 120,
"spacesNewsSec": 900,
"friendsListSec": 1800,
"ssiRulesAllSec": 86400,
"profilesNewsSec": 900,
"profilesActionsSec": 120,
"profilesRewardsSec": 120,
"ssiAttributesAllSec": 86400,
"profilesChallengesSec": 120,
"ssiListsOfAttributesAllSec": 86400,
"challengesDefinitionSeasonSec": 180,
"battlepassSeasonProgressionSec": 60,
"profilesChallengesStatusSeasonSec": 60,
"friendsConfigSec": 1800,
"spacesParametersSec": 120,
"applicationsParametersSec": 120
},
"relatedPopulation": null
},
"us-sdkClientSettingsHttpGame": {
"fields": {
"maxCount": 3,
"retryMaxDelayMsec": 5000,
"retryRandomDelayMsec": 5000,
"retryInitialDelayMsec": 5000,
"timeoutInitialDelayMsec": 30000,
"retryIncrementFactorMsec": 5000,
"timeoutIncrementFactorMsec": 5000
},
"relatedPopulation": null
},
"us-sdkClientMocks": {
"fields": {
"Ugc": "",
"Club": "",
"News": "",
"Stats": "",
"Users": "",
"Events": "",
"Friends": "",
"Persona": "",
"Entities": "",
"Profiles": "",
"Blocklist": "",
"Voicechat": "",
"Battlepass": "",
"Challenges": "",
"Moderation": "",
"Population": "",
"Connections": "",
"GamesPlayed": "",
"Matchmaking": "",
"Applications": "",
"Leaderboards": "",
"Notification": "",
"Localizations": "",
"PlayerReports": "",
"SecondaryStore": "",
"ApplicationUsed": "",
"Recommendations": "",
"EventsDefinitions": "",
"PlayerOnlineStatus": "",
"SecondaryStoreInstanciation": "",
"SecondaryStoreInventoryRules": "",
"Party": "",
"Token": "",
"Groups": "",
"Trades": "",
"Calendar": "",
"Telemetry": "",
"Reputation": "",
"RichPresence": "",
"UsersPolicies": "",
"PlayerActivity": "",
"PlayerConsents": "",
"PlayerPrivileges": "",
"GroupsInvitations": "",
"PlayerPreferences": ""
},
"relatedPopulation": null
},
"us-sdkClientSettingsHttpInternal": {
"fields": {
"maxCount": 3,
"retryMaxDelayMsec": 3600000,
"retryRandomDelayMsec": 5000,
"retryInitialDelayMsec": 5000,
"timeoutInitialDelayMsec": 30000,
"retryIncrementFactorMsec": 5000,
"timeoutIncrementFactorMsec": 5000
},
"relatedPopulation": null
},
"us-sdkClientSettings": {
"fields": {
"popEventsTimeoutMsec": 5000,
"primaryStoreSyncDelayMsec": 250,
"createSessionRestPeriodMSec": 3000,
"createSessionRestRandomMSec": 5000,
"secondaryStoreInventoryRulesMode": "Disabled",
"xboxOneResumeFromSuspendedDelayMsec": 5000,
"xboxOneCloseWebsocketOnSuspendingMode": "All",
"notificationTypesUpdateRandomDelayMsec": 3000,
"waitRemoteLogCompletionOnDeleteSession": false,
"secondaryStoreInventoryRulesRetryDelayMsec": 5000,
"minBackgroundDurationForInventoryInvalidationMsec": 5000,
"createSessionRestPeriodAfterConcurrentConnectDetectedMSec": 60000,
"partyClientXblComplianceMethod": "mpsd",
"enableCrossPlayPreferenceSyncForXbox": false,
"enablePartyClientFirstPartyCompliance": false
},
"relatedPopulation": null
},
"us-sdkClientSettingsWebSocketGame": {
"fields": {
"maxCount": 50,
"retryMaxDelayMsec": 5000,
"retryRandomDelayMsec": 5000,
"retryInitialDelayMsec": 5000,
"timeoutInitialDelayMsec": 30000,
"retryIncrementFactorMsec": 5000,
"connectionPingIntervalSec": 30,
"timeoutIncrementFactorMsec": 5000
},
"relatedPopulation": null
},
"us-sdkClientSettingsWebSocketInternal": {
"fields": {
"maxCount": 50,
"retryMaxDelayMsec": 900000,
"retryRandomDelayMsec": 5000,
"retryInitialDelayMsec": 0,
"timeoutInitialDelayMsec": 30000,
"retryIncrementFactorMsec": 1500,
"connectionPingIntervalSec": 30,
"timeoutIncrementFactorMsec": 5000
},
"relatedPopulation": null
},
"us-sdkClientUrls": {
"fields": {
"news": "{baseurl_aws}/{version}/profiles/me/news",
"tLog": "https://tglog.datamore.qq.com/{appId}/report/",
"users": "{baseurl_aws}/{version}/users",
"events": "{baseurl_aws}/{version}/profiles/{profileId}/events",
"friends": "{baseurl_aws}/{version}/profiles/me/friends",
"policies": "{baseurl_aws}/{version}/policies",
"profiles": "{baseurl_aws}/{version}/profiles",
"sessions": "{baseurl_aws}/{version}/profiles/sessions",
"blocklist": "{baseurl_aws}/{version}/profiles/{profileId}/blocks",
"challenge": "{baseurl_aws}/{version}/spaces/{spaceId}/challenges",
"sandboxes": "{baseurl_aws}/{version}/spaces/{spaceId}/sandboxes",
"moderation": "{baseurl_aws}/{version}/spaces/{spaceId}/moderation/{text}",
"remoteLogs": "{baseurl_aws}/{version}/profiles/me/remotelog",
"spacesNews": "{baseurl_aws}/{version}/spaces/news",
"connections": "{baseurl_aws}/{version}/profiles/{profileId}/connections",
"gamesPlayed": "{baseurl_aws}/{version}/profiles/{profileId}/gamesplayed",
"spacesItems": "{baseurl_aws}/{version}/spaces/{spaceId}/items",
"spacesStats": "{baseurl_aws}/{version}/spaces/{spaceId}/communitystats",
"applications": "{baseurl_aws}/{version}/applications/{applicationId}/configuration",
"localization": "{baseurl_aws}/{version}/spaces/{spaceId}/localizations/strings",
"personaSpace": "{baseurl_aws}/{version}/profiles/persona",
"spacesOffers": "{baseurl_aws}/{version}/spaces/{spaceId}/offers",
"configsEvents": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/events",
"profilesStats": "{baseurl_aws}/{version}/profiles/{profileId}/stats",
"spacesActions": "{baseurl_aws}/{version}/spaces/{spaceId}/actions",
"spacesRewards": "{baseurl_aws}/{version}/spaces/{spaceId}/rewards",
"allConnections": "{baseurl_aws}/{version}/profiles/connections",
"allSpacesItems": "{baseurl_aws}/{version}/spaces/items",
"moderationPOST": "{baseurl_aws}/{version}/spaces/{spaceId}/moderation",
"personaProfile": "{baseurl_aws}/{version}/profiles/{profileId}/persona",
"spacesEntities": "{baseurl_aws}/{version}/spaces/{spaceId}/entities",
"allSpacesOffers": "{baseurl_aws}/{version}/spaces/offers",
"localizationAll": "{baseurl_aws}/{version}/spaces/{spaceId}/localizations/strings/all",
"profilesActions": "{baseurl_aws}/{version}/profiles/{profileId}/club/actions",
"profilesFriends": "{baseurl_aws}/{version}/profiles/{profileId}/friends",
"profilesRewards": "{baseurl_aws}/{version}/profiles/{profileId}/club/rewards",
"recommendations": "{baseurl_aws}/{version}/profiles/{profileId}/recommendations",
"spacesStatsCard": "{baseurl_aws}/{version}/spaces/{spaceId}/communitystatscard",
"websocketServer": "{baseurl_ws}",
"allProfilesStats": "{baseurl_aws}/{version}/profiles/stats",
"blocklistUnblock": "{baseurl_aws}/{version}/profiles/{profileId}/blocks/{blockedProfileId}",
"profilesEntities": "{baseurl_aws}/{version}/profiles/{profileId}/entities",
"profilesExternal": "{baseurl_aws}/{version}/profiles/external",
"profilesMeEvents": "{baseurl_aws}/{version}/profiles/me/events",
"profilesUgcViews": "{baseurl_aws}/{version}/profiles/ugc/{contentId}/views",
"spacesChallenges": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"spacesConfigsUgc": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/ugc",
"spacesParameters": "{baseurl_aws}/{version}/spaces/{spaceId}/parameters",
"allSpacesEntities": "{baseurl_aws}/{version}/spaces/entities",
"eventsDefinitions": "{baseurl_aws}/{version}/spaces/{spaceId}/eventsDefinitions",
"profilesInventory": "{baseurl_aws}/{version}/profiles/{profileId}/inventory",
"profilesStatsCard": "{baseurl_aws}/{version}/profiles/statscard",
"profilesUgcPhotos": "{baseurl_aws}/{version}/profiles/ugc/photos",
"spacesLeaderboard": "{baseurl_aws}/{version}/spaces/{spaceId}/leaderboards",
"blocklistBlockedBy": "{baseurl_aws}/{version}/profiles/{profileId}/blocks/blockedBy",
"profilesChallenges": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"profilesUgcRatings": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/ratings",
"spacesBattlepasses": "{baseurl_aws}/{version}/spaces/{spaceId}/battlepasses",
"allProfilesEntities": "{baseurl_aws}/{version}/profiles/entities",
"profilesLeaderboard": "{baseurl_aws}/{version}/profiles/ranks",
"usersOnlineStatuses": "{baseurl_aws}/{version}/users/onlineStatuses",
"voicechatTokenVivox": "{baseurl_aws}/{version}/profiles/{profileId}/voicechattoken/vivox",
"applicationsMetadata": "{baseurl_aws}/{version}/applications",
"challengeProgression": "{baseurl_aws}/{version}/profiles/{profileId}/challenges/progressions",
"playerReportsProfile": "{baseurl_aws}/{version}/profiles/{profileId}/reports",
"profilesApplications": "{baseurl_aws}/{version}/profiles/me/applications",
"profilesUgcFavorites": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/favorites",
"profilesUgcPhotosOwn": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/photos",
"spacesChallengepools": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"voicechatConfigVivox": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/voicechat/vivox",
"profilesMeLeaderboard": "{baseurl_aws}/{version}/profiles/me/ranks",
"profilesNotifications": "{baseurl_aws}/{version}/profiles/{profileId}/notifications",
"spacesConfigsSsiRules": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/secondarystore/instances/rules",
"usersMeOnlineStatuses": "{baseurl_aws}/{version}/users/me/onlineStatuses",
"applicationsParameters": "{baseurl_aws}/{version}/applications/{applicationId}/parameters",
"spacesSeasonChallenges": "{baseurl_aws}/{version}/spaces/{spaceId}/club/seasonchallenges",
"websocketNotifications": "{baseurl_ws}/{version}/websocket",
"allProfilesApplications": "{baseurl_aws}/{version}/profiles/applications",
"profilesUgcUpdateRating": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/{contentId}/ratings",
"profilesSeasonChallenges": "{baseurl_aws}/{version}/profiles/{profileId}/club/seasonchallenges?spaceId={spaceId}",
"profilesMeRoamingProfiles": "{baseurl_aws}/{version}/users/me/roamingProfiles",
"profilesProfileChallenges": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"profilesUgcExternalVideos": "{baseurl_aws}/{version}/profiles/ugc/externalvideos",
"profilesUgcUpdateFavorite": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/{contentId}/favorites",
"spacesBattlepassesSeasons": "{baseurl_aws}/{version}/spaces/{spaceId}/battlepasses/seasons",
"spacesCommunityChallenges": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"spacesConfigsPrimarystore": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/primarystore",
"profilesInventoryInstances": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/instances",
"profilesNotificationsBatch": "{baseurl_aws}/{version}/profiles/notifications",
"spacesConfigsSsiAttributes": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/secondarystore/instances/attributes",
"playerReportsSpaceCategories": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/reports/categories",
"profilesInventoryPrimarystore": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/primarystore",
"profilesInventoryTransactions": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/transactions",
"profilesMeBattlepassesSeasons": "{baseurl_aws}/{version}/profiles/me/battlepasses/seasons",
"profilesMeCommunityChallenges": "{baseurl_aws}/{version}/spaces/global/ubiconnect/challenges/api/legacy/empty",
"profilesInventoryExpiredDetails": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/expiredDetails",
"profilesMeInventoryPrimarystore": "{baseurl_aws}/{version}/profiles/me/inventory/primarystore",
"profilesPreciseMatchmakingMatch": "{baseurl_aws}/{version}/profiles/{profileId}/matches/precise/matchstate",
"profilesPreciseMatchmakingClient": "{baseurl_aws}/{version}/profiles/{profileId}/matches/precise/clientstate",
"spacesBattlepassesSeasonsSeasonId": "{baseurl_aws}/{version}/spaces/{spaceId}/battlepasses/seasons/{seasonId}",
"spacesConfigsSsiListsOfAttributes": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/secondarystore/instances/listsOfAttributes",
"usersMeOnlineStatusesManualStatus": "{baseurl_aws}/{version}/users/me/onlineStatuses/manualStatus",
"profilesMeBattlepassesSeasonsSeasonId": "{baseurl_aws}/{version}/profiles/me/battlepasses/seasons/{seasonId}",
"secondaryStoreInventoryRulesExecution": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/rulesexecution",
"profilesInventoryInstancesTransactions": "{baseurl_aws}/{version}/profiles/{profileId}/inventory/instances/transactions",
"groups": "{baseurl_aws}/{version}/groups",
"calendar": "{baseurl_aws}/{version}/spaces/{spaceId}/calendarentries",
"groupType": "{baseurl_aws}/{version}/spaces/{spaceId}/grouptypes/{groupTypeId}",
"telemetry": "{baseurl_aws}/{version}/spaces/{spaceId}/global/tgdp/telemetry/receiver/telemetry",
"tokenSpace": "{baseurl_aws}/{version}/spaces/{spaceId}/tokens",
"tokenProfile": "{baseurl_aws}/{version}/profiles/{profileId}/tokens",
"allgroupTypes": "{baseurl_aws}/{version}/spaces/{spaceId}/grouptypes",
"calendarLists": "{baseurl_aws}/{version}/spaces/{spaceId}/calendarentrylists",
"groupsMembers": "{baseurl_aws}/{version}/groups/{groupId}/members",
"partyXboxSync": "{baseurl_aws}/{version}/spaces/{spaceId}/parties/{partyId}/firstPartyParameters/xblMultiplayerSessionReferenceUri",
"profilesToken": "{baseurl_aws}/{version}/profiles/{profileId}/tokens/{token}",
"spacesParties": "{baseurl_aws}/{version}/spaces/{spaceId}/parties",
"usersPolicies": "{baseurl_aws}/{version}/users/{userId}/policies",
"friendsConfigs": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/friends",
"playerConsents": "{baseurl_aws}/{version}/profiles/{profileId}/consents/categories",
"profilesGroups": "{baseurl_aws}/{version}/profiles/{profileId}/groups",
"profilesParties": "{baseurl_aws}/{version}/profiles/{profileId}/parties",
"tradesItemsGifts": "{baseurl_aws}/{version}/profiles/{profileId}/trades/itemsgifts",
"tradesOfferGifts": "{baseurl_aws}/{version}/profiles/{profileId}/trades/offergifts",
"profilesReputation": "{baseurl_aws}/{version}/profiles/{profileId}/reputation",
"gamesPlayedProfiles": "{baseurl_aws}/{version}/profiles/gamesplayed",
"groupsRichPresences": "{baseurl_aws}/{version}/groups/{groupId}/richpresences",
"spacesRichPresences": "{baseurl_aws}/{version}/spaces/{spaceId}/richpresences",
"spacesPlayerActivity": "{baseurl_aws}/{version}/spaces/{spaceId}/playeractivities/activities",
"groupsRetentionExpiry": "{baseurl_aws}/{version}/groups/{groupId}/policies/retention/expiry",
"profilesRichPresences": "{baseurl_aws}/{version}/profiles/{profileId}/richpresences",
"challengeManualBanking": "{baseurl_aws}/{version}/profiles/{profileId}/challenges/{challengeId}",
"playerActivityProfiles": "{baseurl_aws}/{version}/profiles/{profileId}/playeractivities/activities",
"playerConsentsCategory": "{baseurl_aws}/{version}/profiles/{profileId}/consents/categories/{categoryName}",
"tradesItemsGiftsConfig": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/trades/itemsgifts",
"tradesOfferGiftsConfig": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/trades/offergifts",
"ubiConnectRewardsSpace": "{baseurl_aws}/{version}/spaces/{spaceId}/global/ubiconnect/rewards/api",
"voicechatConfigPlayfab": "{baseurl_aws}/{version}/spaces/{spaceId}/configs/voicechat/playfab",
"groupsInvitationsConfig": "{baseurl_aws}/{version}/groups/{groupId}/configs/groupsinvitations",
"playerPrivilegesProfile": "{baseurl_aws}/{version}/profiles/{profileId}/playerprivileges",
"voicechatNetworkPlayfab": "{baseurl_aws}/{version}/spaces/{spaceId}/voicechatnetworks/playfab",
"groupsInvitationsInvites": "{baseurl_aws}/{version}/groups/{groupId}/groupsinvitations/invitations",
"playerConsentsNextConfig": "{baseurl_aws}/{version}/spaces/configs/consents",
"profilesUgcReportContent": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/{contentId}/reports",
"ubiConnectRewardsProfile": "{baseurl_aws}/{version}/profiles/{profileId}/global/ubiconnect/rewards/api",
"groupsInvitationsProfiles": "{baseurl_aws}/{version}/profiles/{profileId}/groupsInvitations",
"playerConsentsNextProfile": "{baseurl_aws}/{version}/profiles/{profileId}/consents",
"profilesInventoryReserves": "{baseurl_aws}/{version}/profiles/{profileId}/items/reserves",
"groupsInvitationsLockState": "{baseurl_aws}/{version}/groups/{groupId}/groupsinvitations/lockstate",
"profilesBattlepassesSeasons": "{baseurl_aws}/{version}/profiles/{profileId}/battlepasses/seasons",
"groupsInvitationsJoinRequests": "{baseurl_aws}/{version}/groups/{groupId}/groupsinvitations/joinrequests",
"groupsInvitationsUpdateInvite": "{baseurl_aws}/{version}/groups/{groupId}/groupsinvitations/invitations/{inviteeProfileId}/state",
"playerConsentsNextAcceptances": "{baseurl_aws}/{version}/profiles/{profileId}/consents/acceptances",
"matchmakingGroupsMatchesPrecise": "{baseurl_aws}/{version}/groups/{groupId}/matches/precise",
"spacesPlayerPreferencesStandard": "{baseurl_aws}/{version}/spaces/{spaceId}/standardpreferences",
"profilesBattlepassesSeasonsTiers": "{baseurl_aws}/{version}/profiles/{profileId}/battlepasses/seasons/{seasonId}/tiers",
"profilesPlayerPreferencesStandard": "{baseurl_aws}/{version}/profiles/{profileId}/standardpreferences",
"profilesUgcRequestReportedContent": "{baseurl_aws}/{version}/profiles/{profileId}/ugc/reports",
"groupsInvitationsUpdateJoinRequest": "{baseurl_aws}/{version}/groups/{groupId}/groupsinvitations/joinrequests/{requesterProfileId}/state",
"ubiConnectCommunityChallengesSpace": "{baseurl_aws}/{version}/spaces/{spaceId}/global/ubiconnect/challenges/api/community",
"matchmakingSpaceGlobalHarboursocial": "{baseurl_aws}/{version}/spaces/{spaceId}/global/harboursocial/matchmaking",
"spacesPartiesPartyIdMembersProfileId": "{baseurl_aws}/{version}/spaces/{spaceId}/parties/{partyId}/members/{profileId}",
"ubiConnectCommunityChallengesProfile": "{baseurl_aws}/{version}/profiles/{profileId}/global/ubiconnect/challenges/api/community",
"ubiConnectTimeLimitedChallengesSpace": "{baseurl_aws}/{version}/spaces/{spaceId}/global/ubiconnect/challenges/api/timelimited",
"matchmakingProfilesGlobalHarboursocial": "{baseurl_aws}/{version}/profiles/{profileId}/global/harboursocial/matchmaking",
"ubiConnectTimeLimitedChallengesProfile": "{baseurl_aws}/{version}/profiles/{profileId}/global/ubiconnect/challenges/api/timelimited",
"ubiConnectApplicableTimeLimitedChallengesProfiles": "{baseurl_aws}/{version}/profiles/global/ubiconnect/challenges/api/timelimited/applicable"
},
"relatedPopulation": null
},
"us-sdkClientStorm": {
"fields": {
"detectConfig": "EnableDebug=false;ValidateDetect=true",
"detectProvisioningUrl": "https://ncsa-storm.ubi.com/v1/natdetect",
"routerProvisioningUrl": "https://apac-storm.ubi.com/v1/router;https://emea-storm.ubi.com/v1/router;https://ncsa-storm.ubi.com/v1/router;https://ap-southeast-2-storm.ubi.com/v1/router",
"matchmakingSandboxName": "SM_PC_LNCH_A",
"traversalProvisioningUrl": "https://ncsa-storm.ubi.com/v1/nattraversal",
"matchmakingSandboxSpaceId": "4c29e04e-14d2-4245-a3c4-bf4703461119"
},
"relatedPopulation": null
},
"us-sdkClientRemoteLogsInternal": {
"fields": {
"job": "None",
"ugc": "Warning",
"club": "None",
"core": "None",
"http": "None",
"news": "None",
"tLog": "Warning",
"task": "None",
"test": "None",
"user": "None",
"async": "None",
"event": "None",
"mocks": "None",
"stats": "None",
"uplay": "None",
"entity": "None",
"friend": "None",
"overlay": "Warning",
"persona": "None",
"profile": "None",
"blocklist": "None",
"challenge": "None",
"remoteLog": "None",
"scheduler": "None",
"voicechat": "None",
"websocket": "None",
"battlepass": "Warning",
"connection": "None",
"httpEngine": "None",
"moderation": "Warning",
"parameters": "Warning",
"population": "None",
"gamesPlayed": "None",
"leaderboard": "None",
"matchmaking": "None",
"userContent": "None",
"localization": "None",
"notification": "None",
"primaryStore": "None",
"configuration": "None",
"maxTextLength": 32768,
"playerReports": "None",
"authentication": "None",
"secondaryStore": "None",
"applicationUsed": "None",
"mobileExtension": "None",
"recommendations": "None",
"coreNotification": "None",
"playerOnlineStatus": "None",
"applicationInformation": "None",
"secondaryStoreInstantiation": "None",
"secondaryStoreInventoryRules": "None",
"party": "None",
"token": "None",
"groups": "Warning",
"trades": "None",
"calendar": "Warning",
"telemetry": "None",
"reputation": "None",
"remoteGaming": "Warning",
"richPresence": "None",
"usersPolicies": "None",
"playerActivity": "None",
"playerConsents": "None",
"playerPrivileges": "None",
"groupsInvitations": "Warning",
"playerPreferences": "None"
},
"relatedPopulation": null
},
"us-sdkClientRemoteLogsGame": {
"fields": {
"url": "",
"maxTextLength": 32768,
"uncategorized": "None"
},
"relatedPopulation": null
},
"us-sdkClientNotificationsInternal": {
"fields": {
"BLOCKLIST_ADD": true,
"BLOCKLIST_ADDED": true,
"BLOCKLIST_REMOVE": true,
"BLOCKLIST_REMOVED": true,
"CLUB_BADGE_ACQUIRED": true,
"SSI_INSTANCES_UPDATE": true,
"CLUB_ACTION_COMPLETED": true,
"CLUB_CHALLENGE_BANKED": true,
"CLUB_REWARD_PURCHASED": true,
"BATTLEPASS_TIERS_BANKED": true,
"CLUB_CHALLENGE_COMPLETED": true,
"CHALLENGES_REWARDS_BANKED": true,
"US_APP_PARAMS_FULL_UPDATE": true,
"US_APP_PARAMS_GROUP_UPDATE": true,
"FRIENDS_RELATIONSHIP_UPDATE": true,
"US_NOTIFICATION_MAINTENANCE": true,
"US_SPACE_PARAMS_FULL_UPDATE": true,
"CLUB_CHALLENGE_PARTICIPATION": true,
"US_SPACE_PARAMS_GROUP_UPDATE": true,
"US_CONCURRENT_CONNECT_DETECTED": true,
"CHALLENGES_PROGRESSION_COMPLETED": true,
"CLUB_CHALLENGE_THRESHOLD_REACHED": true,
"US_CLIENT_SECONDARY_STORE_UPDATE": true,
"TRADE_UPDATED": true,
"PARTY_MEMBER_ADDED": true,
"GROUPS_MEMBER_ADDED": true,
"PARTY_PARTY_CREATED": true,
"PARTY_PARTY_DELETED": true,
"PARTY_PARTY_UPDATED": true,
"FRIENDS_INFO_UPDATED": true,
"GROUPS_GROUP_DELETED": true,
"GROUPS_GROUP_UPDATED": true,
"PARTY_MEMBER_REMOVED": true,
"PARTY_MEMBER_UPDATED": true,
"GROUPS_MEMBER_REMOVED": true,
"GROUPS_MEMBER_UPDATED": true,
"MM_ASK_GROUP_METADATA": true,
"PARTY_INVITATION_SENT": true,
"FRIENDS_STATUS_CHANGED": true,
"PARTY_JOINREQUEST_SENT": true,
"PARTY_PARTY_MOVE_FAILED": true,
"PERSONA_PERSONA_CREATED": true,
"PERSONA_PERSONA_DELETED": true,
"PERSONA_PERSONA_UPDATED": true,
"BATTLEPASS_TIERS_REACHED": true,
"PARTY_INVITATION_EXPIRED": true,
"PARTY_INVITATION_ACCEPTED": true,
"PARTY_INVITATION_DECLINED": true,
"PARTY_JOINREQUEST_EXPIRED": true,
"PARTY_PARTY_OWNER_UPDATED": true,
"GROUPS_GROUP_OWNER_UPDATED": true,
"PARTY_INVITATION_CANCELLED": true,
"PARTY_JOINREQUEST_ACCEPTED": true,
"PARTY_JOINREQUEST_DECLINED": true,
"PARTY_PARTY_EXPIRY_RENEWED": true,
"PARTY_JOINREQUEST_CANCELLED": true,
"UBICONNECT_REWARD_PURCHASED": false,
"FRIENDS_RELATIONSHIP_TRIGGER": true,
"PARTY_ACCESSREQUEST_ACCEPTED": true,
"PARTY_PARTY_LOCKSTATE_UPDATED": true,
"GROUPSINVITATIONS_GROUP_UPDATED": true,
"PLAYERACTIVITY_ACTIVITIES_CLOSED": true,
"GROUPSINVITATIONS_INVITATION_SENT": true,
"PARTY_INVITATION_WORKFLOW_STARTED": true,
"PLAYERACTIVITY_ACTIVITIES_CREATED": true,
"PLAYERACTIVITY_ACTIVITIES_UPDATED": true,
"GROUPSINVITATIONS_JOINREQUEST_SENT": true,
"PLAYERPRIVILEGES_PRIVILEGES_UPDATED": true,
"GROUPSINVITATIONS_GROUP_LOCK_UPDATED": true,
"GROUPSINVITATIONS_INVITATION_EXPIRED": true,
"PARTY_LIMITS_MAXIMUM_MEMBERS_UPDATED": true,
"REPUTATION_PLAYERFACINGLEVEL_UPDATED": true,
"GROUPSINVITATIONS_INVITATION_ACCEPTED": true,
"GROUPSINVITATIONS_INVITATION_DECLINED": true,
"GROUPSINVITATIONS_JOINREQUEST_EXPIRED": true,
"PARTY_PARTY_INVITATIONSCONFIG_UPDATED": true,
"GROUPSINVITATIONS_INVITATION_CANCELLED": true,
"GROUPSINVITATIONS_JOINREQUEST_ACCEPTED": true,
"GROUPSINVITATIONS_JOINREQUEST_DECLINED": true,
"GROUPS_POLICY_RETENTION_EXPIRY_RENEWED": true,
"PARTY_JOINREQUEST_PLAYER_PREAUTHORIZED": true,
"PARTY_PARTY_JOINREQUESTSCONFIG_UPDATED": true,
"GROUPSINVITATIONS_JOINREQUEST_CANCELLED": true,
"RICHPRESENCE_PLAYER_RICHPRESENCE_CHANGED": true
},
"relatedPopulation": null
},
"us-sdkClientNotificationsGame": {
"fields": {
"additionalSpaces": [],
"INITIATE_PUNCH_PHONE_PAIRING": true
},
"relatedPopulation": null
},
"us-GlobalSpaceConfig": {
"fields": {
"friendsSpaceId": "45d58365-547f-4b45-ab5b-53ed14cc79ed",
"blocklistSpaceId": "45d58365-547f-4b45-ab5b-53ed14cc79ed"
},
"relatedPopulation": null
},
"us-sdkClientFeaturesSwitches": {
"fields": {
"ugc": true,
"news": true,
"tlog": true,
"event": true,
"mocks": false,
"party": true,
"stats": true,
"token": true,
"uplay": true,
"users": true,
"groups": true,
"trades": true,
"persona": true,
"rewards": true,
"calendar": true,
"profiles": true,
"blocklist": true,
"challenge": true,
"telemetry": true,
"voicechat": true,
"battlepass": true,
"httpClient": true,
"moderation": true,
"parameters": true,
"reputation": true,
"clubService": true,
"gamesPlayed": true,
"matchmaking": true,
"populations": true,
"localization": true,
"primaryStore": true,
"remoteGaming": true,
"richPresence": true,
"createSession": true,
"entitiesSpace": true,
"extendSession": true,
"friendsLookup": true,
"leaderboardMe": true,
"playerReports": true,
"friendsRequest": true,
"playerActivity": true,
"playerConsents": true,
"secondaryStore": true,
"ubisoftConnect": true,
"applicationUsed": true,
"clubApplication": true,
"entitiesProfile": true,
"recommendations": true,
"webSocketClient": true,
"clubDynamicPanel": true,
"notificationSend": true,
"playerPrivileges": true,
"usersLegalOptins": true,
"eventsDefinitions": true,
"groupsInvitations": true,
"leaderboardSpaces": true,
"playerPreferences": true,
"playerOnlineStatus": true,
"usersCreateAndLink": true,
"friendsUplayProfile": true,
"leaderboardProfiles": true,
"friendsSpaceSpecific": true,
"notificationSendBatch": true,
"notificationWebsocket": true,
"primaryStoreSendEvent": true,
"applicationInformation": true,
"notificationSendNoBroker": true,
"notificationDynamicUpdate": true,
"populationsAutomaticUpdate": true,
"primaryStoreAutomaticFetch": true,
"secondaryStoreTransactions": true,
"secondaryStoreInstantiation": true,
"secondaryStoreInventoryRules": true,
"mobileExtensionUsersManagement": true,
"notificationRequestConnections": true,
"mobileExtensionProfilesExternal": true,
"notificationRemoteLogReceivedData": false,
"primaryStoreCatalogGetGameMediaType": false,
"primarySecondaryStoreForceSyncAtLogin": true,
"firstPartyAccessToMultiplayerInformation": true,
"syncOnResumeToForegroundForNintendoSwitch": false,
"usersPolicies": true,
"playerCodeOfConduct": true
},
"relatedPopulation": null
},
"jd-constantsWall": {
"fields": {
"FriendsWall": {
"max_msg": 7,
"refresh_time": 122
}
},
"relatedPopulation": null
},
"jd-constantsFriends": {
"fields": {
"FriendsUGC": {
"refresh_time": 120
},
"FriendsPresence": {
"refresh_time": 121
},
"FriendListService": {
"refresh_interval": 120
}
},
"relatedPopulation": null
},
"jd-constantsJDVersion": {
"fields": {
"Override": {
"123": "Kids",
"4884": "ABBA : You Can Dance",
"9999": "2022"
}
},
"relatedPopulation": null
},
"jd-constantsUnlockable": {
"fields": {
"AAAMap": {
"map2": "Thumbs",
"LockAAAMap2": 1
}
},
"relatedPopulation": null
},
"jd-constantsQuickplayDesignRules": {
"fields": {
"FatigueRule1Config": {
"MapCount": 1
},
"FatigueRule2Config": {
"MapCount": 3
},
"RulesNamesToEnable": [],
"DiscoveryRuleConfig": {
"MapCount": 3
},
"DifficultyRuleConfig": {
"MapCount": 1
},
"MultiplayerRuleConfig": {
"MapCount": 2
},
"StartDifficultyRuleConfig": {
"MapCount": 2,
"StartDifficultyRuleConfig": [1, 2],
"AcceptableSweatDifficulties": [1, 2]
},
"TaggedDiscoveryRuleConfig": {
"MapCount": 2,
"AcceptableTags": ["ExcluJD21_Quickplay"]
}
},
"relatedPopulation": null
},
"jd-constantsQuickplayTimer": {
"fields": {
"FeatureSwitch": {
"value": true
},
"TimerDuration": {
"recapTimer": 10,
"lobbyTimerDefault": 12,
"lobbyTimerNoChoice": 8,
"lobbyTimerRefreshForCoop": 5
}
},
"relatedPopulation": null
},
"jd-customFeatureSwitches": {
"fields": {
"relatedSongs": true,
"anthologyMode": true,
"customRecoLine": false
},
"relatedPopulation": null
},
"jd-constantsSongsSortingByRecommendation": {
"fields": {
"isActive": {
"value": true
}
},
"relatedPopulation": null
},
"jd-constantsQuickplayFallbackLists": {
"fields": {
"EditoFallbackList": {
"list": ["RainOnMe", "PacaDance", "Medicina", "BlindingLights", "NaeNae", "Sorbet", "Lullaby", "Temperature", "WomanLikeMe", "QueTirePaLante", "OldTownRoad", "Blue", "WithoutMe", "7Rings", "Bang2019", "Zenit", "ThatPower", "DibbyDibby", "1999", "Magenta", "GangnamStyleDLC", "Juice", "MiMiMi", "BadGuy", "SambaDeJaneiro", "Animals"]
}
},
"relatedPopulation": null
},
"jd-constantsWDF": {
"fields": {
"Recap": {
"recap_retry_interval": 2
},
"UpdateScore": {
"update_score_interval": 5,
"update_failure_allowance": 10
}
},
"relatedPopulation": null
},
"jd-constantsUpsell": {
"fields": {
"streamedVideo": {
"version": 2,
"description": 12345,
"trackingTag": "Demo_Home_Video",
"thumbnailUrl": "https://jd-s3.cdn.ubi.com/public/home/WelcomeVideoJD2020/thumbsnail/558862fc616a732816595cb949729935.png",
"videoDataUrl": "https://jd-s3.cdn.ubi.com/public/streamed-videos/Demo_Home_Video/metadata/74d6299d04d544622f9f2b58a9ba58ac.json"
}
},
"relatedPopulation": null
},
"jd-constantsSubscription_Service": {
"fields": {
"ECTokenFetch": {
"retry_count": 3,
"retry_interval": 598
},
"ServerRefresh": {
"retry_interval": 60,
"refresh_interval": 600,
"retry_interval_s2s": 600
}
},
"relatedPopulation": null
},
"jd-constantsRelatedSongsAutoplayTimer": {
"fields": {
"durationInSeconds": {
"value": 12
}
},
"relatedPopulation": null
},
"jd-constantsRelatedSongsAutoplay": {
"fields": {
"featureSwitch": {
"value": true
}
},
"relatedPopulation": null
},
"jd-constantsRelatedSongs": {
"fields": {
"Fetch": {
"retry_value": 120
},
"Patterns": {
"Subscribed": ["replay", "any", "any", "any"],
"Unsubscribed": ["replay", "disk", "disk", "jdu"]
},
"LocalHistory": {
"maxSizePerSession": 3
},
"minimumSongsToDisplayScreen": {
"value": 2
}
},
"relatedPopulation": null
},
"jd-constantsRecommendation": {
"fields": {
"Fetch": {
"retry_interval": 120
},
"OnlineRecoConfig": {
"numberOfSongsPlayedInPartyModeToSwitchToClassicReco": 2
},
"EditorialRecoList": {
"maps": ["BlindingLights", "KickIt", "AdoreYou", "WithoutMe", "QueTirePaLante", "Juice"]
},
"RecoLineConfigForNonSubscribers": {
"maxJDUSongsInRecoLine": 2
}
},
"relatedPopulation": null
},
"jd-constantsQuest": {
"fields": {
"minimumScore": {
"value": 1000
},
"questOverride": {
"value": []
},
"sessionCountUntilQuestKill": {
"value": 10
},
"sessionCountUntilDiscoveryKill": {
"value": 6
},
"sessionCountUntilFirstDiscoveryKill": {
"value": 2
}
},
"relatedPopulation": null
},
"jd-constantsHttp": {
"fields": {
"FileStreaming": {
"slow_bit_rate_in_bps": 512000
}
},
"relatedPopulation": null
},
"jd-constantsHome": {
"fields": {
"Fetch": {
"played_maps_count": 2,
"new_session_tiles_count": 3,
"during_session_tiles_count": 1
}
},
"relatedPopulation": null
},
"jd-serverInfo": {
"fields": {
"url": "https://jdp.justdancenext.xyz",
"name": "PROD"
},
"relatedPopulation": null
}
}
}

27
database/v2/entities.json Normal file
View File

@@ -0,0 +1,27 @@
{
"entities": [{
"entityId": "aa359245-8b6f-4a7d-81a6-0c91f52cc388",
"spaceId": "f1ae5b84-db7c-481e-9867-861cf1852dc8",
"type": "server",
"name": "prod",
"tags": [],
"obj": {
"name": "JMCS PROD",
"url": "http://jdp.justdancenext.xyz"
},
"lastModified": "",
"revision": 3
}, {
"entityId": "cd8593dc-2d53-449c-9dbd-cc43ebb7d3d4",
"spaceId": "f1ae5b84-db7c-481e-9867-861cf1852dc8",
"type": "server",
"name": "default",
"tags": [],
"obj": {
"name": "JMCS PROD",
"url": "http://jdp.justdancenext.xyz"
},
"lastModified": "",
"revision": 3
}]
}

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,7 @@
{
"__class": "RoomInfo",
"room": "MainJDNEXT",
"type": "medium",
"start": null,
"end": null
}

163
database/wdf/newsfeed.json Normal file
View File

@@ -0,0 +1,163 @@
{
"__class": "NewsfeedList",
"entries": [{
"activationTime": 1467358200,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13602,
"pool": "Priority2_Stats",
"textLocId": 13506,
"themeType": "boss",
"type": "automatic",
"variables": {
"pictureUrl": [],
"text": [],
"title": ["boss-currentWeekMostBossesBeatenPlayer"]
},
"playerBasedEntry": true,
"playerInfo": {
"name": "Adrian",
"avatar": 998,
"country": 8490,
"skin": 101,
"platform": "pc",
"portraitBorder": 34,
"jdPoints": 461488,
"tournamentBadge": false,
"isSubscribed": false,
"pid": "bb805585-4178-41f5-9c71-e4d55c0ff9d9",
"__class": "NewsFeedPlayerInfo"
},
"pictureUrl": "https://ubistatic-a.akamaihd.net/0060/uat/newsfeed/m_1500468052.png",
"text": "has beaten the most bosses this week!",
"title": "Adrian",
"__class": "NewsfeedEntry"
}, {
"activationTime": 1498834800,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13596,
"pool": "Priority2_Stats",
"textLocId": 13498,
"themeType": "tournament",
"type": "automatic",
"variables": {
"pictureUrl": [],
"text": [],
"title": ["tournament-weeklyScheduledTournamentWinner"]
},
"playerBasedEntry": true,
"playerInfo": {
"name": "Rex",
"avatar": 1013,
"country": 8459,
"skin": 101,
"platform": "nx",
"portraitBorder": 0,
"jdPoints": 303300,
"tournamentBadge": false,
"isSubscribed": false,
"pid": "f8cb988e-8aa7-4ff0-a573-9067a4d0cfd0",
"__class": "NewsFeedPlayerInfo"
},
"pictureUrl": "https://ubistatic-a.akamaihd.net/0060/uat/newsfeed/m_1500468052.png",
"text": "has won the latest Weekly Tournament!",
"title": "Rex",
"__class": "NewsfeedEntry"
},
{
"activationTime": 1466778600,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13597,
"pool": "Priority2_Stats",
"textLocId": 13499,
"themeType": "tournament",
"type": "automatic",
"variables": {
"pictureUrl": [],
"text": [],
"title": ["tournament-currentWeekMostTournamentsWinner"]
},
"playerBasedEntry": true,
"playerInfo": {
"name": "ibratatain17",
"avatar": 1007,
"country": 8483,
"skin": 101,
"platform": "pc",
"portraitBorder": 0,
"jdPoints": 110015,
"tournamentBadge": false,
"isSubscribed": false,
"pid": "ed950db9-4f97-4f2a-a4b1-8da10b9bb2e8",
"__class": "NewsFeedPlayerInfo"
},
"pictureUrl": "https://ubistatic-a.akamaihd.net/0060/uat/newsfeed/m_1500468052.png",
"text": "has won the most tournaments this week!",
"title": "ibratatain17",
"__class": "NewsfeedEntry"
},
{
"activationTime": 1467050400,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13502,
"pool": "Priority2_Stats",
"textLocId": 13505,
"themeType": "boss",
"type": "automatic",
"variables": {
"pictureUrl": ["boss-boss1PictureUrl"],
"text": ["boss-boss1BeatenCount"],
"title": ["boss-boss1Name"]
},
"pictureUrl": "https://jd-s3.cdn.ubi.com/public/wdf-bosses/Clint/Clint.png/56bc806b38213ca00cc06cbb182b7d80.png",
"text": "has been beaten 522 times.",
"title": "Clint",
"__class": "NewsfeedEntry"
}, {
"activationTime": 1467039600,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13503,
"pool": "Priority2_Stats",
"textLocId": 13600,
"themeType": "boss",
"type": "automatic",
"variables": {
"pictureUrl": ["boss-boss2PictureUrl"],
"text": ["boss-boss2BeatenCount"],
"title": ["boss-boss2Name"]
},
"pictureUrl": "https://jd-s3.cdn.ubi.com/public/wdf-bosses/Monty/Monty.png/d664ef4f8f57bfa4512bb74856f0c094.png",
"text": "has been beaten 370 times.",
"title": "Monty",
"__class": "NewsfeedEntry"
}, {
"activationTime": 1467050400,
"active": true,
"defaultLanguage": "en",
"displayDuration": 3,
"locId": 13504,
"pool": "Priority2_Stats",
"textLocId": 13601,
"themeType": "boss",
"type": "automatic",
"variables": {
"pictureUrl": ["boss-boss3PictureUrl"],
"text": ["boss-boss3BeatenCount"],
"title": ["boss-boss3Name"]
},
"pictureUrl": "https://jd-s3.cdn.ubi.com/public/wdf-bosses/Ori/Ori.png/114022534eebad232f8d8401c91bb142.png",
"text": "has been beaten 119 times.",
"title": "Ori",
"__class": "NewsfeedEntry"
}
]
}

View File

@@ -0,0 +1,6 @@
{
"__class": "HappyHoursInfo",
"start": 1677391200,
"end": 1677393000,
"running": true
}

439
database/wdf/screens.json Normal file
View File

@@ -0,0 +1,439 @@
{
"__class": "ScreenList",
"screens": [{
"__class": "Screen",
"type": "in-game",
"startTime": 1677247358.3359149,
"endTime": 1677247524.9519148,
"theme": "vote",
"mapName": "AmIWrong",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247524.9519148,
"endTime": 1677247544.9519148,
"theme": "vote",
"mapName": "JohnCena",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247537.9519148
},
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "vote-recap",
"startTime": 1677247544.9519148,
"endTime": 1677247564.9519148,
"theme": "vote",
"mapName": "PARTY",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
},
{
"__class": "Screen",
"type": "in-game",
"startTime": 1677247358.3359149,
"endTime": 1677247524.9519148,
"theme": "vote",
"mapName": "INeedYourLoveDLC",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247524.9519148,
"endTime": 1677247544.9519148,
"theme": "vote",
"mapName": "ThankUNext",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247537.9519148
},
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "vote-recap",
"startTime": 1677247544.9519148,
"endTime": 1677247564.9519148,
"theme": "vote",
"mapName": "LoveIsAll",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
},
{
"__class": "Screen",
"type": "in-game",
"startTime": 1677247358.3359149,
"endTime": 1677247524.9519148,
"theme": "vote",
"mapName": "Misunderstood",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247524.9519148,
"endTime": 1677247544.9519148,
"theme": "vote",
"mapName": "ThatPower",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247537.9519148
},
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "vote-recap",
"startTime": 1677247544.9519148,
"endTime": 1677247564.9519148,
"theme": "vote",
"mapName": "KIDSHickoryDickoryDock",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-presentation",
"startTime": 1677247564.9519148,
"endTime": 1677247574.9519148,
"theme": "tournament",
"mapName": "Rhythm",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-lobby",
"startTime": 1677247574.9519148,
"endTime": 1677247586.9519148,
"theme": "tournament",
"mapName": "WorthItALT",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "in-game",
"startTime": 1677247586.9519148,
"endTime": 1677247768.1759148,
"theme": "tournament",
"mapName": "WorthItALT",
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247768.1759148,
"endTime": 1677247788.1759148,
"theme": "tournament",
"mapName": "NeverCanSay",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247781.1759148
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-recap",
"startTime": 1677247788.1759148,
"endTime": 1677247830.1759148,
"theme": "tournament",
"mapName": "NeverCanSay",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
},
{
"__class": "Screen",
"type": "tournament-presentation",
"startTime": 1677247564.9519148,
"endTime": 1677247574.9519148,
"theme": "tournament",
"mapName": "Rabiosa",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-lobby",
"startTime": 1677247574.9519148,
"endTime": 1677247586.9519148,
"theme": "tournament",
"mapName": "IFeelItComing",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "in-game",
"startTime": 1677247586.9519148,
"endTime": 1677247768.1759148,
"theme": "tournament",
"mapName": "Kuliki",
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247768.1759148,
"endTime": 1677247788.1759148,
"theme": "tournament",
"mapName": "Kuliki",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247781.1759148
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-recap",
"startTime": 1677247788.1759148,
"endTime": 1677247830.1759148,
"theme": "tournament",
"mapName": "INeedYourLoveDLC",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}
]
}

View File

@@ -0,0 +1,196 @@
{
"__class": "ScreenList",
"screens": [{
"__class": "Screen",
"type": "in-game",
"startTime": 1677247358.3359149,
"endTime": 1677247524.9519148,
"theme": "vote",
"mapName": "Diggin",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247524.9519148,
"endTime": 1677247544.9519148,
"theme": "vote",
"mapName": "Diggin",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247537.9519148
},
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "vote-recap",
"startTime": 1677247544.9519148,
"endTime": 1677247564.9519148,
"theme": "vote",
"mapName": "Diggin",
"schedule": {
"type": "probability",
"theme": "MapVote",
"occurance": {
"next": 1677247294335.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-presentation",
"startTime": 1677247564.9519148,
"endTime": 1677247574.9519148,
"theme": "tournament",
"mapName": "Diggin",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-lobby",
"startTime": 1677247574.9519148,
"endTime": 1677247586.9519148,
"theme": "tournament",
"mapName": "Diggin",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "in-game",
"startTime": 1677247586.9519148,
"endTime": 1677247768.1759148,
"theme": "tournament",
"mapName": "Diggin",
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "waiting-screen",
"startTime": 1677247768.1759148,
"endTime": 1677247788.1759148,
"theme": "tournament",
"mapName": "Diggin",
"waitingScreenInfo": {
"__class": "WaitingScreenInfo",
"getRecapTime": 1677247781.1759148
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}, {
"__class": "Screen",
"type": "tournament-recap",
"startTime": 1677247788.1759148,
"endTime": 1677247830.1759148,
"theme": "tournament",
"mapName": "Diggin",
"tournamentInfo": {
"__class": "TournamentScreenInfo",
"tournamentType": "default",
"tournamentLogo": "https://jd-s3.cdn.ubi.com/public/wdf/tournament/Regular_tournament_cup/c3236d5d336c2cb59f8d72d4aec6c3fd.png",
"roundNumber": 1,
"playListSize": 3,
"rewards": [{
"type": "skin",
"value": 48
}, {
"type": "skin",
"value": 49
}, {
"type": "skin",
"value": 50
}, {
"type": "mojo",
"value": 700
}
]
},
"schedule": {
"type": "probability",
"theme": "RegularTournament",
"occurance": {
"next": 1677247564951.9148,
"prev": null
}
}
}
]
}

View File

@@ -0,0 +1,3 @@
{
"time": 1677247379.669
}

0
database/wdf/test.json Normal file
View File

5214
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

28
package.json Normal file
View File

@@ -0,0 +1,28 @@
{
"name": "open-party",
"version": "1.0.0",
"description": "Ibratabian17's JDU Code",
"main": "server.js",
"scripts": {
"start": "node core/scripts/run.js",
"startPM2": "pm2 start server.js --name server --no-daemon",
"maintenancea": "node core/scripts/update.js"
},
"author": "PartyService",
"license": "MIT",
"dependencies": {
"axios": "^1.6.5",
"body-parser": "^1.20.2",
"express": "^4.19.2",
"fs": "^0.0.1-security",
"md5": "^2.3.0",
"mongoose": "^5.13.22",
"pm2": "^5.3.0",
"request-country": "^0.1.2",
"xmlhttprequest": "^1.8.0"
},
"engines": {
"node": ">=16.0.0",
"npm": ">=7.0.0"
}
}

19
server.js Normal file
View File

@@ -0,0 +1,19 @@
// Ibratabian17's jdu
const express = require("express");
const app = express();
console.log(`[MAIN] Starting daemon`);
process.title = "Just Dance Unlimited Server";
const settings = require('./settings.json');
const core = require('./core/core');
const port = settings.server.forcePort ? settings.server.port : process.env.PORT || settings.server.port;
const isPublic = settings.server.isPublic ? "0.0.0.0" : "127.0.0.1";
// Initialize Express.js
const server = app.listen(port, isPublic, () => {
core.init(app, express, server);
console.log(`[MAIN] listening on ${isPublic}:${port}`);
console.log(`[MAIN] Open panel to see more log`);
console.log(`[MAIN] Running on ${process.env.NODE_ENV} session`);
});

15
settings.json Normal file
View File

@@ -0,0 +1,15 @@
{
"server": {
"SaveData": {
"windows": "{Home}/AppData/Roaming/openparty/",
"linux": "{Home}/.openparty/"
},
"port": 80,
"forcePort": false,
"isPublic": true,
"serverstatus": {
"isMaintenance": false,
"channel": "prod"
}
}
}

1
start.bat Normal file
View File

@@ -0,0 +1 @@
node jduparty.js