mirror of
https://github.com/ibratabian17/OpenParty.git
synced 2026-01-15 14:22:54 -03:00
Improvised the Playlist feature
This commit is contained in:
@@ -6,6 +6,7 @@ const path = require('path');
|
||||
const cClass = require("./classList.json");
|
||||
const songdb = loadJsonFile('Platforms/openparty-all/songdbs.json', '../database/Platforms/openparty-all/songdbs.json');
|
||||
const helper = require('../helper')
|
||||
const settings = require('../../settings.json')
|
||||
var mostPlayed = {}
|
||||
|
||||
mostPlayed = loadJsonFile('carousel/mostplayed.json', '../database/carousel/mostplayed.json');
|
||||
@@ -197,11 +198,11 @@ exports.generateCarousel = (search, type = "partyMap") => {
|
||||
|
||||
|
||||
// Dynamic Carousel System
|
||||
addCategories(generateCategories("Just Dance Unlimited Mod", filterSongs(songdbs, song => true), type));
|
||||
addCategories(generateCategories(settings.server.modName, 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);
|
||||
generateWeeklyRecommendedSong(loadJsonFile('carousel/playlist.json', '../database/carousel/playlist.json'), type);
|
||||
processPlaylists(loadJsonFile('carousel/playlist.json', '../database/carousel/playlist.json'), type);
|
||||
addJDVersion(songdbs, type);
|
||||
addCategories(generateCategories(`Most Played Weekly!`, CloneObject(getGlobalPlayedSong()), type));
|
||||
addCategories(Object.assign({}, cClass.searchCategoryClass));
|
||||
|
||||
117
core/lib/playlist-Class.json
Normal file
117
core/lib/playlist-Class.json
Normal file
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"playlistdb": {
|
||||
"__class": "PlaylistDbResponse",
|
||||
"db": {}
|
||||
},
|
||||
"playlistcategory": {
|
||||
"__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": []
|
||||
}
|
||||
],
|
||||
"actionLists": {
|
||||
"_None": {
|
||||
"__class": "ActionList",
|
||||
"actions": [
|
||||
{
|
||||
"__class": "Action",
|
||||
"title": "None",
|
||||
"type": "do-nothing"
|
||||
}
|
||||
],
|
||||
"itemType": "map"
|
||||
}
|
||||
},
|
||||
"songItemLists": {}
|
||||
}
|
||||
}
|
||||
52
core/lib/playlist.js
Normal file
52
core/lib/playlist.js
Normal file
@@ -0,0 +1,52 @@
|
||||
const { loadJsonFile } = require('../helper')
|
||||
const inputJson = loadJsonFile('carousel/playlist.json', '../database/carousel/playlist.json');
|
||||
const ClassList = require('./playlist-Class.json')
|
||||
const WEEKLY_PLAYLIST_PREFIX = 'DFRecommendedFU';
|
||||
|
||||
const generatePlaylist = () => {
|
||||
let playlistdb = ClassList.playlistdb;
|
||||
let playlistcategory = ClassList.playlistcategory;
|
||||
|
||||
let a = 6
|
||||
inputJson.forEach(item => {
|
||||
if (!item.name.startsWith(WEEKLY_PLAYLIST_PREFIX)) {
|
||||
playlistdb.db[item.id] = {
|
||||
"filters": item.filters,
|
||||
"maps": item.songlist,
|
||||
"__class": "PlaylistDbService::Playlist",
|
||||
"title": item.name,
|
||||
"description": item.description,
|
||||
"coverURL": item.coverURL,
|
||||
"fixedMapOrder": item.fixedMapOrder,
|
||||
"fallback": item.fallback,
|
||||
"pinned": item.pinned
|
||||
};
|
||||
|
||||
playlistcategory.categories[1].items.push({
|
||||
"__class": "Item",
|
||||
"isc": "grp_row",
|
||||
"act": "ui_carousel",
|
||||
"actionList": "_None",
|
||||
"actionListUpsell": "_None",
|
||||
"components": [
|
||||
{
|
||||
"__class": "JD_CarouselContentComponent_Playlist",
|
||||
"playlistID": item.id,
|
||||
"displayCode": a,
|
||||
"displayMethod": "manual"
|
||||
}
|
||||
]
|
||||
});
|
||||
a++;
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
playlistdb,
|
||||
playlistcategory
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
generatePlaylist
|
||||
}
|
||||
@@ -5,6 +5,7 @@ const settings = require('../../settings.json');
|
||||
var md5 = require('md5');
|
||||
const core = {
|
||||
main: require('../var').main,
|
||||
generatePlaylist: require('../lib/playlist').generatePlaylist,
|
||||
CloneObject: require('../helper').CloneObject,
|
||||
loadJsonFile: require('../helper').loadJsonFile,
|
||||
generateCarousel: require('../carousel/carousel').generateCarousel, generateSweatCarousel: require('../carousel/carousel').generateSweatCarousel, generateCoopCarousel: require('../carousel/carousel').generateCoopCarousel, updateMostPlayed: require('../carousel/carousel').updateMostPlayed,
|
||||
@@ -226,19 +227,6 @@ exports.initroute = (app, express, server) => {
|
||||
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",
|
||||
@@ -263,7 +251,19 @@ exports.initroute = (app, express, server) => {
|
||||
|
||||
// Playlists
|
||||
app.get("/playlistdb/v1/playlists", function (request, response) {
|
||||
response.send(core.main.playlistdb);
|
||||
response.send(core.generatePlaylist().playlistdb);
|
||||
});
|
||||
app.post("/carousel/v2/pages/jd2019-playlists", (request, response) => {
|
||||
response.send(core.generatePlaylist().playlistcategory);
|
||||
});
|
||||
app.post("/carousel/v2/pages/jd2020-playlists", (request, response) => {
|
||||
response.send(core.generatePlaylist().playlistcategory);
|
||||
});
|
||||
app.post("/carousel/v2/pages/jd2021-playlists", (request, response) => {
|
||||
response.send(core.generatePlaylist().playlistcategory);
|
||||
});
|
||||
app.post("/carousel/v2/pages/jd2022-playlists", (request, response) => {
|
||||
response.send(core.generatePlaylist().playlistcategory);
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
{
|
||||
"name": "Test Playlist",
|
||||
"RecommendedName": "Test Playlist",
|
||||
"id": "TestPlaylist",
|
||||
"description": "IHIR888 LEKAS",
|
||||
"coverURL": "https://imgur.com/QB3Ixkl.png",
|
||||
"showOnCarousel": false,
|
||||
"filters": true,
|
||||
"fixedMapOrder": false,
|
||||
"fallback": false,
|
||||
"pinned": false,
|
||||
"songlist": [
|
||||
"Despacito"
|
||||
]
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"isPublic": true,
|
||||
"enableSSL": true,
|
||||
"domain": "jdp.justdancenext.xyz",
|
||||
"modName": "Just Dance Unlimited Mod",
|
||||
"serverstatus": {
|
||||
"isMaintenance": false,
|
||||
"channel": "prod"
|
||||
|
||||
Reference in New Issue
Block a user