您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Encodes a secret message inside another.
当前为
// ==UserScript== // @name Secret Message Encoder // @name:de Geheime Nachrichten Kodierer // @namespace https://sme.luisafk.dev // @version 1.0.1741897454818 // @description Encodes a secret message inside another. // @description:de Kodiert eine geheime Nachricht in einer anderen. // @author LuisAFK // @match *://*/* // @icon https://sme.luisafk.dev/assets/favicon96.png // @website https://sme.luisafk.dev // @grant none // @supportURL https://github.com/lafkpages/sme/issues // @run-at document-idle // @license GPLv3 // ==/UserScript== (()=>{ // src/encoders.ts var one = ""; var zero = ""; var oneOne = ""; var zeroZero = ""; var oneZero = ""; var zeroOne = ""; var zeroZeroZero = ""; var oneOneOne = ""; var secretsRegEx = new RegExp(`[${zeroZeroZero}${oneOneOne}${zeroZero}${oneOne}${zeroOne}${oneZero}${zero}${one}]+`); function binToString(b) { const m = b.match(/[01]{8}/g); if (!m) { return null; } let s = ""; for (const c of m) { s += String.fromCharCode(parseInt(c, 2)); } return s; } function secretBinToString(b) { b = b.replace(new RegExp(zeroZeroZero, "g"), "000"); b = b.replace(new RegExp(oneOneOne, "g"), "111"); b = b.replace(new RegExp(zeroOne, "g"), "01"); b = b.replace(new RegExp(oneZero, "g"), "10"); b = b.replace(new RegExp(zeroZero, "g"), "00"); b = b.replace(new RegExp(oneOne, "g"), "11"); b = b.replace(new RegExp(zero, "g"), "0"); b = b.replace(new RegExp(one, "g"), "1"); return binToString(b); } function decodeSecret(s) { const b = s.match(secretsRegEx)?.[0]; if (!b) { return null; } return secretBinToString(b); } // src/scriptlet.ts var hideTransform = "translateY(calc(-100% - 50px))"; var div = document.createElement("div"); div.id = "sme-inject-toast"; div.style.position = "fixed"; div.style.top = "20px"; div.style.right = "20px"; div.style.padding = "10px"; div.style.zIndex = "99999"; div.style.background = "wheat"; div.style.border = "1px solid black"; div.style.borderRadius = "5px"; div.style.transition = "transform 0.5s ease-in-out 0s"; div.style.transform = hideTransform; div.style.whiteSpace = "pre-line"; document.body.appendChild(div); setInterval(() => { const selectedText = window.getSelection()?.toString(); let decodedSecret = null; if (selectedText) { try { decodedSecret = decodeSecret(selectedText); } catch {} } if (decodedSecret) { div.style.transform = "translateY(0px)"; div.textContent = decodedSecret; } else { div.style.transform = hideTransform; } }, 1000); })()