From dcc82aa72ef9df62c90f4710fcc838dd1192d931 Mon Sep 17 00:00:00 2001 From: Core Date: Thu, 22 Sep 2022 23:45:42 +0100 Subject: [PATCH] Musickit error handling --- src/i18n/en_US.json | 1 + src/renderer/main/vueapp.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 9163dd1b..d17e39db 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -229,6 +229,7 @@ "home.followedArtists": "Followed Artists", "error.appleMusicSubRequired": "Apple Music requires a subscription.", "error.connectionError": "There was a problem connecting to Apple Music.", + "error.musickitError": "MusicKit Encountered an Error: ", "error.noResults": "No Results.", "error.noResults.description": "Try a new search.", "podcast.followOnCider": "Follow On Cider", diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 49b3606c..f11d4470 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -305,6 +305,20 @@ const app = new Vue({ app.cfg.musickit["stored-attributes"][attr] = val; }); } + const ERROR_CODES = ["drmUnsupported", "mediaPlaybackError"]; + /* MusicKit.Events */ + ERROR_CODES.forEach((code) => { + MusicKit.getInstance().addEventListener(MusicKit.Events[code], (e) => { + console.error(`[MusicKit] MusicKit Error ${code}`); + console.error({ e: e }); + app.notyf.open({ + duration: 20000, + type: "error", + className: "notyf-info", + message: `${app.getLz("error.musickitError")} \n${code.toUpperCase()}`, + }); + }); + }); }, async oobeInit() { this.appMode = "oobe";