From c8be288c662b46ba87a77475e9d84555c34c6137 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 3 Mar 2022 05:25:02 -0800 Subject: [PATCH] added v3continuous --- src/renderer/index.js | 13 ------ src/renderer/main/app.js | 2 + src/renderer/main/musickittools.js | 27 ++++++++++++ src/renderer/main/vueapp.js | 66 ------------------------------ 4 files changed, 29 insertions(+), 79 deletions(-) create mode 100644 src/renderer/main/musickittools.js diff --git a/src/renderer/index.js b/src/renderer/index.js index 9e0c01ec..b1f3ccc6 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -13,19 +13,6 @@ const MusicKitObjects = { } } - - -const MusicKitTools = { - getHeader() { - return new Headers({ - Authorization: 'Bearer ' + MusicKit.getInstance().developerToken, - Accept: 'application/json', - 'Content-Type': 'application/json', - 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken - }); - } -} - // limit an array to a certain number of items Array.prototype.limit = function (n) { return this.slice(0, n); diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js index a5bfe938..c3c2b59b 100644 --- a/src/renderer/main/app.js +++ b/src/renderer/main/app.js @@ -5,10 +5,12 @@ import {simulateGamepad} from './gamepad.js' import {CiderAudio} from '../audio/audio.js' import {Events} from './events.js' import { wsapi } from "./wsapi_interop.js" +import { MusicKitTools } from "./musickittools.js" // Define window objects window.app = app +window.MusicKitTools = MusicKitTools window.CiderAudio = CiderAudio window.CiderCache = CiderCache window.CiderFrontAPI = CiderFrontAPI diff --git a/src/renderer/main/musickittools.js b/src/renderer/main/musickittools.js new file mode 100644 index 00000000..7e368fa5 --- /dev/null +++ b/src/renderer/main/musickittools.js @@ -0,0 +1,27 @@ +const MusicKitTools = { + async v3Continuous (href, options = {}, reqOptions = {}) { + let returnData = [] + async function sendReq(href, options) { + const response = await app.mk.api.v3.music(href, options) + + returnData = returnData.concat(response.data.data) + if(response.data.next) { + await sendReq(response.data.next, options) + } + } + + await sendReq(href, options) + + return returnData + }, + getHeader() { + return new Headers({ + Authorization: 'Bearer ' + MusicKit.getInstance().developerToken, + Accept: 'application/json', + 'Content-Type': 'application/json', + 'Music-User-Token': '' + MusicKit.getInstance().musicUserToken + }); + } +} + +export { MusicKitTools } \ No newline at end of file diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index a049b9d7..3ff76ad8 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -1735,72 +1735,6 @@ const app = new Vue({ app.mk.play() }) } - // else if (kind.includes("playlist") && (id.startsWith("p.") || id.startsWith("pl."))){ - // /* Randomize array in-place using Durstenfeld shuffle algorithm */ - // function shuffleArray(array) { - // for (var i = array.length - 1; i > 0; i--) { - // var j = Math.floor(Math.random() * (i + 1)); - // var temp = array[i]; - // array[i] = array[j]; - // array[j] = temp; - // } - // } - // app.mk.clearQueue().then(function () { { - // app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () { - // app.mk.play().then(function (){ - // app.mk.clearQueue().then(function (){ - // var playlistId = id - // const params = { - // include: "tracks", - // platform: "web", - // "include[library-playlists]": "catalog,tracks", - // "fields[playlists]": "curatorName,playlistType,name,artwork,url", - // "include[library-songs]": "catalog,artists,albums", - // "fields[catalog]": "artistUrl,albumUrl", - // "fields[songs]": "artistUrl,albumUrl" - // } - // var playlistId = '' - - // try { - // function getPlaylist(id, params, isLibrary){ - // if (isLibrary){ - // return app.mk.api.library.playlist(id, params) - // } else { return app.mk.api.playlist(id, params)} - // } - // getPlaylist(id, params, isLibrary).then(res => { - // let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item)); - // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')} - // app.mk.queue.append(query) - // if (!res.relationships.tracks.next) { - // return - // } else { - // getPlaylistTracks(res.relationships.tracks.next) - // } - - // function getPlaylistTracks(next) { - // app.apiCall(app.musicBaseUrl + next, res => { - // if (res.id != playlistId) { - // return - // } - // let query = res.data.map(item => new MusicKit.MediaItem(item)) - // if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')} - // app.mk.queue.append(query) - - // if (res.next) { - // getPlaylistTracks(res.next) - // } - // }) - // } - // }) - // } catch (e) {} - - - // }) - // }) - // }) - // } - // }) - // } else { app.playMediaItemById((id), (kind), (isLibrary), item.attributes.url ?? '') }