Skip to content

Instantly share code, notes, and snippets.

Created November 2, 2015 00:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/f6369a8377e406e11b66 to your computer and use it in GitHub Desktop.
Save anonymous/f6369a8377e406e11b66 to your computer and use it in GitHub Desktop.
jQuery-free version of https://github.com/tux3/spooky-theme
// ==UserScript==
// @name Spookychan-nobloat
// @namespace 4chan.org
// @description Restores the 2015 Halloween theme
// @match *://boards.4chan.org/*
// @version 1.0.1
// @grant none
// @icon data:image/png;base64,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
// ==/UserScript==
var d = document;
function cE (tagname, attrs) {
var e = d.createElement(tagname);
if(attrs) {
for (var k in attrs) {
if (attrs.hasOwnProperty(k)) {
e[k] = attrs[k];
}
}
}
return e;
}
function onReady (fc) {
var cb;
if (/interactive|complete/.test(d.readyState)) {
setTimeout(fc);
return;
}
cb = function() {
d.removeEventListener('DOMContentLoaded', cb, false);
fc();
};
d.addEventListener('DOMContentLoaded', cb, false);
}
function getCookie (cname) {
var name = cname + "=";
var ca = d.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
// We use the offical 4chan 2015 Halloween theme with some compatibilty fixes
var spookybaselink = (d.body.className.indexOf('is_catalog') != -1) ? "//s.4cdn.org/css/catalog_yotsuba_b_new.635.css" : "//s.4cdn.org/css/yotsubluenew.635.css";
var spookylink = "//s.4cdn.org/css/spooky.635.css";
d.head.appendChild(cE('link', {title : "spooky", href : spookybaselink, type : "text/css", rel : "alternate stylesheet"}));
d.head.appendChild(cE('link', {id : "extraspooky", href : "", type : "text/css", rel : "stylesheet"}));
onReady(function() {
var styleSelector = d.querySelector('#styleSelector');
styleSelector.appendChild(cE('option', {value : "spooky", innerHTML: "Spooky"}));
if (!activeStyleSheet) {
activeStyleSheet = getCookie("nws_style");
if (!activeStyleSheet)
activeStyleSheet = getCookie("ws_style");
}
if (activeStyleSheet == "spooky")
setSpookyStyleSheet();
else
unsetSpookyStyleSheet();
});
d.querySelector('#styleSelector').addEventListener('change', function(e) {
if (this.value === "spooky")
setSpookyStyleSheet();
else
unsetSpookyStyleSheet();
});
function setSpookyStyleSheet() {
if (document.querySelectorAll('link[title]').length != 1) {
// Looks like we have 4chan X, set the style switcher to Yostsuba Blue
nodes = document.getElementsByTagName('link');
for (i = 0; a = nodes[i]; i++) {
if (a.getAttribute("title") == "switch") {
link = a;
}
}
link && link.setAttribute("href", spookybaselink);
} else {
// We have the inline extension, just fix the base CSS to be Yotsuba Blue
d.querySelector('#base-css').setAttribute('href', spookybaselink);
d.querySelector("#styleSelector").value = "spooky";
}
// Add extra spookyness
d.querySelector('#extraspooky').setAttribute('href', spookylink);
var r = Math.floor(Math.random()*23) + 1; // Does 4chan really need 23 different skellington images? Of course it does.
d.body.appendChild(cE('img', {src : "//s.4cdn.org/image/skeletons/" + r + ".gif", alt : "", id : "skellington"}));
var tmp;
if((tmp = d.querySelector('#header-bar'))) tmp.style["background-color"] = "transparent";
}
function unsetSpookyStyleSheet() {
// Boring
d.querySelector('#extraspooky').setAttribute('href', '');
var tmp;
if((tmp = d.querySelector('#skellington'))) tmp.parentNode.removeChild(tmp);;
if((tmp = d.querySelector('#header-bar'))) tmp.style["background-color"] = "";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment