您需要先安装一个扩展,例如 篡改猴、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));
- }