您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically Presses Rematch Button When Available
当前为
// ==UserScript== // @name Lichess Auto Rematch // @namespace http://userstyles.org // @description Automatically Presses Rematch Button When Available // @author 636597 // @include https://lichess.org/* // @run-at document-start // @version 0.2 // ==/UserScript== var spinner_count = 0; function request_rematch() { console.log( "requesing rematch" ); try { //lichess.socket.send( "rematch-yes" ); var rematch_button = document.querySelector("button.rematch"); rematch_button.click(); } catch( e ) {} } var spam_interval = false; function spam_request_rematch() { if ( spam_interval !== false ) { return; } console.log( "spaming request rematch" ); spam_interval = setInterval( request_rematch , 1000 ); setTimeout( function() { clearInterval( spam_interval ); spam_interval = false; } , 60000 ); } var rematch_button_element = false; var rematch_button_observer = false; var document_observer = false; var parent_element = false; var observerConfig = { childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true }; function observe_rematch_button() { rematch_button_element = document.querySelector( "button.rematch" ); if ( !rematch_button_element ) { console( "Could Not Find Rematch Button To Observe" ); return; } rematch_button_observer = new MutationObserver( function( mutations ) { mutations.forEach( function( mutation , index ) { if ( mutation.type === "childList" ) { if ( mutation.removedNodes ) { if ( mutation.removedNodes[ 0 ] ) { if ( mutation.removedNodes[ 0 ].className ) { if ( mutation.removedNodes[ 0 ].className === "spinner" ) { spinner_count += 1; console.log( "Spinner Count == " + spinner_count.toString() ); if ( spinner_count > 2 ) { console.log( "Someone Cancelled The Rematch" ); console.log( "Re-Requesting Rematch" ); request_rematch(); spinner_count = 0; } } } } } } //console.log( mutation ); }); }); rematch_button_observer.observe( rematch_button_element , observerConfig ); console.log( "Observing Rematch Button" ); } function observe_document() { parent_element = document.querySelector( "main.round" ); console.log( parent_element ); if ( !parent_element ) { console.log( "Could Not Find Parent Element to Observe" ); return; } document_observer = new MutationObserver( function( mutations ) { mutations.forEach( function( mutation , index ) { if ( mutation.target.firstChild ) { if ( mutation.target.firstChild.className ) { if ( mutation.target.firstChild.className === "follow-up" ) { console.log( "Rematch Button Available" ); request_rematch(); observe_rematch_button(); } } } }); }); document_observer.observe( parent_element , observerConfig ); console.log( "Lichess Auto-Rematch Loaded" ); } ( function() { window.addEventListener ( "load" , observe_document ); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址