Eliminates second Enter or Click for correct review answers.
目前為
// ==UserScript==
// @name Wanikani Lightning Mode
// @namespace wklightning
// @description Eliminates second Enter or Click for correct review answers.
// @include https://www.wanikani.com/review/session*
// @version 1.0.0
// @author Robin Findley
// @copyright 2015+, Robin Findley
// @license MIT; http://opensource.org/licenses/MIT
// @run-at document-end
// @grant none
// ==/UserScript==
// This script was adapted from Kyle Coburn's original "WaniKani Customizer" plugin for Chrome.
(function(){
var lightning = false;
var observer;
var ignore;
function addStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (head) {
style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.textContent = css;
head.appendChild(style);
return style;
}
return null;
}
function main() {
addStyle('#lightning-mode.active {color:#ff0; opacity:1.0;}');
lightning = localStorage.getItem('lightning');
if (lightning === 'false') lightning = false;
$('#summary-button').append('<a id="lightning-mode" href="#"'+(lightning?' class="active"':'')+'><i class="icon-bolt"></i></a>');
$('#lightning-mode').click(function() {
lightning = !lightning;
console.log('Lightning mode '+(lightning?'en':'dis')+'abled!');
localStorage.setItem('lightning', lightning);
$(this).toggleClass('active', lightning);
return false;
});
ignore = false;
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (!lightning || ignore) return;
window.rjf = mutation;
switch (mutation.target.className) {
case 'correct':
$('#answer-form button').click();
break;
case '':
break;
default:
$('#additional-content #option-item-info').click();
break;
}
// Ignore additional changes for 100ms
ignore = true;
setTimeout(function(){ignore = false;}, 100);
});
});
observer.observe(document.querySelector('#answer-form fieldset'), {attributes: true, subtree: true, attributeFilter: ['class']});
}
// Run main upon load.
if (document.readyState === 'complete')
main();
else
window.addEventListener("load", main, false);
}).call({});