Skip to content

Instantly share code, notes, and snippets.

@tariqul-islam
Last active December 27, 2015 02:48
Show Gist options
  • Save tariqul-islam/7254595 to your computer and use it in GitHub Desktop.
Save tariqul-islam/7254595 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name Twitter Home Page Image Hider
// @namespace HH_Twitter_HPIH_HH
// @description Hides the images which are by default open, adds a RE-HIDE button in the navbar, and Show/Hide toggle button in the tweets
// @include http://twitter.com/*
// @include https://twitter.com/*
// @version 1
// ==/UserScript==
//**************************
//THIS IS A USER SCRIPT.
//FOR FIREFOX USE GREASEMONKEY
//FOR OTHERS USE THEIR RESPECTIVE METHOD
//
// *** HAS A LOT OF BUGS ***
// *** SUCH AS WHEN YOU GO TO ANOHER TAB AND COME BACK TO THE LAST THE NUTTON DOESNOT WORK ***
// *** HASN'T STARTED FINDING A SOLUTON YET ***
//
//THIS WILL ADD A RE-HIDE BUTTON IN THE NAV BAR
//THIS WILL ADD A SHOW/HIDE TOGGLE BUTTON IN THE TWEETS THAT HAS LINKS TO PIC.TWITTER.COM
//THIS WILL HIDE THE PICTURES BY DEFAULT (CANCELLING THE DEFAULT BEHAVIOUR OF TWITTER.COM)
//
//I DO NOT KNOW HOW TO CHECK FOR A EVENT WHEN SOME NEW HTML HAS BEEN INJECTED INTO THE DOM.
//HENCE I ADDED THE RE-HIDE BUTTON.
//SORRY FOR THIS ADDED UGLINESS.
//I SEARCHED FOR A LITTLE BIT. IF YOU KNOW, PLEASE LET ME KNOW
//
//-TARIQUL ISLAM
//PONIR(DOT)BD(AT)HOTMAIL(DOT)COM
//
//**************************/
var inject="<button class=\"hyp_injected_twitter btn\">Show</button>";
//THIS FUNCTION INJECTS THE RE-HIDE BUTTON INTO THE DOM
function addToNavBar(){
var navBarHTML = "<li><a id=\"hyp_redo_hide\" href=\"#\"><span class=\"text\">RE-HIDE</span></a></li>";
var globAct = document.getElementById("global-actions");
var gaHTML = globAct.innerHTML;
globAct.innerHTML = gaHTML+navBarHTML;
};
//THIS FUNCTION TOGGLES THE SHOW/HIDE BUTTON
function toggler(){
var nextElement = this.parentNode.getElementsByClassName("cards-base");
if(nextElement.length == 1){
var element = nextElement[0];
if(this.textContent == "Show"){
this.textContent = "Hide";
element.style.display="block";
}else{
this.textContent = "Show";
element.style.display="none"
}
}
return false;
};
//THIS FUNCTON CHANGES THE DEFAULT BEHAVIOUR OF LOADED TWITTER PAGE
function changeIt(){
var cmc = document.getElementsByClassName("cards-media-container");
for( var i=0; i<cmc.length; i++){
var y = cmc[i].innerHTML;
if(y[1]!='b'){
cmc[i].innerHTML = inject+y;
var hypInject = cmc[i].getElementsByClassName("hyp_injected_twitter");
var hypInject = hypInject[0];
hypInject.addEventListener("click", toggler, false);
}
var innerClass = cmc[i].getElementsByClassName("cards-base");
innerClass[0].style.display="none";
var hypInject = cmc[i].getElementsByClassName("hyp_injected_twitter");
var hypInject = hypInject[0];
hypInject.textContent="Show";
}
};
//CALLED THEM HERE
addToNavBar();
changeIt();
//ADDS AN EVENT LISTNERE FOR RE-HIDE BUTTON
document.getElementById("hyp_redo_hide").addEventListener("click", function(event){
changeIt();
event.preventDefault();
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment