// ==UserScript== // @name MangaReader Easy Viewing // @namespace NoxTox // @description Formats MangaReader to view your manga easier // @include http://www.mangareader.net/*/* // @latestupdate code cleanup // @version 1.0 // @downloadURL https://update.greasyfork.icu/scripts/3612/MangaReader%20Easy%20Viewing.user.js // @updateURL https://update.greasyfork.icu/scripts/3612/MangaReader%20Easy%20Viewing.meta.js // ==/UserScript== var pM = document.getElementById("pageMenu"); if (pM && pM.selectedIndex == 0) { var chapters = document.getElementById("chapterMenu"); var numPages = document.evaluate('//select[@id="pageMenu"]/option', pM, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotLength; var isrc = document.getElementById("img").src; var series = document.evaluate('//h2/a', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; var numLoaded = 0; var blockLoad = true; var loadAll = false; var firstIndex, currentIndex; if (isrc.substring(isrc.lastIndexOf("/")+1).indexOf("_") > -1) { var isrc1 = isrc.substring(0, isrc.lastIndexOf("/")+1); var isrc2 = isrc.substring(isrc.lastIndexOf("/")+1, isrc.lastIndexOf("_")); var isrc3 = isrc.substring(isrc.lastIndexOf("_")); } else { var isrc1 = isrc.substring(0, isrc.lastIndexOf("-")+1); var isrc2 = isrc.substring(isrc.lastIndexOf("-")+1, isrc.lastIndexOf(".")); var isrc3 = isrc.substring(isrc.lastIndexOf(".")); } document.getElementsByTagName("head")[0].innerHTML = ""; document.body.innerHTML = ""; document.title = series.innerHTML.replace("Manga", "") + "@ Mangareader Easy Viewing"; addStyle('body {margin: 0px; text-align:center; background-color:black;} #content {width:'+ (window.innerWidth - 247) +'px; margin-left:230px; color:#AAAAAA;} #menudiv {position:fixed; left:0px; top:0px; height:98%; padding:5px; overflow:hidden; text-align:left;} a {color:red; font-size: 14px} #menudiv a:hover {background-color:red; color:black;} p {color:red; font-weight:bold; margin:0px};'); chapters.style.cssFloat = "none"; chapters.style.width = "230px"; chapters.style.backgroundColor = "black"; chapters.style.color = "red"; d = document.createElement("div"); d.id = "menudiv"; var a1 = document.createElement("a"); a1.href = "/"; a1.innerHTML = "MR Homepage"; d.appendChild(a1); d.appendChild(document.createElement("br")); var a2 = document.createElement("a"); a2.href = series.href; a2.innerHTML = series.innerHTML + " Series Page"; d.appendChild(a2); d.appendChild(document.createElement("br")); d.appendChild(chapters); d.appendChild(document.createElement("br")); d.addEventListener("mouseover", function(e) {d.scrollTop += 50*(e.clientY/d.clientHeight - 0.5);} ,false); document.body.appendChild(d); var contents = document.createElement("div"); contents.id="content"; document.body.appendChild(contents); if (typeof unsafeWindow == 'object' && typeof unsafeWindow.omvKeyPressed == 'function') unsafeWindow.omvKeyPressed = null; else if (typeof document.omvKeyPressed == 'function') document.omvKeyPressed = null; document.addEventListener("keydown", function(e) { if (e.keyCode == 32 || e.keyCode == 40) { var scroller = setInterval("scrollBy(0,25)", 3); setTimeout("clearInterval("+scroller+")", 125); e.preventDefault(); } else if (e.keyCode == 38) { var scroller = setInterval("scrollBy(0,-25)", 3); setTimeout("clearInterval("+scroller+")", 125); e.preventDefault(); } else if (e.keyCode == 76) loadAll = !loadAll; }, false); var sI = setInterval(function() { if (chapters && chapters.childNodes.length > 0 && chapters.selectedIndex > -1) { if (chapters.childNodes[chapters.selectedIndex].getAttribute("selected") != "selected") { var phc = document.createElement("option"); phc.innerHTML = "Chapter " + (chapters.childNodes.length + 1) + ": Unknown Title"; chapters.appendChild(phc); chapters.selectedIndex = chapters.childNodes.length - 1; } firstIndex = chapters.selectedIndex; currentIndex = firstIndex; preloadChapter(); if (currentIndex < chapters.childNodes.length) setInterval(function () { if (!blockLoad && (document.body.clientHeight-window.pageYOffset-window.innerHeight < 15000 || loadAll || currentIndex == firstIndex) && currentIndex < chapters.childNodes.length) { blockLoad = true; loadNextChapter(++currentIndex); } }, 3000); clearInterval(sI); } }, 250); } var rxp1 = /