mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 17:26:36 -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
|
MODEL_CLOZE = 1
|
||||||
|
|
||||||
STARTING_FACTOR = 2500
|
STARTING_FACTOR = 2500
|
||||||
|
STARTING_FACTOR_FRACTION = STARTING_FACTOR / 1000
|
||||||
|
|
||||||
HELP_SITE = "https://docs.ankiweb.net/"
|
HELP_SITE = "https://docs.ankiweb.net/"
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import json
|
||||||
from dataclasses import asdict, dataclass, field
|
from dataclasses import asdict, dataclass, field
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from anki.consts import STARTING_FACTOR
|
from anki.consts import STARTING_FACTOR_FRACTION
|
||||||
from anki.decks import DeckId
|
from anki.decks import DeckId
|
||||||
from anki.models import NotetypeId
|
from anki.models import NotetypeId
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ class ForeignNotetype:
|
||||||
class ForeignCard:
|
class ForeignCard:
|
||||||
due: int = 0
|
due: int = 0
|
||||||
ivl: int = 1
|
ivl: int = 1
|
||||||
factor: int = STARTING_FACTOR
|
factor: float = STARTING_FACTOR_FRACTION
|
||||||
reps: int = 0
|
reps: int = 0
|
||||||
lapses: int = 0
|
lapses: int = 0
|
||||||
|
|
||||||
|
|
|
@ -143,16 +143,13 @@ class MnemoCard:
|
||||||
|
|
||||||
def foreign_card(self) -> ForeignCard:
|
def foreign_card(self) -> ForeignCard:
|
||||||
return ForeignCard(
|
return ForeignCard(
|
||||||
factor=self.anki_ease(),
|
factor=self.easiness,
|
||||||
reps=self.reps,
|
reps=self.reps,
|
||||||
lapses=self.lapses,
|
lapses=self.lapses,
|
||||||
ivl=self.anki_interval(),
|
ivl=self.anki_interval(),
|
||||||
due=self.next_rep,
|
due=self.next_rep,
|
||||||
)
|
)
|
||||||
|
|
||||||
def anki_ease(self) -> int:
|
|
||||||
return int(self.easiness * 1000)
|
|
||||||
|
|
||||||
def anki_interval(self) -> int:
|
def anki_interval(self) -> int:
|
||||||
return max(1, (self.next_rep - self.last_rep) // 86400)
|
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 {
|
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);
|
let mut card = Card::new(note_id, template_idx, deck_id, self.due);
|
||||||
card.interval = self.ivl;
|
card.interval = self.ivl;
|
||||||
card.ease_factor = self.factor;
|
card.ease_factor = (self.factor * 1000.).round() as u16;
|
||||||
card.reps = self.reps;
|
card.reps = self.reps;
|
||||||
card.lapses = self.lapses;
|
card.lapses = self.lapses;
|
||||||
card
|
card
|
||||||
|
|
|
@ -31,7 +31,7 @@ pub struct ForeignNote {
|
||||||
pub struct ForeignCard {
|
pub struct ForeignCard {
|
||||||
pub due: i32,
|
pub due: i32,
|
||||||
pub ivl: u32,
|
pub ivl: u32,
|
||||||
pub factor: u16,
|
pub factor: f32,
|
||||||
pub reps: u32,
|
pub reps: u32,
|
||||||
pub lapses: u32,
|
pub lapses: u32,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue