Imgur DuckDuckGo Proxy

Proxy Imgur images through DuckDuckGo

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Imgur DuckDuckGo Proxy
// @namespace    imgur.proxy
// @version      1.1
// @description  Proxy Imgur images through DuckDuckGo
// @author       OBNinjaa
// @match        *://*/*
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function () {
    'use strict';

    const IMGUR_PREFIX = "https://i.imgur.com/";
    const DDG_PROXY = "https://external-content.duckduckgo.com/iu/?u=";

    function proxyImage(img) {
        if (!img || !img.src) return;
        if (!img.src.startsWith(IMGUR_PREFIX)) return;
        if (img.dataset.ddgProxied) return;

        const original = img.src;
        const proxied = DDG_PROXY + encodeURIComponent(original) + "&f=1";

        img.src = proxied;
        img.dataset.ddgProxied = "true";
    }

    function scanImages() {
        document.querySelectorAll("img").forEach(proxyImage);
    }

    scanImages();

    console.log("Imgur images proxied (initial scan)");
})();