Better Multi-Page
// ==UserScript==
// @name EXBetterMulti-Page
// @namespace https://greasyfork.org/zh-CN/users/453092
// @require http://code.jquery.com/jquery-latest.js
// @version 0.60
// @description Better Multi-Page
// @author ikarosf
// @match https://exhentai.org/mpv/*
// @match https://e-hentai.org/mpv/*
// @grant unsafeWindow
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant GM_notification
// ==/UserScript==
(function() {
'use strict';
var pagenumdiv= document.createElement('div');
var isShowPagenum=GM_getValue('isShowPagenum',false)
var loadoffset;
var isLongpreload=GM_getValue('isLongpreload',false)
if(isLongpreload){
loadoffset = 300000;
}else{
loadoffset = 30000;
}
var isAutoResize;
isAutoResize=GM_getValue('isAutoResize',true)
do_mousescroll = function(c, a) {
a = a ? a : window.event;
var b = (a.detail ? a.detail * -1 : a.wheelDelta / 40) * 80;
scroll_relative(c, b);
cancelEvent(a)
}
preload_generic = function(c, j, d) {
var f = c.scrollTop;
var b = f + c.offsetHeight;
var a = j == "image";
for (var g = 1; g <= pagecount; g++) {
var e = document.getElementById(j + "_" + g);
var k = e.offsetTop;
var h = k + e.offsetHeight;
if ((e.style.visibility == "hidden") && (h >= f) && (k <= b + d + loadoffset)) { //预加载高度
if (a) {
load_image(g)
} else {
load_thumb(g)
}
e.style.visibility = "visible"
} else {
if (e.style.visibility == "visible") {
if ((h < f - 10000) || (k > b + 10000)) {
e.innerHTML = "";
e.style.visibility = "hidden"
}
if (a && (h >= f + 100) && (k <= f + 100)) {
currentpage = g
pagenumdiv.innerText = currentpage + "/" + pagecount;
}
}
}
}
}
rescale_image = function(c, b) {
if(isAutoResize){
var i = Math.max(700, window.innerWidth - (hide_thumbbar ? 5 : 230));
var h = parseInt(imagelist[c - 1].xres);
var a = parseInt(imagelist[c - 1].yres);
var d = h;
var g = a;
if (always_scale || (d > i)) {
g = Math.round(g * i / d);
d = i
}
var e = 0;
if (b.offsetTop + b.offsetHeight < pane_images.scrollTop) {
var f = parseInt(b.style.height.replace(/px/, ""));
e += f - g
}
var hh = window.innerHeight;
var ww = window.innerWidth - (hide_thumbbar ? 5 : 230);
if(hh<ww){
b.style.width = "";
b.style.height = hh + "px";
document.getElementById("image_" + c).style.height = (hh + 24) + "px";
}else{
//b.style.width = g + "px";
//b.style.height = "";
b.style.width = d + "px";
b.style.height = g + "px";
document.getElementById("image_" + c).style.height = (g + 24) + "px";
}
return {
view_height: g,
scroll_offset: e
}
}else{
var i = Math.max(700, window.innerWidth - (hide_thumbbar ? 5 : 230));
var h = parseInt(imagelist[c - 1].xres);
var a = parseInt(imagelist[c - 1].yres);
var d = h;
var g = a;
if (always_scale || (d > i)) {
g = Math.round(g * i / d);
d = i
}
var e = 0;
if (b.offsetTop + b.offsetHeight < pane_images.scrollTop) {
var f = parseInt(b.style.height.replace(/px/, ""));
e += f - g
}
b.style.width = d + "px";
b.style.height = g + "px";
document.getElementById("image_" + c).style.height = (g + 24) + "px";
return {
view_height: g,
scroll_offset: e
}
}
}
var imagebords=document.getElementsByClassName("mi0");
for (var i of imagebords){
i.style.margin = '0';
}
//--------------------------------------------------增加页码
pagenumdiv.style.setProperty('position', "fixed");
pagenumdiv.style.setProperty('bottom', "5px");
pagenumdiv.style.setProperty('right', "15px");
pagenumdiv.style.setProperty('font-size', "15pt");
pagenumdiv.style.setProperty('z-index', "3");
pagenumdiv.style.setProperty('background-color', "#34353b");
if(isShowPagenum)
$("#bar2").append(pagenumdiv);
//-------------------------------------------------------------
GM_registerMenuCommand("(开/关)超长画廊预加载",function(){
isLongpreload = !isLongpreload;
GM_setValue('isLongpreload', isLongpreload);
console.log('isLongpreload:' + isLongpreload);
GM_notification('你已【'+(isLongpreload?'开':'关')+'】超长画廊预加载');
if(isLongpreload){
loadoffset = 300000;
}else{
loadoffset = 30000;
}
});
GM_registerMenuCommand("(开/关)图片尺寸修改",function(){
isAutoResize = !isAutoResize;
GM_setValue('isAutoResize', isAutoResize);
console.log('isAutoResize:' + isAutoResize);
GM_notification('你已【'+(isAutoResize?'开':'关')+'】图片尺寸修改');
});
GM_registerMenuCommand("(开/关)页码显示",function(){
isShowPagenum = !isShowPagenum;
GM_setValue('isShowPagenum', isShowPagenum);
console.log('isShowPagenum:' + isShowPagenum);
GM_notification('你已【'+(isShowPagenum?'开':'关')+'】页码显示,刷新后生效');
});
})();