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]]
|
[[package]]
|
||||||
name = "fsrs"
|
name = "fsrs"
|
||||||
version = "4.0.0"
|
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 = [
|
dependencies = [
|
||||||
"burn",
|
"burn",
|
||||||
"itertools 0.14.0",
|
"itertools 0.14.0",
|
||||||
|
|
|
@ -37,7 +37,7 @@ rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca"
|
||||||
[workspace.dependencies.fsrs]
|
[workspace.dependencies.fsrs]
|
||||||
# version = "3.0.0"
|
# version = "3.0.0"
|
||||||
git = "https://github.com/open-spaced-repetition/fsrs-rs.git"
|
git = "https://github.com/open-spaced-repetition/fsrs-rs.git"
|
||||||
rev = "092c20bac7d9239a991ae5b561556ad34c706c16"
|
rev = "33ec3ee4d5d73e704633469cf5bf1a42e620a524"
|
||||||
# path = "../open-spaced-repetition/fsrs-rs"
|
# path = "../open-spaced-repetition/fsrs-rs"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
|
|
|
@ -30,19 +30,21 @@ impl Collection {
|
||||||
|
|
||||||
let (average_secs, total_secs) = average_and_total_secs_strings(&revlog);
|
let (average_secs, total_secs) = average_and_total_secs_strings(&revlog);
|
||||||
let timing = self.timing_today()?;
|
let timing = self.timing_today()?;
|
||||||
let days_elapsed = self
|
let seconds_elapsed = self
|
||||||
.storage
|
.storage
|
||||||
.time_of_last_review(card.id)?
|
.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;
|
.unwrap_or_default() as u32;
|
||||||
let fsrs_retrievability = card
|
let fsrs_retrievability = card
|
||||||
.memory_state
|
.memory_state
|
||||||
.zip(Some(days_elapsed))
|
.zip(Some(seconds_elapsed))
|
||||||
.zip(Some(card.decay.unwrap_or(FSRS5_DEFAULT_DECAY)))
|
.zip(Some(card.decay.unwrap_or(FSRS5_DEFAULT_DECAY)))
|
||||||
.map(|((state, days), decay)| {
|
.map(|((state, seconds), decay)| {
|
||||||
FSRS::new(None)
|
FSRS::new(None).unwrap().current_retrievability_seconds(
|
||||||
.unwrap()
|
state.into(),
|
||||||
.current_retrievability(state.into(), days, decay)
|
seconds,
|
||||||
|
decay,
|
||||||
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
let original_deck = if card.original_deck_id == DeckId(0) {
|
let original_deck = if card.original_deck_id == DeckId(0) {
|
||||||
|
|
Loading…
Reference in a new issue