summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-05-02 09:15:09 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-05-02 09:15:09 +0200
commit5cb003e51b7388a6acc50b8fd9acb0c69c119eb4 (patch)
treeda07bfcdcf8bd1baf29cdf4d6d080614692b7385 /src/core
parent567a0f7a2f248cd25b8a5e0e357f9b10c16a9036 (diff)
downloadsplus-5cb003e51b7388a6acc50b8fd9acb0c69c119eb4.tar.gz
splus-5cb003e51b7388a6acc50b8fd9acb0c69c119eb4.zip
rm ISource & FileSource, combine request & parsing, split filter from parser
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SplusApi.ts26
-rw-r--r--src/core/SplusParser.ts8
2 files changed, 29 insertions, 5 deletions
diff --git a/src/core/SplusApi.ts b/src/core/SplusApi.ts
new file mode 100644
index 0000000..47b5a70
--- /dev/null
+++ b/src/core/SplusApi.ts
@@ -0,0 +1,26 @@
+import * as request from 'request-promise-native';
+import {SplusParser} from './SplusParser';
+import {ILecture} from './ILecture';
+
+export class SplusApi {
+ private static _base_uri = 'http://splus.ostfalia.de/semesterplan123.php';
+
+ private static splusRequest(course: string, weekOfYear: number): PromiseLike<string> {
+ return request({
+ method: 'POST',
+ uri: this._base_uri,
+ qs: {
+ identifier: course,
+ },
+ formData: {
+ weeks: weekOfYear.toString(),
+ },
+ });
+ }
+
+ static async getData(course: string, weekOfYear: number): Promise<ILecture[]> {
+ const data = await this.splusRequest(course, weekOfYear);
+ const lectures = new SplusParser(data).getLectures();
+ return lectures;
+ }
+}
diff --git a/src/core/SplusParser.ts b/src/core/SplusParser.ts
index ae634b1..82a514e 100644
--- a/src/core/SplusParser.ts
+++ b/src/core/SplusParser.ts
@@ -1,5 +1,5 @@
import {load} from 'cheerio';
-import {ILecture, ILectureFilter} from './ILecture';
+import {ILecture} from './ILecture';
interface IBlock {
title: string;
@@ -32,7 +32,7 @@ export class SplusParser {
this.parseTable();
}
- getLectures(filter?: ILectureFilter): ILecture[] {
+ getLectures(): ILecture[] {
let lectures: ILecture[] = [];
for (let i = 0; i < this.blocks.length; i++) {
@@ -54,9 +54,7 @@ export class SplusParser {
lecturer: block.lecturer
};
- if(!filter || filter(lecture)) {
- lectures.push(lecture);
- }
+ lectures.push(lecture);
}
}
}