// ==UserScript== // @name WaniKani Review Order (Radical > Kanji > Vocab) + (Descending SRS Level) // @namespace https://www.wanikani.com // @description Sorts WaniKani reviews by type and SRS level // @version 0.35 // @include https://www.wanikani.com/review/session // @include http://www.wanikani.com/review/session // @grant none // @downloadURL https://update.greasyfork.icu/scripts/16362/WaniKani%20Review%20Order%20%28Radical%20%3E%20Kanji%20%3E%20Vocab%29%20%2B%20%28Descending%20SRS%20Level%29.user.js // @updateURL https://update.greasyfork.icu/scripts/16362/WaniKani%20Review%20Order%20%28Radical%20%3E%20Kanji%20%3E%20Vocab%29%20%2B%20%28Descending%20SRS%20Level%29.meta.js // ==/UserScript== function get(id) { if (id && typeof id === 'string') { id = document.getElementById(id); } return id || null; } function init(){ console.log('init() start'); var stats = $("#stats")[0]; var t = document.createElement('div'); stats.appendChild(t); t.innerHTML = '
'+ ''+ ''+ ''+ '
Rad
Kan
Voc
Not Ordered!
'+ ''+ ''+ ''; $.jStorage.listenKeyChange("activeQueue",displayUpdate); window.addEventListener('reorderWKSingle',reorderSingle); window.addEventListener('reorderWKBulk',reorderBulk); displayUpdate(); console.log('init() end'); } function reorderBulk(){ //Reordering method following original parameters of 10 activeQueue list method = "BULK"; reorder(); } function reorderSingle(){ //Reordering method following the 1 activeQueue list, that makes both reading/meaning coming in pairs. //method = "SINGLE"; //reorder(); try{ unsafeWindow.Math.random = function() { return 0; } }catch(e){ Math.random = function() { return 0; } } reorderBulk(); } function reorder(){ console.log('reorder() start'); var divSt = get("divSt"); var reorderBtn1= get("reorderBtn1"); var reorderBtn2= get("reorderBtn2"); reorderBtn1.style.visibility="hidden"; reorderBtn2.style.visibility="hidden"; divSt.innerHTML = 'Reordering.. please wait!'; var cur = $.jStorage.get("currentItem"); var qt = $.jStorage.get("questionType"); var actList = $.jStorage.get("activeQueue"); var revList = $.jStorage.get("reviewQueue"); console.log('current item: '+cur); var curt = cur.kan?'kan':cur.voc?'voc':'rad'; var removedCount = 0; for(var i=0;i=0;i--){ var it=revList[i]; if(it.srs==i2){ revList.splice(i,1); revList.push(it); } } } for(var i=revList.length-1;i>=0;i--){ var it=revList[i]; if(it.kan){ revList.splice(i,1); revList.push(it); //console.log('kan '+it.kan); } } for(var i=revList.length-1;i>=0;i--){ var it=revList[i]; if(it.rad){ revList.splice(i,1); revList.push(it); //console.log('rad '+it.rad); } } if(method=='BULK') for(var i=0;i