fix: skip builtin ignore selector when autoscan disabled

This commit is contained in:
Gabe
2025-10-31 00:22:26 +08:00
parent 7343db78a5
commit 635e588bcc
3 changed files with 17 additions and 4 deletions

View File

@@ -224,6 +224,11 @@ const RULES_MAP = {
rootsSelector: `ytd-page-manager`,
ignoreSelector: `aside, button, footer, form, header, pre, mark, nav, #player, #container, .caption-window, .ytp-settings-menu`,
},
"web.telegram.org": {
autoScan: `false`,
selector: ".text-content, .embedded-text-wrapper",
rootsSelector: ".Transition",
},
};
export const BUILTIN_RULES = Object.entries(RULES_MAP).map(

View File

@@ -261,13 +261,17 @@ export class Translator {
}
// 内置忽略元素
static KISS_IGNORE_SELECTOR = `${APP_LCNAME}, .kiss-caption-container, .kiss-subtitle-controls
#${APP_CONSTS.fabID}, .${APP_CONSTS.fabID}_warpper,
#${APP_CONSTS.boxID}, .${APP_CONSTS.boxID}_warpper,
#${APP_CONSTS.popupID}, .${APP_CONSTS.popupID}_warpper`;
static BUILTIN_IGNORE_SELECTOR = `address, area, audio, br, canvas,
data, datalist, embed, head, iframe, input, noscript, map,
object, option, param, picture, progress,
select, script, style, track, textarea, template,
video, wbr, .notranslate, [contenteditable], [translate='no'],
${APP_LCNAME}, #${APP_CONSTS.fabID}, #${APP_CONSTS.boxID},
.${APP_CONSTS.fabID}_warpper, .${APP_CONSTS.boxID}_warpper`;
${Translator.KISS_IGNORE_SELECTOR}`;
#setting; // 设置选项
#rule; // 规则
@@ -314,6 +318,10 @@ export class Translator {
// 忽略元素
get #ignoreSelector() {
if (this.#rule.autoScan === "false") {
return `${Translator.KISS_IGNORE_SELECTOR}, ${this.#rule.ignoreSelector}`;
}
return `${Translator.BUILTIN_IGNORE_SELECTOR}, ${this.#rule.ignoreSelector}`;
}

View File

@@ -165,14 +165,14 @@ class YouTubeCaptionProvider {
this.#ytControls = ytControls;
const kissControls = document.createElement("div");
kissControls.className = "kiss-bilingual-subtitle-controls";
kissControls.className = "notranslate kiss-subtitle-controls";
Object.assign(kissControls.style, {
height: "100%",
});
const toggleButton = document.createElement("button");
toggleButton.className =
"ytp-button notranslate kiss-bilingual-subtitle-button";
"ytp-button kiss-subtitle-button";
toggleButton.title = APP_NAME;
Object.assign(toggleButton.style, {
color: "white",