// ==UserScript== // @name steam史低价格显示&快速打开steamdb // @namespace http://tampermonkey.net/ // @version 0.7 // @namespace akari // @description 在steam软件页面自动显示史低价格。在steam页面对着一个商品按ctrl+右键,即可快速打开该商品的steamdb链接,用于查看其价格曲线等。 // @author Pikaqian // @match https://store.steampowered.com/* // @icon https://store.steampowered.com/favicon.ico // @grant GM_xmlhttpRequest // @downloadURL none // ==/UserScript== (function() { 'use strict'; let styleE = document.createElement('style'),button document.body.appendChild(styleE); styleE.textContent=` #price{ color:#c1e0f7; font-size:20px; height:32px; width:40px; text-align:center; line-height:32px; opacity:.0; background: linear-gradient(to right, #3da2f1, #2561d1) } #button{ height:16px; width:18px; border-bottom-right-radius:21px; border-top-right-radius:21px; color:#fff; padding:6px; opacity:.5; left:-22px; cursor:pointer; position:fixed; z-index:10; font-size:14px; top:38%; background:#fff; transition: 0.3s }` var match_bundle=/bundle\/\d{3,7}\// var match_app=/app\/\d{3,7}\// var match_sub=/sub\/\d{3,7}\// var page_url=window.location.href,img function openUrl(type,img){ var page_substr=img.match(/\d{3,7}/) var last_id=page_substr[0] window.open("https://steamdb.info/"+type+"/"+last_id+"/") event.preventDefault() } function getA(event){ var elemA=event.target for(var o=0;o<4;o++){ if(event.target.localName=="a"){ img=event.target.href break } else{ elemA=elemA.parentNode if(elemA.localName=="a"){ img=elemA.href break } } } } function checkImg(){ var elemA=event.target if(elemA.className=="similar_recent_apps_container"||elemA.id=="recommended_block"){ return true } else{ for(var u=0;u<5;u++){ elemA=elemA.parentNode if(elemA.className=="similar_recent_apps_container"||elemA.id=="recommended_block"){ return true } } return false } } function setCookie(cname,cvalue,exdays){ var cookie_all=cname for(var i=0;i<20;i++){ cookie_all=cookie_all+"1" } exdays=-1 cookie_all=cname+"="+cvalue+"; "+exdays+";path=/" var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cookie_all; } function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i{ var elem=getelemt("button") elem.style.transform="translateX(20px)" }) button.addEventListener('mouseleave',()=>{ var elem=getelemt("button") elem.style.transform="translateX(0px)" }) button.addEventListener('click',()=>{ if(getCookie("low")==""||getCookie("low")==0){ setCookie("low","1",-1) document.getElementById("button").style.background="#2a6fd8" } else if(getCookie("low")==1){ setCookie("low","0",-1) document.getElementById("button").style.background="#fff" } }) if(getCookie("low")==1){ if(page_url.match(/app\/\d{3,7}/)!=null){ var newPrice_1=document.getElementsByClassName("game_purchase_action_bg")[0] var newPrice_2=document.getElementsByClassName("game_purchase_action_bg")[0].childNodes[0] var price var finalUrl=page_url.match(/app\/\d{3,7}/)[0] GM_xmlhttpRequest({ method: "GET", url: "https://steamdb.info/"+finalUrl, headers:{ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59" }, onload: function(res) { if(res.status === 200){ console.log('成功') var p=res.responseText console.log(p) var q=res.responseText.match("table-prices-current") var a=p.split('data-cc="cn"')[p.split('data-cc="cn"').length-1] var b=a.split('data-cc=')[0] var r=res.responseText.substr(q.index,10) var price=b.match(/\d{1,3}<\/td>/)[0].match(/\d{1,3}/)[0] var price_len=price.length console.log(price) if(price!=undefined){ var oText=document.createElement("cookie_text"); oText.setAttribute("id","price"); oText.type="text"; var text1=document.createTextNode("¥"+price); //oText.setAttribute('width',40+2*parseInt(price_len)+"px"); /* var oo=document.getElementsByTagName("style")[0].innerText.replace(/width:40px/,"width:"+parseInt(parseInt(40)+parseInt(10*parseInt(price_len)))+"px") document.getElementsByTagName("style")[0].childNodes[0].remove() document.getElementsByTagName("style").appendChild(oo) */ oText.appendChild(text1) //newPrice.appendChild(oText) newPrice_1.insertBefore(oText,newPrice_2); oText.style.width=parseInt(parseInt(40)+parseInt(10*parseInt(price_len)))+"px" oText.style.opacity="1" } } else{ console.log('失败') console.log(res) } } }) } } window.addEventListener('contextmenu',function (event){ if(event.ctrlKey==true){ if(page_url.match(match_bundle)!=null){ openUrl("bundle",page_url) } else if(page_url.match(match_app)!=null){ var count=0 elemA=event.target if(checkImg()==true){ getA(event) var page_substr=img.match(/\d{3,7}/) var last_id=page_substr[0] window.open("https://steamdb.info/app/"+last_id+"/") event.preventDefault() } else{ openUrl("app",page_url) } } else if(page_url.match(match_sub)!=null){ openUrl("sub",page_url) } else{ var lala=event.target var elemA=event.target for(var i=0;i<10;i++){ if(event.target.localName=="a"){ img=event.target.href } else{ elemA=elemA.parentNode if(elemA.localName=="a"){ img=elemA.href break } else if(elemA.className=="wishlist_row"){ for(var m=0;m