mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-16 20:52:06 +00:00
Merge pull request #212 from SapuSeven/master
Add configurable notification urgency
This commit is contained in:
@ -39,6 +39,10 @@ const defaultConfig = {
|
|||||||
activityTimoutEnabled: true, // if enabled, the discord rich presence gets cleared when music paused after the time specified below
|
activityTimoutEnabled: true, // if enabled, the discord rich presence gets cleared when music paused after the time specified below
|
||||||
activityTimoutTime: 10 * 60 * 1000 // 10 minutes
|
activityTimoutTime: 10 * 60 * 1000 // 10 minutes
|
||||||
},
|
},
|
||||||
|
notifications: {
|
||||||
|
enabled: false,
|
||||||
|
urgency: "normal"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
const { Notification } = require("electron");
|
const { Notification } = require("electron");
|
||||||
const getSongInfo = require("../../providers/song-info");
|
const getSongInfo = require("../../providers/song-info");
|
||||||
|
|
||||||
const notify = info => {
|
const notify = (info, options) => {
|
||||||
let notificationImage = "assets/youtube-music.png";
|
let notificationImage = "assets/youtube-music.png";
|
||||||
|
|
||||||
if (info.image) {
|
if (info.image) {
|
||||||
@ -14,27 +14,28 @@ const notify = info => {
|
|||||||
body: info.artist,
|
body: info.artist,
|
||||||
icon: notificationImage,
|
icon: notificationImage,
|
||||||
silent: true,
|
silent: true,
|
||||||
|
urgency: options.urgency,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Send the notification
|
// Send the notification
|
||||||
currentNotification = new Notification(notification);
|
currentNotification = new Notification(notification);
|
||||||
currentNotification.show()
|
currentNotification.show()
|
||||||
|
|
||||||
return currentNotification;
|
return currentNotification;
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = (win) => {
|
module.exports = (win, options) => {
|
||||||
const registerCallback = getSongInfo(win);
|
const registerCallback = getSongInfo(win);
|
||||||
let oldNotification;
|
let oldNotification;
|
||||||
win.on("ready-to-show", () => {
|
win.on("ready-to-show", () => {
|
||||||
// Register the callback for new song information
|
// Register the callback for new song information
|
||||||
registerCallback(songInfo => {
|
registerCallback(songInfo => {
|
||||||
// If song is playing send notification
|
// If song is playing send notification
|
||||||
if (!songInfo.isPaused) {
|
if (!songInfo.isPaused) {
|
||||||
// Close the old notification
|
// Close the old notification
|
||||||
oldNotification?.close();
|
oldNotification?.close();
|
||||||
// This fixes a weird bug that would cause the notification to be updated instead of showing
|
// This fixes a weird bug that would cause the notification to be updated instead of showing
|
||||||
setTimeout(()=>{ oldNotification = notify(songInfo) }, 10);
|
setTimeout(()=>{ oldNotification = notify(songInfo, options) }, 10);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
13
plugins/notifications/menu.js
Normal file
13
plugins/notifications/menu.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
const {urgencyLevels, setUrgency} = require("./utils");
|
||||||
|
|
||||||
|
module.exports = (win, options) => [
|
||||||
|
{
|
||||||
|
label: "Notification Priority",
|
||||||
|
submenu: urgencyLevels.map(level => ({
|
||||||
|
label: level.name,
|
||||||
|
type: "radio",
|
||||||
|
checked: options.urgency === level.value,
|
||||||
|
click: () => setUrgency(options, level.value)
|
||||||
|
})),
|
||||||
|
},
|
||||||
|
];
|
||||||
11
plugins/notifications/utils.js
Normal file
11
plugins/notifications/utils.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
const {setOptions} = require("../../config/plugins");
|
||||||
|
|
||||||
|
module.exports.urgencyLevels = [
|
||||||
|
{name: "Low", value: "low"},
|
||||||
|
{name: "Normal", value: "normal"},
|
||||||
|
{name: "High", value: "critical"},
|
||||||
|
];
|
||||||
|
module.exports.setUrgency = (options, level) => {
|
||||||
|
options.urgency = level
|
||||||
|
setOptions("notifications", options)
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user