🏠 Home 

Furaffinity Webcomic Autoloader SX

Gives you the option to load all the subsequent comic pages on a FurAffinity comic page automatically.

// ==UserScript==
// @name     			Furaffinity Webcomic Autoloader SX
// @version  			0.1.2
// @description  	Gives you the option to load all the subsequent comic pages on a FurAffinity comic page automatically.
// @grant    			none
// @author   			Sofox
// @match    			*://*.furaffinity.net/view/*
// @namespace     https://www.sofoxcentral.com
// ==/UserScript==
var rootHolder = document.getElementById("submissionImg");
var counter = 5;
function insertAfter(newElement, referenceElement){
referenceElement.parentNode.insertBefore(newElement, referenceElement.nextSibling);
}
function insertBreakAfter(referenceElement){
var br = document.createElement("br");
insertAfter(br, referenceElement)
}
function getNextLink(doc){
if(doc.getElementsByClassName("parsed_nav_links")[0].childNodes.length<5){
return null;
}
return doc.getElementsByClassName("parsed_nav_links")[0].childNodes[4].href
}
function loadNextPage(nextLink){
if(nextLink){
console.log("Loading next...");
var request = new XMLHttpRequest();
request.open('GET', nextLink, true);
request.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
//var data = JSON.parse(this.response);
parser = new DOMParser();
var nextPage = parser.parseFromString(this.response, "text/html");
//alert(this.response)
var nl = getNextLink(nextPage)
var img = nextPage.getElementById("submissionImg")
rootHolder.parentNode.insertBefore(img, rootHolder.nextSibling);
rootHolder = rootHolder.nextSibling
insertBreakAfter(rootHolder);
rootHolder = rootHolder.nextSibling
var lnk = document.createElement('a');
var lnkURL = nextLink
lnk.innerHTML = lnkURL
lnk.href = lnkURL
insertAfter(lnk, rootHolder)
rootHolder = rootHolder.nextSibling
insertBreakAfter(rootHolder);
rootHolder = rootHolder.nextSibling
loadNextPage(nl);
} else {
// We reached our target server, but it returned an error
console.log("none")
}
};
request.onerror = function() {
// There was a connection error of some sort
console.log("error");
};
request.send();
}
}
function startAutoloader(){
//alert("starting...");
var ab = document.getElementById("autoloaderButton");
ab.parentNode.removeChild(ab);
loadNextPage(secondPage);
}
var secondPage = getNextLink(document)
if(secondPage){
var img = document.getElementById("submissionImg")
insertBreakAfter(rootHolder);
rootHolder = rootHolder.nextSibling
var button = document.createElement('input');
button.value = "Enable Comic Autoloader (SX)"
button.type = "button"
button.id = "autoloaderButton";
button.onclick = startAutoloader
insertAfter(button, rootHolder)
}