Resize Image On "Open image in new tab"

Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...

27.09.2015 itibariyledir. En son verisyonu görün.

// ==UserScript==
// @name       Resize Image On "Open image in new tab"
// @name:zh-cn 右键在新标签中打开图片时显示最优化图像质量
// @version    0.4.15
// @description  Support: Google(G+ blogspot picasa)\Tumblr\Twitter\weibo.com (And more...
// @description:zh-cn 支持:谷歌(G+ blogspot picasa)、Tumblr、推特、新浪微博、腾讯微博、知乎、豆瓣
// @run-at     document-start
// @match      http://*.googleusercontent.com/*
// @match      https://*.googleusercontent.com/*
// @match      http://*.media.tumblr.com/*
// @match      https://*.media.tumblr.com/*
// @match      http://*.bp.blogspot.com/*
// @match      https://*.bp.blogspot.com/*
// @match      http://*.sinaimg.cn/*
// @match      https://*.sinaimg.cn/*
// @match      http://*.qpic.cn/*
// @match      http://*.twimg.com/*
// @match      https://*.twimg.com/*
// @match      http://*.zhimg.com/*
// @match      https://*.zhimg.com/*
// @match      http://*.douban.com/view/photo/*
// @match      https://*.douban.com/view/photo/*
// @namespace https://greasyfork.org/users/2646
// @copyright  2015+, CLE
// ==/UserScript==

var url = document.location.toString();
var m = null;

//google
m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i);
if(m) {
    if(m[2] != "s0") {
        document.location = m[1] + "s0" + m[3];
    }
}
m = url.match(/^(https?:\/\/\w+\.googleusercontent\.com\/.+=)(.+)$/i);
if(m) {
    if(m[2] != "s0") {
        document.location = m[1] + "s0";
    }
}

//blogspot
m = url.match(/^(https?:\/\/\w+\.bp\.blogspot\.com\/.+\/)([^\/]+)(\/[^\/]+(\.(jpg|jpeg|gif|png|bmp|webp))?)$/i);
if(m) {
    if(m[2] != "s0") {
        document.location = m[1] + "s0" + m[3];
    }
}

//tumblr
var ma = url.match(/^(https?:\/\/\d+\.media\.tumblr\.com\/.*tumblr_\w+_)(\d+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i);
if(ma) {
    if(ma[2]<1280) {
        var ajax = new XMLHttpRequest();
        ajax.onreadystatechange=function() {
            if (ajax.readyState==4 && ajax.status==200) {
                document.location = ma[1] + "1280" + ma[3];
            }
        }
        ajax.open("HEAD", ma[1]+"1280"+ma[3], true);
        ajax.send();
    }
}

//性浪微博
m = url.match(/^(https?:\/\/ww[\d]+\.sinaimg\.cn\/)([^\/]+)(\/.+)$/i);
if(m) {
    if(m[2] != "large") {
        document.location = m[1] + "large" + m[3];
    }
}

//疼逊微博
m = url.match(/^(http:\/\/[\w\d]+\.qpic\.cn\/.+\/)(\d+)$/i);
if(m) {
    if(m[2]<2000) {
        document.location = m[1] + "2000";
    }
    /*if(m[2]!=0) {
        document.location = m[1] + "0";
    }*/
}

//twitter
m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
if(m) {
    document.location = m[0] + ":large";
}
/*m = url.match(/^https?:\/\/\w+\.twimg\.com\/media\/([^\/:]+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
if(m) {
    document.location = m[0] + ":large?" + m[1];
}
m = url.match(/^(https?:\/\/\w+\.twimg\.com\/media\/([^\/]+\.(jpg|jpeg|gif|png|bmp|webp)))\:(\w+)$/i);
if(m) {
	if(m[4]!="large") {
        document.location = m[1] + ":large?" + m[2];
    }
}*/

//zhihu
m = url.match(/^(https?:\/\/.+\.zhimg\.com\/\w+_)(\w+)(\.(jpg|jpeg|gif|png|bmp|webp))$/i);
if(m){
    if(m[2]!="r") {
        document.location = m[1] + "r" + m[3];
    }
}

//douban
ma = url.match(/^(https?:\/\/\w+\.douban\.com\/view\/photo\/)(\w+)(\/public\/.+\.(jpg|jpeg|gif|png|bmp|webp))$/i);
if(ma){
    if(ma[2] != "large"){
        var ajax = new XMLHttpRequest();
        ajax.onreadystatechange=function() {
            if (ajax.readyState==4 && ajax.status==200) {
                document.location = ma[1] + "large" + ma[3];
            }else if(ajax.readyState==4 && ajax.status==404) {
                if(ma[2] != "photo"){
                    document.location = ma[1] + "photo" + ma[3];
                }
            }
        }
        ajax.open("GET", ma[1]+"large"+ma[3], true); //豆瓣不支持HEAD,只能用GET,会影响判断速度
        ajax.send();
    }
}