diff --git a/package.json b/package.json index 15be4d6e..8159088f 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "productName": "YouTube Music", "mac": { "identity": null, + "files": ["!plugins/{taskbar-mediacontrol,notifications/snoretoast}${/*}"], "target": [ { "target": "dmg", @@ -28,6 +29,7 @@ }, "win": { "icon": "assets/generated/icons/win/icon.ico", + "files": ["!plugins/touchbar${/*}"], "target": [ "nsis", "portable" @@ -38,6 +40,7 @@ }, "linux": { "icon": "assets/generated/icons/png", + "files": ["!plugins/{touchbar,taskbar-mediacontrol,notifications/snoretoast}${/*}"], "category": "AudioVideo", "target": [ "AppImage", diff --git a/plugins/notifications/back.js b/plugins/notifications/back.js index 654e3b54..2ca1f56a 100644 --- a/plugins/notifications/back.js +++ b/plugins/notifications/back.js @@ -3,8 +3,6 @@ const is = require("electron-is"); const registerCallback = require("../../providers/song-info"); const { notificationImage } = require("./utils"); -const setupInteractive = require("./interactive") - const notify = (info, options) => { // Fill the notification with content @@ -41,6 +39,6 @@ const setup = (options) => { module.exports = (win, options) => { // Register the callback for new song information is.windows() && options.interactive ? - setupInteractive(win, options.unpauseNotification) : + require("./snoretoast/interactive")(win, options.unpauseNotification) : setup(options); }; diff --git a/plugins/notifications/interactive.js b/plugins/notifications/snoretoast/interactive.js similarity index 82% rename from plugins/notifications/interactive.js rename to plugins/notifications/snoretoast/interactive.js index c30c1020..3f6c062c 100644 --- a/plugins/notifications/interactive.js +++ b/plugins/notifications/snoretoast/interactive.js @@ -1,7 +1,13 @@ -const { notificationImage, icons } = require("./utils"); -const getSongControls = require('../../providers/song-controls'); -const registerCallback = require("../../providers/song-info"); -const notifier = require("node-notifier"); +const { notificationImage, icons } = require("../utils"); +const getSongControls = require('../../../providers/song-controls'); +const registerCallback = require("../../../providers/song-info"); +const WindowsToaster = require('node-notifier').WindowsToaster; + +const notifier = new WindowsToaster({ + withFallback: true, + // see https://github.com/th-ch/youtube-music/pull/591 + customPath: require("path").join(__dirname, 'snoretoast-x64.exe') +}); //store song controls reference on launch let controls; @@ -17,11 +23,11 @@ module.exports = (win, unpauseNotification) => { // Register songInfoCallback registerCallback(songInfo => { - if (!songInfo.isPaused && (songInfo.url !== currentUrl || notificationOnUnpause)) { + if (!songInfo.isPaused && (songInfo.url !== currentUrl || notificationOnUnpause)) { currentUrl = songInfo.url; sendToaster(songInfo); - } - }); + } + }); win.webContents.once("closed", () => { deleteNotification() @@ -48,7 +54,7 @@ function sendToaster(songInfo) { //download image and get path let imgSrc = notificationImage(songInfo, true); toDelete = { - //app id undefined - will break buttons + appID: "com.github.th-ch.youtube-music", title: songInfo.title || "Playing", message: songInfo.artist, id: parseInt(Math.random() * 1000000, 10), diff --git a/plugins/notifications/snoretoast/snoretoast-x64.exe b/plugins/notifications/snoretoast/snoretoast-x64.exe new file mode 100644 index 00000000..e2e0bb90 Binary files /dev/null and b/plugins/notifications/snoretoast/snoretoast-x64.exe differ