If the Steam Store App or Sub doesn't exist or is removed, redirect to SteamDB.info instead of store.steampowered.com.
当前为
// ==UserScript==
// @name Steam Store - Removed App/Sub Redirect To SteamDB
// @namespace Royalgamer06
// @version 0.1
// @description If the Steam Store App or Sub doesn't exist or is removed, redirect to SteamDB.info instead of store.steampowered.com.
// @author Royalgamer06
// @include *
// @exclude file://*
// @run-at document-idle
// @grant GM_xmlhttpRequest
// ==/UserScript==
var ajax_img = "data:image/gif;base64,R0lGODlhEAALAPQAAP///wAAANra2tDQ0Orq6gYGBgAAAC4uLoKCgmBgYLq6uiIiIkpKSoqKimRkZL6+viYmJgQEBE5OTubm5tjY2PT09Dg4ONzc3PLy8ra2tqCgoMrKyu7u7gAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA";
document.querySelectorAll("a[href*='://store.steampowered.com/app/'], a[href*='://store.steampowered.com/sub/']").forEach(function(linkElem) {
linkElem.onclick = function() {
var prev_html = linkElem.innerHTML;
linkElem.innerHTML = "<img src='" + ajax_img + "'></img>";
GM_xmlhttpRequest({
method: "GET",
url: linkElem.href,
onload: function(response) {
if (/^https?:\/\/store\.steampowered.com\/?$/.test(response.finalUrl)) {
window.open(linkElem.href.replace("store.steampowered.com", "steamdb.info"));
} else {
window.open(linkElem.href);
}
linkElem.innerHTML = prev_html;
},
onerror: function() { window.open(linkElem.href); },
ontimeout: function() { window.open(linkElem.href); }
});
return false;
};
});