From 442f31b1871e3e857a98839ab80cb499013d42ae Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Fri, 26 Apr 2024 21:55:14 +0800 Subject: [PATCH] Feat/new fuzz range for overdue card --- schedule/reschedule.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/schedule/reschedule.py b/schedule/reschedule.py index 627a766..f37e1f0 100644 --- a/schedule/reschedule.py +++ b/schedule/reschedule.py @@ -81,6 +81,13 @@ def apply_fuzz(self, ivl): else: return int(self.fuzz_factor * (max_ivl - min_ivl + 1) + min_ivl) else: + last_review = get_last_review_date(self.card) + due = self.card.odue if self.card.odid else self.card.due + if due > last_review + max_ivl + 2: + current_ivl = due - last_review + min_ivl, max_ivl = get_fuzz_range( + current_ivl, self.elapsed_days, current_ivl + ) min_num_cards = math.inf best_ivl = (max_ivl + min_ivl) // 2 if self.allow_to_past else max_ivl step = (max_ivl - min_ivl) // 100 + 1