1 | 'use strict';
|
2 |
|
3 | const START_INDICATOR_DIRECTION = '!-- [ Studiengang';
|
4 | const END_INDICATOR_DIRECTION = '] -->';
|
5 |
|
6 | const START_INDICATOR_NAME = '<!-- [ Name Vorname';
|
7 | const END_INDICATOR_NAME = '<!-- [ Matrikelnummer';
|
8 |
|
9 | const START_INDICATOR_MATRICULATE_NO = '<!-- [ Matrikelnummer';
|
10 | const END_INDICATOR_MATRICULATE_NO = '<!-- [ END INCLUDE';
|
11 |
|
12 | var cheerio = require('cheerio-without-node-native');
|
13 | var _ = require('underscore');
|
14 |
|
15 | exports.getStudyDirection = function (html) {
|
16 | let start = html.indexOf(START_INDICATOR_DIRECTION);
|
17 | let trimmed = html.substr(start + START_INDICATOR_DIRECTION.length);
|
18 | let end = trimmed.indexOf(END_INDICATOR_DIRECTION);
|
19 |
|
20 | let form = trimmed.substr(0, end);
|
21 |
|
22 | let $ = cheerio.load(form);
|
23 | let options = _.map($('select option'), option => {
|
24 | return {code: $(option).attr('value'), name: $(option).text()};
|
25 | });
|
26 | return options;
|
27 | };
|
28 |
|
29 | exports.getName = function (html) {
|
30 | let start = html.indexOf(START_INDICATOR_NAME);
|
31 | let trimmed = html.substr(start + START_INDICATOR_NAME.length);
|
32 | let end = trimmed.indexOf(END_INDICATOR_NAME);
|
33 |
|
34 | let tr = trimmed.substr(0, end);
|
35 | let $ = cheerio.load(tr);
|
36 | let name = $('td.datenwert').text();
|
37 | let split = name.split(',').map(n => n.trim());
|
38 | let last = split[0];
|
39 | let first = split[1];
|
40 | return {
|
41 | last,
|
42 | first
|
43 | };
|
44 | };
|
45 |
|
46 | exports.getMatriculateNumber = function (html) {
|
47 | let start = html.indexOf(START_INDICATOR_MATRICULATE_NO);
|
48 | let trimmed = html.substr(start + START_INDICATOR_MATRICULATE_NO.length);
|
49 | let end = trimmed.indexOf(END_INDICATOR_MATRICULATE_NO);
|
50 |
|
51 | let tr = trimmed.substr(0, end);
|
52 | let $ = cheerio.load(tr);
|
53 | return $('td.datenwert').text();
|
54 | };
|