From 7f0a5570e74ba5236fc02942550b4e00046b71bc Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Sun, 14 Apr 2024 17:08:49 +0800 Subject: [PATCH] handle error of evaluation if items.is_empty() --- rslib/src/scheduler/fsrs/weights.rs | 3 +++ ts/routes/deck-options/FsrsOptions.svelte | 2 ++ 2 files changed, 5 insertions(+) diff --git a/rslib/src/scheduler/fsrs/weights.rs b/rslib/src/scheduler/fsrs/weights.rs index 93957a69b..203f2925b 100644 --- a/rslib/src/scheduler/fsrs/weights.rs +++ b/rslib/src/scheduler/fsrs/weights.rs @@ -162,6 +162,9 @@ impl Collection { .get_revlog_entries_for_searched_cards_in_card_order()?; let (items, review_count) = fsrs_items_for_training(revlogs, timing.next_day_at, ignore_revlogs_before); + if items.is_empty() { + return Err(AnkiError::FsrsInsufficientData); + } anki_progress.state.reviews = review_count as u32; let fsrs = FSRS::new(Some(weights))?; Ok(fsrs.evaluate(items, |ip| { diff --git a/ts/routes/deck-options/FsrsOptions.svelte b/ts/routes/deck-options/FsrsOptions.svelte index 25f479878..ea7045766 100644 --- a/ts/routes/deck-options/FsrsOptions.svelte +++ b/ts/routes/deck-options/FsrsOptions.svelte @@ -185,6 +185,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } }, ); + } catch (err) { + alert(tr.deckConfigNotEnoughHistory()); } finally { checkingWeights = false; }