mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 15:32:23 -04:00

* Add _bytes methods for all methods in the backend Expose get_note in qt/aqt/mediasrv.py * Satisfy formatter * Rename _bytes function to _raw and have them bytes as input * Fix backend generation * Use lib/proto/deckOptions in deck-options * Add exposed_backend to qt/aqt/mediasrv.py * Move some more backend methods to exposed_backend_list * Use protobufjs for congrats and i18n * Use protobufjs for completeTag * Use protobufjs services in change-notetype * Reorder post handlers in alphabetical manner * Satisfy tests * Remove unused collection methods * Rename access_backend to raw_backend_request * Use _vendor.stringcase instead of creating a new function * Remove SKIP_UNROLL_OUTPUT * Directly call _run_command in non _raw methods * Remove TranslateString, ChangeNotetype and CompleteTag from SKIP_UNROLL_INPUT * Remove UpdateDeckConfigs from SKIP_UNROLL_INPUT * Remove ChangeNotetype from SKIP_UNROLL_INPUT * Remove SKIP_UNROLL_INPUT * Fix typing issue with translate_string - Adds typing support for Protobuf maps in genbackend.py * Do not emit convenience method for protobuf TranslateString
26 lines
886 B
TypeScript
26 lines
886 B
TypeScript
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
import type { Scheduler } from "../lib/proto";
|
|
import { naturalUnit, unitAmount, unitName } from "../lib/time";
|
|
import * as tr from "../lib/ftl";
|
|
|
|
export function buildNextLearnMsg(info: Scheduler.CongratsInfoResponse): string {
|
|
const secsUntil = info.secsUntilNextLearn;
|
|
// next learning card not due today?
|
|
if (secsUntil >= 86_400) {
|
|
return "";
|
|
}
|
|
|
|
const unit = naturalUnit(secsUntil);
|
|
const amount = Math.round(unitAmount(unit, secsUntil));
|
|
const unitStr = unitName(unit);
|
|
const nextLearnDue = tr.schedulingNextLearnDue({
|
|
amount,
|
|
unit: unitStr,
|
|
});
|
|
const remaining = tr.schedulingLearnRemaining({
|
|
remaining: info.learnRemaining,
|
|
});
|
|
return `${nextLearnDue} ${remaining}`;
|
|
}
|