mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-14 11:51:47 +00:00
Use contextBridge in preload script + update navigation plugin
This commit is contained in:
@ -1,24 +1,24 @@
|
|||||||
const { triggerAction } = require('../utils');
|
const { triggerAction } = require("../utils");
|
||||||
|
|
||||||
const CHANNEL = "navigation";
|
const CHANNEL = "navigation";
|
||||||
const ACTIONS = {
|
const ACTIONS = {
|
||||||
NEXT: "next",
|
NEXT: "next",
|
||||||
BACK: 'back',
|
BACK: "back",
|
||||||
}
|
};
|
||||||
|
|
||||||
function goToNextPage() {
|
function goToNextPage() {
|
||||||
triggerAction(CHANNEL, ACTIONS.NEXT);
|
triggerAction(CHANNEL, ACTIONS.NEXT);
|
||||||
}
|
}
|
||||||
|
|
||||||
function goToPreviousPage() {
|
function goToPreviousPage() {
|
||||||
triggerAction(CHANNEL, ACTIONS.BACK);
|
triggerAction(CHANNEL, ACTIONS.BACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
CHANNEL: CHANNEL,
|
CHANNEL: CHANNEL,
|
||||||
ACTIONS: ACTIONS,
|
ACTIONS: ACTIONS,
|
||||||
global: {
|
actions: {
|
||||||
goToNextPage: goToNextPage,
|
goToNextPage: goToNextPage,
|
||||||
goToPreviousPage: goToPreviousPage,
|
goToPreviousPage: goToPreviousPage,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,23 +1,23 @@
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
const { injectCSS, listenAction } = require("../utils");
|
const { injectCSS, listenAction } = require("../utils");
|
||||||
const { ACTIONS, CHANNEL } = require("./actions.js");
|
const { ACTIONS, CHANNEL } = require("./actions.js");
|
||||||
|
|
||||||
function handle(win) {
|
function handle(win) {
|
||||||
injectCSS(win.webContents, path.join(__dirname, "style.css"));
|
injectCSS(win.webContents, path.join(__dirname, "style.css"));
|
||||||
listenAction(CHANNEL, (event, action) => {
|
listenAction(CHANNEL, (event, action) => {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ACTIONS.NEXT:
|
case ACTIONS.NEXT:
|
||||||
if (win.webContents.canGoForward()) {
|
if (win.webContents.canGoForward()) {
|
||||||
win.webContents.goForward();
|
win.webContents.goForward();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ACTIONS.BACK:
|
case ACTIONS.BACK:
|
||||||
if (win.webContents.canGoBack()) {
|
if (win.webContents.canGoBack()) {
|
||||||
win.webContents.goBack();
|
win.webContents.goBack();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log("Unknown action: " + action);
|
console.log("Unknown action: " + action);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
|
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
|
||||||
tab-id="FEmusic_back"
|
tab-id="FEmusic_back"
|
||||||
role="tab"
|
role="tab"
|
||||||
onclick="goToPreviousPage()"
|
onclick="navigationActions.goToPreviousPage()"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="search-icon style-scope ytmusic-search-box"
|
class="search-icon style-scope ytmusic-search-box"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
|
class="style-scope ytmusic-pivot-bar-renderer navigation-item"
|
||||||
tab-id="FEmusic_next"
|
tab-id="FEmusic_next"
|
||||||
role="tab"
|
role="tab"
|
||||||
onclick="goToNextPage()"
|
onclick="navigationActions.goToNextPage()"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="search-icon style-scope ytmusic-search-box"
|
class="search-icon style-scope ytmusic-search-box"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
const { remote } = require("electron");
|
const { contextBridge, remote } = require("electron");
|
||||||
|
|
||||||
const config = require("./config");
|
const config = require("./config");
|
||||||
const { fileExists } = require("./plugins/utils");
|
const { fileExists } = require("./plugins/utils");
|
||||||
@ -10,10 +10,8 @@ const plugins = config.plugins.getEnabled();
|
|||||||
plugins.forEach(([plugin, options]) => {
|
plugins.forEach(([plugin, options]) => {
|
||||||
const pluginPath = path.join(__dirname, "plugins", plugin, "actions.js");
|
const pluginPath = path.join(__dirname, "plugins", plugin, "actions.js");
|
||||||
fileExists(pluginPath, () => {
|
fileExists(pluginPath, () => {
|
||||||
const actions = require(pluginPath).global || {};
|
const actions = require(pluginPath).actions || {};
|
||||||
Object.keys(actions).forEach((actionName) => {
|
contextBridge.exposeInMainWorld(plugin + "Actions", actions);
|
||||||
global[actionName] = actions[actionName];
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user