SparkChain Access Token Extractor

Show accessToken from localStorage and allow copying

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         SparkChain Access Token Extractor
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Show accessToken from localStorage and allow copying
// @author       Forest Army
// @license      MIT
// @match        https://sparkchain.ai/*
// @grant        GM_setClipboard
// @run-at       document-idle
// ==/UserScript==

(function () {
    'use strict';

    // Get the token from localStorage
    const token = localStorage.getItem('accessToken');

    // Create container div
    const container = document.createElement('div');
    container.style.position = 'fixed';
    container.style.top = '10px';
    container.style.right = '10px';
    container.style.background = '#f4f4f4';
    container.style.padding = '10px';
    container.style.border = '2px solid #222';
    container.style.borderRadius = '10px';
    container.style.zIndex = '9999';
    container.style.fontFamily = 'monospace';
    container.style.maxWidth = '90%';
    container.style.wordWrap = 'break-word';

    // Token Text
    const tokenText = document.createElement('div');
    tokenText.textContent = token ? `accessToken: ${token}` : 'accessToken not found.';
    tokenText.style.marginBottom = '8px';
    container.appendChild(tokenText);

    // Copy Button
    const copyBtn = document.createElement('button');
    copyBtn.textContent = '📋 Copy';
    copyBtn.style.padding = '5px 10px';
    copyBtn.style.border = 'none';
    copyBtn.style.borderRadius = '5px';
    copyBtn.style.backgroundColor = '#4CAF50';
    copyBtn.style.color = 'white';
    copyBtn.style.cursor = 'pointer';

    copyBtn.onclick = function () {
        if (token) {
            GM_setClipboard(token);
            copyBtn.textContent = '✅ Copied!';
            setTimeout(() => (copyBtn.textContent = '📋 Copy'), 1500);
        } else {
            alert("No token found.");
        }
    };

    container.appendChild(copyBtn);
    document.body.appendChild(container);
})();