Wanikani: Expected Daily Number of Reviews

Displays the expected number of daily reviews given the current SRS distribution

目前為 2020-03-01 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Wanikani: Expected Daily Number of Reviews
// @namespace    Wanikani: Expected Daily Number of Reviews
// @version      1.0.3
// @description  Displays the expected number of daily reviews given the current SRS distribution
// @author       Kumirei
// @match        https://www.wanikani.com
// @match        https://www.wanikani.com/dashboard
// @include      *preview.wanikani.com*
// @grant        none
// ==/UserScript==

(function() {
	//check that the Wanikani Framework is installed
	var script_name = 'Expected Daily Number of Reviews';
	if (!window.wkof) {
		if (confirm(script_name+' 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;
	}
	//if it's installed then do the stuffs
	wkof.include('ItemData');
	wkof.ready('ItemData').then(fetch_items);

	//retrieves the data
	function fetch_items() {
		wkof.ItemData.get_items('subjects,assignments').then(function(items){
			var srs_counts = {};
			var by_srs = wkof.ItemData.get_index(items,'srs_stage');
			Object.keys(by_srs).forEach(function(srs_name) {
				srs_counts[srs_name] = by_srs[srs_name].length;
			});
			display_info(srs_counts);
		});
	}

	//adds the info to the dashboard
	function display_info(srs_counts) {
		var daily_count = 0;
		var srs_intervals = [0, 0.5, 1, 1, 2, 7, 14, 30, 120, 0];
		//This list means that for each SRS level this is how many days it takes until the item comes back
		//For example: only 1/30 of master items are expected to be reviewed in any given day
		//Notable figures
		//Lessons: 0 days (they are not accounted for)
		//Apprentice 1: 0.5 days (they come back as Apprentice 2 and will count as two reviews)
		//Burned: 0 days
		for (var i = 1; i < 9; i++) {
			daily_count += (srs_counts[i] || 0) / srs_intervals[i];
		}
		daily_count = Math.round(daily_count);
		$('head').append('<style id="dailyExpectedCss">'+
						 '    .review-status>ul>li {border-left: 0 !important;}'+
						 '    .review-status .timeago {height: auto !important; overflow-x: visible !important; white-space: normal !important;}'+
                         '    .progress-and-forecast .expected-daily {opacity: 0.3; font-size: 1rem; float: right; line-height: 30px;}'+
                         '</style>'
						);
        if ($('.progress-and-forecast').length) $('.forecast > h1').append('<span class="expected-daily">'+daily_count+' Expected Daily</span>');
		else $('.review-status > ul').append('<li class="expected-daily"><span>'+daily_count+'</span><i class="icon-inbox"></i> Expected Daily</li>');
		set_header_width();
	}

	function set_header_width() {
		var header_count = $('.dashboard section.review-status ul li').length;
		var width = (100/header_count) - .1;
		$('.dashboard section.review-status ul li').css('width', width + '%');
	}

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址