您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a locked count to the SRS breakdown on the dashboard
// ==UserScript== // @name Wanikani: Locked Count // @namespace http://tampermonkey.net/ // @version 1.0.2 // @description Adds a locked count to the SRS breakdown on the dashboard // @author Kumirei // @match https://www.wanikani.com/ // @match https://www.wanikani.com/dashboard // @include *preview.wanikani.com* // @grant none // ==/UserScript== /*jshint esversion: 8 */ ;(function () { var wkof = window.wkof // Make sure WKOF is installed if (!wkof) { var response = confirm( '"Wanikani: Locked Count" 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 } else { wkof.include('ItemData') wkof.ready('ItemData').then(fetch_items).then(get_counts).then(display_counts) } function fetch_items() { const config = { wk_items: { options: { assignments: true, }, filters: { srs: '-1, 0', }, }, } return wkof.ItemData.get_items(config) } function get_counts(items) { const srs = wkof.ItemData.get_index(items, 'srs_stage') const type = wkof.ItemData.get_index(items, 'item_type') const counts = { locked: items.length, radical: (type.radical || []).length, kanji: (type.kanji || []).length, vocabulary: (type.vocabulary || []).length, } return counts } function display_counts(counts) { console.log(counts) $('.srs-progress #burned').before(` <li id="locked"> <span>${counts.locked}</span> <span class="title">Locked</span> <div class="popover srs right in"> <div class="arrow"></div> <div class="popover-inner"> <h3 class="popover-title"> <div class="srs-logo initiate"></div> </h3> <div class="popover-content"> <ul> <li>Radicals <span>${counts.radical}</span> </li> <li>Kanji <span>${counts.kanji}</span> </li> <li>Vocabulary <span>${counts.vocabulary}</span> </li> </ul> </div> </div> </div> </li> `) $('.srs-progress #locked').hover( () => { $('.srs-progress #locked .popover').css('display', 'block') }, () => { $('.srs-progress #locked .popover').css('display', 'none') }, ) $('.srs-progress #locked .popover').hover(() => { $('.srs-progress #locked .popover').css('display', 'none') }) $('head').append(`<style id="WKLockedCount"> .srs-progress {font-size: 0px;} .srs-progress > ul {display: flex;} .srs-progress > ul > li { font-size: 14px; width: 16.66% !important; } .srs-progress #apprentice {border-radius: 0;} .srs-progress #locked { position: relative; float: left; background-color: #aaa; order: -1; border-radius: 0 0 0 5px; } .srs-progress #locked .title { font-size: 14px; font-weight: normal; color: rgba(0,0,0,0.3); text-shadow: none; position: absolute; bottom: 0; left: 0; width: 100%; padding-bottom: 20px; margin-bottom: 2.5px; } .srs-progress #locked .popover { left: 100%; top: -46px; } .srs-progress #locked .popover ul li { width: 100%; border-radius: 0; text-align: left; text-shadow: none; box-shadow: none; } .srs-progress #locked .popover ul li span { font-size: 14px; font-weight: bold; text-shadow: none; } </style>`) } })()