Files
tornjs/bazaar.user.js
2020-05-03 23:27:30 +02:00

58 lines
1.8 KiB
JavaScript

// ==UserScript==
// @name Bazaar Helper
// @namespace https://jotde.eu
// @updateURL https://gitea.jotde.be/jens/tornjs/raw/branch/master/bazaar.user.js
// @version 0.1
// @description try to take over the world!
// @author JotDe:
// @match https://www.torn.com/bazaar.php*
// @grant GM.xmlHttpRequest
// ==/UserScript==
const callMarketApi = new Promise((resolve, reject) => {
GM.xmlHttpRequest({
method: "GET",
url: "http://jotde.eu/api/market",
onload: function(response) {
if (response.status != 200) {
reject(`HTTP Status ${response.status} ${response.statusText}: ${response.responseText}`);
}
resolve(JSON.parse(response.responseText));
}
});
});
async function forElement(element) {
while (!document.querySelector(element)) {
await new Promise(resolve => setTimeout(resolve, 500));
}
}
async function changePlaceholder(marketItems) {
let itemList = document.querySelectorAll(selectedBazaarTab + " li");
console.log(marketItems);
itemList.forEach(item => {
itemid = item.querySelector('img').getAttribute('src').split('/')[3];
marketItem = marketItems[itemid];
if(marketItem){
item.querySelector('div[class="amount"] input[type="text"]').setAttribute('placeholder', marketItem['count']);
item.querySelector('div[class="price"] div[class^="input-money-group"] input[type="text"]').setAttribute('placeholder', marketItem['avg']);
}
});
}
async function writeErrorOnConsole(error) {
console.log(error);
}
async function run() {
selectedBazaarTab = 'ul[class^="items-cont"][style="display:block;"]';
await forElement(selectedBazaarTab);
callMarketApi.then(changePlaceholder, writeErrorOnConsole);
}
run();