Customize the number of wrap-up items
当前为
// ==UserScript==
// @name WaniKani Customize Wrap Up
// @namespace http://alsanchez.es/
// @include /^https?://(www\.)?wanikani\.com/review/session/?$/
// @version 3
// @grant none
// @description Customize the number of wrap-up items
// ==/UserScript==
(function()
{
var numberOfItems = localStorage.getItem("wanikani-addon-number-of-wrap-up-items") || 10;
var fn = loadingScreen.remove;
var wrapUpActive = false;
loadingScreen.remove = function()
{
loadingScreen.remove = fn;
fn();
initialize();
}
function initialize()
{
createIcon();
var wrapUp = document.getElementById("option-wrap-up");
wrapUp.addEventListener("click", function()
{
wrapUpActive = !wrapUpActive;
if(wrapUpActive)
{
updateQueues(numberOfItems);
}
// Force available-count update
$.jStorage.set("activeQueue", $.jStorage.get("activeQueue"));
});
}
function createIcon()
{
var container = $('<span style="cursor: pointer;">');
container.append($('<i class="icon-time"></i>'));
var numberOfItemsLabel = $("<span>").html(numberOfItems);
container.append(numberOfItemsLabel);
container.click(function()
{
var answer = prompt("Number of items");
if(answer !== null)
{
numberOfItems = answer;
numberOfItemsLabel.html(numberOfItems);
localStorage.setItem("wanikani-addon-number-of-wrap-up-items", numberOfItems);
}
});
$("#stats").prepend(container);
}
function updateQueues(numberOfItems)
{
var activeQueue = getSortedActiveQueue();
var reviewQueue = $.jStorage.get("reviewQueue");
var newQueue = getSortedActiveQueue().concat(reviewQueue);
numberOfItems = Math.min(numberOfItems, newQueue.length);
$.jStorage.set("activeQueue", newQueue.slice(0, numberOfItems));
$.jStorage.set("reviewQueue", newQueue.slice(numberOfItems));
}
function getSortedActiveQueue()
{
var currentItem = $.jStorage.get("currentItem");
var otherItems = $.jStorage.get("activeQueue").filter(function(item)
{
return item.id !== currentItem.id;
});
return [ currentItem ].concat(otherItems);
}
})();