Steam Store - Removed App/Sub Redirect To SteamDB

If the Steam Store App or Sub doesn't exist, is removed or is region-locked, redirect to SteamDB.info instead of store.steampowered.com.

Tính đến 19-03-2017. Xem phiên bản mới nhất.

// ==UserScript==
// @name         Steam Store - Removed App/Sub Redirect To SteamDB
// @namespace    Royalgamer06
// @version      1.3.1
// @description  If the Steam Store App or Sub doesn't exist, is removed or is region-locked, redirect to SteamDB.info instead of store.steampowered.com.
// @author       Royalgamer06
// @include      *
// @exclude      file:*
// @connect      store.steampowered.com
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @require      http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.js
// ==/UserScript==

this.$ = this.jQuery = jQuery.noConflict(true);
var CtrlIsPressed = false;
$(document).keydown(function(event){
    if(event.which=="17")
        CtrlIsPressed = true;
});
$(document).keyup(function(){
    CtrlIsPressed = false;
});
$(document).ready(function() {
    if (/^https?:\/\/store\.steampowered.com\/(app|sub)\/.+$/.test(location.href)) {
        if (document.getElementById("error_box")) location.href = location.href.replace("store.steampowered.com", "steamdb.info");
    }
    $("a[href*='://store.steampowered.com/app/'], a[href*='://store.steampowered.com/sub/']").each(function() {
        var href = this.href;
        var target = this.target ? this.target : "_self";
        $(this).mousedown(function(event) {
            event.preventDefault();
            var w;
            var opened = false;
            switch (event.which) {
                case 1:
                    if (CtrlIsPressed) {
                        w = unsafeWindow.open(href, "_blank");
                    } else {
                        w = unsafeWindow.open(href, target);
                    }
                    opened = true;
                    break;
                case 2:
                    w = unsafeWindow.open(href, "_blank");
                    opened = true;
                    break;
                case 3:
                    break;
                default:
                    break;
            }
            if (opened) {
                GM_xmlhttpRequest({
                    method: "HEAD",
                    url: href,
                    onload: function(response) {
                        if (/^https?:\/\/store\.steampowered.com\/?$/.test(response.finalUrl)) {
                            w.location.href = href.replace("store.steampowered.com", "steamdb.info");
                        }
                    }
                });
            }
        });
        /*
        var linkElem = this;
        var href = linkElem.href;
        linkElem.style.cursor = "pointer";
        linkElem.onclick = function(ev) {
            ev.preventDefault();
            linkElem.removeAttribute("href");
        };
        linkElem.onmousedown = function(ev) {
            ev.preventDefault();
            linkElem.removeAttribute("href");
        };
        linkElem.onmouseup = function(ev) {
            ev.preventDefault();
            var w;
            var check = true;
            if (ev.button) {
                if (ev.button == 1) {
                    w = unsafeWindow.open(href, "_blank");
                } else if (ev.button == 2) {
                    check = false;
                }
            } else {
                w = linkElem.target ? unsafeWindow.open(href, linkElem.target) : unsafeWindow.open(href, "_self");
            }
            if (check) {
                GM_xmlhttpRequest({
                    method: "HEAD",
                    url: href,
                    onload: function(response) {
                        if (/^https?:\/\/store\.steampowered.com\/?$/.test(response.finalUrl)) {
                            w.location.href = href.replace("store.steampowered.com", "steamdb.info");
                        }
                    }
                });
            }
            setTimeout(function(){
                linkElem.setAttribute("href", href);
            }, 10);
        };*/
    });
});