| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // ==UserScript==
- // @name Sepolia Faucet Monitor and Button Clicker
- // @namespace http://tampermonkey.net/
- // @version 0.6
- // @description Monitor the value of a specific element, and click buttons in a loop when the value is greater than or equal to 2
- // @author Jack
- // @match https://sepolia-faucet.pk910.de/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // 目标元素的CSS选择器
- const valueElementSelector = 'body > div.faucet-wrapper > div > div > div > div.faucet-body > div > div.pow-status-container > div > div.row.pow-status-top > div:nth-child(1) > div.status-value';
- const firstButtonSelector = 'body > div.faucet-wrapper > div > div > div > div.faucet-body > div > div.faucet-actions.center > button';
- const secondButtonSelector = 'body > div.faucet-wrapper > div > div > div > div.faucet-body > div > div > div:nth-child(2) > div:nth-child(4) > div > div > button';
- const maxFaucetValue = 2.49;
- // 发送消息到 Gotify
- function sendMessageToGotify(title = "按钮点击通知", message = "第二个按钮已点击") {
- const gotifyUrl = "https://gotify.erhe.top/message?token=A9KF--mx_12PjSu";
- const payload = {
- message: message,
- title: title,
- priority: 5
- };
- fetch(gotifyUrl, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify(payload)
- })
- .then(response => {
- if (response.ok) {
- console.log("消息发送成功");
- } else {
- console.error(`消息发送失败,状态码: ${response.status}`);
- }
- })
- .catch(error => {
- console.error(`请求出现异常: ${error}`);
- });
- }
- // 监控函数
- function monitorElement() {
- // 获取目标元素
- const valueElement = document.querySelector(valueElementSelector);
- // 如果元素存在,则提取浮点数部分
- if (valueElement) {
- const valueText = valueElement.textContent;
- const floatValue = parseFloat(valueText);
- // 如果浮点数大于等于 2,则进入死循环点击按钮
- if (!isNaN(floatValue) && floatValue >= maxFaucetValue) {
- console.log(`Value is ${floatValue}, entering loop to click buttons...`);
- clickButtonsLoop();
- } else {
- console.log(`Value is ${floatValue}`);
- }
- } else {
- console.log('Target value element not found.');
- }
- }
- // 点击按钮循环函数
- function clickButtonsLoop() {
- // 点击第一个按钮
- const firstButton = document.querySelector(firstButtonSelector);
- if (firstButton) {
- firstButton.click();
- }
- // 点击第二个按钮
- const secondButton = document.querySelector(secondButtonSelector);
- if (secondButton) {
- secondButton.click();
- // 第二个按钮点击后发送消息
- sendMessageToGotify();
- }
- // 继续循环
- setTimeout(clickButtonsLoop, 1000);
- }
- // 隐藏图片函数
- function hideImage() {
- // 使用 XPath 查找元素
- const imageElement = document.evaluate('/html/body/div[2]/div/div/div/div[3]/div/div[1]/div/div[1]/div/img', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- if (imageElement) {
- imageElement.style.display = 'none';
- } else {
- console.log('Target image element not found.');
- }
- }
- setTimeout(hideImage, 2000);
- // 设置一个死循环,每隔一秒执行一次监控函数
- setInterval(monitorElement, 1000);
- })();
|