// ==UserScript==
// @name SubHD屏蔽机翻字幕
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 添加启用/禁用屏蔽机器翻译字幕的开关按钮,通过按钮样式区分状态
// @license MIT
// @match https://subhd.tv/d/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=subhd.tv
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/519889/SubHD%E5%B1%8F%E8%94%BD%E6%9C%BA%E7%BF%BB%E5%AD%97%E5%B9%95.user.js
// @updateURL https://update.greasyfork.icu/scripts/519889/SubHD%E5%B1%8F%E8%94%BD%E6%9C%BA%E7%BF%BB%E5%AD%97%E5%B9%95.meta.js
// ==/UserScript==
(function () {
'use strict';
const blockKeyword = "机器翻译"; // 屏蔽关键字
let isEnabled = true; // 默认启用屏蔽
// 添加屏蔽按钮
const addToggleButton = () => {
const viewText = document.querySelector('.pt-4.view-text');
if (!viewText) return;
const subscribeBtn = viewText.querySelector('button.btn[role="button"]');
if (!subscribeBtn) return;
// 插入屏蔽按钮
const btnHTML = `
`;
subscribeBtn.insertAdjacentHTML('afterend', btnHTML);
const toggleButton = document.getElementById('toggleTranslateFilter');
toggleButton.addEventListener('click', () => {
isEnabled = !isEnabled;
updateButtonStyle(toggleButton);
if (isEnabled) {
hideTranslatedEntries();
} else {
document.querySelectorAll('.row.pt-2.mb-2').forEach(row => row.style.display = '');
}
});
};
// 更新按钮样式
const updateButtonStyle = (button) => {
if (isEnabled) {
button.className = "btn btn-info btn-sm f12 me-1 fav";
button.innerHTML = `
屏蔽机翻
`;
} else {
button.className = "btn btn-outline-info btn-sm f12 me-1 fav";
button.innerHTML = `
屏蔽机翻
`;
}
};
// 隐藏含关键字的条目
const hideTranslatedEntries = () => {
document.querySelectorAll('.row.pt-2.mb-2').forEach(row => {
if (row.querySelector('.bg-secondary') && row.querySelector('.bg-secondary').textContent.includes(blockKeyword)) {
row.style.display = 'none'; // 隐藏含“机器翻译”条目
}
});
};
// 监听页面变化,动态屏蔽新增条目
const observer = new MutationObserver(() => {
if (isEnabled) hideTranslatedEntries();
});
observer.observe(document.body, { childList: true, subtree: true });
// 初始设置
addToggleButton();
if (isEnabled) hideTranslatedEntries(); // 默认启用时屏蔽
})();