您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Attempts to convert any numbers on all webpages to base 2. Based on the video https://youtu.be/rDDaEVcwIJM
当前为
// ==UserScript== // @name Convert to binary // @version 2024-02-07 // @description Attempts to convert any numbers on all webpages to base 2. Based on the video https://youtu.be/rDDaEVcwIJM // @author Nick M // @match *://*/* // @run-at document-idle // @namespace https://youtu.be/rDDaEVcwIJM // @license MIT // ==/UserScript== (function() { 'use strict'; function toNewBase(n){ let baseChars = ["ı","l"]; let newStr = ""; if (n==0) return baseChars[0]; while (n > 0){ let remainder = n%baseChars.length; newStr = baseChars[remainder]+newStr n = (n-remainder)/baseChars.length; } return newStr; } function replaceNumbers(text){ var pattern1 = /\b\d+(\d+,)*\.?(\d+,)*(k|m|b)?\b/gi; var pattern2 = /\b\d+(\d+,)*\.?(\d+,)*(k|m|b)?\b/i; let result = [...text.matchAll(pattern1)]; let newText = text for (var i=0; i<result.length; i++){ newText = newText.replace(pattern2,"`,`,`"); } var pattern3 = /`,`,`/; var groupings = 4 for (var n=0; n<result.length; n++){ var curNum = result[n][0].replaceAll(",",""); console.log(curNum) var newStr1; if (curNum == "00"){ newStr1 = toNewBase(0)+toNewBase(0) } else { if (curNum[curNum.length-1].toUpperCase() == "K") curNum = Number(curNum.substr(0,curNum.length-1))*1000; else if (curNum[curNum.length-1].toUpperCase() == "M") curNum = Number(curNum.substr(0,curNum.length-1))*1000000; else if (curNum[curNum.length-1].toUpperCase() == "B") curNum = Number(curNum.substr(0,curNum.length-1))*1000000000; else curNum = Number(curNum); newStr1 = toNewBase(curNum); } var newStr2 = ""; for (var e = newStr1.length-groupings; e > -groupings; e -= groupings){ if (e>=0){ newStr2 = "<u style=\"padding-left:1px\">"+newStr1.substr(e,groupings)+"</u>"+newStr2 } else { newStr2 = "<u style=\"padding-left:1px\">"+newStr1.substr(0,newStr1.length%groupings)+"</u>"+newStr2 } } newText = newText.replace(pattern3,newStr2); } return newText; } function replaceInners(currentNode){ if (!currentNode) currentNode = document.getElementsByTagName("body")[0]; if (currentNode.nodeName == "SCRIPT") return; if (currentNode.nodeName == "STYLE") return; if (currentNode.nodeName == "NOSCRIPT") return; //console.log(currentNode.nodeName) if (currentNode.childNodes.length > 0){ var nodelist = [] for (var i = 0; i<currentNode.childNodes.length; i++){ nodelist.push(currentNode.childNodes[i]) } for (var n = 0; n<nodelist.length; n++){ //console.log("childnode:"+nodelist[n].nodeName) if (nodelist[n].nodeName == "#text"){ var newText = replaceNumbers(nodelist[n].textContent) if (newText != nodelist[n].textContent){ var replacementNode = document.createElement('span'); replacementNode.innerHTML = newText currentNode.insertBefore(replacementNode, nodelist[n]); currentNode.removeChild(nodelist[n]); } } else { replaceInners(nodelist[n]) } } } } replaceInners() setTimeout(replaceInners,2000); setTimeout(replaceInners,4000); setTimeout(replaceInners,8000); setTimeout(replaceInners,16000); })();