Greasy Fork is available in English.
看漫画手机版阅读辅助,瀑布流阅读连续载入图片,自动点击载入更多,在新分页打开漫画链接(自用)。
当前为
// ==UserScript==
// @name 看漫畫手機版閱讀輔助
// @name:zh-CN 看漫画手机版阅读辅助
// @version 1.4.2
// @description 看漫畫手機版閱讀輔助,瀑布流閱讀連續載入圖片,自動點擊載入更多,在新分頁打開漫畫鏈接(自用)。
// @description:zh-CN 看漫画手机版阅读辅助,瀑布流阅读连续载入图片,自动点击载入更多,在新分页打开漫画链接(自用)。
// @author tony0809
// @match *://m.manhuagui.com/*
// @icon https://www.google.com/s2/favicons?domain=m.manhuagui.com
// @grant none
// @run-at document-end
// @license GPL
// @namespace http://greasyfork.icu/users/20361
// ==/UserScript==
(() => {
'use strict';
const options = { //true 開啟,false 關閉
lM: true, //最近更新、漫畫大全、排行榜、書架,自動點擊載入更多。
oint: true, //在新分頁打開漫畫鏈接。
aH: true, //載入下一話時添加瀏覽器歷史紀錄。
remove: [true, 4] //!!!不能小於2!!!閱讀載入超過n話時刪除前面話數的圖片。
},
ge = e => document.querySelector(e),
gae = e => document.querySelectorAll(e),
runCode = code => new Function('return ' + code)(),
lp = location.pathname,
update = /^\/update\/$/.test(lp),
list = /^\/list\//.test(lp),
rank = /^\/rank\/$/.test(lp),
search = /^\/s\/[^.]+\.html$/.test(lp),
read = /^\/comic\/\d+\/\d+\.html$/.test(lp),
chapter = /^\/comic\/\d+\/$/.test(lp),
user = /^\/user\/book\//.test(lp),
addGlobalStyle = css => {
let style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
document.head.appendChild(style);
},
css = `
.goback {
background: url(/images/bg_main.png) -258px -80px no-repeat;
position: fixed;
left: 50%;
margin-left: -20px;
bottom: 0px;
width: 40px;
height: 40px;
}
.action-list li {
width: 50% !important
}
#action>ul>li:nth-child(n+2):nth-child(-n+3),
.manga-page,
.clickforceads {
display: none !important
}
.manga-box img {
border-top: 0px !important;
border-bottom: 0px !important
}
.loading {
font-size: 20px;
font-family: Arial,sans-serif!important;
height: 32px;
line-height: 30px;
border: none!important;
}
.chapterTitle {
width: auto;
height: 30px;
font-size: 20px;
font-family: Arial,sans-serif!important;
line-height: 32px;
text-align: center;
margin: 10px 5px;
border: 1px solid #e0e0e0;
background-color: #f0f0f0;
background: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f0f0f0));
background: -moz-linear-gradient(top, #f9f9f9, #f0f0f0);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);
border-radius: 5px;
}
`;
addGlobalStyle(css);
const openInNewTab = () => gae('#topSlider a:not([target=_blank]),.main-list a:not([target=_blank]),.cont-list a:not([target=_blank])').forEach(a => {
a.setAttribute('target', '_blank');
}),
addGoBack = () => {
let goback = document.createElement('div');
goback.className = 'goback';
goback.setAttribute('title', '返回頂部');
goback.addEventListener('click', () => {
window.scrollTo({
top: 0,
behavior: "smooth"
});
});
document.body.appendChild(goback);
const goBackOpacity = () => {
let dd = document.documentElement,
gb = ge('.goback'),
scrollTotal = dd.scrollHeight - dd.clientHeight;
if ((dd.scrollTop / scrollTotal) > 0.8) {
gb.style.opacity = 0.7;
} else {
gb.style.opacity = 0.2;
}
};
document.addEventListener('scroll', goBackOpacity);
},
autoLoadMore = () => {
let loadMore = ge('#more:not([style*=none])>.more-go');
const loadMoreobserver = new IntersectionObserver((e) => {
if (e[0].isIntersecting) {
loadMore.click();
}
}).observe(loadMore);
},
addHistory = (title, url) => {
history.pushState(null, title, url);
document.title = title;
},
addLoad = () => {
let load = document.createElement('p');
load.className = 'loading';
load.innerText = 'Loading...';
ge('#manga').appendChild(load);
},
removeLoad = () => {
ge('.loading').remove();
},
addTitle = title => {
let t = document.createElement('div');
t.className = 'chapterTitle';
t.innerText = title;
let load = ge('.loading');
load.parentNode.insertBefore(t, load);
},
insertData = d => {
const code = Array.from(d.scripts).find(s => s.innerHTML.search(/x6c/) > -1).innerHTML.trim().slice(26),
jsonData = JSON.parse(runCode(code).slice(11, -12)),
hostArray = ['i', 'eu', 'us'],
getRandom = max => Math.floor(Math.random() * Math.floor(max)),
randomHost = () => {
let choose = getRandom(hostArray.length);
let rValue = hostArray[choose];
return rValue;
},
imagesObserver = new IntersectionObserver((entries, imagesObserver) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
imagesObserver.unobserve(entry.target);
let realSrc = entry.target.dataset.src;
if (realSrc) {
entry.target.src = realSrc;
entry.target.removeAttribute('data-src');
}
let nE = entry.target.nextElementSibling;
if (nE && nE.tagName == 'IMG' && nE.dataset.src) {
nE.src = nE.dataset.src;
nE.removeAttribute('data-src');
}
}
});
}),
F = new DocumentFragment();
jsonData.images.forEach(e => {
let domain = location.protocol + "//" + randomHost() + ".hamreus.com";
let img = new Image();
img.src = 'data:image/png;base64,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9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQOAPUsAAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMAPYsAQDYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAIA9A4A9AwD2DAD2DADYMwBgzwBgzwCAPQOAPQMA9gwA9gwA2DMAYM8AYM8AgD0DgD0DAPYMAPYMANgzANgzAGDPAIA9A4A9AwD2DAD2DADYMwDYMwBgzwCAPQOAPQMA9gwA9gwA2DMA2DMAYM8AYM8AgD0DAPYMAPYMANgzANgzAGDPAGDPAIA9AwD2DAD2DADYMwDYMwBgzwBgzwCAPQOAPQMA9gwA2DMA2DMAYM8AYM8AgD0DgD0DAPYMANgzANgzAGDPAGDPAMDVDgAQjQjl//H0lQAAAABJRU5ErkJggg==';
img.dataset.src = `${domain+e}?e=${jsonData.sl.e}&m=${jsonData.sl.m}`;
imagesObserver.observe(img);
F.appendChild(img);
});
let load = ge('.loading');
if (load) {
let title = d.querySelector('#mangaTitle').innerHTML.replace(/<.+>\s?/g, '');
addTitle(title);
if (options.remove[0] && options.remove[1] > 1) {
removeOldChapter();
}
setTimeout(() => {
load.parentNode.insertBefore(F, load);
removeLoad();
}, 200);
} else {
let E = ge('#manga');
E.innerHTML = '';
E.appendChild(F);
}
let curl = lp.replace(/\d+\.html$/, ''),
next = ge("a[data-action='chapter.next']"),
prev = ge("a[data-action='chapter.prev']");
if (jsonData.nextId == 0) {
next.href = curl;
next.innerText = '返回目录';
} else {
next.href = curl + jsonData.nextId + '.html';
}
if (jsonData.prevId > 0) {
prev.href = curl + jsonData.prevId + '.html';
}
},
parseHTML = str => {
let doc;
try {
doc = new DOMParser().parseFromString(str, 'text/html');
} catch (e) {}
if (!doc) {
doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = str;
}
return doc;
},
fetchData = url => {
fetch(url).then(res => res.text()).then(res => {
let doc = parseHTML(res),
title = doc.title;
if (options.aH) {
addHistory(title, url);
}
insertData(doc);
setTimeout(() => {
addNextObserver();
}, 1200);
}).catch((err) => {
console.log('出錯鏈接:' + url, err);
ge('.loading').innerText = '連線出錯,請返回頂部重新載入。';
});
},
/*fetchData = url => {
let xhr = new XMLHttpRequest();
xhr.responseType = 'text';
xhr.open('GET', url);
xhr.timeout = 10000;
xhr.onload = () => {
if (xhr.status == 200) {
let doc = parseHTML(xhr.responseText);
let title = doc.title;
if (options.aH) {
addHistory(title, url);
}
insertData(doc);
setTimeout(() => {
addNextObserver();
}, 1200);
} else if (xhr.status > 400) {
console.log('HTTP連線狀態碼:' + xhr.status + '\n鏈接:' + url);
ge('.loading').innerText = 'HTTP連線狀態碼:' + xhr.status + ',獲取過程中出錯。';
}
};
xhr.ontimeout = (e) => {
console.log(e);
ge('.loading').innerText = '連線逾時,請返回頂部重新載入。';
};
xhr.onerror = (e) => {
console.log(e);
ge('.loading').innerText = '連線出錯,請返回頂部重新載入。';
}
xhr.send();
},*/
addNextObserver = () => {
//let imgChild = ge('#manga>img:nth-last-child(1)');
let lastImg = [...ge('#manga').querySelectorAll('img')].pop(); //用最後一張圖片作為觀察對象。
const nextObserver = new IntersectionObserver((e, nextObserver) => {
if (e[0].isIntersecting) {
nextObserver.unobserve(lastImg);
let next = ge("a[data-action='chapter.next'][href$=html]");
if (next) {
console.log('觸發載入下一話');
addLoad();
fetchData(next.href);
}
}
}).observe(lastImg);
},
removeOldChapter = () => {
let titles = gae('.chapterTitle');
if (titles.length > options.remove[1]) {
titles[0].remove();
let removes = gae('#manga>*');
for (let i in removes) {
if (/chapterTitle/.test(removes[i].className)) {
break;
}
removes[i].remove();
}
}
};
if (read) {
addGoBack();
let loop = setInterval(() => {
let set = ge('#manga img');
if (set) {
clearInterval(loop);
insertData(document);
addNextObserver();
}
}, 100);
}
if (options.oint && !read && !chapter) {
openInNewTab();
console.log('看漫画在新分頁打開漫畫鏈接');
new MutationObserver(() => {
openInNewTab();
}).observe(document.body, {
childList: true,
subtree: true
});
}
if (options.lM && (update || user || list || rank || search)) {
autoLoadMore();
}
})();