Greasy Fork 支持简体中文。

Auction House Buttons

Adds buttons to copy the minimum bid.

// ==UserScript==
// @name         Auction House Buttons
// @namespace    Titanic_
// @version      1.12
// @description  Adds buttons to copy the minimum bid.
// @license      MIT
// @author       Titanic_ [2968477]
// @match        https://www.torn.com/amarket.php*
// @grant        none
// ==/UserScript==

let selector;

function addListeners() {
    $('#auction-house-tabs').on("click", selector, (clicked) => {
        alert("Bid button clicked")
        let ancestor = clicked.currentTarget.closest("li")
        setTimeout( () => {
            addCopyButton(ancestor)
            addPasteButton(ancestor)
        }, 100);
    })
}

function addCopyButton(parent) {
    if ($(parent).hasClass("active")) {
        console.log("TEST");
        const btn = $("<a>").text("Copy").attr("id", "copy-btn").css({
            cursor: "pointer",
            color: "var(--default-green-color) !important",
            border: "1px solid white",
            "border-radius": "2px",
            padding: ".5rem",
        });

        const span = $("<span>").css({
            display: "inline-block",
            verticalAlign: "middle",
            marginLeft: "15px",
            marginTop: "10px"
        });

        $(btn).on("click", () => {
            alert("Copy clicked")
            let amount = $(parent).find("p > b").text().replace(/[$,]/g, '');
                amount = parseInt(amount);

            navigator.clipboard.writeText(amount.toString()).then(function() {
                console.log('Amount copied to clipboard:', amount);
            }).catch(function(err) {
                console.error('Failed to copy amount to clipboard:', err);
            });
        });

        $(span).append(btn)
        setTimeout(function() {
            $(parent).find("div.confirm .cancel").after(span)
        }, 500);
    }
}

function addPasteButton(parent) {
    if ($(parent).hasClass("active")) {
        const btn = $("<a>").text("Paste").css({
            cursor: "pointer",
            color: "var(--default-orange-color) !important",
            "margin-left": "5px",
            border: "1px solid white",
            "border-radius": "2px",
            padding: ".5rem",
        });

        $(btn).on("click", () => {
            alert("Paste clicked")
            let $inputVisible = $(parent).find(".money.input-money")[0];
            let $inputHidden = $(parent).find(".money.input-money")[1];
            navigator.clipboard.readText().then((clipboardValue) => {
                if (parseInt(clipboardValue)) {
                    $inputVisible.value = parseInt(clipboardValue);
                    $inputVisible.dispatchEvent(new Event("input", { bubbles: true }));
                } else {
                    alert("Not a number");
                }
            });
        });

        setTimeout(function() {
            $(parent).find("div.confirm #copy-btn").after(btn)
        }, 1000);
    }
}

if (window.onurlchange === null) {
    window.addEventListener('urlchange', () => {
        inputCheck();
    });
}

function inputCheck() {
    const targetNode = document.body;
    const config = { childList: true, subtree: true };

    const observer = new MutationObserver((mutationsList, observer) => {
        selector = isMobileMedia() ? '.bid > button.torn-btn' : 'a.bid-icon';

        if (document.querySelector(selector)) {
            addListeners();
            observer.disconnect();
        }
    });

    observer.observe(targetNode, config);
}

inputCheck();