您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
adding restscore functionalty to lidarts
当前为
// ==UserScript== // @name lidarts Rest Score Input // @name:de lidarts Rest-Betrag Eingabe // @version 0.4 // @description adding restscore functionalty to lidarts // @description:de fügt in lidarts die Rest-Betrag Eingabe hinzu // @author AlexisDot // @license MIT // @match https://lidarts.org/game/* // @namespace https://greasyfork.dpdns.org/en/users/913506-alexisdot // ==/UserScript== /*jshint esversion: 6 */ (function () { 'use strict'; let scoreSelfElement = null; let scoreInputForm = document.querySelector('#score_input'); let scoreInput = scoreInputForm.querySelector('#score_value'); let isNotCricket = document.querySelector('#cricket_scoreboard') ? false : true; let isLocalGame = false; let isComputerGame = false; async function initRestScoreInput() { let url = `https://lidarts.org/api${window.location.pathname}`; const response = await fetch(url, { method: 'GET', }); const responseJson = await response.json(); window['myJson'] = responseJson; isLocalGame = responseJson.p1_name == responseJson.p2_name; isComputerGame = responseJson.p2_name == null; if (scoreInput && isNotCricket) { document.head.insertAdjacentHTML( 'beforeend', /*html*/ ` <style> .p1_turn_name_card .card-body.select-highlight, .p2_turn_name_card .card-body.select-highlight{ background: red; animation: mymove 3s infinite; cursor: pointer; } @keyframes mymove { from {background-color: inherit;} 50% {background-color: rgb(227,172,17);} to {background-color: inherit;} } </style>` ); if (!isLocalGame && !isComputerGame) { let userId = document.querySelector('#user_id').dataset.id; let player1Id = document.querySelector('#player1_id').dataset.id; let player2Id = document.querySelector('#player2_id').dataset.id; if (userId == player1Id) { scoreSelfElement = document.querySelector('#p1_score'); } else if (userId == player2Id) { scoreSelfElement = document.querySelector('#p2_score'); } } if (isComputerGame) { scoreSelfElement = document.querySelector('#p1_score'); } let dummyDiv = document.createElement('div'); dummyDiv.innerHTML = /*html*/ ` <button type="button" class="mt-3 btn btn-lg btn-outline-info btn-block" id="rest-score-input">Rest</button> `; let restScoreInput = dummyDiv .querySelector('#rest-score-input') .cloneNode(true); dummyDiv.innerHTML = /*html*/ ` <div id="keyboard-notice" class="mt-3 alert alert-info small text-center alert-dismissible fade show" role="alert">For rest you can also <br>or press <kbd>r</kbd> or <kbd>/</kbd> on your keyboard <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div>`; let keyboardNotice = dummyDiv .querySelector('#keyboard-notice') .cloneNode(true); scoreInputForm.insertAdjacentElement('afterend', keyboardNotice); scoreInputForm.insertAdjacentElement('afterend', restScoreInput); function restScoreSubmit() { let restScore = scoreInput.value; let scoreSelf = isLocalGame ? document.querySelector('.player_turn.border-light [id$=_score]') .innerText : scoreSelfElement.innerText; let currentScore = parseInt(scoreSelf); let thrownScore = currentScore - restScore; scoreInput.value = thrownScore; scoreInput.focus(); $(scoreInputForm).submit(); } restScoreInput.addEventListener('click', (e) => { e.preventDefault(); restScoreSubmit(); }); document.addEventListener('keydown', (e) => { if (e.key === '/' || e.key === 'r') { e.preventDefault(); restScoreSubmit(); } }); } } initRestScoreInput(); })();