您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork镜像 is available in English.
Show current SRS level and how many are left before levelling up
当前为
// ==UserScript== // @name Wanikani Show Level Pro // @namespace mempo // @author Mempo // @description Show current SRS level and how many are left before levelling up // @run-at document-end // @include https://www.wanikani.com/review/session* // @include http://www.wanikani.com/review/session* // @version 1.1.1 // @grant none // ==/UserScript== console.log('start of Wanikani Review Pro'); var doIUseDoubleCheckScript = false; var css = '#additional-content ul li {' + ' width: 14.2% !important' + '} ' + '.progress-circle {' + ' display: inline-block; ' + ' width: 10px; ' + ' height: 10px; ' + ' background-color: transparent;' + ' border: 5px solid transparent;' + ' border-radius: 50%; ' + ' margin: 0 2px; ' + '} ' + '.progress-apprentice { ' + ' border-color: #DD0093;' + '} ' + '.progress-guru { ' + ' border-color: #882D9E;' + '} ' + '.progress-master { ' + ' border-color: #294DDB;' + '} ' + '.progress-enlightened { ' + ' border-color: #0093DD;' + '} ' + '.progress-burned { ' + ' border-color: #434343;' + '} ' + //COMPLETED CIRCLES '.progress-apprentice-complete { ' + ' background-color: #DD0093;' + '} ' + '.progress-guru-complete { ' + ' background-color: #882D9E;' + '} ' + '.progress-master-complete { ' + ' background-color: #294DDB;' + '} ' + '.progress-enlightened-complete { ' + ' background-color: #0093DD;' + '} ' + '.progress-burned-complete { ' + ' background-color: #434343;' + '} '; var cssForDoubleCheckScript = '#additional-content ul li {' + ' width: 12.4% !important' + '} '; var progress_circle_apprentice = '<div id="progress-circle" class="progress-circle progress-apprentice"></div>'; var progress_circle_guru = '<div id="progress-circle" class="progress-circle progress-guru"></div>'; var progress_circle_master = '<div id="progress-circle" class="progress-circle progress-master"></div>'; var progress_circle_enlightened = '<div id="progress-circle" class="progress-circle progress-enlightened"></div>'; var progress_circle_burned = '<div id="progress-circle" class="progress-circle progress-burned"></div>'; //TODO: class names here var progress_circle_apprentice_completed = '<div id="progress-circle" class="progress-circle progress-apprentice progress-apprentice-complete"></div>'; var progress_circle_guru_completed = '<div id="progress-circle" class="progress-circle progress-guru progress-guru-complete"></div>'; var progress_circle_master_completed= '<div id="progress-circle" class="progress-circle progress-master progress-master-complete"></div>'; var progress_circle_enlightened_completed = '<div id="progress-circle" class="progress-circle progress-enlightened progress-enlightened-complete"></div>'; var progress_circle_burned_completed = '<div id="progress-circle" class="progress-circle progress-burned progress-burned-complete"></div>'; addStyle(css); $('#additional-content ul').append('<li><span><div id="srs-progress-wrapper"></div></span></li>'); /* search bar. Not useful for this script $('footer').append('<div style="display: inline;" id="searchbar"> ' + '<form>'+ ' <input id="WKRP_Search" name="search" type="search">' + ' <input type="button" id="WKRP_Submit" name="submit" value="Search" >' + '</form>' + '</div>'); */ /* $('WKRP_Submit').click(function(){ var result = $('WKRP_Search') //TODO how the fuck do i get the input??? console.log('########' + result); }); */ // Code from Stack Overflow to detect changes in the DOM. // (http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom/14570614#14570614) var observeDOM = (function(){ var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, eventListenerSupported = window.addEventListener; return function(obj, callback){ if( MutationObserver ){ // define a new observer var obs = new MutationObserver(function(mutations, observer){ if( mutations[0].addedNodes.length || mutations[0].removedNodes.length ) callback(); }); // have the observer observe for changes in children obs.observe( obj, { childList:true, subtree:true }); } else if( eventListenerSupported ){ obj.addEventListener('DOMNodeInserted', callback, false); obj.addEventListener('DOMNodeRemoved', callback, false); } } })(); console.log('############# halfway there'); // Callback function observing the 'question-type' div 'h1' element var observeMe = $('#character')[0]; observeDOM( observeMe ,function(){ var level = $.jStorage.get('currentItem').srs; var $wrapper = $('#srs-progress-wrapper'); var newContent = ""; if(level<5){ //Apprentice [1,4] for(var i=0;i<level;i++){ newContent += progress_circle_apprentice_completed; } for(var i=0;i<(4-level);i++){ newContent += progress_circle_apprentice; } if(level === 4){ newContent += progress_circle_guru; } }else if(level < 7){ //Guru [5,6] if(level === 5){ newContent += progress_circle_guru_completed; newContent += progress_circle_guru; }else{ newContent += progress_circle_guru_completed; newContent += progress_circle_guru_completed; newContent += progress_circle_master; } }else if (level === 7){ //Master newContent += progress_circle_master_completed; newContent += progress_circle_enlightened; } else if (level === 8){ //Enlightened newContent += progress_circle_enlightened_completed; newContent += progress_circle_burned; } console.log('##### srs level is ' + level); $wrapper.html(newContent); }); ///////// DOUBLE CHECK SCRIPT CODE if(doIUseDoubleCheckScript) { addStyle(cssForDoubleCheckScript); } console.log(' ########## script ended'); function addStyle(aCss) { var head, style; head = document.getElementsByTagName('head')[0]; if (head) { style = document.createElement('style'); style.setAttribute('type', 'text/css'); style.textContent = aCss; head.appendChild(style); return style; } return null; }