Toggle between NSFW, SFW or all posts on DA galleries and pages.
// ==UserScript==
// @name DeviantArt NSFW Filter
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Toggle between NSFW, SFW or all posts on DA galleries and pages.
// @author You
// @match https://www.deviantart.com/*/favourites/*
// @match https://www.deviantart.com
// @match https://www.deviantart.com/*/gallery/*
// @match https://www.deviantart.com/*/?q=*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var newstyle = document.createElement("style");
newstyle.setAttribute("type","text/css");
newstyle.setAttribute("id","nsfwfilter");
newstyle.innerHTML = ".ad-container{display:none !important;}";
document.body.appendChild(newstyle);
var button = document.createElement("td");
button.setAttribute("style","padding-right:10px;")
button.setAttribute("id","nsfwbutton")
button.innerHTML= "NSFW: ALL"
document.querySelector("#overhead > tbody > tr").insertBefore(button,document.querySelector("#oh-menu-deviant"))
function nsfwonly(){
document.querySelector("#nsfwfilter").innerHTML = ".thumb:not(.ismature), .ad-container{display:none !important;}";
document.querySelector("#nsfwbutton").innerHTML = "NSFW: ON";
}
function sfwonly(){
document.querySelector("#nsfwfilter").innerHTML = ".ismature, .ad-container{display:none !important;}";
document.querySelector("#nsfwbutton").innerHTML = "NSFW: OFF";
}
function allposts(){
document.querySelector("#nsfwfilter").innerHTML = ".ad-container{display:none !important;}";
document.querySelector("#nsfwbutton").innerHTML = "NSFW: ALL";
}
document.querySelector("#nsfwbutton").onclick = function toggleNSFW(){
var state = document.querySelector("#nsfwfilter").textContent;
switch(state){
case ".thumb:not(.ismature), .ad-container{display:none !important;}":
sfwonly();
break;
case ".ismature, .ad-container{display:none !important;}":
allposts();
break;
case ".ad-container{display:none !important;}":
nsfwonly();
break;
}
}
})();