您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Здоровается с преподавателем на лекции, как только это сделал кто-то другой
// ==UserScript== // @name Moodle AutoHello // @namespace https://t.me/johannmosin // @version 0.1.0 // @description Здоровается с преподавателем на лекции, как только это сделал кто-то другой // @author Johann Mosin // @license MIT // @match https://*.edu.vsu.ru/html5client/* // ==/UserScript== (function () { 'use strict'; let messageSent = false; // Prevent sending multiple messages function findReactProps(dom) { for (const key in dom) { if (key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$')) { return dom[key].return ? dom[key].return.stateNode.props : dom[key]._currentElement._owner._instance.props; } } return null; } function autoGreet() { if (messageSent) return; // Stop if message already sent // Check for greetings in the page text const greetings = ["здравствуйте", "здравстуйте", "Здравствуйте", "Здраствуйте"]; const pageText = document.body.innerText; if (greetings.some(greet => pageText.includes(greet))) { console.log("Greeting detected!"); // Find the input and send button const messageInput = document.querySelector('#message-input'); const sendButton = document.querySelector('button[aria-label="Отправить сообщение"]'); if (messageInput && sendButton) { // Access React props const props = findReactProps(messageInput); if (props && props.onChange) { // Create a synthetic event to update React state const syntheticEvent = { target: { value: "Здравствуйте" }, currentTarget: { value: "Здравствуйте" }, }; props.onChange(syntheticEvent); // Now click the send button sendButton.click(); console.log("Greeting message sent via React props!"); messageSent = true; // Mark as sent to prevent multiple sends // Stop the interval to save memory clearInterval(greetingInterval); console.log("Interval cleared to save memory."); } else { console.log("React props not found or onChange handler missing."); } } else { console.log("Message input or send button not found!"); } } } // Run the function periodically to detect greetings const greetingInterval = setInterval(autoGreet, 2000); })();