diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-02 09:15:09 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-02 09:15:09 +0200 |
| commit | 5cb003e51b7388a6acc50b8fd9acb0c69c119eb4 (patch) | |
| tree | da07bfcdcf8bd1baf29cdf4d6d080614692b7385 /src/core | |
| parent | 567a0f7a2f248cd25b8a5e0e357f9b10c16a9036 (diff) | |
| download | splus-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.ts | 26 | ||||
| -rw-r--r-- | src/core/SplusParser.ts | 8 |
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); } } } |
