diff --git a/preload.js b/preload.js index 6cdaebdd..5a09c845 100644 --- a/preload.js +++ b/preload.js @@ -5,6 +5,8 @@ const { remote } = require("electron"); const config = require("./config"); const { fileExists } = require("./plugins/utils"); const setupFrontLogger = require("./providers/front-logger"); +const setupSongControl = require("./providers/song-controls-front"); +const setupSongInfo = require("./providers/song-info-front"); const plugins = config.plugins.getEnabled(); @@ -37,8 +39,10 @@ document.addEventListener("DOMContentLoaded", () => { }); // inject song-info provider - const songInfoProviderPath = path.join(__dirname, "providers", "song-info-front.js") - fileExists(songInfoProviderPath, require(songInfoProviderPath)); + setupSongInfo(); + + // inject song-control provider + setupSongControl(); // inject front logger setupFrontLogger(); diff --git a/providers/song-controls-front.js b/providers/song-controls-front.js new file mode 100644 index 00000000..c620203f --- /dev/null +++ b/providers/song-controls-front.js @@ -0,0 +1,18 @@ +const { ipcRenderer } = require("electron"); + +let videoStream; +module.exports = () => { + videoStream = document.querySelector(".video-stream"); + + ipcRenderer.on("playPause", () => { + if (!videoStream) { + videoStream = document.querySelector(".video-stream"); + } + + if (videoStream.paused) { + videoStream.play(); + } else { + videoStream.yns_pause(); + } + }); +} \ No newline at end of file diff --git a/providers/song-controls.js b/providers/song-controls.js index 7f43df11..5d3ad953 100644 --- a/providers/song-controls.js +++ b/providers/song-controls.js @@ -12,7 +12,7 @@ module.exports = (win) => { // Playback previous: () => pressKey(win, "k"), next: () => pressKey(win, "j"), - playPause: () => pressKey(win, "space"), + playPause: () => win.webContents.send("playPause"), like: () => pressKey(win, "_"), dislike: () => pressKey(win, "+"), go10sBack: () => pressKey(win, "h"),