// ==UserScript== // @name Text Filter // @namespace mailto:kalobkalob@yahoo.com // @version 1 // @description For the following sites, this will allow you to auto-filter selected text. // @author You // @match https://www.fanfiction.net/s/* // @match https://forums.sufficientvelocity.com/threads/* // @match https://forums.spacebattles.com/threads/* // @match https://forum.questionablequesting.com/threads/* // @match https://www.tthfanfic.org/Story* // @match https://www.tthfanfic.org/wholestory* // @grant GM_registerMenuCommand // @downloadURL none // ==/UserScript== class Page { constructor(){ console.clear(); GM_registerMenuCommand("XFilter Selected", ()=>this.deleteSelected(), 'x'); this.storyChildElements = window.location.pathname.split('/')[1]=="wholestory.php"; this.location = window.location.host.split('.')[1]; this.storyClassName = { fanfiction:"storytext xcontrast_txt nocopy", questionablequesting:"messageText SelectQuoteContainer ugc baseHtml", tthfanfic:"paragraphs", spacebattles:"bbWrapper", sufficientvelocity:"bbWrapper" } this.storyNodes = this.getStoryContainer(); } tagFilter(target){ return target.filter((b,i)=>{ if(b.tagName=="BR"||b.textContent==""||b.textContent.trim().length==0)return false; return true; }); } getStoryContainer(){ var cont=document.getElementsByClassName(this.storyClassName[this.location]); var nodes = []; var subElements = []; for(let i=0,len=cont.length;i