mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 09:16:38 -04:00
Use decimal number as foreign ease (like '2.5')
This commit is contained in:
parent
8f1bba6c07
commit
dbeca4310b
5 changed files with 6 additions and 8 deletions
|
@ -70,6 +70,7 @@ MODEL_STD = 0
|
|||
MODEL_CLOZE = 1
|
||||
|
||||
STARTING_FACTOR = 2500
|
||||
STARTING_FACTOR_FRACTION = STARTING_FACTOR / 1000
|
||||
|
||||
HELP_SITE = "https://docs.ankiweb.net/"
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import json
|
|||
from dataclasses import asdict, dataclass, field
|
||||
from typing import Union
|
||||
|
||||
from anki.consts import STARTING_FACTOR
|
||||
from anki.consts import STARTING_FACTOR_FRACTION
|
||||
from anki.decks import DeckId
|
||||
from anki.models import NotetypeId
|
||||
|
||||
|
@ -74,7 +74,7 @@ class ForeignNotetype:
|
|||
class ForeignCard:
|
||||
due: int = 0
|
||||
ivl: int = 1
|
||||
factor: int = STARTING_FACTOR
|
||||
factor: float = STARTING_FACTOR_FRACTION
|
||||
reps: int = 0
|
||||
lapses: int = 0
|
||||
|
||||
|
|
|
@ -143,16 +143,13 @@ class MnemoCard:
|
|||
|
||||
def foreign_card(self) -> ForeignCard:
|
||||
return ForeignCard(
|
||||
factor=self.anki_ease(),
|
||||
factor=self.easiness,
|
||||
reps=self.reps,
|
||||
lapses=self.lapses,
|
||||
ivl=self.anki_interval(),
|
||||
due=self.next_rep,
|
||||
)
|
||||
|
||||
def anki_ease(self) -> int:
|
||||
return int(self.easiness * 1000)
|
||||
|
||||
def anki_interval(self) -> int:
|
||||
return max(1, (self.next_rep - self.last_rep) // 86400)
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ impl ForeignCard {
|
|||
fn into_native(self, note_id: NoteId, template_idx: u16, deck_id: DeckId) -> Card {
|
||||
let mut card = Card::new(note_id, template_idx, deck_id, self.due);
|
||||
card.interval = self.ivl;
|
||||
card.ease_factor = self.factor;
|
||||
card.ease_factor = (self.factor * 1000.).round() as u16;
|
||||
card.reps = self.reps;
|
||||
card.lapses = self.lapses;
|
||||
card
|
||||
|
|
|
@ -31,7 +31,7 @@ pub struct ForeignNote {
|
|||
pub struct ForeignCard {
|
||||
pub due: i32,
|
||||
pub ivl: u32,
|
||||
pub factor: u16,
|
||||
pub factor: f32,
|
||||
pub reps: u32,
|
||||
pub lapses: u32,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue