Torn Dump Auto Search

Automatically searches the dump on Torn.com repeatedly, picks up items, searches again, and stops when energy is insufficient

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey, Greasemonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey to install this script.

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Torn Dump Auto Search
// @namespace    http://tampermonkey.net/
// @version      2.7
// @description  Automatically searches the dump on Torn.com repeatedly, picks up items, searches again, and stops when energy is insufficient
// @author       Leanna
// @match        https://www.torn.com/dump.php
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    let isActive = false;
    let initialSearchCompleted = false;

    // Function to perform the search cycle
    function performSearchCycle() {
        if (isActive && checkDumpPage()) {
            if (checkEnergy()) {
                toggleScriptOff();
                return;
            }

            if (!initialSearchCompleted) {
                const searchButton = document.querySelector('.btn.torn-btn[href*="step=search"]:not([i-data="i_318_170_96_33"])');
                if (searchButton) {
                    searchButton.click(); // Simulate a click event
                    console.log("Initial search...");

                    setTimeout(() => {
                        initialSearchCompleted = true;
                        if (isActive) {
                            performSearchCycle();
                        }
                    }, 5000); // Set to 5000 milliseconds (5 seconds)
                } else {
                    console.log("Search button not found.");
                }
            } else {
                // Perform pick up
                const pickUpButton = document.querySelector('.btn.torn-btn[href*="step=pickUp"]');
                if (pickUpButton) {
                    pickUpButton.click(); // Simulate a click event
                    console.log("Picking up items...");

                    setTimeout(() => {
                        // Perform search again
                        const searchAgainButton = [...document.querySelectorAll('.btn.torn-btn[href*="step=search"]')]
                            .find(el => el.querySelector('span')?.textContent === 'SEARCH AGAIN');

                        if (searchAgainButton) {
                            searchAgainButton.click(); // Simulate a click event
                            console.log("Searching the dump again...");

                            // Wait for the page to update, then restart the cycle
                            setTimeout(() => {
                                if (isActive) {
                                    performSearchCycle();
                                }
                            }, 5000); // Set to 5000 milliseconds (5 seconds)
                        } else {
                            console.log("Search Again button not found.");
                        }
                    }, 2000); // Set to 2000 milliseconds (2 seconds)
                } else {
                    console.log("Pick up button not found.");
                }
            }
        }
    }

    // Check if we are on the dump page
    function checkDumpPage() {
        return window.location.href.includes("torn.com/dump.php");
    }

    // Check if there is enough energy to search the dump
    function checkEnergy() {
        const energyMessage = document.body.textContent.includes('You do not have enough energy to search the dump.');
        return energyMessage;
    }

    // Function to toggle the script off
    function toggleScriptOff() {
        isActive = false;
        initialSearchCompleted = false;
        button.innerHTML = 'OFF';
        button.style.backgroundColor = 'green';
        console.log("Not enough energy. Stopping search.");
    }

    // Create a toggle button element
    const button = document.createElement('button');
    button.innerHTML = 'OFF';
    button.style.position = 'fixed';
    button.style.top = '20%'; // Adjusted position
    button.style.right = '0%';
    button.style.zIndex = '9999';
    button.style.backgroundColor = 'green';
    button.style.color = 'white';
    button.style.border = 'none';
    button.style.padding = '6px';
    button.style.borderRadius = '6px';
    button.style.cursor = 'pointer';

    // Add a click event listener to toggle the search functionality
    button.addEventListener('click', function(e) {
        e.preventDefault(); // Prevent page reload
        isActive = !isActive;
        initialSearchCompleted = false; // Reset initial search state
        if (isActive) {
            button.innerHTML = 'ON';
            button.style.backgroundColor = 'red';
            performSearchCycle();
        } else {
            button.innerHTML = 'OFF';
            button.style.backgroundColor = 'green';
            console.log("Stopped searching.");
        }
    });

    // Add the button to the page
    document.body.appendChild(button);

})();