diff --git a/pylib/anki/consts.py b/pylib/anki/consts.py index dd0199f6b..2de007e98 100644 --- a/pylib/anki/consts.py +++ b/pylib/anki/consts.py @@ -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/" diff --git a/pylib/anki/foreign_data/__init__.py b/pylib/anki/foreign_data/__init__.py index a54bad70b..1641c809d 100644 --- a/pylib/anki/foreign_data/__init__.py +++ b/pylib/anki/foreign_data/__init__.py @@ -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 diff --git a/pylib/anki/foreign_data/mnemosyne.py b/pylib/anki/foreign_data/mnemosyne.py index 167583c3d..b4dc5cbf3 100644 --- a/pylib/anki/foreign_data/mnemosyne.py +++ b/pylib/anki/foreign_data/mnemosyne.py @@ -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) diff --git a/rslib/src/import_export/text/import.rs b/rslib/src/import_export/text/import.rs index c517b2c8c..fa6109be0 100644 --- a/rslib/src/import_export/text/import.rs +++ b/rslib/src/import_export/text/import.rs @@ -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 diff --git a/rslib/src/import_export/text/mod.rs b/rslib/src/import_export/text/mod.rs index e5ca0188b..7de7032e4 100644 --- a/rslib/src/import_export/text/mod.rs +++ b/rslib/src/import_export/text/mod.rs @@ -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, }