Displaycase Item Sets

Get plushie and flower sets

// ==UserScript==
// @name         Displaycase Item Sets
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  Get plushie and flower sets
// @author       olesien
// @match        https://www.torn.com/displaycase*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=torn.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    window.addEventListener(
        "load",
        function () {
            //DOM has loaded
            setTimeout(() => doIt(), 200);
        },
        false
    );

    const plushieIds = [258, 261, 266, 268, 269, 273, 274, 281, 384, 618];
    const flowerIds = [260, 263, 264, 267, 271, 272, 276, 277, 282, 385, 617]

    function doIt() {
        const infoBoxEl = document.querySelector(".display-main-page");

        //Create item box
        const divEl = document.createElement("div");

        //Grab items
        const items = Array.from(document.querySelectorAll("li.torn-divider"));

        //Function to get lowest set count
        const getSets = (items, itemIds) => {
            const itemMisc = itemIds.map((itemId) => ({id: itemId, count: 0}));

            items.forEach((itemEl) => {
               const itemImageEl = itemEl.querySelector("img.torn-item");
                const source = itemImageEl.src;
                ///images/items/16/large.png
                const id = Number(source.replace(/\D/g,''));
                const itemIndex = itemMisc.findIndex((item) => item.id == id);
                if (itemIndex >= 0) {
                   //exists

                    //Get count
                    const countEl = itemEl.querySelector(".b-item-amount");
                    const count = Number(countEl.innerText.replace(/\D/g,''));

                    //Replace array index
                    itemMisc.splice(itemIndex, 1, {id, count})

                }
            })

            //Reduce to lowest count in array
            return itemMisc.reduce((prev, curr) => (prev.count < curr.count ? prev : curr)).count
        }

        const plushieSets = getSets(items, plushieIds)

        const flowerSets = getSets(items, flowerIds)

        //Add text
        divEl.innerText = `Plushie sets: ${plushieSets} | Flower sets: ${flowerSets}`;
        //Append to box
        infoBoxEl.insertBefore(divEl, infoBoxEl.firstChild);
    }
})();