mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 08:46:37 -04:00
Fix/skip suspended cards in graphs context retrievability (#3518)
* skip suspended cards in GraphsContext retrievability * avoid i32 overflow * avoid u32 overflow
This commit is contained in:
parent
7500beaba3
commit
939cc5a268
2 changed files with 9 additions and 5 deletions
|
@ -115,8 +115,8 @@ impl Card {
|
|||
} else if self.is_due_in_days() {
|
||||
Some(
|
||||
TimestampSecs::now().adding_secs(
|
||||
((self.original_or_current_due() - timing.days_elapsed as i32)
|
||||
.saturating_mul(86400)) as i64,
|
||||
(self.original_or_current_due() as i64 - timing.days_elapsed as i64)
|
||||
.saturating_mul(86400),
|
||||
),
|
||||
)
|
||||
} else {
|
||||
|
@ -131,9 +131,9 @@ impl Card {
|
|||
Some((timing.next_day_at.0 as u32).saturating_sub(self.due.max(0) as u32) / 86_400)
|
||||
} else {
|
||||
self.due_time(timing).map(|due| {
|
||||
due.adding_secs(-86_400 * self.interval as i64)
|
||||
.elapsed_secs() as u32
|
||||
/ 86_400
|
||||
(due.adding_secs(-86_400 * self.interval as i64)
|
||||
.elapsed_secs()
|
||||
/ 86_400) as u32
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
use anki_proto::stats::graphs_response::Retrievability;
|
||||
use fsrs::FSRS;
|
||||
|
||||
use crate::card::CardQueue;
|
||||
use crate::scheduler::timing::SchedTimingToday;
|
||||
use crate::stats::graphs::eases::percent_to_bin;
|
||||
use crate::stats::graphs::GraphsContext;
|
||||
|
@ -23,6 +24,9 @@ impl GraphsContext {
|
|||
let mut note_retrievability: std::collections::HashMap<i64, (f32, u32)> =
|
||||
std::collections::HashMap::new();
|
||||
for card in &self.cards {
|
||||
if card.queue == CardQueue::Suspended {
|
||||
continue;
|
||||
}
|
||||
let entry = note_retrievability
|
||||
.entry(card.note_id.0)
|
||||
.or_insert((0.0, 0));
|
||||
|
|
Loading…
Reference in a new issue