feat: support subtitle translate for userscript

This commit is contained in:
Gabe
2025-10-15 21:41:09 +08:00
parent 5e67e15842
commit ecab4ab634
9 changed files with 89 additions and 70 deletions

View File

@@ -5,6 +5,8 @@ import { DEFAULT_API_SETTING } from "../config/api.js";
import { DEFAULT_SUBTITLE_SETTING } from "../config/setting.js";
import { injectExternalJs } from "../libs/injector.js";
import { logger } from "../libs/log.js";
import { XMLHttpRequestInjector } from "./XMLHttpRequestInjector.js";
import { injectInlineJs } from "../libs/injector.js";
const providers = [
{ pattern: "https://www.youtube.com", start: YouTubeInitializer },
@@ -19,18 +21,10 @@ export function runSubtitle({ href, setting, isUserscript }) {
const provider = providers.find((item) => isMatch(href, item.pattern));
if (provider) {
const id = "kiss-translator-xmlHttp-injector";
if (isUserscript) {
GM.addElement("script", {
src: "https://github.com/fishjar/kiss-translator/blob/gh-pages/injector.js",
// src: "http://127.0.0.1:8000/injector.js",
type: "text/javascript",
}).onload = function () {
console.log(
"Script successfully injected and loaded via GM_addElement."
);
};
injectInlineJs(`(${XMLHttpRequestInjector})()`, id);
} else {
const id = "kiss-translator-injector";
const src = browser.runtime.getURL("injector.js");
injectExternalJs(src, id);
}