BLPPSC

Bricklink Price Per Stud Calculator

// ==UserScript==
// @name         BLPPSC
// @version      0.1
// @namespace    Bricklink_Price_Per_Stud_Calculator
// @description  Bricklink Price Per Stud Calculator
// @author       Sencer ÖZTÜFEKÇİ
// @match        https://store.bricklink.com/*
// @icon         https://www.google.com/s2/favicons?domain=bricklink.com
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    window.onload=init;
    function init(){
        hesapla();
        const icerik = document.getElementsByClassName('store-view-panel in-menu')[0];
        const config = {
            attributes: true,
            childList: true,
            characterData: true
        };

        const callback = mutations => {
            mutations.forEach(mutation => {
                if(mutation.removedNodes[0]?.className==='wl-loading-spinner'){
                    console.log('değişti');
                    hesapla();
                }
            });
        }

        const observer = new MutationObserver(callback);
        observer.observe(icerik, config);

    }

    function hesapla(){
        var satirlar=document.getElementsByClassName('item component table-row');
        for(var i=0;i<satirlar.length;i++){
            //   var fiyat=Number(satirlar[i].childNodes[3].childNodes[1].childNodes[1].innerText.split(' ')[1].split(',').join());
            var _x=Number(satirlar[i].childNodes[2].childNodes[0].childNodes[0].childNodes[1].innerText.split(' ')[1]);
            var _y=Number(satirlar[i].childNodes[2].childNodes[0].childNodes[0].childNodes[1].innerText.split(' ')[3]);
            var fiyat=Number(satirlar[i].childNodes[3].childNodes[1].childNodes[1].innerText.split(' ')[1].split(',').join(''));
            var birim=satirlar[i].childNodes[3].childNodes[1].childNodes[1].innerText.split(' ')[0]
            var studFiyat= fiyat / (_x * _y);
            if(studFiyat){
                satirlar[i].childNodes[3].childNodes[1].childNodes[1].insertAdjacentHTML('afterend', '<br> PPS: <b>'+birim+' '+studFiyat.toFixed(4)+'</b>');
            }
        }
    }
})();