Copy Green Text on OpenAI Playground

Create a button that copies the text of all green spans on a page

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

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

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Copy Green Text on OpenAI Playground
// @version      0.1
// @description  Create a button that copies the text of all green spans on a page
// @match        https://beta.openai.com/playground
// @icon         https://www.google.com/s2/favicons?sz=64&domain=openai.com
// @author       Taylor Bell
// @grant        none
// @license      MIT
// @namespace https://greatest.deepsurf.us/users/999210
// ==/UserScript==

(function() {
    'use strict';

    // Create the button
    window.onload = function() {
        const button = document.createElement('button');
        button.innerText = 'Copy Green Text';

        // Add the specified classes to the button
        button.classList.add('btn', 'btn-sm', 'btn-filled', 'btn-neutral');

        // Add a click event listener to the button
        button.addEventListener('click', async () => {
            // When clicked, get all the green span elements and their text
            const greenSpans = document.querySelectorAll('span[style*="background-color: var(--green"]');
            const greenText = [...greenSpans].map(x => x.innerText).join('');

            // Copy the text to the clipboard
            try {
                await navigator.clipboard.writeText(greenText);
            } catch (err) {
                console.error('Failed to copy text: ', err);
            }
        });

        // Keep checking for the element to append the button to
        const interval = setInterval(() => {
            // Find the element
            const headerActions = document.querySelector('div.pg-header > div.pg-header-section.pg-header-actions');

            // Check if the element exists
            if (headerActions) {
                // Append the button to the page
                headerActions.appendChild(button);

                // Clear the interval
                clearInterval(interval);
            }
        }, 500); // Check every 500ms
    }
})();