您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
从封面/截图链接加载图片并显示。
当前为
// ==UserScript== // @name Nyaa.si - Load More Thumbnail // @name:zh-CN Nyaa.si - 自动加载更多预览图 // @namespace none // @description Load image from cover/screenshot links. // @description:zh-CN 从封面/截图链接加载图片并显示。 // @version 0.6 // @license MIT // @author York Wang // @match https://sukebei.nyaa.si/* // @match https://imgrock.pw/* // @match https://picrok.com/* // @match https://picbaron.com/* // @match https://imgbaron.com/* // @match https://kvador.com/* // @match https://kropic.com/* // @match https://imgsto.com/* // @match https://imgsen.com/* // @match https://imgstar.eu/* // @match https://picdollar.com/* // @match https://pics4you.net/* // @match https://silverpic.com/* // @match https://fotokiz.com/* // @match http://imglord.com/* // @match https://imgtaxi.com/* // @match https://imgadult.com/* // @match https://imgdrive.net/* // @match https://xxxwebdlxxx.org/* // @match https://uvonahaze.xyz/* // @match https://trans.firm.in/* // @match https://imgdawgknuttz.com/* // @match https://imagetwist.netlify.app/* // @match https://imagetwist.com/* // @match https://imagexport.com/* // @match https://hentai4free.net/* // @match https://pixhost.to/* // @match https://imgair.net/* // @match http://imgair.net/* // @match http://imgfrost.net/* // @match http://imgblaze.net/* // @run-at document-end // @grant unsafeWindow // @grant GM_xmlhttpRequest // ==/UserScript== (function() { 'use strict'; function Handler(pattern, process, processNyaa) { this.pattern = pattern this.process = process this.processNyaa = processNyaa } Handler.prototype.canHandle = function(url) { return this.pattern.test(url) } Handler.prototype.handle = function() { this.process(url => { document.location.href = url unsafeWindow.top.postMessage({"LMT": url}, '*') }) } const handlers = [] const addHandler = (pattern, process, processNyaa) => handlers.push(new Handler(pattern, process, processNyaa)) addHandler(/^https?:\/\/(imgrock\.pw)(\/[\w\-]+)+(\.[\w\-]+)+/, callback => { // pause on CAPTCHA const iframe = document.querySelector('iframe') if(iframe && iframe.src.indexOf('captcha') > -1) return const img = document.querySelector('.picview') if(img) { callback(img.src) } else { const btns = document.querySelectorAll('input[name=fnext]') for(let i=0;i<btns.length;i++) {if(!btns[i].style.display) btns[i].click()} const forms = document.querySelectorAll('form') for(let i=0;i<forms.length;i++) {if(forms[i].hito) {forms[i].submit()}} } }) addHandler(/^https?:\/\/(picrok\.com)(\/[\w\-]+)+\.php/, callback => { // pause on CAPTCHA const iframe = document.querySelector('iframe') if(iframe && iframe.src.indexOf('captcha') > -1) return const img = document.querySelector('.picview') if(img) { callback(img.src) } else { unsafeWindow.setTimeout(() => { const forms = document.querySelectorAll('form') const btns = document.querySelectorAll('form>button') // for(let i=0;i<btns.length;i++) {if(btns[i].style.display) forms[i-1].submit()} }, 5000) } }) addHandler(/^https?:\/\/(picbaron\.com|imgbaron\.com|kvador\.com|kropic\.com|imgsto\.com|imgsen\.com|imgstar\.eu|picdollar\.com|pics4you\.net|silverpic\.com|fotokiz\.com|imglord\.com)(\/.+)+(\.[\w\-]+)+/, callback => { const img = document.querySelector('.pic') if(img) { callback(img.src) } else { const form = document.querySelector('form') form && form.submit() } }) addHandler(/^https?:\/\/(imgtaxi\.com|imgadult\.com|imgdrive\.net)(\/\w+)+/, callback => { unsafeWindow.ctipops = [] unsafeWindow.adbctipops = [] const img = document.querySelector('img.centred') || document.querySelector('img.centred_resized') if(img) { callback(img.src) } else { unsafeWindow.setTimeout(() => { const btn = document.querySelector('.overlay_ad_link') if(btn) { btn.focus() btn.click() } }, 1000) } }, url => { GM_xmlhttpRequest({ method: 'GET', url: url, onload: res => { const src = res.responseText.match(/og:image:secure_url" content="(.*)"/) if(src.length > 1) window.postMessage({"LMT": src[1].replace('small','big')}, '*') } }); }) addHandler(/^https?:\/\/(xxxwebdlxxx\.org)(\/\w+)+/, callback => { unsafeWindow.ctipops = [] unsafeWindow.adbctipops = [] const img = document.querySelector('img.centred') || document.querySelector('img.centred_resized') if(img) { callback(img.src) } else { unsafeWindow.setTimeout(() => { const btn = document.querySelector('.overlay_ad_link') if(btn) { btn.focus() btn.click() } }, 1000) } }) addHandler(/^https?:\/\/(uvonahaze\.xyz|trans\.firm\.in||imgdawgknuttz\.com)(\/\w+)+/, callback => { const img = document.querySelector('img.centred') || document.querySelector('img.centred_resized') if(img) { callback(img.src) } else { const btn = document.querySelector('input[name=imgContinue]') btn && btn.click() } }) addHandler(/^https?:\/\/(imagetwist\.netlify\.app)(\/\w+)+/, callback => { if(unsafeWindow.targetURL) document.location.href = unsafeWindow.targetURL }) addHandler(/^https?:\/\/(imagetwist\.com|imagexport\.com)(\/\w+)+/, callback => { const img = document.querySelector('.img-responsive') if(img) { callback(img.src) } }) addHandler(/^https?:\/\/hentai4free\.net(\/\w+)+/, callback => { unsafeWindow.wuLu && unsafeWindow.wuLu() const img = document.querySelector('#image-viewer-container>img') if(img) { callback(img.src) } }) addHandler(/^https?:\/\/pixhost\.to(\/\w+)+/, callback => { const img = document.querySelector('img.image-img') if(img) { callback(img.src) } else { const btn = document.querySelector('a.continue') btn && btn.click() } }) addHandler(/^https?:\/\/(imgair\.net|imgfrost\.net|imgblaze\.net)(\/\w+)+/, callback => { unsafeWindow.wuLu && unsafeWindow.wuLu() const img = document.querySelector('#newImgE') if(img) { callback(img.src) } }, url => { GM_xmlhttpRequest({ method: 'GET', url: url.replace(/^https?:\/\/(imgfrost\.net|imgblaze\.net)/, 'https://imgair.net'), onload: res => { const src = res.responseText.match(/document\.getElementById\("newImgE"\)\.src = "(.*)"/) if(src.length > 1) window.postMessage({"LMT": src[1]}, '*') } }); }) const href = document.location.href if(/^https?:\/\/(sukebei\.nyaa\.si).+/g.test(href)) { if(document.title === '502 Bad Gateway') { document.location.href = document.location.href return } if(/^https?:\/\/(sukebei\.nyaa\.si\/view\/).+/g.test(href)) { const desc = document.querySelector('#torrent-description') const links = desc.querySelectorAll('a') if(!desc || !links) return const list = [] for(let i in links) { if(!links[i].href) continue handlers.forEach(h=>{h.canHandle(links[i].href) && list.push({href:links[i].href,handler:h})}) } let LMT_Wrap, LMT_Frame, LMT_Loading function createWrap() { desc.parentNode.insertAdjacentHTML('afterend', '<div class="panel panel-default"><div class="panel-body" id="LMT_Wrap"></div></div>') LMT_Wrap = document.querySelector('#LMT_Wrap') LMT_Loading = document.createElement('div') LMT_Loading.textContent = 'Loading Images...' LMT_Wrap.appendChild(LMT_Loading) LMT_Frame = document.createElement('iframe') LMT_Frame.id = 'LMT_Frame' LMT_Frame.sandbox = 'allow-forms allow-scripts allow-same-origin' LMT_Frame.style.display = 'none' LMT_Wrap.appendChild(LMT_Frame) } function process() { if(list.length) { if(!LMT_Frame) createWrap() let url = list.shift() if(url.handler.processNyaa) { url.handler.processNyaa(url.href) } else { LMT_Frame.src = url.href } } else { if(LMT_Frame) { LMT_Wrap.removeChild(LMT_Frame) LMT_Wrap.removeChild(LMT_Loading) } } } unsafeWindow.addEventListener('message', function (e) { if(e.data.LMT) { LMT_Frame.src = '' const img = document.createElement('img') img.src = e.data.LMT img.style['max-width'] = '100%' LMT_Wrap.appendChild(img) process() } }) process() } } else { handlers.forEach(h=>{h.canHandle(href) && h.handle()}) } })();