您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sleazy Fork is available in English.
Resizes thumbnails on e621.net and replaces them with hi-rez version. Modified for the new site design sometime around 2020-03-06
当前为
// ==UserScript== // @name e621 Thumbnail Enhancer 2 // @version 1.08 // @description Resizes thumbnails on e621.net and replaces them with hi-rez version. Modified for the new site design sometime around 2020-03-06 // @author justrunmyscripts // @include *://*e621.net* // @grant GM.xmlHttpRequest // @namespace https://sleazyfork.org/en/users/96703-justrunmyscripts // @run-at document-end // ==/UserScript== // original script creator https://greasyfork.org/de/users/398891 // to edit the size of the thumbnails, change the 25vw values below (the ones marked with !important... ;D ) try { let isMyAbsoluteFavoritePath = window.location.toString().endsWith('/favorites'); let postContainerHash = isMyAbsoluteFavoritePath ? '#posts' : '#posts-container'; let sty =document.createElement("style"); sty.innerHTML=[ "" ,".thumbEnh_cont {" ," display: flex;" ," flex-flow: row wrap;" ,"}" ,".thumbEnh_cont img.thumbEnh_img {" ," max-height: 100%;" ," max-width: 100%;" ,"}" ,".thumbEnh_cont video.thumbEnh_video {" ," height: 100%;" ," width: 100%;" ,"}" ,"article.post-preview {" ," height: 25vw !important;" ," width: 25vw !important;" ,"}" ,"article.post-preview > a, article.post-preview > a > picture {" ," height: 94%;" ," width: 100%;" ,"}" ].join(""); document.head.appendChild(sty); /* Replace image thumbnails with higher resolution */ class ImageFetcher { constructor (originalArticle) { this.parentArticle = originalArticle; this.originalImage = originalArticle.querySelector('img'); this.origSrc = this.originalImage.src; this.originalImage.className = "thumbEnh_img"; if (this.isWebm()) { this.replaceImageWithVideo(); } else if (this.isGif()){ this.originalImage.src = this.getOrigFileURL(); } else if (this.hasLargeFile()){ this.originalImage.src = this.getLargeFileURL(); this.originalImage.addEventListener('error', (() => { this.originalImage.src = this.getOrigFileURL(); }).bind(this)); } else { this.originalImage.src = this.getOrigFileURL(); } } hasLargeFile() { return !!this.getLargeFileURL(); } isGif() { return !!this.getOrigFileURL().endsWith('.gif'); } isWebm() { return !!this.getOrigFileURL().endsWith('.webm'); } getLargeFileURL() { return this.parentArticle.getAttribute('data-large-file-url'); } getOrigFileURL() { return this.parentArticle.getAttribute('data-file-url'); } replaceImageWithVideo() { const video = document.createElement('video'); video.setAttribute('controls', true); video.setAttribute('class', 'thumbEnh_video'); video.setAttribute('src', this.getOrigFileURL()); const parent = this.originalImage.parentNode; parent.replaceChild(video, this.originalImage) } } const main = () => { let contDiv = document.querySelector(postContainerHash); contDiv.className = "thumbEnh_cont"; let arts = document.querySelectorAll('article.post-preview'); for (art of arts) { new ImageFetcher(art); } // remove extra sources, since we're just using the "high rez" version anyways! let sources = document.querySelectorAll('article.post-preview source'); for (source of sources) { let parent = source.parentNode; parent.removeChild(source); } }; main(); } catch (e) { // due to the way greasemonkey 'traps' errors, it kinda hides where the problem is! // this is an attempt at "fixing" that console.error(e); }