您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows to truncate the review/extra study queue via a text input in the top right.
// ==UserScript== // @name WaniKani Review Queue Limiter // @namespace reviewQueueLimiter // @version 1.1 // @description Allows to truncate the review/extra study queue via a text input in the top right. // @author Sinyaven // @license MIT-0 // @match https://www.wanikani.com/review/session // @match https://www.wanikani.com/extra_study/session* // @match https://preview.wanikani.com/review/session // @match https://preview.wanikani.com/extra_study/session* // @grant none // ==/UserScript== (function() { "use strict"; /* global $, WaniKani */ /* eslint no-multi-spaces: off */ addCss(); addInput(); function addInput() { const input = document.createElement("input"); input.type = "text"; input.pattern = "\\d+"; input.classList.add("popup-input"); const count = document.getElementById("available-count"); count.addEventListener("pointerenter", () => { input.style.left = `${count.offsetLeft }px`; input.style.width = `${count.offsetWidth}px`; input.value = count.textContent.trim(); input.style.display = "inline"; }); input.addEventListener("pointerout", () => { if (document.activeElement !== input) input.style.display = ""; }); input.addEventListener("blur", () => { input.style.display = ""; }); input.addEventListener("keydown", e => { switch (e.key) { case "Backspace": e.stopPropagation(); return; case "Enter" : if (e.target.validity.valid) limitQueue(e.target.value); return; } }); count.after(input); } function limitQueue(count) { const extraStudy = document.URL.includes("extra_study/session"); const oldOrder = WaniKani.wanikani_compatibility_mode || extraStudy; const activeQueueKey = "activeQueue"; const reviewQueueKey = extraStudy ? "practiceQueue" : "reviewQueue"; let activeQueue = $.jStorage.get(activeQueueKey); let reviewQueue = $.jStorage.get(reviewQueueKey); const queueLength = activeQueue.length + reviewQueue.length; count = Math.max(count, 1); count = Math.min(count, queueLength); const deleteCount = queueLength - count; if (oldOrder) reviewQueue.splice(0, deleteCount); else reviewQueue.splice(-deleteCount); if (extraStudy) activeQueue.splice(0, activeQueue.length - count); $.jStorage.set(activeQueueKey, activeQueue); $.jStorage.set(reviewQueueKey, reviewQueue); } function addCss() { const style = document.createElement("style"); style.textContent = ` .popup-input { position: absolute; display: none; font: inherit; margin: -3px; } .popup-input:invalid { color: red; }`; document.head.appendChild(style); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址