NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name de4js helper // @namespace https://baivong.github.io/de4js/ // @description Enable Unreadable option in de4js // @version 1.5.1 // @icon https://i.imgur.com/CJ5MfxV.png // @author Zzbaivong // @license MIT // @match https://lelinhtinh.github.io/de4js/ // @include http://127.0.0.1:4000/de4js/ // @include http://localhost:4000/de4js/ // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js?v=a834d46 // @noframes // @connect jsnice.org // @supportURL https://github.com/lelinhtinh/de4js/issues // @run-at document-idle // @grant GM_xmlhttpRequest // @grant GM.xmlHttpRequest // ==/UserScript== (function () { 'use strict'; var nicify = document.getElementById('nicify'), label = nicify.nextSibling.nextSibling.textContent, none = document.getElementById('none'), input = document.getElementById('input'), output = document.getElementById('readable'), view = document.getElementById('view'); function jsnice() { if (!isOnine()) return; var txt = view.textContent.trim() || input.value.trim(); if (!txt) return; view.classList.add('waiting'); GM.xmlHttpRequest({ method: 'POST', url: 'http://jsnice.org/beautify?pretty=0&rename=1&types=0&packers=0&transpile=0&suggest=0', responseType: 'json', data: txt, onload: function (response) { var source; if (response.response && response.response.js) { source = response.response.js; } nicify.checked = false; none.checked = true; if (!source) { view.textContent = 'Unknown error'; } else { output.value = source; output.onchange(); } }, onerror: function (e) { console.error(e); // eslint-disable-line no-console } }); } function isOnine() { nicify.disabled = !navigator.onLine; return navigator.onLine; } nicify.disabled = false; nicify.nextSibling.nextSibling.textContent = label; input.addEventListener('input', function () { if (nicify.checked) jsnice(); }); nicify.addEventListener('click', function () { if (nicify.checked) jsnice(); }); nicify.addEventListener('onchange', function () { if (nicify.checked) jsnice(); }); window.addEventListener('online', isOnine); window.addEventListener('offline', isOnine); isOnine(); })();