Torn Dump Auto Search

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

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 komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

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         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);

})();