Created
May 7, 2011 20:03
-
-
Save gausie/960787 to your computer and use it in GitHub Desktop.
spoileralert
This file contains 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
// ==UserScript== | |
// @name Spoiler Alert! | |
// @namespace http://twitter.com/ | |
// @description Hides tweets with #spoiler or #spoilers | |
// @include http://search.twitter.com* | |
// ==/UserScript== | |
/** | |
var spoilers = new Array(); | |
var showSpoilerImages = true; | |
/* Defining variables */ | |
// Temporary variables | |
var li,reg; | |
var j = 0,i=0; | |
// Twitter lists tweets as a list item | |
var lis = document.getElementsByTagName('li'); | |
var limit = lis.length; | |
var count = 0; | |
var totalSpoilers = 0; | |
// Look through all list items | |
for(i=0; i < limit; i++){ | |
li = lis[i]; | |
if(li!=null){ | |
// Tweets have a classname of "result " | |
if(li.className=='result '){ | |
reg = new RegExp("#spoilers?","i"); | |
if(li.innerHTML.match(reg)){ | |
try{ | |
// Remove the tweets containing the specified keywords | |
spoilers[totalSpoilers] = li.innerHTML; | |
li.innerHTML=""; | |
li.style.borderBottom = 0; | |
li.style.paddingBottom = 0; | |
li.style.paddingTop = 0; | |
totalSpoilers++; | |
}catch(err){ | |
//ignore | |
} | |
} | |
} | |
} | |
} | |
} | |
var openImage = "http://test.com/open.png"; | |
var spoilerImage = "http://test.com/spoilers.png"; | |
var closeImage = "http://test.com/close.png"; | |
if(showImages && totalSpoilers > 0){ | |
var spoilersImages = new Array(); | |
var uls = document.getElementById('results').getElementsByTagName('ul'); | |
uls[0].innerHTML += "<li class='result ' id='spoilericons' ></li>"; | |
var spoilerli = document.getElementById('spoilericons'); | |
//show spoiler icons | |
spoilerli.innerHTML += "<img id='closer' src='"+openImage+"'/>"; | |
for (var i = 0; i<totalSpoilers; i++) { | |
spoilerli.innerHTML += "<img id='spoiler" + i + "' src='"+spoilerImage+"'/>"; | |
} | |
//populate (but don't show yet) spoiler tweets | |
spoilerli.innerHTML += "<div id='spoilerhtml' style='display:none;'></div>"; | |
var shtml = document.getElementById('spoilerhtml'); | |
for(var i = 0; i < totalSpoilers; i++) { | |
shtml.innerHTML += "<br/>" + spoilers[i]; | |
} | |
//on li click, show/hide spoiler tweets | |
document.getElementById('spoilericons').addEventListener("click", function() { var spoilerhtml = document.getElementById('spoilerhtml'); var closer = document.getElementById('closer'); if(spoilerhtml.style.display == 'none') { spoilerhtml.style.display = 'block'; closer.src = closeImage; } else { spoilerhtml.style.display = 'none'; closer.src = openImage; } }, true); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment