Greasy Fork is available in English.

InkBunny fix Broken Thumbnails

Fixes broken thumbnails on InkBunny by replacing the image source with a corrected URL if the image fails to load.

// ==UserScript==
// @name         InkBunny fix Broken Thumbnails
// @namespace    http://tampermonkey.net/
// @version      1.2
// @author       Fuim
// @icon         https://www.google.com/s2/favicons?domain=inkbunny.net
// @description  Fixes broken thumbnails on InkBunny by replacing the image source with a corrected URL if the image fails to load.
// @match        https://inkbunny.net/*
// @run-at       document-end
// @license      GNU GPLv2
// ==/UserScript==

(function() {
  'use strict';

  function fixBrokenThumbnails() {
    // Get all the image elements on the page
    var images = document.getElementsByTagName('img');
    // Loop through each image
    for (var i = 0; i < images.length; i++) {
      var img = images[i];
      if (img.src.includes('/preview/') && img.naturalWidth === 0) {
        img.onerror = function() {
          this.onerror = null;
          this.src = this.src.replace(".jpg", ".png");
          
        };
        // Create a new image element with the corrected URL
        img.src = img.src.replace("/preview/","/screen/");
      }
      if (img.src.includes('/thumbnails/medium/')  && img.naturalWidth === 0) {
        img.onerror = function() {
          this.onerror = null;
          this.src = this.src.replace(".jpg", ".png");
        };
        // Create a new image element with the corrected URL
        img.src = img.src.replace("br.ib.metapix.net", "br2.ib.metapix.net").replace("/thumbnails/medium/", "/files/screen/").replace("_noncustom", "")
      }
      if (img.src.includes('/usericons/small/')  && img.naturalWidth === 0) {
        img.onerror = function() {
          this.onerror = null;
          this.src = this.src.replace(".jpg", ".png");
        };
        // Create a new image element with the corrected URL
        img.src = img.src.replace("usericons/small", "usericons/large")
      }
    }
  }

  // Wait for the page and images to fully load
  window.addEventListener('load', function() {
    fixBrokenThumbnails();
  });
})();
// https://inkbunny.net/images80/elephant/logo/bunny.png