Skip to content

Instantly share code, notes, and snippets.

@gausie
Created May 7, 2011 20:03
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save gausie/960787 to your computer and use it in GitHub Desktop.
spoileralert
// ==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