您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Get Region Lock Information Quickly
当前为
// ==UserScript== // @name STDB Region Lock Checker // @namespace local.CR // @version 0.1.1 // @description Get Region Lock Information Quickly // @author CharRun // @match https://steamdb.info/app/* // @grant GM_xmlhttpRequest // @icon https://steamdb.info/static/logos/header.svg // ==/UserScript== (function() { // Initialization var details = false; //是否开启详情模式 ; var auto_loading = true; //是否开启自动加载; var time_delay = 1500; //自动加载延时 1000 = 1秒; function createTitle(){ var head = document.getElementsByClassName('span2 sort-header')[0].parentElement; var title = document.createElement('th'); if (details) { title.innerHTML = "Region Lock Information"; title.style.width = "260px"; }else{ title.innerHTML = "Mini RLI"; title.style.width = "140px"; } head.appendChild(title); } function createContainer(){ var packages = document.getElementsByClassName('package'); var count = packages.length; if (details) { for(var num = 0; num < count; num++){ var main_container = document.createElement('td'); main_container.setAttribute("class","public_container") main_container.setAttribute("status_num","0"); main_container.innerHTML = "Waiting for Check."; main_container.style.textAlign = "center"; main_container.style.width = "260px" main_container.style.opacity = 1.0; packages[num].appendChild(main_container); addOperatingMode(main_container,num); } }else{ for(var num = 0; num < count; num++){ var main_container = document.createElement('td'); var visible_container = document.createElement('div'); var invisible_container = document.createElement('div'); var hidden_content0 = document.createElement('p'); var hidden_content1 = document.createElement('p'); var hidden_content2 = document.createElement('p'); main_container.style.position = "relative"; main_container.style.padding = "0px"; visible_container.style.position = "absolute"; visible_container.style.width = "100%"; visible_container.style.height = "100%"; visible_container.setAttribute("class","public_container") visible_container.setAttribute("status_num","0"); visible_container.innerHTML = "Waiting for Check."; visible_container.style.width = "140px" visible_container.style.opacity = 1.0; visible_container.style.padding = "8px 0px"; visible_container.style.textAlign = "center"; invisible_container.style.display = "none"; invisible_container.style.position = "absolute"; invisible_container.style.left = "140px" invisible_container.style.top = "0px" invisible_container.style.width = "260px"; invisible_container.style.boxShadow = "10px 10px 20px 0px rgba(0,0,0,0.2)"; invisible_container.style.padding = "0px 10px"; invisible_container.style.backgroundColor = "rgba(204,204,204,0.6)"; invisible_container.style.borderRadius = "25px"; hidden_content0.setAttribute("class","hidden_content0"); hidden_content0.style.color = "white"; hidden_content0.style.backgroundColor = "rgba(140, 193, 82, 1)"; hidden_content0.style.textAlign = "center"; hidden_content0.style.fontSize = "16px"; hidden_content0.style.lineHeight = "150%"; hidden_content0.style.borderRadius = "15px"; hidden_content0.style.margin = "10px"; hidden_content1.setAttribute("class","hidden_content1"); hidden_content1.style.color = "white"; hidden_content1.style.backgroundColor = "orange"; hidden_content1.style.textAlign = "left"; hidden_content1.style.fontSize = "16px"; hidden_content1.style.lineHeight = "150%"; hidden_content1.style.borderRadius = "15px"; hidden_content1.style.padding = "0px 5px"; hidden_content2.setAttribute("class","hidden_content2"); hidden_content2.style.color = "white"; hidden_content2.style.backgroundColor = "rgba(229,57,53,.8)"; hidden_content2.style.textAlign = "left"; hidden_content2.style.fontSize = "16px"; hidden_content2.style.lineHeight = "150%"; hidden_content2.style.borderRadius = "15px"; hidden_content2.style.padding = "0px 5px"; packages[num].appendChild(main_container); main_container.appendChild(visible_container); main_container.appendChild(invisible_container); invisible_container.appendChild(hidden_content0); invisible_container.appendChild(hidden_content1); invisible_container.appendChild(hidden_content2); addOperatingMode(main_container,num,invisible_container); } } } function getStatusNum(num){ var status_num; var count = document.getElementsByClassName('package').length; if(num >= count){ status_num = "overflow" }else{ status_num = document.getElementsByClassName("public_container")[num].getAttribute("status_num"); } return status_num; } function addOperatingMode (element1,num,element2){ element1.onmouseover = function (){ var status_num = getStatusNum(num); if (status_num === "0" || status_num === "1" ){ reciver(num); }else if(details){ // }else{ element2.style.display = "block"; } } element1.onmouseout = function (){ if(!details){ element2.style.display = "none"; } } } function autoLoading(){ var num = 0; var count = document.getElementsByClassName('package').length; if (auto_loading) { var delay = setInterval(function(){ var statusnum = getStatusNum(num); for (;statusnum !== "0";) { num ++; statusnum = getStatusNum(num); } reciver(num); num ++; if (num >= count) { clearInterval(delay); } },time_delay) } } function reciver(num){ var packages = document.getElementsByClassName('package'); var count = packages.length; if(num >= count){return;} var subid = packages[num].getAttribute("data-subid"); GM_xmlhttpRequest({ url: "https://steamdb.info/sub/"+subid+"/", method: "get", onload: function (info) { check(num,info.response); }, onerror: output(num,"1"), onprogress: output(num,"2"), }); } function check(num,info){ var status_num; var detail1; var detail2; var browserCheck = /checking_browser/.exec(info); if (browserCheck) { output(num,"3"); return; } info = info.split("id=\"info\"")[1].split("id=\"app\"")[0]; var allow = /AllowPurchaseFromRestrictedCountries<\/td>\n<td>Yes<\/td>/ig.exec(info); var purchaseContries = /PurchaseRestrictedCountries .*[\s\S].*countries-list">(.*?)<\/td>/ig.exec(info); var runCountries = /onlyallowrunincountries .*[\s\S].*countries-list">(.*?)<\/td>/ig.exec(info); if(purchaseContries||runCountries){ if(allow && purchaseContries){ purchaseContries = purchaseContries[1]; detail1 = "Purchase Only: " + purchaseContries ; status_num = "4"; }else if (!allow && purchaseContries) { purchaseContries = purchaseContries[1]; detail1 = "Can't Purchase Only: " + purchaseContries; status_num = "4"; }else{ } if(runCountries){ runCountries = runCountries[1]; detail2 = "RunOnly: " + runCountries; status_num = "4"; } }else{ status_num = "4"; } output(num,status_num,detail1,detail2); } function output (num,status_num,detail1,detail2){ var public_container = document.getElementsByClassName("public_container")[num] var hidden_content0 = document.getElementsByClassName("hidden_content0")[num] var hidden_content1 = document.getElementsByClassName("hidden_content1")[num] var hidden_content2 = document.getElementsByClassName("hidden_content2")[num] if(status_num == "1" || status_num == "2" || status_num == "3"){ switch (status_num){ case "1": public_container.setAttribute("status_num",status_num); public_container.style.backgroundColor = ""; public_container.innerHTML = "Connection Failed"; break; case "2": public_container.setAttribute("status_num",status_num); public_container.style.textAlign = "center"; public_container.style.backgroundColor = "rgba(32, 45, 21, 0.3)"; public_container.innerHTML = "On Loading..."; break; case "3": public_container.setAttribute("status_num",status_num); public_container.style.textAlign = "center"; public_container.style.backgroundColor = ""; public_container.innerHTML = "Browser Safety Check"; break; default: } }else if(details){ if(!detail1 && !detail2){ public_container.innerHTML = "No Restriction"; public_container.style.fontWeight = "bold" public_container.style.color = "rgba(130, 130, 130,.8)"; public_container.style.backgroundColor = "rgba(140, 193, 82, 1)"; }else if(detail2){ detail2 = detail1 + "<br>" + detail2; public_container.innerHTML = detail2; public_container.style.textAlign = "left"; public_container.style.color = "rgba(255,255,240,.8)"; public_container.style.backgroundColor = "rgba(229,57,53,.8)"; public_container.style.fontWeight = "bold" }else{ public_container.innerHTML = detail1; public_container.style.textAlign = "left"; public_container.style.color = "rgba(16, 71, 169, .8)"; public_container.style.backgroundColor = "rgba(255, 165, 0, .8)"; public_container.style.fontWeight = "bold" } }else{ public_container.style.backgroundColor = ""; if(!detail1 && !detail2){ public_container.innerHTML = "(✿◕‿◕✿)"; public_container.style.color = "rgba(140, 193, 82,1)"; hidden_content0.innerHTML = "No Restriction"; }else if(detail2){ public_container.style.color = "rgba(229,57,53,.8)"; public_container.innerHTML = "w(゚Д゚)w"; hidden_content1.innerHTML = detail1; hidden_content2.innerHTML = detail2; }else{ public_container.innerHTML = "(●ˇ∀ˇ●)"; public_container.style.color = "rgba(255, 165, 0, .8)"; hidden_content1.innerHTML = detail1; } } } function main(){ createTitle(); createContainer(); autoLoading(); } main(); })();