您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lets you choose the size of your review session
// ==UserScript== // @name Wanikani: Review Queue Sizer // @namespace http://tampermonkey.net/ // @version 1.0.6 // @description Lets you choose the size of your review session // @author Kumirei // @match https://www.wanikani.com/* // @match https://preview.wanikani.com/* // @require https://greasyfork.org/scripts/462049-wanikani-queue-manipulator/code/WaniKani%20Queue%20Manipulator.user.js // @grant none // ==/UserScript== ;(async function (wkof, $) { let script_name = 'Wanikani: Review Queue Sizer' let script_title = 'Review Queue Sizer' let script_id = 'review_queue_sizer' let settings confirm_wkof() await init() window.addEventListener(`turbo:render`, init) window.wkQueue.addFilter((queue) => { if (!settings?.qsize) return queue return queue.slice(0, settings.qsize) }) function confirm_wkof() { // Make sure WKOF is installed if (!wkof) { let response = confirm( script_name + ' requires WaniKani Open Framework.\n Click "OK" to be forwarded to installation instructions.', ) if (response) { window.location.href = 'https://community.wanikani.com/t/instructions-installing-wanikani-open-framework/28549' } return } } async function init() { wkof.include('Menu,Settings,Jquery') await wkof.ready('Menu,Settings,Jquery') await load_settings() install_menu() return } // Load WKOF settings async function load_settings() { let defaults = { qsize: 0 } settings = await wkof.Settings.load(script_id, defaults) return } // Installs the options button in the menu function install_menu() { let config = { name: script_id, submenu: 'Settings', title: script_title, on_click: open_settings, } wkof.Menu.insert_script_link(config) } function open_settings() { var config = { script_id: script_id, title: script_title, on_save: settings_on_save, content: { qsize: { type: 'number', label: 'Queue size', default: 0, hover_tip: '0 means unlimited', }, }, } let dialog = new wkof.Settings(config) dialog.open() } function settings_on_save(settings) { window.wkQueue.refresh() } })(window.wkof)