您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a timer during reviews and displays the final time afterward
当前为
// ==UserScript== // @name Wanikani Egg Timer // @namespace wkeggtimer // @description Adds a timer during reviews and displays the final time afterward // @include http://www.wanikani.com/review* // @include https://www.wanikani.com/review* // @version 0.2 // @author Horus Scope // @grant none // @license GPL version 3 or later: http://www.gnu.org/copyleft/gpl.html // ==/UserScript== function timeStamp( inc = 0 ) { var prev = parseInt(window.localStorage.eggtimer,10) + inc; window.localStorage.eggtimer = prev; // Yes, parseInt is prettier. var hours = Math.floor(prev / 60 / 60); var minutes = Math.floor( (prev - (hours*60*60)) / 60 ); var seconds = prev - hours*60*60 - minutes*60; return "" + (hours? hours+"h " : "") + (minutes? minutes+"m " : "") + (seconds? seconds+"s" : ""); } var timeSpan; // referenced in go( ) function generate( ) { var display = document.createElement('div'); display.className = 'timerSessionDisplay'; // no style actually defined timeSpan = document.createElement('span'); timeSpan.className = 'timerSessionSpan'; // no style actually defined timeSpan.textContent = "Last review: " + timeStamp( ); display.appendChild(timeSpan); return display; } // start counting. [or, dont] function go( ) { // change behavior depending on screen [summary, reviewing now] if(/session$/.exec(window.location.href)) { // review/session [ reviewing now ] window.localStorage.eggtimer = 0; // time start var header = document.getElementById('summary-button'); // because easy var display = generate( ); // makes div object header.appendChild( display ); setInterval(function() {timeSpan.textContent = "Elapsed: " + timeStamp( 1 );}, 1000); } else { // review [ summary screen ] var footer = document.getElementById('last-session-date'); // makes sense var display = generate( ); footer.insertBefore(display, footer.childNodes[0]); // probably float:left btw } } window.onload = go( );