e621 Thumbnail Enhancer 2

Resizes thumbnails on e621.net and replaces them with hi-rez version. Modified for the new site design sometime around 2020-03-06

Від 08.03.2020. Дивіться остання версія.

// ==UserScript==
// @name         e621 Thumbnail Enhancer 2
// @version      1.02
// @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 )

var 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%;"
    ,"}"
    ,"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 */
const imageThumb = (thumb) => {
        let newThumb = document.createElement('img');
        let replace = function (thumb) {
          thumb.src = this.src;
        };
        let trynoSample = function (thumb) {
          this.onerror = tryGif.bind(this, thumb);
          this.src = thumb.src.replace('/preview/', '/');
        };
        let tryGif = function (thumb) {
          this.onerror = null;
          this.src = thumb.src.replace('/preview/', '/').replace('.jpg', '.gif');
        };
        newThumb.onload = replace.bind(newThumb, thumb);
        newThumb.onerror = trynoSample.bind(newThumb, thumb);
        newThumb.src = thumb.src.replace('/preview/', '/sample/');
}

const main = () => {
    var contDiv = document.querySelector("#posts-container");
    contDiv.className = "thumbEnh_cont";

    var imgs = document.querySelectorAll('article.post-preview img');
    for (img of imgs) {
      img.className = "thumbEnh_img";
			imageThumb(img);
    }
  	// remove extra sources, since we're just using the "high rez" version anyways!
    var sources = document.querySelectorAll('article.post-preview source');
    for (source of sources) {  
      let parent = source.parentNode;
      parent.removeChild(source);
    }
};

main();