优化页面布局
// ==UserScript==
// @name nhentai布局优化
// @namespace https://greasyfork.org/zh-CN/scripts/469945
// @version 0.7
// @description 优化页面布局
// @author 雷锋
// @match http*://nhentai.net/*
// @match http*://nhentai.antecer.com/*
// @icon http://nhentai.net/favicon.ico
// @grant none
// ==/UserScript==
(async () => {
let Sleep = (millisecond) => new Promise((resolve) => setTimeout(resolve, millisecond));
// 优化翻页按钮布局
(async () => {
while (!document.querySelector('.pagination')) await Sleep(200);
var htmlLabelPG = '';
var htmlLabelFL = '';
document.querySelectorAll('.pagination>a').forEach((node) => {
node.classList.contains('page') ? (htmlLabelPG += node.outerHTML) : (htmlLabelFL += node.outerHTML);
});
if (!htmlLabelFL.includes('first')) htmlLabelFL = '<a></a><a></a>' + htmlLabelFL;
if (!htmlLabelFL.includes('last')) htmlLabelFL = htmlLabelFL + '<a></a><a></a>';
document.querySelector('.pagination').innerHTML = `
<style>.menutab{display:flex;justify-content:space-between;}</style>
<div class="menutab">${htmlLabelPG}</div>
<div class="menutab">${htmlLabelFL}</div>
<div class="ios-mobile-webkit-bottom-spacing"> </div>
`;
console.log(`已优化布局`, location.href);
})();
// 优化阅览体验
(async () => {
while (!document.querySelector('.thumb-container img')) await Sleep(200);
document.querySelectorAll('.thumb-container a').forEach((node) => {
node.setAttribute('src-href', node.href);
node.removeAttribute('href');
});
document.querySelectorAll('.thumb-container img').forEach((img) => {
let src = img.getAttribute('data-src').replace(/\/t(\d+)/, '/i$1').replace(/t(\.[a-z]+)+$/, '$1').replace(/webp.webp$/,'webp');
let url = new URL(src);
url.hostname = url.hostname.replace('nhentai.net', location.hostname);
img.setAttribute('data-src', url);
if (img.src.startsWith('https://t')) img.src = url;
});
document.body.insertAdjacentHTML('beforeend', `<style>.thumb-container, .thumb-container img {width: 100%;height: auto;}</style>`);
console.log(`已优化页面`, location.href);
})();
(async () => {
while (true){
await Sleep(100);
document.querySelectorAll('[style*="height:100%"]').forEach((node)=>{
node.visibility = 'hidden';
node.style.display = 'none';
});
document.querySelectorAll('[class*="ts-im-container"]').forEach((node)=>{
node.visibility = 'hidden';
node.style.display = 'none';
});
document.querySelectorAll('.advertisement').forEach((node)=>{
node.visibility = 'hidden';
node.style.display = 'none';
});
}
})();
})();