mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
calculate accurate retrievability in card info (#4034)
This commit is contained in:
parent
16c5eaf00a
commit
dfee38898d
3 changed files with 11 additions and 9 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -2295,7 +2295,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fsrs"
|
||||
version = "4.0.0"
|
||||
source = "git+https://github.com/open-spaced-repetition/fsrs-rs.git?rev=092c20bac7d9239a991ae5b561556ad34c706c16#092c20bac7d9239a991ae5b561556ad34c706c16"
|
||||
source = "git+https://github.com/open-spaced-repetition/fsrs-rs.git?rev=33ec3ee4d5d73e704633469cf5bf1a42e620a524#33ec3ee4d5d73e704633469cf5bf1a42e620a524"
|
||||
dependencies = [
|
||||
"burn",
|
||||
"itertools 0.14.0",
|
||||
|
|
|
@ -37,7 +37,7 @@ rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca"
|
|||
[workspace.dependencies.fsrs]
|
||||
# version = "3.0.0"
|
||||
git = "https://github.com/open-spaced-repetition/fsrs-rs.git"
|
||||
rev = "092c20bac7d9239a991ae5b561556ad34c706c16"
|
||||
rev = "33ec3ee4d5d73e704633469cf5bf1a42e620a524"
|
||||
# path = "../open-spaced-repetition/fsrs-rs"
|
||||
|
||||
[workspace.dependencies]
|
||||
|
|
|
@ -30,19 +30,21 @@ impl Collection {
|
|||
|
||||
let (average_secs, total_secs) = average_and_total_secs_strings(&revlog);
|
||||
let timing = self.timing_today()?;
|
||||
let days_elapsed = self
|
||||
let seconds_elapsed = self
|
||||
.storage
|
||||
.time_of_last_review(card.id)?
|
||||
.map(|ts| timing.next_day_at.elapsed_days_since(ts))
|
||||
.map(|ts| timing.now.elapsed_secs_since(ts))
|
||||
.unwrap_or_default() as u32;
|
||||
let fsrs_retrievability = card
|
||||
.memory_state
|
||||
.zip(Some(days_elapsed))
|
||||
.zip(Some(seconds_elapsed))
|
||||
.zip(Some(card.decay.unwrap_or(FSRS5_DEFAULT_DECAY)))
|
||||
.map(|((state, days), decay)| {
|
||||
FSRS::new(None)
|
||||
.unwrap()
|
||||
.current_retrievability(state.into(), days, decay)
|
||||
.map(|((state, seconds), decay)| {
|
||||
FSRS::new(None).unwrap().current_retrievability_seconds(
|
||||
state.into(),
|
||||
seconds,
|
||||
decay,
|
||||
)
|
||||
});
|
||||
|
||||
let original_deck = if card.original_deck_id == DeckId(0) {
|
||||
|
|
Loading…
Reference in a new issue