Skip to content

Commit eb2250f

Browse files
committed
remove sr-ease and sr-interval from custom intervals
1 parent 7555286 commit eb2250f

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

src/data-store-algorithm/data-store-in-note-algorithm-osr.ts

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Moment } from "moment";
22
import moment from "moment";
33

4+
import { Algorithm } from "src/algorithms/base/isrs-algorithm";
45
import { RepItemScheduleInfo } from "src/algorithms/base/rep-item-schedule-info";
56
import { RepItemScheduleInfoOsr } from "src/algorithms/osr/rep-item-schedule-info-osr";
67
import { Card } from "src/card";
@@ -32,15 +33,22 @@ export class DataStoreInNoteAlgorithmOsr implements IDataStoreAlgorithm {
3233
let result: RepItemScheduleInfo = null;
3334
const frontmatter: Map<string, string> = await note.getFrontmatter();
3435

35-
if (
36-
frontmatter &&
37-
frontmatter.has("sr-due") &&
38-
frontmatter.has("sr-interval") &&
39-
frontmatter.has("sr-ease")
40-
) {
36+
if (frontmatter && frontmatter.has("sr-due")) {
4137
const dueDate: Moment = moment(frontmatter.get("sr-due"), ALLOWED_DATE_FORMATS);
42-
const interval: number = parseFloat(frontmatter.get("sr-interval"));
43-
const ease: number = parseFloat(frontmatter.get("sr-ease"));
38+
39+
// For Custom Intervals, interval might not be stored, so use a default value
40+
// The actual interval will be determined by the algorithm when scheduling
41+
let interval: number = 1; // Default interval
42+
if (frontmatter.has("sr-interval")) {
43+
interval = parseFloat(frontmatter.get("sr-interval"));
44+
}
45+
46+
// For Custom Intervals, ease might not be stored, so use default value
47+
let ease: number = 250; // Default ease
48+
if (frontmatter.has("sr-ease")) {
49+
ease = parseFloat(frontmatter.get("sr-ease"));
50+
}
51+
4452
result = new RepItemScheduleInfoOsr(dueDate, interval, ease);
4553
}
4654
return result;
@@ -54,13 +62,18 @@ export class DataStoreInNoteAlgorithmOsr implements IDataStoreAlgorithm {
5462
const interval: number = schedInfo.interval;
5563
const ease: number = schedInfo.latestEase;
5664

65+
// Determine what to include based on algorithm
66+
const includeSM2Data = this.settings.algorithm === Algorithm.SM_2_OSR;
67+
const intervalString = includeSM2Data ? `sr-interval: ${interval}\n` : "";
68+
const easeString = includeSM2Data ? `sr-ease: ${ease}\n` : "";
69+
5770
// check if scheduling info exists
5871
if (SCHEDULING_INFO_REGEX.test(fileText)) {
5972
const schedulingInfo = SCHEDULING_INFO_REGEX.exec(fileText);
6073
fileText = fileText.replace(
6174
SCHEDULING_INFO_REGEX,
6275
`---\n${schedulingInfo[1]}sr-due: ${dueString}\n` +
63-
`sr-interval: ${interval}\nsr-ease: ${ease}\n` +
76+
`${intervalString}${easeString}` +
6477
`${schedulingInfo[5]}---`,
6578
);
6679
} else if (YAML_FRONT_MATTER_REGEX.test(fileText)) {
@@ -69,12 +82,11 @@ export class DataStoreInNoteAlgorithmOsr implements IDataStoreAlgorithm {
6982
fileText = fileText.replace(
7083
YAML_FRONT_MATTER_REGEX,
7184
`---\n${existingYaml[1]}sr-due: ${dueString}\n` +
72-
`sr-interval: ${interval}\nsr-ease: ${ease}\n---`,
85+
`${intervalString}${easeString}---`,
7386
);
7487
} else {
7588
fileText =
76-
`---\nsr-due: ${dueString}\nsr-interval: ${interval}\n` +
77-
`sr-ease: ${ease}\n---\n\n${fileText}`;
89+
`---\nsr-due: ${dueString}\n` + `${intervalString}${easeString}---\n\n${fileText}`;
7890
}
7991

8092
await note.write(fileText);

0 commit comments

Comments
 (0)