TurboWarp to Scratch

Adds a button on TurboWarp projects that links back to Scratch

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         TurboWarp to Scratch
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Adds a button on TurboWarp projects that links back to Scratch
// @author       c00lk1dha4k3r1 -- a scratch user
// @match        https://turbowarp.org/*
// @icon         https://scratch.mit.edu/favicon.ico
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to create the Scratch button
    function createScratchButton() {
        const projectId = window.location.pathname.split('/')[1];
        const scratchUrl = `https://scratch.mit.edu/projects/${projectId}`;

        const button = document.createElement('a');
        button.href = scratchUrl;
        button.innerText = 'Open in Scratch';
        button.style.position = 'fixed';
        button.style.top = '10px';
        button.style.right = '10px';
        button.style.padding = '10px 20px';
        button.style.backgroundColor = '#4d97ff';
        button.style.color = '#fff';
        button.style.border = 'none';
        button.style.borderRadius = '5px';
        button.style.textDecoration = 'none';
        button.style.fontSize = '16px';
        button.style.fontWeight = 'bold';
        button.style.cursor = 'pointer';
        button.style.zIndex = '1000';

        document.body.appendChild(button);
    }

    // Check if the document is fully loaded
    function checkLoaded() {
        if (document.readyState === 'complete') {
            createScratchButton();
        } else {
            window.addEventListener('load', createScratchButton);
        }
    }

    checkLoaded();
})();