您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name WaniKani Fast Abridged Wrong/Multiple Answer // @namespace http://tampermonkey.net/ // @version 4.12 // @description try to take over the world! // @author You // @match https://*.wanikani.com/subjects/review* // @match https://*.wanikani.com/subjects/extra_study* // @match https://wanikani.com/ // @match https://wanikani.com/dashboard // @match https://www.wanikani.com/ // @match https://www.wanikani.com/dashboard // @match https://preview.wanikani.com/ // @match https://preview.wanikani.com/dashboard // @require https://code.jquery.com/jquery-3.6.3.min.js // @grant none // ==/UserScript== window.wk_fawa = {}; //var wrongCountFAWA; (function(global) { /* global wkof, Stimulus, WaniKani, importShim, $ */ 'use strict'; // Hook into App Store // try { $('.app-store-menu-item').remove(); $('<li class="app-store-menu-item"><a href="https://community.wanikani.com/t/there-are-so-many-user-scripts-now-that-discovering-them-is-hard/20709">App Store</a></li>').insertBefore($('.navbar .dropdown-menu .nav-header:contains("Account")')); window.appStoreRegistry = window.appStoreRegistry || {}; window.appStoreRegistry[GM_info.script.uuid] = GM_info; localStorage.appStoreRegistry = JSON.stringify(appStoreRegistry); } catch (e) {} if (!window.wkof) { if (confirm('WaniKani Fast Abridged Wrong/Multiple Answer requires Wanikani Open Framework.\nDo you want to be forwarded to the installation instructions?')) window.location.href = 'https://community.wanikani.com/t/instructions-installing-wanikani-open-framework/28549'; return; } var settings_dialog; var defaults = { alwaysShow: false, alwaysShowOnlyMultiple: false, dontShowWrong: false, correctColor: "#88cc00", incorrectColor: "#ff0033", customColor: false }; if(window.location.pathname == "/" || window.location.pathname == "/dashboard"){ wkof.include('Apiv2, Menu, Settings'); wkof.ready('Menu').then(install_menu); wkof.ready('Settings').then(install_settings); debugger; $('.dashboard__content').before("<section class='dashboard__notice'><div class='dashboard__notice-section'><span class='main'>WaniKani Fast Abridged Wrong/Multiple Answer has been retired</span><span class='link'><a href='https://greasyfork.org/en/scripts/511539-wanikani-reviews-plus'>Wanikani Reviews Plus</a> has taken its place, with more features</span><span class='lick'></span><a href='https://community.wanikani.com/t/userscript-wanikani-reviews-plus/67455/17'>Community Discussion</a></div></section>"); } else { wkof.include('Apiv2, Settings'); wkof.ready('Settings').then(install_settings).then(function(){ $('#user-response').after("<div id='divCorrect' class='hidden quiz-input__input'><span id='lblCorrect' type='text' style='display: none;' disabled></span></div>"); window.addEventListener("didAnswerQuestion", function (e) { showCorrect(e); }) window.addEventListener(`willShowNextQuestion`, e => { $('#divCorrect').addClass('hidden'); }); window.addEventListener("didUnanswerQuestion", function (e) { $('#divCorrect').addClass('hidden'); }) //document.body.addEventListener('keydown', function(event){ // if ((event.which === 27 || event.which === 8) && // (event.target.nodeName === 'BODY') && // (!document.querySelector('#wkofs_doublecheck'))) // { // $('#divCorrect').addClass('hidden'); // } // return true; //}); }); } function install_menu() { wkof.Menu.insert_script_link({ script_id: 'fawa', name: 'fawa', submenu: 'Settings', title: 'Fast Abridged Wrong/Multiple Answer', on_click: open_settings }); } function open_settings() { settings_dialog.open(); } function install_settings() { settings_dialog = new wkof.Settings({ script_id: 'fawa', name: 'fawa', title: 'Fast Abridged Wrong/Multiple Answer', on_save: process_settings, settings: { 'grp_main': { type:'group', label:'Main', content:{ 'alwaysShow': {type:'checkbox',label:'Always Show Correct Answers',default:defaults.alwaysShow,on_change:alwaysShowChanged}, 'alwaysShowOnlyMultiple': {type:'checkbox',label:' (Only if multiple answers)',default:defaults.alwaysShowOnlyMultiple}, 'dontShowWrong': {type:'checkbox',label:' (Don\'t show wrongs)',default:defaults.dontShowWrong} } }, 'grp_colors':{ type: 'group', label: 'colors', content: { 'customColor': {type:'checkbox',label:'Custom Colors',default:defaults.customColor,on_change:customColorsChanged}, 'correctColor': {type:'color',label:'Correct',default:defaults.correctColor}, 'incorrectColor': {type:'color',label:'Incorrect',default:defaults.incorrectColor}, } } } }); settings_dialog.load().then(function(){ wkof.settings.fawa = $.extend(true, {}, defaults, wkof.settings.fawa); addStyle('#divCorrect.hidden {' + ' display: none !important;' + '}' + '#divCorrect {' + ' width: 100% !important;' + ' display:table !important;' + '}' + '#lblCorrect {' + ' height: ' + $('#answer-form input[type=text]').css('height') + ' !important;' + ' min-height: ' + $('#answer-form input[type=text]').css('height') + ' !important;' + ' display:table-cell !important;' + ' vertical-align:middle; !important;' + ' font-family: ' + $('#user-response').css('font-family') + ';' + ' font-size: ' + $('#user-response').css('font-size') + ';' + ' color: #fff; !important;' + ' -webkit-text-fill-color: #fff; !important;' + ' text-shadow: ' + ($(window).width() < 767 ? '1px 1px 0 rgba(0,0,0,0.2);' : '2px 2px 0 rgba(0,0,0,0.2);') + ' !important;' + ' -webkit-transition: background-color 0.1s ease-in; !important;' + ' -moz-transition: background-color 0.1s ease-in; !important;' + ' -o-transition: background-color 0.1s ease-in; !important;' + ' transition: background-color 0.1s ease-in; !important;' + ' opacity: 1 !important;' + '}' + '.quiz-input__input-container[correct=true] #divCorrect {' + ' background-color: ' + (wkof.settings.fawa.customColor == true ? wkof.settings.fawa.correctColor : '#88cc00') + ' !important;' + '}' + '.quiz-input__input-container[correct=false] #divCorrect {' + ' background-color: ' + (wkof.settings.fawa.customColor == true ? wkof.settings.fawa.incorrectColor : '#f03') + '!important;' + '}' + '.dashboard__notice {' + ' background: deeppink;' + ' color: white;' + ' padding: 20px;' + ' border-radius: 6px;' + ' margin-bottom: 20px;' + '}' + '.dashboard__notice .dashboard__notice-section {' + ' row-gap: 2px;' + ' display: grid;' + '}' + '.dashboard__notice .main {' + ' font-size: 2rem;' + ' padding-bottom: 5px;' + ' font-weight: bold;' + '}' + '.dashboard__notice .link {' + ' font-size: 1.5rem;' + '}') }); } function alwaysShowChanged(){ if($(this).prop('checked') == false){ $('#fawa_alwaysShowOnlyMultiple').attr('disabled','disabled'); $('#fawa_alwaysShowOnlyMultiple').prop("checked",false); $('#fawa_alwaysShowOnlyMultiple').closest('.row').css('display','none'); $('#fawa_dontShowWrong').attr('disabled','disabled'); $('#fawa_dontShowWrong').prop("checked",false); $('#fawa_dontShowWrong').closest('.row').css('display','none'); } else { $('#fawa_alwaysShowOnlyMultiple').removeAttr('disabled'); $('#fawa_alwaysShowOnlyMultiple').closest('.row').css('display','block'); $('#fawa_dontShowWrong').removeAttr('disabled'); $('#fawa_dontShowWrong').closest('.row').css('display','block'); } } function customColorsChanged(){ if($(this).prop('checked') == false){ $('#fawa_grp_colors .row:gt(0)').css('display','none'); } else { $('#fawa_grp_colors .row:gt(0)').css('display','block'); } } function process_settings(){ settings_dialog.save(); console.log('Settings saved!'); } function showBar(correct){ $('#lblCorrect').css('display','block'); } function getMeanings(e){ let quiz_input = Stimulus.getControllerForElementAndIdentifier(document.querySelector(`[data-controller~="quiz-input"]`),'quiz-input') let synonyms = quiz_input.quizUserSynonymsOutlet.synonymsForSubjectId(e.detail.subjectWithStats.subject.id); //let synonyms = []; //if(quiz_input.quizUserSynonymsOutlet.synonyms.hasOwnProperty(e.detail.subjectWithStats.subject)){ // synonyms = [...quiz_input.quizUserSynonymsOutlet.synonyms[5894]]; //} return [...e.detail.subjectWithStats.subject.meanings, ...synonyms].join(", ") } function getReadings(e){ return e.detail.subjectWithStats.subject.readings.map(r => r.reading).join(", ") } function showCorrect(e){ switch((e.detail.subjectWithStats.subject.type + ' ' + e.detail.questionType).toLowerCase()) { case "vocabulary reading": if(e.detail.results.passed && wkof.settings.fawa.alwaysShowOnlyMultiple == true && getReadings(e).indexOf(",") === -1) return; showBar(e.detail.results.passed); $('#lblCorrect').text(getReadings(e)); $('#divCorrect').removeClass('hidden'); break; case "vocabulary meaning": case "kanji meaning": case "radical meaning": case "kanavocabulary meaning": debugger; if(e.detail.results.passed && wkof.settings.fawa.alwaysShowOnlyMultiple == true && (getMeanings(e).indexOf(",") === -1)) return; showBar(e.detail.results.passed); $('#lblCorrect').text(getMeanings(e)); $('#divCorrect').removeClass('hidden'); break; case "kanji reading": switch(e.detail.subjectWithStats.subject.primary_reading_type){ case "onyomi": if(e.detail.results.passed && wkof.settings.fawa.alwaysShowOnlyMultiple == true && e.detail.subjectWithStats.subject.onyomi.length === 1) return; showBar(e.detail.results.passed); $('#lblCorrect').text(e.detail.subjectWithStats.subject.onyomi.join(", ")); $('#divCorrect').removeClass('hidden'); break; case "kunyomi": if(e.detail.results.passed && wkof.settings.fawa.alwaysShowOnlyMultiple == true && e.detail.subjectWithStats.subject.kunyomi.length === 1) return; showBar(e.detail.results.passed); $('#lblCorrect').text(e.detail.subjectWithStats.subject.kunyomi.join(", ")); $('#divCorrect').removeClass('hidden'); break; } break; } } function addStyle(aCss) { var head, style; head = document.getElementsByTagName('head')[0]; if (head) { style = document.createElement('style'); style.setAttribute('type', 'text/css'); style.textContent = aCss; head.appendChild(style); return style; } return null; } })(window.wk_fawa);