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/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