Google Image Proxy

By muzuiget Last update Jul 3, 2010 — Installed 1,830 times.

There are 4 previous versions of this script.

// ==UserScript==
// @name           Google Image Proxy
// @namespace      http://qixinglu.com
// @description    Google Image Proxy
// @include        http://*
// @include        https://webcache.googleusercontent.com/search?*
// @exclude        https://*
// ==/UserScript==

var INTERVAL_RUN_TIME = 5000
var INTERVAL_RUN_KEY = "i"
var INTERVAL_RUN_URLS = [
    //[match string, select type(0:id,1:class,2:tag), select string]
    ["www.google.com/reader/view/", 0, "current-entry"]
    //["www.google.com/reader/view/", 1, "entry"]
    //["www.google.com/reader/view/", 2, "table"]
]

var intervalInt = null
var invervalRunUrl = ""
var nodeSelType = 2
var nodeSelString = "body" 

function replaceImage(node) {
    //GM_log("running")
    prefix = "https://images2-focus-opensocial.googleusercontent.com/gadgets/proxy?url=";
    suffix = "&container=focus&gadget=a&no_expand=1&resize_h=0&rewriteMime=image%2F*";
    images = node.getElementsByTagName("img");
    for (var i = 0; i < images.length; i++) {
        if (images[i].src.indexOf(prefix) == -1) {
            images[i].src = prefix + encodeURIComponent(images[i].src) + suffix;
        }
    }
}

function intervalFunc() {
    switch (nodeSelType) {
        case 0:
            var node = document.getElementById(nodeSelString);
            if (node != null) {
                //GM_log(nodeSelType + ":" + nodeSelString)
                replaceImage(node)
            }
            break;
        case 1:
            var nodes = document.getElementsByClassName(nodeSelString);
            for (var i=0; i < nodes.length; i++) {
                //GM_log(nodeSelType + ":" + nodeSelString)
                replaceImage(nodes[i])
            }
            break;
        case 2:
            var nodes = document.getElementsByTagName(nodeSelString);
            for (var i=0; i < nodes.length; i++) {
                //GM_log(nodeSelType + ":" + nodeSelString)
                replaceImage(nodes[i])
            }
        default:
            // do nothing
    }
}

replaceImage(document)
for (var i = 0; i < INTERVAL_RUN_URLS.length; i++) {
    if (window.location.href.indexOf(INTERVAL_RUN_URLS[i][0]) != -1) {
        invervalRunUrl = INTERVAL_RUN_URLS[i][0]
        nodeSelType = INTERVAL_RUN_URLS[i][1]
        nodeSelString = INTERVAL_RUN_URLS[i][2]
        intervalInt = window.setInterval(intervalFunc, INTERVAL_RUN_TIME, nodeSelString);
        //GM_log("interval run started")
    }
}

document.addEventListener(
    'keydown',
    function(event) {
        var key = String.fromCharCode(event.keyCode);
        if (key.toLowerCase() == INTERVAL_RUN_KEY) {
            if (intervalInt == null) {
                intervalInt = window.setInterval(intervalFunc, INTERVAL_RUN_TIME, nodeSelString);
                //GM_log("interval run restarted")
            } else {
                window.clearInterval(intervalInt)
                intervalInt = null
                //GM_log("interval run stoped")
            }
        }
    },
    false
);