您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一个用于Password Game的脚本
- // ==UserScript==
- // @name Password Game Assistant
- // @license MIT
- // @namespace https://blog.fyz666.xyz/blog/9097/
- // @version 0.0.1
- // @description 一个用于Password Game的脚本
- // @author Eric Fan
- // @match https://neal.fun/password-game/
- // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function Rule11() {
- let date = new Date();
- let year = date.getFullYear();
- let month = date.getMonth() + 1;
- let day = date.getDate();
- let param = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
- let url = 'https://neal.fun/api/password-game/wordle?date=' + param;
- fetch(url)
- .then(r => r.json())
- .then(data => {
- let ans = data['answer'];
- let input = document.querySelector(".ProseMirror");
- const p = document.createElement('p');
- const span = document.createElement('span');
- span.innerText = ans;
- p.appendChild(span);
- input.appendChild(p);
- });
- }
- function Rule13() {
- let phase = "🌑🌒🌓🌔🌕🌖🌗🌘";
- let input = document.querySelector(".ProseMirror");
- const p = document.createElement('p');
- const span = document.createElement('span');
- span.innerText = phase;
- p.appendChild(span);
- input.appendChild(p);
- }
- function Rule14() {
- let iframe = document.querySelector('.geo-wrapper iframe');
- if (iframe === null) return;
- iframe.style.marginTop = 0;
- }
- function Rule19() {
- function processNodeRule19(textNode) {
- const text = textNode.nodeValue;
- const parent = textNode.parentNode;
- const fragments = text.split(/([aeiouyAEIOUY])/);
- fragments.forEach(fragment => {
- if (/[aeiouyAEIOUY]/.test(fragment)) {
- const strong = document.createElement('strong');
- strong.textContent = fragment;
- parent.insertBefore(strong, textNode);
- } else {
- parent.insertBefore(document.createTextNode(fragment), textNode);
- }
- });
- parent.removeChild(textNode);
- }
- function processRule19(node) {
- if (node.nodeType === Node.TEXT_NODE) {
- processNodeRule19(node);
- } else if (node.nodeType === Node.ELEMENT_NODE) {
- Array.from(node.childNodes).forEach(processRule19);
- }
- }
- let paragraphs = document.querySelectorAll('.ProseMirror p');
- paragraphs.forEach(processRule19);
- }
- function Rule20() {
- let input = document.querySelector('.ProseMirror');
- input.innerHTML = input.innerHTML.replace(/🔥/g, "");
- }
- function Rule23() {
- let input = document.querySelector(".ProseMirror");
- const p = document.createElement('p');
- const span = document.createElement('span');
- span.innerText = "🐛";
- p.appendChild(span);
- input.appendChild(p);
- setTimeout(() => {
- let end = setInterval(() => {}, 10000);
- for (let i = 1; i <= end; i++) {
- clearInterval(i);
- }
- input.removeChild(input.lastChild);
- }, 1000);
- }
- function Rule28() {
- let btn = document.querySelector('.refresh');
- if (btn == null) return;
- btn.click();
- setTimeout(() => {
- let color = document.querySelectorAll(".rand-color")[0];
- color = color.style.background.match(/\d+/g);
- let s = "#";
- color.forEach(item => {
- s += parseInt(item).toString(16).padStart(2, '0');
- });
- let input = document.querySelector(".ProseMirror");
- const p = document.createElement('p');
- const span = document.createElement('span');
- span.innerText = s;
- p.appendChild(span);
- input.appendChild(p);
- }, 100);
- }
- function Rule30() {
- function processNodeRule30(textNode) {
- const text = textNode.nodeValue;
- const parent = textNode.parentNode;
- const parentFontFamily = getComputedStyle(parent).fontFamily;
- const fragments = text.split(/(\d)/);
- fragments.forEach(fragment => {
- if (/\d/.test(fragment)) {
- const span = document.createElement('span');
- const fontSize = Math.pow(parseInt(fragment), 2);
- span.style.fontSize = `${fontSize}px`;
- span.style.fontFamily = parentFontFamily;
- span.textContent = fragment;
- parent.insertBefore(span, textNode);
- } else {
- parent.insertBefore(document.createTextNode(fragment), textNode);
- }
- });
- parent.removeChild(textNode);
- }
- function processRule30(node) {
- if (node.nodeType === Node.TEXT_NODE) {
- processNodeRule30(node);
- } else if (node.nodeType === Node.ELEMENT_NODE) {
- Array.from(node.childNodes).forEach(processRule30);
- }
- }
- let items = document.querySelectorAll(".ProseMirror p");
- items.forEach(processRule30);
- }
- function Rule31() {
- let counter = {};
- function processNodeRule31(textNode) {
- const text = textNode.nodeValue;
- const parent = textNode.parentNode;
- const parentFontFamily = getComputedStyle(parent).fontFamily;
- const fragments = text.split(/([a-zA-Z])/);
- fragments.forEach(fragment => {
- if (/[a-zA-Z]/.test(fragment)) {
- let letter = fragment.toLowerCase();
- counter[letter] = (counter[letter] || 0) + 1;
- const span = document.createElement('span');
- const fontSize = Math.pow(counter[letter] - 1, 2);
- span.style.fontSize = `${fontSize}px`;
- span.style.fontFamily = parentFontFamily;
- span.textContent = fragment;
- parent.insertBefore(span, textNode);
- } else {
- parent.insertBefore(document.createTextNode(fragment), textNode);
- }
- });
- parent.removeChild(textNode);
- }
- function processRule31(node) {
- if (node.nodeType === Node.TEXT_NODE) {
- processNodeRule31(node);
- } else if (node.nodeType === Node.ELEMENT_NODE) {
- Array.from(node.childNodes).forEach(processRule31);
- }
- }
- let items = document.querySelectorAll(".ProseMirror p");
- items.forEach(processRule31);
- }
- function final() {
- let p1 = document.querySelector('.password-final');
- let p2 = document.querySelector('.complete .ProseMirror');
- if (p1 === null || p2 === null) return;
- p2.innerHTML = p1.innerHTML;
- }
- const functions = [Rule11, Rule13, Rule14, Rule19, Rule20, Rule23, Rule28, Rule30, Rule31, final];
- const functionNames = ['Rule 11', 'Rule 13', 'Rule 14', 'Rule 19', 'Rule 20', 'Rule 23', 'Rule 28', 'Rule 30', 'Rule 31', 'Final'];
- var container = document.createElement('div');
- container.style.position = 'fixed';
- container.style.left = '0';
- container.style.top = '50%';
- container.style.transform = 'translateY(-50%)';
- container.style.zIndex = '1000';
- functions.forEach((func, index) => {
- var button = document.createElement('button');
- button.textContent = functionNames[index];
- button.style.display = 'block';
- button.style.margin = '5px';
- button.style.width = '70px';
- button.style.padding = '5px';
- button.style.border = 'none';
- button.style.borderRadius = '5px';
- button.style.backgroundColor = '#4CAF50';
- button.style.color = 'white';
- button.style.textAlign = 'center';
- button.style.textDecoration = 'none';
- button.style.fontSize = '14px';
- button.style.cursor = 'pointer';
- button.style.transition = 'background-color 0.3s, transform 0.2s';
- button.onmouseover = function() {
- button.style.backgroundColor = '#45a049';
- };
- button.onmouseout = function() {
- button.style.backgroundColor = '#4CAF50';
- };
- button.onmousedown = function() {
- button.style.transform = 'scale(0.95)';
- };
- button.onmouseup = function() {
- button.style.transform = 'scale(1)';
- };
- button.addEventListener('click', func);
- container.appendChild(button);
- });
- document.body.appendChild(container);
- })();