Hosp timer

show hosp timer

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Hosp timer
// @namespace    namespace
// @version      1.3
// @description  show hosp timer
// @author       mingho
// @match        https://www.torn.com/loader.php*
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let api = '' //enter your API
    let countdownElement; // New element for the countdown

    let url = window.location.href;
    let id = url.slice(url.indexOf("ID=") + 3);

    let apiUrl = `https://api.torn.com/user/${id}?selections=profile&key=${api}`;
    let countdownInterval;

    async function getData() {
        try {
            const res = await fetch(apiUrl);
            const data = await res.json();
            let hospTime = data.states.hospital_timestamp;

            let currentTime = new Date().getTime();
            let adjustedHospTime = (hospTime * 1000);

            let timeLeft = (adjustedHospTime - currentTime);
            console.log(timeLeft);

            startCountdown(timeLeft);

        } catch (error) {
            console.error('An error occurred:', error);
        }
    }

    function createCountdownElement() {
        const countdownDiv = document.createElement('div');
        countdownDiv.id = 'countdown-element'; // Set an ID for the countdown element

        // Find the div element with the specific class name
        const targetDiv = document.querySelector('.titleContainer___QrlWP');



        // Insert the h4 element and countdown div into the target div

        targetDiv.appendChild(countdownDiv);

        return countdownDiv;
    }

    function updateCountdownElement(content) {
        if (!countdownElement) {
            countdownElement = createCountdownElement();
        }

        countdownElement.textContent = content;
    }

    function startCountdown(timeLeft) {
        countdownInterval = setInterval(() => {
            if (timeLeft > 0) {
                let hours = Math.floor(timeLeft / (1000 * 60 * 60));
                let minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));
                let seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);

                const countdownText = `Out in: ${hours}h ${minutes}m ${seconds}s`;

                updateCountdownElement(countdownText);

                timeLeft -= 1000;
            } else {
                clearInterval(countdownInterval);
                updateCountdownElement('Attack!');
            }
        }, 1000);
    }

    getData();
})();