Last active
December 30, 2020 05:35
-
-
Save razetime/8d0be74e104ac54b1e55d57bec8c2156 to your computer and use it in GitHub Desktop.
Executes apl code inside a chat box textarea(first line only). Can be changed to target any website/textarea.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Chat box exec | |
// @version 1.0 | |
// @description Executes apl code inside a chat box textarea! | |
// @namespace http://tampermonkey.net/ | |
// @grant GM_xmlhttpRequest | |
// @grant GM_listValues | |
// @match https://chat.stackexchange.com/* | |
// @run-at document-start | |
// ==/UserScript== | |
window.addEventListener('DOMContentLoaded', (event) => { | |
let bContainer = document.getElementById("chat-buttons"); | |
let tmp = document.createElement("div"); | |
tmp.innerHTML = "<button id=\"apl-execute\" class=\"button\" accesskey=\"x\">⍎</button>"; | |
bContainer.appendChild(tmp.firstChild); | |
let exButton = document.getElementById("apl-execute"); | |
exButton.addEventListener('click', function (e) { | |
exButton.classList.add("disabled"); | |
let field = document.getElementById("input"); | |
let code = field.value.split("\n")[0].trim(); | |
let output; | |
console.log(code); | |
let request = new XMLHttpRequest(); | |
request.open("POST", "https://tryapl.org/Exec", true); | |
request.setRequestHeader("Content-Type", "application/json; charset=utf-8") | |
request.send(JSON.stringify(["", 0, "", code])); | |
request.onreadystatechange = function () { | |
if (request.readyState === 4) { | |
if (request.status === 200) { | |
let result = JSON.parse(request.responseText)[3]; | |
result.unshift(" " + code); | |
field.value = result.map(x => " " + x).join("\n"); | |
field.focus(); | |
exButton.classList.remove("disabled"); | |
} | |
} | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment