From 9432e9a806a50ceecce5e068a6210ef608577a96 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sat, 2 Nov 2019 22:46:21 -0400 Subject: [PATCH] [+] Create method to detect course level --- src/utils/course-utils.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/utils/course-utils.ts b/src/utils/course-utils.ts index c6f7c0e..dd130eb 100644 --- a/src/utils/course-utils.ts +++ b/src/utils/course-utils.ts @@ -63,4 +63,31 @@ export class CourseUtils { return `course/${course.id}/${course.name.toLowerCase().split(' ').join('-')}`; } + /** + * Detect course level based on course name + * + * @param name Course name + */ + private static detectLevel(name: string) + { + // Common ones + if (name.startsWith('AP')) return LEVEL_AP; + if (name.endsWith(' H')) return LEVEL_H; + if (name.endsWith(' A')) return LEVEL_A; + if (name.endsWith(' CP')) return LEVEL_CP; + + // Uncommon ones + let lower = name.toLowerCase(); + + if (lower.startsWith('pre-ap')) return LEVEL_AP; + if (lower.endsWith(' acc')) return LEVEL_A; + if (name.endsWith('H')) return LEVEL_H; + if (name.endsWith('A')) return LEVEL_A; + if (name.endsWith('CP')) return LEVEL_CP; + + // Even more uncommon + if (lower.includes('honors')) return LEVEL_H; + if (lower.includes('accelerated')) return LEVEL_A; + if (name.includes('Advanced')) return LEVEL_A; + } }