ChatGPT Temporary Chat Toggle without reloading the web

Toggle temporary chat mode on chaptgpt with double shift key press without reloading

Verzia zo dňa 31.12.2024. Pozri najnovšiu verziu.

// ==UserScript==
// @name         ChatGPT Temporary Chat Toggle without reloading the web
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  Toggle temporary chat mode on chaptgpt with double shift key press without reloading
// @author       小红书 :沉浸式学法语😈  小红书id : 590862748
// @match        https://chatgpt.com/*
// @license MIT
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    let lastShiftTime = 0;
    const SHIFT_TIMEOUT = 500;
    let savedChatChannel = null; // To store the current chat channel for switching back

    document.addEventListener('keydown', handleKeyPress);

    function handleKeyPress(e) {
        if (e.key !== 'Shift') return;

        const currentTime = Date.now();
        if (currentTime - lastShiftTime < SHIFT_TIMEOUT) {
            toggleTemporaryChat();
            lastShiftTime = 0;
        } else {
            lastShiftTime = currentTime;
        }
    }

    function toggleTemporaryChat() {
        const url = new URL(window.location.href);
        const params = new URLSearchParams(url.search);

        if (params.get('temporary-chat') === 'true') {
            if (savedChatChannel) {
                history.replaceState(null, '', savedChatChannel);
                savedChatChannel = null;
            } else {
                history.replaceState(null, '', '/');
            }
        } else {
            if (url.pathname.startsWith('/c/')) {
                savedChatChannel = url.pathname + url.search + url.hash;
            }
            params.set('temporary-chat', 'true');
            history.replaceState(null, '', `/?${params.toString()}`);
        }

        // trigger URL change event for SPA frameworks
        window.dispatchEvent(new PopStateEvent('popstate', { state: history.state }));
    }
})();
// ==Copyright==
// Copyright © 2024 by 沉浸式学法语😈 (小红书 ID: 590862748). All rights reserved.
// This script is the intellectual property of the author. Unauthorized copying, modification,
// or redistribution of this script, in whole or in part, is strictly prohibited without explicit
// prior written permission from the author.
// For inquiries, contact the author through their 小红书 ID: 590862748.
// ==End of Copyright==