mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { getWeekNumber } from "@/app/course/[courseName]/calendar/calendarMonthUtils";
|
|
import { extractLabelValue } from "@/features/local/assignments/models/utils/markdownUtils";
|
|
import { Lecture } from "@/features/local/lectures/lectureModel";
|
|
import { getDateFromStringOrThrow } from "@/features/local/utils/timeUtils";
|
|
|
|
export function parseLecture(fileContent: string): Lecture {
|
|
try {
|
|
const settings = fileContent.split("---\n")[0];
|
|
const name = extractLabelValue(settings, "Name");
|
|
const date = extractLabelValue(settings, "Date");
|
|
|
|
const content = fileContent.split("---\n").slice(1).join("---\n").trim();
|
|
return {
|
|
name,
|
|
date,
|
|
content,
|
|
};
|
|
} catch (error) {
|
|
console.error("Error parsing lecture: ", fileContent);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
export function lectureToString(lecture: Lecture) {
|
|
return `Name: ${lecture.name}
|
|
Date: ${lecture.date}
|
|
---
|
|
${lecture.content}`;
|
|
}
|
|
|
|
export const lectureFolderName = "00 - lectures";
|
|
|
|
export function getLectureWeekName(semesterStart: string, lectureDate: string) {
|
|
const startDate = getDateFromStringOrThrow(
|
|
semesterStart,
|
|
"semester start date in update lecture"
|
|
);
|
|
const targetDate = getDateFromStringOrThrow(
|
|
lectureDate,
|
|
"lecture start date in update lecture"
|
|
);
|
|
const weekNumber = getWeekNumber(startDate, targetDate)
|
|
.toString()
|
|
.padStart(2, "0");
|
|
|
|
const weekName = `week-${weekNumber}`;
|
|
return weekName;
|
|
}
|