Pin items in bazaar with 1 price.
// ==UserScript==
// @name Torn Black Friday Pinner
// @namespace nodelore.torn.easy-market
// @version 1.0
// @description Pin items in bazaar with 1 price.
// @author nodelore[2786679]
// @match https://www.torn.com/bazaar.php*
// @icon https://www.google.com/s2/favicons?sz=64&domain=torn.com
// @grant unsafeWindow
// @license MIT
// ==/UserScript==
(function () {
"use strict";
const pricePattern = /\$(\d{1,3}(?:,\d{3})*|\d{1,2})(?:\.\d+)?/;
const updateItem = (item)=>{
const name = item.find("p[class^='name']").text();
const priceText = item.find("p[class^='price']").text().trim();
const match = pricePattern.exec(priceText);
if (name !== "" && match) {
const matchPrice = match[1];
const stringWithoutCommas = matchPrice.replace(/,/g, "");
const priceValue = parseInt(stringWithoutCommas, 10);
if(priceValue === 1){
if(!item.hasClass('append')){
item.find('div[class*=description]').css({
'background': '#99CC00'
});
if(item.find('div#isBlockedForBuyingTooltip').length === 0){
item.find('div[class*=description]').css({
'background': '#00A9F9'
});
}
}
item.addClass('append');
}
}
}
const observer = new MutationObserver((mutationList)=>{
for(const mut of mutationList){
for(const addedNode of mut.addedNodes){
if(addedNode.tagName === 'DIV' && addedNode.classList.contains('itemsContainner___tVzIR')){
$(addedNode).find('div[class*=itemDescription]').each(function(){
const item = $(this);
updateItem(item);
});
}
else if(addedNode.tagName === 'DIV' && addedNode.classList.contains('row___LkdFI') && !addedNode.classList.contains('append')){
$(addedNode).find('div[class*=itemDescription]').each(function(){
const item = $(this);
updateItem(item);
});
}
}
}
});
observer.observe($('div#bazaarRoot')[0], {childList: true, subtree: true});
})();