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

63 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('ul[class^="items-cont"][style="display:block;"] li');
console.log(marketItems);
itemList.forEach((item) => {
const itemid = item.querySelector("img").getAttribute("src").split("/")[3];
const 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() {
await forElement('ul[class^="items-cont"][style="display:block;"]');
callMarketApi.then(changePlaceholder, writeErrorOnConsole);
}
run();