NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name 1d buy
// @namespace torn
// @version 0.6
// @description try to take over the world!
// @author You
// @grant GM_addStyle
// @match *www.torn.com/bazaar.php?userId=*
// @updateURL https://openuserjs.org/meta/Ahab/1d_buy.meta.js
// @license MIT
// @require https://jpillora.com/xhook/dist/xhook.js
// ==/UserScript==
GM_addStyle(`
.item___2GvHm {
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 73px;
justify-content: center;
position: relative;
width: 261px;
background-color:#f2f2f2
}
.item___-mxOy {
border-left: 1px solid transparent;
border-right: 1px solid transparent;
-webkit-box-sizing: border-box;
box-sizing: border-box
}
.itemDescription___3bOmj {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 100%;
width: 100%
}
.imgBar___1Lq7R {
-webkit-box-align: center;
-ms-flex-align: center;
-ms-flex-item-align: center;
-ms-grid-row-align: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
align-items: center;
align-self: center;
border-radius: 5px;
height: 50px;
justify-content: center;
margin-left: 10px;
position: relative;
width: 100px;
display: flex
}
.imgContainer___1IzaV {
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
z-index: 7;
position: inherit
}
.img___dBFof {
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1
}
.description___2Nx64 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
height: 100%;
padding: 11px 10px 10px;
white-space: nowrap;
width: calc(100% - 110px);
text-align: center
}
.name___IJ_Q- ,.price___8AdTw {
display: block;
height: 15px;
overflow-x: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis
}
.price___8AdTw {
margin-top: 3px
}
.amount___3adQ- {
display: -webkit-box;
display: -ms-flexbox;
display: block;
margin-top: 2px;
}
.amountValue___2_SKj {
height: 15px;
overflow-x: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis
}
.item___2GvHm:before {
border-bottom: 1px solid #fff;
border-bottom-color: var(--default-panel-divider-inner-side-color);
border-top: 1px solid #ccc;
border-top-color: var(--default-panel-divider-outer-side-color);
content: "";
left: 0;
position: absolute;
top: -2px;
width: 100%
}
.item___-mxOy:after {
background: -webkit-gradient(linear,left bottom,left top,from(hsla(0,0%,80%,0)),color-stop(50%,#ccc),to(hsla(0,0%,80%,0)));
background: -o-linear-gradient(bottom,hsla(0,0%,80%,0) 0,#ccc 50%,hsla(0,0%,80%,0) 100%);
background: linear-gradient(0deg,hsla(0,0%,80%,0),#ccc 50%,hsla(0,0%,80%,0));
background: var(--default-divider-left-linear-gradient);
content: "";
height: 100%;
position: absolute;
right: -1px;
top: 0;
width: 1px
}
.torn-item.item-plate,.thumbnail .torn-item.item-plate {
height: 50px;
width: 100px;
padding: 3px 0 0;
box-sizing: border-box;
border-right: none;
border-left: none;
border-top: none;
border-bottom: 1px solid #fff;
border-radius: 6px;
box-shadow: inset 0 3px 4px #1111113b;
background: #e8e8e8 linear-gradient(0deg,#EBEBEB 0%,#DDDDDD 100%) 0 0 no-repeat;
background: var(--items-plate-background-color) var(--items-plate-background);
border: var(--items-plate-border);
border-color: var(--items-plate-border-color);
box-shadow: var(--items-plate-box-shadow);
z-index: 1;
position: absolute
}
div[class*="core-layout__"]{
margin-bottom: 0px
}
`)
var items = []
xhook.before(function(request) {
if(request.url.match(/order=default/)){
request.url = request.url.replace('order=default','order=cost')
}
});
xhook.after(function(request, response) {
if(request.url.match(/getBazaarItems&start=/)){
response.clone().text().then((text) => {
items = JSON.parse(text)
listItems()
})
}
});
$('button[class*="item___"]').live("click", function(event) {
$('div[class*="item___2GvHm"]').remove()
});
function listItems(){
var timer = setInterval(function() {
if ($('div[class*="ReactVirtualized__Grid ReactVirtualized__List"]').length == 1) {
$('div[class*="ReactVirtualized__Grid ReactVirtualized__List"]').remove()
clearInterval(timer);
}
}, 50);
$.each(items.list, function(index){
var amount = Math.floor($('span[id*="user-money"]').attr('data-money')/items.list[index].price)
if(amount > items.list[index].amount){
amount = items.list[index].amount
}
if($('div[data-id^="'+items.list[index].bazaarID+'"]').length == 0 && items.list[index].isBlockedForBuying == false){
$('div[id*="bazaarRoot"]').append('<div class="cont-gray item___2GvHm item___-mxOy" style="float: left; display: block;" data-cat="'+items.list[index].category+'" data-name="'+items.list[index].name+'" data-quality="'+items.list[index].quality+'" data-price="'+items.list[index].price+'" data-median="'+items.list[index].medianprice+'"data-id="added"><div class="itemDescription___3bOmj" id="itemD" data-id='+items.list[index].bazaarID+' style="width: 100% !important;"><div class="imgBar___1Lq7R"><canvas class="torn-item item-plate item-converted" width="100" height="50" style="opacity: 1;"></canvas><div class="imgContainer___1IzaV" id="imagebuy" data-html="true"><img class="img___dBFof" src="/images/items/'+items.list[index].ID+'/large.png"></div></div><div style="display: block; overflow: auto; width: inherit;"><div class="description___2Nx64" id="itemdescription" style="width: auto; display: block;"><p class="name___IJ_Q-">'+items.list[index].name+'</p><p class="price___8AdTw">'+'$'+parseInt(items.list[index].price).toLocaleString()+'</p><p class="amount___3adQ-">(<span class="amountValue___2_SKj">'+items.list[index].amount+'</span> in stock)</p></div><div id="buyStep" style="margin: auto; display: none"><div style="padding: 5px;"><p id="enterAmount" style="text-align-last: center;">Amount to buy</p><div style="text-align-last: center;"><input name="quantity" type="number" class="numberInput___2w5QL buyAmountInput___Aooaf" min="0" max='+items.list[index].amount+' step="1" value='+amount+' style="width: 50px; height: 5px;"></div><div style="text-align-last: center;"><p>Total Cost</p><p id="total">'+'$'+(amount*items.list[index].price).toLocaleString()+'</p></div></div></div></div><div id="buyresult" class="cont-gray buyoutcome" style="background-color:#f2f2f2; padding: 1px 5px 1px; display: none; text-align: center; margin-block: auto;"></div></div>');
}})
items = []
}
$(document).on('click', '.item___2GvHm', function(event) {
var amount = Math.floor($('span[id*="user-money"]').attr('data-money')/$(this)[0].dataset.price)
if(amount > $(this).find('#itemD').find('.amountValue___2_SKj')[0].innerText){
amount = $(this).find('#itemD').find('.amountValue___2_SKj')[0].innerText
}
if(amount > 0){
var o = $(this)
var price = $(this).find('.itemDescription___3bOmj').find('.price___8AdTw')[0].textContent.replace(/\$/g, '').replace(/,/g, '')
var beforeval = amount*price
var stock = $(this).find('#itemD').find('.amountValue___2_SKj')[0].innerText
const XHR = new XMLHttpRequest(),
data = new FormData();
data.append('userID', $('div[class*="messageContent___"]')[0].children[0].href.split("=")[1]);
data.append('id', $(this).find('.itemDescription___3bOmj')[0].attributes[2].value);
data.append('itemID', $(this).find('.img___dBFof')[0].currentSrc.split("/")[5]);
data.append('amount', amount);
data.append('price', price);
data.append('beforeval', beforeval)
XHR.addEventListener('load', function(event) {
o.find('.itemDescription___3bOmj')[0].children[1].style.display = "none";
o.find('.itemDescription___3bOmj')[0].children[2].style.display = "block";
o.find('.itemDescription___3bOmj')[0].children[2].innerHTML = JSON.parse(event.target.response)['text']
if(JSON.parse(event.target.response)['success'] == false){
$('div[class*="buyoutcome"]').css('color', 'rgb(216,53,0)');
}
else if(JSON.parse(event.target.response)['success'] == true){
$('div[class*="buyoutcome"]').css('color', 'rgb(103,140,0)');
stock = stock-amount
o.find('#itemD').find('.amountValue___2_SKj')[0].innerText = stock
}
});
XHR.addEventListener('error', function(event) {
console.log(event);
});
XHR.open('POST', 'https://www.torn.com/bazaar.php?sid=bazaarData&step=buyItem');
XHR.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
XHR.send(data);
}
})
/*
broken 2025
$(document).on('click', '#buyresult', function(event) {
if($(this).closest('#itemD').find('p[class^="amount___"]')[0].innerText.split("in")[0].split("(")[1] == 0){
$(this).closest('div[class^="item___"]').remove()
}
else{
$(this)[0].style.display = "none";
$(this)[0].parentElement.children[1].style.display = "block";
}
})*/