您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Provides website settings for easier studying.
当前为
// ==UserScript== // @name WaniKani Study Config // @namespace wkstudycfg // @version 1.0.0 // @description Provides website settings for easier studying. // @author Robin Findley // @copyright 2014+, Robin Findley // @license GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html // @include http://www.wanikani.com/level/* // @include https://www.wanikani.com/level/* // @include http://www.wanikani.com/radicals?* // @include https://www.wanikani.com/radicals?* // @include http://www.wanikani.com/kanji?* // @include https://www.wanikani.com/kanji?* // @include http://www.wanikani.com/vocabulary?* // @include https://www.wanikani.com/vocabulary?* // @grant GM_addStyle // ==/UserScript== //------------------------------------------------------------------- // Global data container and initialization. //------------------------------------------------------------------- var wksc = {}; wksc.criteria = {}; wksc.criteria.unlocked_first = true; //------------------------------------------------------------------- // Vocabulary sort comparison. //------------------------------------------------------------------- function wk_vocab_compare(a, b) { var a_text, b_text, a_lock, b_lock; a_text = a.querySelector('.character').innerHTML; b_text = b.querySelector('.character').innerHTML; // If 'unlocked_first' option is selected, push locked items to the end of the list. if (wksc.criteria.unlocked_first == true) { a_lock = (a.className.match(/\blocked\b/)!=null); b_lock = (b.className.match(/\blocked\b/)!=null); if (!a_lock && b_lock) { return -1; } if (a_lock && !b_lock) { return 1; } } if (a_text < b_text) { return -1; } if (a_text > b_text) { return 1; } return 0; } //------------------------------------------------------------------- // Sort groups vocabulary. //------------------------------------------------------------------- function sort_vocab() { var vocab_groups, group, grp_cnt, grp_idx, words, word_cnt, word_idx; vocab_groups = document.querySelectorAll('.multi-character-grid'); grp_cnt = vocab_groups.length; for (grp_idx = 0; grp_idx < grp_cnt; grp_idx++) { group = vocab_groups[grp_idx]; if (group.querySelector('li[id|=vocabulary]')==undefined) { continue; } words = []; word_cnt = group.childElementCount; for (word_idx = 0; word_idx < word_cnt; word_idx++) { words.push(group.children[word_idx]); } words.sort(wk_vocab_compare); for (word_idx = 0; word_idx < word_cnt; word_idx++) { group.appendChild(words[word_idx]); } } } //------------------------------------------------------------------- // Add CSS styles to the document. //------------------------------------------------------------------- function add_styles() { GM_addStyle('.wksc_hide ul {opacity: 0} .wksc_hide:hover ul {opacity:1.0}'); } //------------------------------------------------------------------- // Hide or unhide radicals, kanji, and vocabulary meaning and pronunciation. //------------------------------------------------------------------- function set_visibility(hidden) { if (hidden) { $('.character-item').addClass('wksc_hide'); } else { $('.character-item.wksc_hide').removeClass('wksc_hide'); } } //------------------------------------------------------------------- // Check that all localStorage items are present and valid. Assign defaults as needed. //------------------------------------------------------------------- function check_storage() { wksc.hide_info = Number(localStorage.getItem("wksc_hide") || 1); if (!(wksc.hide_info >= 0 && wksc.hide_info <= 1)) { wksc.hide_info = 1; localStorage.setItem("wksc_hide", wksc.hide_info); } } //------------------------------------------------------------------- // Set up GreaseMonkey menu commands. //------------------------------------------------------------------- function GMsetup() { if (GM_registerMenuCommand) { GM_registerMenuCommand('WaniKani Study: Hide info until hover', function() { wksc.hide_info++; wksc.hide_info %= 2; localStorage.setItem("wksc_hide", wksc.hide_info); set_visibility(wksc.hide_info); }); } } //------------------------------------------------------------------- // main() //------------------------------------------------------------------- function main() { check_storage(); GMsetup(); add_styles(); sort_vocab(); set_visibility(wksc.hide_info); } // Run main upon load. window.addEventListener("load", main, false);