Created
December 7, 2015 04:31
-
-
Save Craigson/3519cb6f9f65ddaa4a8c to your computer and use it in GitHub Desktop.
testing GOTblocker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| TO DO: | |
| - IF A DIV CONTAINS ANY WORDS RELATED TO GOT, SWAP THE IMAGE | |
| - IF A SENTENCE CONTAINS ANY WORDS RELATING TO GOT, REDACT IT | |
| */ | |
| // Grab the entire document body | |
| // This gets an array even though it's likely just one thing | |
| var everything = document.getElementsByTagName("body"); | |
| var keywords = [ | |
| "Game of Thrones", | |
| "GOT", | |
| "George R. R. Martin", | |
| "Iron Throne", | |
| "westeros", | |
| "tyrion", | |
| "lannister", | |
| "cersei", | |
| "daenerys", | |
| "targaryen", | |
| "jon snow", | |
| "john snow", | |
| "sansa stark", | |
| "arya", | |
| "stark", | |
| "jorah mormont", | |
| "jaime lannister", | |
| "samwell tarly", | |
| "theon greyjoy", | |
| "petyr baelish", | |
| "varys", | |
| "brienne of tarth", | |
| "tywin lannister", | |
| "sandor", | |
| "tywin", | |
| "sandor clegane", | |
| "bronn", | |
| "joffrey baratheon", | |
| "baratheon", | |
| "catelyn stark", | |
| "bran stark", | |
| "stannis baratheon", | |
| "missandre", | |
| "robb stark", | |
| "margaery tyrell", | |
| "davos seaworth", | |
| "shae", | |
| "melisandre", | |
| "gilly", | |
| "tommen baratheon", | |
| "roose bolton", | |
| "tormund giantsbane", | |
| "gendry", | |
| "ygritte", | |
| "daario naharis", | |
| "ramsay bolton", | |
| "jaqen H'ghar", | |
| "jeor mormont", | |
| "talisa stark", | |
| "ned stark", | |
| "khal drogo", | |
| "ellaria sand", | |
| "robert baratheon", | |
| "vierys targaryen", | |
| "targaryen", | |
| "grand maester pycelle", | |
| "barristan selmy", | |
| "eddison tollett", | |
| "podrick payne", | |
| "grenn", | |
| "hodor", | |
| "loras tyrell", | |
| "meryn trant", | |
| "grey worm", | |
| "alliser thorne", | |
| "janos slynt", | |
| "osha", | |
| "maester luwin", | |
| "rooseolly", | |
| "lancel lannister", | |
| "myrcella baratheon", | |
| "pypar", | |
| "irri", | |
| "rickon stark", | |
| "rast", | |
| "rodrik cassel", | |
| "olenna tyrell", | |
| "hot pie", | |
| "maester aemon", | |
| "qyburn", | |
| "selyse baratheon", | |
| "doreah", | |
| "othell yarwyck", | |
| "shireen baratheon", | |
| "jojen reed", | |
| "oberyn martell", | |
| "mance rayder", | |
| "high sparrow", | |
| "hallyne", | |
| "arryn", | |
| "bolton", | |
| "frey", | |
| "greyjoy", | |
| "lannister", | |
| "martell", | |
| "stark", | |
| "targaryan", | |
| "tully", | |
| "tyrell", | |
| "essos", | |
| "westeros", | |
| "night's watch", | |
| "beyond the wall", | |
| "white walkers", | |
| "crows" | |
| ]; | |
| /* | |
| var loadKeywords = function(){ | |
| var xhr = new XMLHttpRequest(); | |
| xhr.onreadystatechange = function(){ | |
| if(xhr.readystate === 4) { | |
| console.log("we got the file", JSON.parse(xhrrespnse)); | |
| } | |
| }; | |
| xhr.open("GET", chrome.extension.getURL("/keywords.json"), true); | |
| xhr.send(); | |
| } | |
| loadKeywords(); | |
| */ | |
| var divArray = []; | |
| for (var i = 0; i < everything.length; i++) { | |
| // Look at the full content | |
| var txt = everything[i].innerHTML; | |
| //var s = "test the <img the> the"; | |
| // This is a way of splitting up by tags. | |
| var tokens = txt.split(/(<.*?>)/); | |
| // console.log("logging tokens"); | |
| // console.log(tokens); | |
| for (var j = 0; j < tokens.length; j++) { | |
| // Ignore anything that is a tag | |
| if (tokens[j].charAt(0) !== '<') { | |
| // Now replace the word "the" with "the" spanned with the class "redact" | |
| // tokens[j] = tokens[j].replace(/\bthe\b/gi,'<span class="redact">the</span>'); | |
| // var sentence = tokens[j]; | |
| // console.log(tokens[j]); | |
| var str = tokens[j]; | |
| for (var k = 0; k < keywords.length; k++) | |
| { | |
| var keyword = keywords[k].toLowerCase(); | |
| var re = new RegExp(keyword); | |
| if (re.test(str)) console.log("replace" + str); | |
| // var n = str.search(re); | |
| // if (n != -1) | |
| // { | |
| // tokens[j] = '<span class="redact">' + str + '</span>'; | |
| // console.log(str); | |
| // } | |
| } | |
| // console.log(typeof(tokens[j])); | |
| // var txt = tokens[j].split(' '); | |
| /* | |
| for (var k = 0; k < keywords.length; k++) | |
| { | |
| for (var l = 0; l < txt.length; l++) | |
| { | |
| var word = txt[l].toLowerCase(); | |
| if (word == keywords[k]) | |
| { | |
| tokens[j] = '<span class="redact">' + sentence + '</span'; | |
| console.log(tokens[j]); | |
| } | |
| } | |
| } | |
| */ | |
| } | |
| } | |
| // Put everything back in | |
| everything[i].innerHTML = tokens.join(''); | |
| } | |
| console.log("GOTblock loaded"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment