1 | 'use strict';
|
2 |
|
3 | var co = require('co');
|
4 | var scraper = require('./scraper');
|
5 | var statsCalculator = require('./stats');
|
6 | var personal = require('./personal');
|
7 | var parser = require('./parser');
|
8 | var demo = require('./demo');
|
9 |
|
10 | function all(username, password, fetch, feedback) {
|
11 | return co(function *() {
|
12 | if (!username) {
|
13 | throw new Error('NO_USERNAME');
|
14 | }
|
15 | if (!password) {
|
16 | throw new Error('NO_PASSWORD');
|
17 | }
|
18 | if (username === 'bestande' && password === 'bestande') {
|
19 | return demo;
|
20 | }
|
21 | let result = yield scraper.get(username, password, fetch, feedback);
|
22 | let credits = parser.fromHTML(result.html);
|
23 | let stats = statsCalculator.calculate(credits);
|
24 | let directions = personal.getStudyDirection(result.html);
|
25 | let identity = {
|
26 | name: personal.getName(result.html),
|
27 | matriculateNumber: personal.getMatriculateNumber(result.html)
|
28 | };
|
29 | return {
|
30 | stats,
|
31 | directions,
|
32 | credits,
|
33 | identity,
|
34 | success: true,
|
35 | version: 6
|
36 | };
|
37 | });
|
38 | }
|
39 |
|
40 | module.exports = {
|
41 | all,
|
42 | scraper,
|
43 | stats: statsCalculator,
|
44 | personal,
|
45 | parser
|
46 | };
|