diff --git a/package.json b/package.json index 336fbedb..5b8f1e90 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "dependencies": { "@sentry/electron": "^3.0.7", "@sentry/integrations": "^6.19.6", - "adm-zip": "0.5.9", + "adm-zip": "0.4.10", "castv2-client": "^1.2.0", "chokidar": "^3.5.3", "discord-rpc": "^4.0.1", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index fc6bf7cb..371aaed4 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -645,6 +645,35 @@ export class BrowserWindow { * ipcMain Events ****************************************************************************************************************** */ + ipcMain.handle("mkv3", async (event, args) => { + const options = { + route: "", + token: "", + mediaToken: "", + GETBody: {} + } + Object.assign(options, args); + + let res = await fetch( + `https://amp-api.music.apple.com/${options.route}?${new URLSearchParams({ + ...options.GETBody + }).toString()}`, + { + method: "GET", + headers: { + "Content-Type": "application/json", + authorization: `Bearer ${options.token}`, + path: options.route, + authority: "amp-api.music.apple.com", + "media-user-token": options.mediaToken, + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cider/1.4.2 Chrome/100.0.4896.75 Electron/18.0.3 Safari/537.36" + }, + } + ); + let json = await res.json(); + return json; + }) + ipcMain.on("get-wallpaper", async (event) => { const wpPath: string = await wallpaper.get(); // get the wallpaper and encode it to base64 then return diff --git a/src/main/index.ts b/src/main/index.ts index acf11155..300a7058 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -50,12 +50,13 @@ app.on('ready', () => { }) console.log('[Cider][Widevine] Status:', components.status()); - win.show(); + win.on("ready-to-show", () => { Cider.bwCreated(); console.debug('[Cider] Window is Ready.') CiderPlug.callPlugins('onReady', win); + win.show(); }); }); diff --git a/src/renderer/main/musickittools.js b/src/renderer/main/musickittools.js index 8967f4a9..ee8ad40c 100644 --- a/src/renderer/main/musickittools.js +++ b/src/renderer/main/musickittools.js @@ -1,30 +1,44 @@ const MusicKitTools = { - async v3Continuous ({ - href, - options = {}, - reqOptions = {}, - onProgress = () => {}, - onError = () => {}, - onSuccess = () => {} - } = {}) { + async v3Backend({ + route = "", getBody = {}, options = {} + }) { + return await (await ipcRenderer.invoke("mkv3", { + token: MusicKit.getInstance().developerToken, + route: route, + mediaToken: MusicKit.getInstance().musicUserToken, + GETBody: getBody + })) + }, + async v3Continuous({ + href, + options = {}, + reqOptions = {}, + onProgress = () => { + }, + onError = () => { + }, + onSuccess = () => { + } + } = {}) { let returnData = [] + async function sendReq(href, options) { const response = await app.mk.api.v3.music(href, options).catch(error => onError) - + returnData = returnData.concat(response.data.data) - if(response.data.next) { + if (response.data.next) { onProgress({ response: response, total: returnData.length }) try { await sendReq(response.data.next, options) - }catch(e){ + } catch (e) { await sendReq(response.data.next, options) } } } - + await sendReq(href, options) onSuccess(returnData) return returnData @@ -39,4 +53,4 @@ const MusicKitTools = { } } -export { MusicKitTools } \ No newline at end of file +export {MusicKitTools} \ No newline at end of file