您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Unicode Blocker, menyembunyikan komentar dan balasan YouTube yang mengandung karakter khusus (bold, italic, full-width, dll.)
// ==UserScript== // @name YT Comment & Reply Filter // @namespace https://www.youtube.com/@MochAdiCH // @version 1.5 // @description Unicode Blocker, menyembunyikan komentar dan balasan YouTube yang mengandung karakter khusus (bold, italic, full-width, dll.) // @author Mochamad Adi MR (adimuham.mad) // @match *://www.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant none // @license MIT // @supportURL https://gist.github.com/adimuhamad/143a06052413aaecb6ddf1a4e39103c1#new_comment_field // @run-at document-end // ==/UserScript== (function() { 'use strict'; // Regex yang benar untuk mendeteksi karakter spesial Unicode const forbiddenRegex = /[\u2100-\u214F\u2460-\u24FF\u2C00-\u2C5F\uFF00-\uFFEF\uD835][\uDC00-\uDFFF]+/; function removeBadComments() { let comments = document.querySelectorAll("#content-text"); // Elemen teks komentar utama comments.forEach(comment => { if (forbiddenRegex.test(comment.innerText)) { let commentContainer = comment.closest("ytd-comment-thread-renderer"); // Ambil elemen komentar utama if (commentContainer) { commentContainer.style.display = "none"; // Sembunyikan komentar utama } } }); } function removeBadReply() { let replies = document.querySelectorAll("ytd-comment-view-model.ytd-comment-replies-renderer"); // Elemen balasan komentar replies.forEach(reply => { if (forbiddenRegex.test(reply.innerText)) { let replyContainer = reply.closest("ytd-comment-replies-renderer"); // Ambil elemen balasan komentar if (replyContainer) { replyContainer.style.display = "none"; // Sembunyikan balasan komentar } } }); } // Jalankan filter pertama kali setelah halaman dimuat setTimeout(removeBadComments, 3000); // Pantau perubahan di DOM (jika ada komentar atau balasan baru) const observer = new MutationObserver(() => { removeBadComments(); removeBadReply(); }); observer.observe(document.body, { childList: true, subtree: true }); })();