From aecff39b6f3cca846d9dc10636f85aee6425b161 Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Mon, 28 Jul 2025 14:15:43 +0800 Subject: [PATCH] replace `days_since_last_review` with `seconds_since_last_review` --- rslib/src/browser_table.rs | 17 ----------------- rslib/src/stats/graphs/retrievability.rs | 6 +++--- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/rslib/src/browser_table.rs b/rslib/src/browser_table.rs index fffea69ce..4b6ff920e 100644 --- a/rslib/src/browser_table.rs +++ b/rslib/src/browser_table.rs @@ -127,23 +127,6 @@ impl Card { /// This uses card.due and card.ivl to infer the elapsed time. If 'set due /// date' or an add-on has changed the due date, this won't be accurate. - pub(crate) fn days_since_last_review(&self, timing: &SchedTimingToday) -> Option { - if let Some(last_review_time) = self.last_review_time { - Some(timing.next_day_at.elapsed_days_since(last_review_time) as u32) - } else if !self.is_due_in_days() { - Some( - (timing.next_day_at.0 as u32).saturating_sub(self.original_or_current_due() as u32) - / 86_400, - ) - } else { - self.due_time(timing).map(|due| { - (due.adding_secs(-86_400 * self.interval as i64) - .elapsed_secs() - / 86_400) as u32 - }) - } - } - pub(crate) fn seconds_since_last_review(&self, timing: &SchedTimingToday) -> Option { if let Some(last_review_time) = self.last_review_time { Some(timing.now.elapsed_secs_since(last_review_time) as u32) diff --git a/rslib/src/stats/graphs/retrievability.rs b/rslib/src/stats/graphs/retrievability.rs index 94f4d6bc9..6881a6062 100644 --- a/rslib/src/stats/graphs/retrievability.rs +++ b/rslib/src/stats/graphs/retrievability.rs @@ -30,10 +30,10 @@ impl GraphsContext { .or_insert((0.0, 0)); entry.1 += 1; if let Some(state) = card.memory_state { - let elapsed_days = card.days_since_last_review(&timing).unwrap_or_default(); - let r = fsrs.current_retrievability( + let elapsed_seconds = card.seconds_since_last_review(&timing).unwrap_or_default(); + let r = fsrs.current_retrievability_seconds( state.into(), - elapsed_days, + elapsed_seconds, card.decay.unwrap_or(FSRS5_DEFAULT_DECAY), );