Files
2024-12-30 14:16:40 +02:00

45 lines
1.3 KiB
JavaScript

import { isValidURL } from "../utils/misc.js";
import { findPath } from "../utils/paths.js";
import fs from 'fs';
const youtube = fs.readFileSync(await findPath('youtubeutils.js')),
contextmenu = fs.readFileSync(await findPath('contextmenu.js'));
/**
* @param {Electron.WebContents} contents
*/
const youtubeinject = (contents) => {
const f = () => contents.executeJavaScript(youtube).then(() => contents.executeJavaScript('injectDislike()'));
contents.addListener('did-finish-load', f);
contents.addListener('did-navigate', async (_) => {
const hostname = await contents.executeJavaScript('window.location.hostname');
if (hostname !== 'www.youtube.com') return contents.removeListener('did-navigate', f);
else f();
})
}
/**
* @param {Electron.WebContents} contents
*/
const contextMenuInject = (contents) => contents.executeJavaScript(contextmenu).catch(console.error);
/**
* @param {Electron.WebContents} contents
*/
export default async function addonManager(contents) {
try {
contextMenuInject(contents);
const hostname = await contents.executeJavaScript('window.location.hostname');
if (hostname === 'www.youtube.com') return youtubeinject(contents);
return {};
}
catch (err) {
console.error(err);
return {};
}
}