您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bot that will buy set of card.
- // ==UserScript==
- // @name Steamlvlbot
- // @version 0.21
- // @description Bot that will buy set of card.
- // @author Zeper
- // @match https://steamlvlup.com/
- // @match https://steamlvlup.com/inventory
- // @grant none
- // @namespace https://greasyfork.org/users/191481
- // ==/UserScript==
- var NeverStop = false;
- if(localStorage.NeverStop === undefined) {localStorage.setItem("NeverStop", false);} else {NeverStop = JSON.parse(localStorage.getItem("NeverStop"));}
- if(localStorage.PREV_USER_BALANCE === undefined) {} else {if(localStorage.PREV_USER_BALANCE != USER_BALANCE){localStorage.removeItem("PREV_USER_BALANCE");}else{localStorage.removeItem("PREV_USER_BALANCE");if(NeverStop){localStorage.setItem("IsBotOn", false);console.log("User balance same as previous, bot can't purchase... the bot will shutdown");}}}
- var IsDebug = false;
- if(localStorage.IsDebug === undefined) {localStorage.setItem("IsDebug", false);} else {IsDebug = JSON.parse(localStorage.getItem("IsDebug"));}
- var IsCustom = false;
- if(localStorage.IsCustom === undefined) {localStorage.setItem("IsCustom", false);} else {IsCustom = JSON.parse(localStorage.getItem("IsCustom"));}
- var CustomName = "";
- if(localStorage.CustomName === undefined) {localStorage.setItem("CustomName", "");} else {if(localStorage.CustomName.length > 0) {CustomName = escape(escape(localStorage.getItem("CustomName")));}}
- if (IsDebug) {console.log("CustomName escaped twice:"+CustomName);}
- var CustomHide = false;
- if(localStorage.CustomHide === undefined) {localStorage.setItem("CustomHide", false);} else {CustomHide = JSON.parse(localStorage.getItem("CustomHide"));}
- var IsBotOn = false;
- if(localStorage.IsBotOn === undefined) {localStorage.setItem("IsBotOn", false);} else {IsBotOn = JSON.parse(localStorage.getItem("IsBotOn"));}
- var GoodPrice = 230;
- if(localStorage.GoodPrice === undefined) {localStorage.setItem("GoodPrice", 230);} else {GoodPrice = JSON.parse(localStorage.getItem("GoodPrice"));}
- var AutoWithdraw = false;
- if(localStorage.AutoWithdraw === undefined) {localStorage.setItem("AutoWithdraw", false);} else {AutoWithdraw = JSON.parse(localStorage.getItem("AutoWithdraw"));}
- var DoWithdraw = false;
- if(localStorage.DoWithdraw === undefined) {localStorage.setItem("DoWithdraw", false);} else {DoWithdraw = JSON.parse(localStorage.getItem("DoWithdraw"));}
- var xhr = new XMLHttpRequest();
- function check() {
- if (IsCustom) {xhr.open('GET', "https://steamlvlup.com/shop/items?page=0&hide_exist="+CustomHide+"&page_size=10&name="+CustomName, true);}
- else {xhr.open('GET', "https://steamlvlup.com/shop/items?page=0&hide_exist=true&page_size=1337&sort_by=price&sort_type=asc", true);}
- xhr.send();
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status == 200) {
- console.log("Looking for cards");
- var response = JSON.parse(xhr.responseText);
- if (response.count > 0) {
- if (IsDebug){console.log(response);}
- console.log("Set of card found");
- if (IsCustom) {
- if (response.items["0"].set_price <= GoodPrice){
- if (response.items["0"].count > 0) {
- if (response.items["0"].bg_lvl < 5 || !CustomHide) {
- console.log("Good price found for "+unescape(response.items["0"].name)+" at "+response.items["0"].set_price+" gems with "+response.items["0"].count+" in stock");
- if (USER_BALANCE < response.items["0"].set_price){console.log("Price seems too hight for actual balance ("+USER_BALANCE+"), trying to buy anyway");}
- BuyBadge(response.items["0"].appid,response.items["0"].border,response.items["0"].set_price);
- } else {console.log("Set found but badge lvl is already max");}
- } else {console.log("at a good price but not in stock");}
- } else {console.log("but at a price too high");}
- } else {
- if (response.items["0"].set_price <= GoodPrice && response.items["0"].bg_lvl < 5){
- console.log("Good price found for "+unescape(response.items["0"].name)+" at "+response.items["0"].set_price+" gems");
- if (USER_BALANCE < response.items["0"].set_price){console.log("Price seems too hight for actual balance ("+USER_BALANCE+"), trying to buy anyway");}
- BuyBadge(response.items["0"].appid,response.items["0"].border,response.items["0"].set_price);
- } else {console.log("No set of card found at a good price that you don't already own");}}
- } else {if(IsCustom) {console.log("No Set found, try another CustomName");} else {console.log("No Set found");}}
- }
- }
- }
- function BuyBadge(badge, border, price){
- if (badge && border >= 0){
- var csrf = document.getElementsByName("csrf-token")[0].content;
- xhr.open('POST', "https://steamlvlup.com/buy/badge", true);
- xhr.setRequestHeader('X-CSRF-TOKEN', csrf);
- xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded; charset=UTF-8");
- var data = "appid="+badge.toString()+"&border="+border.toString();
- xhr.send(data);
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status == 200) {
- var response = JSON.parse(xhr.responseText);
- if (IsDebug){console.log(response);}
- var purchaseSuccess = response.success
- if (purchaseSuccess){
- console.log("Purchase Success !");
- update_balance(price, 'dec');
- if (AutoWithdraw) {window.location = window.location.origin+"/inventory";localStorage.setItem("DoWithdraw", true);} else {window.location.reload(true);}
- } else {
- console.log("Purchase Failed ("+response.msg+")");
- localStorage.setItem("PREV_USER_BALANCE", USER_BALANCE);
- console.log("Reloading to update user balance");
- window.location.reload(true);
- }
- }
- }
- }
- }
- function withdraw(){
- xhr.open('GET', "https://steamlvlup.com/inventory/load?appid=&hide_un=false", true);
- xhr.send();
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status == 200) {
- console.log("Loading inventory");
- var response = JSON.parse(xhr.responseText);
- if (IsDebug){console.log(response);}
- if (response.success && response.count > 0){
- localStorage.setItem("DoWithdraw", false);
- console.log("Withdraw all inventory");
- WS = new WebSocket(HOST + '?token=' + TOKEN + '×tamp=' + TIMESTAMP + '&steamid=' + STEAMID);
- WS.onopen = function() {
- var count_sel = document.getElementsByClassName('inv_item');
- var Msg = {};
- Msg.token = T_TOKEN;
- Msg.command = "withdraw";
- Msg.stockid = local_stockid;
- var items = [];
- if(count_sel.length>0){for(var i=0; i<count_sel.length; i++){items[i]=count_sel[i].dataset.id;}}
- Msg.items = items;
- WS.send(JSON.stringify(Msg));
- console.log("Steam Offer sent !");
- window.location = window.location.origin;
- };
- } else {console.log("Inventory empty");window.location.reload(true);}
- }
- }
- }
- if (IsBotOn) {
- if (window.location.href == window.location.origin+"/"){
- InitShop();
- }
- if (window.location.href == window.location.origin+"/inventory" && DoWithdraw){
- withdraw();
- }
- }
- function InitShop(){
- if (IsBotOn) {
- check();
- setTimeout(function () {InitShop();},30000);
- }
- }