KMail

인증서 코드 취득 기능 제공.

// ==UserScript==
// @name         KMail
// @namespace    https://github.com/korykim
// @version      0.1
// @description  인증서 코드 취득 기능 제공.
// @author       Kory Kim
// @match        *://kotrakbc.or.kr/*
// @grant        GM_setClipboard
// @grant        GM_addStyle
// @icon         data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTYuMDAwMDAwcHQiIGhlaWdodD0iMTYuMDAwMDAwcHQiIHZpZXdCb3g9IjAgMCAxNi4wMDAwMDAgMTYuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+Cgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwxNi4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiMwMDAwMDAiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik0xNyAxMzIgYy0yNCAtMjYgLTIyIC04NSAzIC0xMDcgMjAgLTE4IDI5IC04IDkgMTIgLTYgNiAtOSAyNSAtNyA0MwpsMyAzMiAyOCAtMjIgMjcgLTIxIDI4IDIxIDI3IDIyIDMgLTI3IGM1IC00MyAtNCAtNTUgLTQzIC01NSAtMTkgMCAtMzUgLTQKLTM1IC0xMCAwIC0xOCA2NiAtMTEgODMgOCAyMyAyNSAyMiA4NSAtMSAxMDUgLTI2IDI0IC0xMDQgMjMgLTEyNSAtMXogbTk4Ci0yMiBjLTEwIC0xMSAtMjYgLTIwIC0zNSAtMjAgLTkgMCAtMjUgOSAtMzUgMjAgLTE4IDIwIC0xNyAyMCAzNSAyMCA1MiAwIDUzCjAgMzUgLTIweiIvPgo8L2c+Cjwvc3ZnPgo=
// @license      GPL-2.0-only

// ==/UserScript==

(function() {
    'use strict';

    // Save the original `open` function
    const originalOpen = XMLHttpRequest.prototype.open;

    // Define a new `open` function
    XMLHttpRequest.prototype.open = function() {
        // If this is a POST request
        if (arguments[0].toLowerCase() === 'post') {
            // Add an event listener for the `load` event
            this.addEventListener('load', function() {
                // If the data starts with "aResult="
                if (this._data && this._data.startsWith('aResult=')) {
                    // Copy the data to the clipboard
                    GM_setClipboard(this._data);

                    // Show an alert
                    alert('인증서 코드 복사 성공!');
                }
            });
        }

        // Call the original `open` function
        return originalOpen.apply(this, arguments);
    };

    // Save the original `send` function
    const originalSend = XMLHttpRequest.prototype.send;

    // Define a new `send` function
    XMLHttpRequest.prototype.send = function() {
        // Save the data
        this._data = arguments[0];

        // Call the original `send` function
        return originalSend.apply(this, arguments);
    };
})();