Total Price Row

Quickly hacked together script to add a row to the inventory table

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu betiği yüklemek için bir betik yöneticisi eklentisi yüklemeniz gerekecektir.

(Zaten bir betik yöneticim var, hadi yükleyelim!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name Total Price Row
// @namespace http://tampermonkey.net/
// @version 2024-07-10
// @description Quickly hacked together script to add a row to the inventory table
// @author Joshua Vandaele
// @match https://www.steamcardexchange.net/index.php?inventory
// @icon https://www.google.com/s2/favicons?sz=64&domain=steamcardexchange.net
// @license MIT
// @grant none
// ==/UserScript==

(function () {
    'use strict';
    let table = document.getElementById('inventorylist');
    let headerRow = table.querySelector('thead tr');
    let found = false;

    // Function to add the "Total Price" column
    function addTotalPriceColumn() {
        if (!table) {
            table = document.getElementById('inventorylist');
            return false; // Table not found
        }
        if (!headerRow) {
            headerRow = table.querySelector('thead tr');
            return false; // No header row found
        }
        if (!found) {
            const totalPriceHeader = document.createElement('th');
            totalPriceHeader.classList.add('w-32', 'sorting');
            totalPriceHeader.textContent = 'Total Price';
            headerRow.appendChild(totalPriceHeader);
            found = true;
        }

        // Loop through each row in the table body to calculate and add the "Total Price" column
        const rows = table.querySelectorAll('tbody tr');
        rows.forEach(row => {
            // if column already exists, skip
            if (row.querySelector('td:last-child').classList.contains('total-price-cell')) {
                return;
            }
            const worthCell = row.cells[1]; // Assuming "Worth" is the second column
            const cardsInSetCell = row.cells[3]; // Assuming "Cards in Set" is the fourth column
            const worth = parseFloat(worthCell.textContent);
            const cardsInSet = parseFloat(cardsInSetCell.textContent);

            // Calculate "Total Price"
            const totalPrice = worth * cardsInSet;

            // Create a new cell for "Total Price" and append it to the row
            const totalPriceCell = document.createElement('td');
            totalPriceCell.classList.add('total-price-cell');
            totalPriceCell.textContent = totalPrice.toFixed(2); // Format to 2 decimal places
            row.appendChild(totalPriceCell);
        });
        return true; // Indicate success
    }

    const intervalId = setInterval(() => {
        addTotalPriceColumn()
    }, 100); // Check every 1000 milliseconds (1 second)
})();