🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Greasy Fork is available in English.

📂 缓存分发状态(共享加速已生效)
🕒 页面同步时间:2025/12/27 14:07:12
🔄 下次更新时间:2025/12/27 15:07:12
手动刷新缓存

Imgur Mirror

Switches all imgur links to the mirror site http://kageurufu.net/imgur

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Imgur Mirror
// @namespace    https://greasyfork.org/users/649
// @version      1.1.7
// @description  Switches all imgur links to the mirror site http://kageurufu.net/imgur
// @author       Adrien Pyke
// @include      http*
// @require      https://cdn.jsdelivr.net/gh/fuzetsu/userscripts@ec863aa92cea78a20431f92e80ac0e93262136df/wait-for-elements/wait-for-elements.js
// @grant        none
// ==/UserScript==

(() => {
  'use strict';

  const regex =
    /imgur\.com\/(?!a\/|gallery\/)(?:r\/[a-z0-9_]+\/)?([a-z0-9]+)(\.+[a-z0-9]+)?/iu;
  const extensions = [
    '.jpg',
    '.jpeg',
    '.png',
    '.gif',
    '.gifv',
    '.webm',
    '.mp4'
  ];

  const getNewLink = function (imgurLink, useGif) {
    const match = imgurLink.match(regex);
    if (match) {
      const file = match[1];
      let extension = match[2].toLowerCase();
      if (!extension || !extensions.includes(extension)) {
        extension = '.png';
      } else if (
        extension === '.gifv' ||
        extension === '.gif' ||
        extension === '.webm'
      ) {
        extension = '.mp4';
      }
      if (useGif && extension === '.mp4') {
        extension = '.gif';
      }
      return `http://kageurufu.net/imgur/?${file + extension}`;
    } else {
      return null;
    }
  };

  waitForElems({
    sel: 'img,a',
    onmatch(node) {
      const isImg = node.nodeName === 'IMG';
      const prop = isImg ? 'src' : 'href';
      const newLink = getNewLink(node[prop], isImg);
      if (newLink) {
        node[prop] = newLink;
        if (node.dataset.hrefUrl) {
          node.dataset.hrefUrl = newLink;
        }
        if (node.dataset.outboundUrl) {
          node.dataset.outboundUrl = newLink;
        }
      }
    }
  });
})();