您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button to post @WaniMeKani roll 6d6
// ==UserScript== // @name Wanikani Forums: Roll 6d6 // @namespace http://tampermonkey.net/ // @version 1.2.1 // @description Adds a button to post @WaniMeKani roll 6d6 // @author Kumirei // @include https://community.wanikani.com* // @require https://greasyfork.org/scripts/432418-wait-for-selector/code/Wait%20For%20Selector.js?version=981655 // @grant none // ==/UserScript== ;(function (wfs) { let last_roll = Date.now() wfs.wait('.topic-footer-main-buttons', (e) => { var btn = document.createElement('button') btn.className = 'btn widget-button no-text btn-icon' btn.title = 'Click to roll 6d6' btn.innerHTML = 'Roll 6d6' btn.onclick = roll e.prepend(btn) }) function roll() { document.querySelector('button.create:not(.reply)').click() var interval = setInterval(async function () { let composer = document.querySelector('textarea.d-editor-input') if (composer) { composer.value = `@WaniMeKani roll 6d6` composer.dispatchEvent(new Event('change', { bubbles: true, cancelable: true })) clearInterval(interval) await new Promise((res, rej) => setTimeout(res, 6000 - (Date.now() - last_roll))) document.querySelector('.submit-panel button.create').click() last_roll = Date.now() } }, 100) } document.addEventListener('keydown', (e) => { if (e.altKey && (e.keyCode == 102 || e.keyCode == 54)) roll() if (e.altKey && e.shiftKey && e.keyCode == 68) roll() if (e.altKey && e.ctrlKey && e.keyCode == 68) roll() }) })(window.wfs)