vrchat one-time code

使用按鈕複製Gmail內的vrchat one-time code

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

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

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         vrchat one-time code
// @version      2.1
// @description  使用按鈕複製Gmail內的vrchat one-time code
// @author       BaconEgg
// @match        https://mail.google.com/mail/*
// @grant        GM_setClipboard
// @namespace https://greasyfork.org/users/735944
// ==/UserScript==
(function() {
    'use strict';

    const otpRegex = /Your One-Time Code is (\d{6})/;

    function getRandomColor() {
        return `#${Math.random().toString(16).slice(2, 8).padEnd(6, '0')}`;
    }

    function extractOTP() {
        const element = [...document.querySelectorAll("span, div")].find(el => otpRegex.test(el.textContent));
        if (element) {
            const otp = element.textContent.match(otpRegex)[1];
            GM_setClipboard(otp);
            document.getElementById('customOTPButton').style.background = getRandomColor();
        }
    }

    function addButton() {
        if (document.getElementById('customOTPButton')) return; // Prevent duplicate button

        const customButton = document.createElement('button');
        customButton.id = 'customOTPButton';
        customButton.textContent = 'VRChat code';
        customButton.addEventListener('click', extractOTP);

        Object.assign(customButton.style, {
            padding: "10px 15px",
            background: "#4285F4",
            color: "#fff",
            border: "none",
            borderRadius: "5px",
            cursor: "pointer"
        });

        const buttonParent = document.querySelector('.bGJ') || document.querySelector('.aeH');
        if (buttonParent) buttonParent.appendChild(customButton);
    }

    window.addEventListener("load", () => setTimeout(addButton, 1000));
})();