您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
WaniKani Review Order by Alucardeck. Modified to sort on srs level by Xebikr
// ==UserScript== // @name WaniKani Review Order (SRS) // @namespace https://www.wanikani.com // @description WaniKani Review Order by Alucardeck. Modified to sort on srs level by Xebikr // @version 0.1 // @include https://www.wanikani.com/review/session // @include http://www.wanikani.com/review/session // @grant none // ==/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 = '<div id="wkroStatus"><table align="right"><tbody>'+ '<tr><td>Rad</td><td align="right"><span id="wkroRadCount"></span></td></tr>'+ '<tr><td>Kan</td><td align="right"><span id="wkroKanCount"></span></td></tr>'+ '<tr><td>Voc</td><td align="right"><span id="wkroVocCount"></span></td></tr>'+ '</tbody></table></div><div id="divSt">Not Ordered!</div>'+ '<button id="reorderBtn1" type="button" onclick="window.dispatchEvent(new Event(\'reorderWKBulk\'));">Bulk Mode</button>'+ '<button id="reorderBtn2" type="button" onclick="window.dispatchEvent(new Event(\'reorderWKSingle\'));">Single Mode</button>'+ '</div>'; $.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<actList.length;i++){ var it = actList[i]; var itt = cur.kan?'kan':cur.voc?'voc':'rad'; console.log(it); if(!(curt==itt&&cur.id==it.id)){ actList.splice(i--,1); revList.push(it); removedCount++; } } console.log('Items removed from ActiveQueue: '+removedCount); 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); } } revList.sort(compare); if(method=='BULK') for(var i=0;i<removedCount;i++) actList.push(revList.pop()); console.log('Ordered ReviewQueue:'); for(var i=0;i<revList.length;i++){ var it=revList[i]; if(it.rad) console.log('rad '+it.rad + ' srs ' + it.srs); else if(it.kan) console.log('kan '+it.kan + ' srs ' + it.srs); else if(it.voc) console.log('voc '+it.voc + ' srs ' + it.srs); } $.jStorage.set("reviewQueue",revList); $.jStorage.set("activeQueue",actList); divSt.innerHTML = 'Done!'; console.log('reorder() end'); } function displayUpdate(){ var radC = 0, kanC = 0, vocC = 0; var list = $.jStorage.get("reviewQueue").concat($.jStorage.get("activeQueue")); console.log('ReviewQueue ('+$.jStorage.get("reviewQueue").length+') ActiveQueue ('+$.jStorage.get("activeQueue").length+')'); for(var i=0;i<list.length;i++){ var it=list[i]; if(it.rad) radC++; else if(it.kan) kanC++; else if(it.voc) vocC++; } console.log('Rad '+radC+' Kan '+kanC+' Voc '+vocC); var radSpan = $("#wkroRadCount")[0]; var kanSpan = $("#wkroKanCount")[0]; var vocSpan = $("#wkroVocCount")[0]; radSpan.innerHTML = radC; kanSpan.innerHTML = kanC; vocSpan.innerHTML = vocC; } function compare(a,b) { if (a.srs > b.srs) return -1; if (a.srs < b.srs) return 1; return 0; } var method = ""; init(); console.log('script load end');
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址