您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
wildcard support [%] for Gab.ai censor words
// ==UserScript== // @name Gab.ai Better Censor words // @namespace https://gab.ai/Jeremy20_9 // @version 0.3 // @description wildcard support [%] for Gab.ai censor words // @author Jeremiah 20:9 // @match https://gab.ai/self-censor* // @match https://gab.ai/* // @grant none // ==/UserScript== var list = null; if(window.location.href.indexOf("https://gab.ai/self-censor") == 0) { //----- SELF CENSOR PAGE ------------------------------------------ $(document).ready(function(){ list = $("ul.censor-list--word")[0]; list.addEventListener('DOMSubtreeModified', handleListPopulate); setTimeout(handleListPopulate, 500); }); } else { //----- OTHER PAGES ----------------------------------------------- $(document).ready(function(){ var cwords = localStorage.getItem("gab-censored-words"); if(!cwords) return; cwords = JSON.parse(cwords); if(cwords.length == 0) return; list = $("#home-post-list,#user-post-list")[0]; if(!list) return; list.addEventListener('DOMSubtreeModified', handleUserPosts); }); } function handleUserPosts() { var cwords = localStorage.getItem("gab-censored-words"); cwords = JSON.parse(cwords); var posts = $("div.post").not(".post--load"); var plist = (userpostlist == undefined || userpostlist.posts.length == 0) ? postlist : userpostlist; if(posts.length < 2 || plist == undefined || plist.posts.length == 0) return; for(var c in cwords) { var regex = new RegExp(cwords[c], "gmi"); for(var p = 0; p < plist.posts.length; p++) { if(regex.test(plist.posts[p].post.body)) { plist.posts.splice(p,1); p--; } } } } function handleListPopulate() { var censorwords = []; if(!censorPreferences.words) return; for(var w in censorPreferences.words) { var word = censorPreferences.words[w]; word = "(^|\\b)" + word.replace("%", "[\\w]*") + "\\b"; censorwords.push(word); } list.removeEventListener('DOMSubtreeModified', handleListPopulate); localStorage.setItem("gab-censored-words", JSON.stringify(censorwords)); }