kknowcc-imgur-proxy

kk.now.cc使用的是imgur图床,这个图床将大多数IP列入了黑名单导致图片无法正常加载,本脚本将论坛中所有imgur的图片链接替换成其镜像网站noobzone的链接以解决图片显示问题。

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name        kknowcc-imgur-proxy
// @namespace   Violentmonkey Scripts
// @match       https://kk.now.cc/**/*
// @grant       GM_xmlhttpRequest
// @version     1.0
// @author      Mesimpler
// @license     MIT
// @require     https://cdn.jsdelivr.net/npm/@violentmonkey/dom@2
// @description kk.now.cc使用的是imgur图床,这个图床将大多数IP列入了黑名单导致图片无法正常加载,本脚本将论坛中所有imgur的图片链接替换成其镜像网站noobzone的链接以解决图片显示问题。
// ==/UserScript==

// 代理URL
const PROXY_URL = "https://img.noobzone.ru/getimg.php?url=";

// 处理单个图片元素
function processImage(img) {
  const originalSrc = img.src;

  // 检查是否是Imgur图片
  if (originalSrc.startsWith("https://i.imgur.com/")) {
    // 创建代理URL
    const proxySrc = PROXY_URL + encodeURIComponent(originalSrc);

    // 使用GM_xmlhttpRequest绕过CORS和防盗链
    GM_xmlhttpRequest({
      method: "GET",
      url: proxySrc,
      responseType: "blob",
      onload: function (response) {
        if (response.status === 200) {
          // 创建对象URL并设置给img元素
          const blob = response.response;
          const objectUrl = URL.createObjectURL(blob);
          img.src = objectUrl;

          // 清理内存(可选)
          img.onload = function () {
            URL.revokeObjectURL(objectUrl);
          };
        } else {
          console.error("图片加载失败:", response.status, response.statusText);
        }
      },
      onerror: function (error) {
        console.error("请求错误:", error);
      },
    });
  }
}

// 处理所有现有图片
function processAllImages() {
  const images = document.querySelectorAll('img[src^="https://i.imgur.com/"]');
  images.forEach(processImage);
}

// 使用MutationObserver监听动态加载的图片
VM.observe(document.body, () => processAllImages());

// 初始处理
processAllImages();