Prevent Automatic Logout

No logout

目前為 2024-05-16 提交的版本,檢視 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Prevent Automatic Logout
// @namespace    http://tampermonkey.net/
// @version      2024-05-16
// @description  No logout
// @author       You
// @match        https://web.budgetbakers.com/dashboard
// @icon         https://www.google.com/s2/favicons?sz=64&domain=budgetbakers.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Attempt to find and override the logout interval/function directly
    // This part is speculative and needs adjustment based on the actual implementation
    const originalSetInterval = window.setInterval;
    window.setInterval = function(callback, interval) {
        // Check if this interval is likely the logout timer based on its interval
        if (interval === 3000) {
            console.log('Intercepted logout timer');
            // Do not set this interval
            return -1;
        }
        // For all other intervals, behave as normal
        return originalSetInterval(callback, interval);
    };

    // Use a MutationObserver to detect when the logout dialog is added to the DOM and click the cancel button
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            mutation.addedNodes.forEach(node => {
                // Assuming the cancel button can be uniquely identified by its text content
                // This needs to be adjusted based on the actual implementation
                if (node.textContent.includes('Cancel Logout Text Here')) {
                    node.click();
                }
            });
        });
    });

    // Start observing the body for added nodes
    observer.observe(document.body, { childList: true, subtree: true });

    console.log('Automatic logout prevention script initialized');
})();