@sebbo2002/iubh-campus-sync 2.0.6 → 3.0.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/campus-activity.d.ts +1 -1
- package/dist/campus-activity.js +15 -21
- package/dist/campus-activity.js.map +1 -1
- package/dist/campus-course.d.ts +3 -3
- package/dist/campus-course.js +9 -15
- package/dist/campus-course.js.map +1 -1
- package/dist/campus-section.d.ts +1 -1
- package/dist/campus-section.js +1 -4
- package/dist/campus-section.js.map +1 -1
- package/dist/campus.d.ts +1 -1
- package/dist/campus.js +5 -11
- package/dist/campus.js.map +1 -1
- package/dist/database.d.ts +2 -2
- package/dist/database.js +37 -40
- package/dist/database.js.map +1 -1
- package/dist/sync-campus.d.ts +1 -1
- package/dist/sync-campus.js +12 -18
- package/dist/sync-campus.js.map +1 -1
- package/dist/sync.js +4 -8
- package/dist/sync.js.map +1 -1
- package/dist/types.js +2 -5
- package/dist/types.js.map +1 -1
- package/package.json +9 -6
package/dist/campus-activity.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,22 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const stream_1 = require("stream");
|
|
20
|
-
const fs_1 = require("fs");
|
|
21
|
-
const es_cookie_1 = require("es-cookie");
|
|
22
|
-
class MyCampusActivity {
|
|
10
|
+
import cheerio from 'cheerio';
|
|
11
|
+
import fetch from 'node-fetch';
|
|
12
|
+
import { join } from 'path';
|
|
13
|
+
import { promisify } from 'util';
|
|
14
|
+
import { pipeline } from 'stream';
|
|
15
|
+
import { createWriteStream } from 'fs';
|
|
16
|
+
import { encode } from 'es-cookie';
|
|
17
|
+
export default class MyCampusActivity {
|
|
23
18
|
constructor(myCampus, data) {
|
|
24
19
|
this.myCampus = myCampus;
|
|
25
20
|
this.data = data;
|
|
26
|
-
this.$ =
|
|
21
|
+
this.$ = cheerio.load(data.html);
|
|
27
22
|
}
|
|
28
23
|
get id() {
|
|
29
24
|
return this.data.id;
|
|
@@ -75,10 +70,10 @@ class MyCampusActivity {
|
|
|
75
70
|
const cookies = yield this.myCampus.page.cookies(url);
|
|
76
71
|
const headers = {
|
|
77
72
|
Cookie: cookies
|
|
78
|
-
.map(cookie =>
|
|
73
|
+
.map(cookie => encode(cookie.name, cookie.value, {}))
|
|
79
74
|
.join('; ')
|
|
80
75
|
};
|
|
81
|
-
const response = yield (
|
|
76
|
+
const response = yield fetch(url, { headers });
|
|
82
77
|
console.log(`> Response: ${response.status} ${response.statusText}`);
|
|
83
78
|
if (!response.ok) {
|
|
84
79
|
throw new Error(`Unexpected response: ${response.statusText}`);
|
|
@@ -96,10 +91,10 @@ class MyCampusActivity {
|
|
|
96
91
|
console.log('> Content-Disposition:', disposition);
|
|
97
92
|
throw new Error('Unexpected response: server replied without attachement');
|
|
98
93
|
}
|
|
99
|
-
const fileName = disposition.substr(21);
|
|
100
|
-
const filePath =
|
|
101
|
-
const streamPipeline =
|
|
102
|
-
const writeStream =
|
|
94
|
+
const fileName = disposition.substr(21).replace(/[a-z\d_\-, /]+/i, '').trim();
|
|
95
|
+
const filePath = join(path, fileName);
|
|
96
|
+
const streamPipeline = promisify(pipeline);
|
|
97
|
+
const writeStream = createWriteStream(filePath);
|
|
103
98
|
yield Promise.all([
|
|
104
99
|
new Promise(cb => writeStream.on('finish', cb)),
|
|
105
100
|
streamPipeline(response.body, writeStream)
|
|
@@ -108,5 +103,4 @@ class MyCampusActivity {
|
|
|
108
103
|
});
|
|
109
104
|
}
|
|
110
105
|
}
|
|
111
|
-
exports.default = MyCampusActivity;
|
|
112
106
|
//# sourceMappingURL=campus-activity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campus-activity.js","sourceRoot":"","sources":["../src/campus-activity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"campus-activity.js","sourceRoot":"","sources":["../src/campus-activity.ts"],"names":[],"mappings":"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"}
|
package/dist/campus-course.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MyCampusCourseStatus } from './types';
|
|
2
|
-
import MyCampus from './campus';
|
|
3
|
-
import MyCampusSection from './campus-section';
|
|
1
|
+
import { MyCampusCourseStatus } from './types.js';
|
|
2
|
+
import MyCampus from './campus.js';
|
|
3
|
+
import MyCampusSection from './campus-section.js';
|
|
4
4
|
export interface MyCampusCourseConstructorData {
|
|
5
5
|
id: string;
|
|
6
6
|
name?: string;
|
package/dist/campus-course.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,14 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const types_1 = require("./types");
|
|
16
|
-
const campus_section_1 = __importDefault(require("./campus-section"));
|
|
17
|
-
const campus_activity_1 = __importDefault(require("./campus-activity"));
|
|
18
|
-
class MyCampusCourse {
|
|
10
|
+
import { MyCampusCourseStatus } from './types.js';
|
|
11
|
+
import MyCampusSection from './campus-section.js';
|
|
12
|
+
import MyCampusActivity from './campus-activity.js';
|
|
13
|
+
export default class MyCampusCourse {
|
|
19
14
|
constructor(myCampus, data) {
|
|
20
15
|
this.myCampus = myCampus;
|
|
21
16
|
this.data = data;
|
|
@@ -28,13 +23,13 @@ class MyCampusCourse {
|
|
|
28
23
|
}
|
|
29
24
|
get status() {
|
|
30
25
|
if (this.data.current) {
|
|
31
|
-
return
|
|
26
|
+
return MyCampusCourseStatus.ACTIVE;
|
|
32
27
|
}
|
|
33
28
|
else if (this.data.info) {
|
|
34
|
-
return
|
|
29
|
+
return MyCampusCourseStatus.INFO;
|
|
35
30
|
}
|
|
36
31
|
else {
|
|
37
|
-
return
|
|
32
|
+
return MyCampusCourseStatus.COMPLETED;
|
|
38
33
|
}
|
|
39
34
|
}
|
|
40
35
|
get url() {
|
|
@@ -82,17 +77,16 @@ class MyCampusCourse {
|
|
|
82
77
|
const rawActivity = rawActivities.find(rawActivity => rawActivity.id === activityId);
|
|
83
78
|
if (rawActivity) {
|
|
84
79
|
rawActivity.url = this.url + rawActivity.url;
|
|
85
|
-
return new
|
|
80
|
+
return new MyCampusActivity(this.myCampus, rawActivity);
|
|
86
81
|
}
|
|
87
82
|
return undefined;
|
|
88
83
|
}).filter(Boolean);
|
|
89
84
|
rawSection.url = this.url + rawSection.url;
|
|
90
|
-
return new
|
|
85
|
+
return new MyCampusSection(rawSection, activities);
|
|
91
86
|
});
|
|
92
87
|
yield page.close();
|
|
93
88
|
return sections;
|
|
94
89
|
});
|
|
95
90
|
}
|
|
96
91
|
}
|
|
97
|
-
exports.default = MyCampusCourse;
|
|
98
92
|
//# sourceMappingURL=campus-course.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campus-course.js","sourceRoot":"","sources":["../src/campus-course.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"campus-course.js","sourceRoot":"","sources":["../src/campus-course.ts"],"names":[],"mappings":"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"}
|
package/dist/campus-section.d.ts
CHANGED
package/dist/campus-section.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class MyCampusSection {
|
|
1
|
+
export default class MyCampusSection {
|
|
4
2
|
constructor(data, activities) {
|
|
5
3
|
this.data = data;
|
|
6
4
|
this.activities = activities;
|
|
@@ -15,5 +13,4 @@ class MyCampusSection {
|
|
|
15
13
|
return this.data.name;
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
|
-
exports.default = MyCampusSection;
|
|
19
16
|
//# sourceMappingURL=campus-section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campus-section.js","sourceRoot":"","sources":["../src/campus-section.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"campus-section.js","sourceRoot":"","sources":["../src/campus-section.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,OAAO,eAAe;IAIhC,YAAY,IAAoC,EAAE,UAA8B;QAC5E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;CACJ"}
|
package/dist/campus.d.ts
CHANGED
package/dist/campus.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,20 +7,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
16
|
-
const campus_course_1 = __importDefault(require("./campus-course"));
|
|
17
|
-
class MyCampus {
|
|
10
|
+
import puppeteer from 'puppeteer';
|
|
11
|
+
import MyCampusCourse from './campus-course.js';
|
|
12
|
+
export default class MyCampus {
|
|
18
13
|
constructor() {
|
|
19
14
|
this.screenshotTime = new Date().getTime();
|
|
20
15
|
this.screenshotIndex = 0;
|
|
21
16
|
}
|
|
22
17
|
start(username, password) {
|
|
23
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
this.browser = yield
|
|
19
|
+
this.browser = yield puppeteer.launch();
|
|
25
20
|
this.page = yield this.browser.newPage();
|
|
26
21
|
yield this.page.goto('https://mycampus.iubh.de/my/');
|
|
27
22
|
const $usernameInput = yield this.page.waitForSelector('#username');
|
|
@@ -90,7 +85,7 @@ class MyCampus {
|
|
|
90
85
|
return data;
|
|
91
86
|
}));
|
|
92
87
|
return courses.map(course => {
|
|
93
|
-
return new
|
|
88
|
+
return new MyCampusCourse(this, {
|
|
94
89
|
id: course.id,
|
|
95
90
|
name: course.name || undefined,
|
|
96
91
|
current: course.id ? activeCourses.includes(course.id) : false,
|
|
@@ -106,5 +101,4 @@ class MyCampus {
|
|
|
106
101
|
});
|
|
107
102
|
}
|
|
108
103
|
}
|
|
109
|
-
exports.default = MyCampus;
|
|
110
104
|
//# sourceMappingURL=campus.js.map
|
package/dist/campus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campus.js","sourceRoot":"","sources":["../src/campus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"campus.js","sourceRoot":"","sources":["../src/campus.ts"],"names":[],"mappings":"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"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MyCampusCourseStatus } from './types';
|
|
2
|
-
import MyCampusActivity from './campus-activity';
|
|
1
|
+
import { MyCampusCourseStatus } from './types.js';
|
|
2
|
+
import MyCampusActivity from './campus-activity.js';
|
|
3
3
|
export interface DatabaseActivityEntry {
|
|
4
4
|
id: string;
|
|
5
5
|
fingerprint: string | null;
|
package/dist/database.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,26 +7,25 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class Database {
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync, createReadStream } from 'fs';
|
|
11
|
+
import { mkdir, readdir, readFile, writeFile } from 'fs/promises';
|
|
12
|
+
import { createHash } from 'crypto';
|
|
13
|
+
import { join, dirname, extname, basename, resolve, relative } from 'path';
|
|
14
|
+
import { MyCampusCourseStatus } from './types.js';
|
|
15
|
+
export default class Database {
|
|
18
16
|
constructor(cwd) {
|
|
19
17
|
this.cwd = cwd;
|
|
20
|
-
if (!
|
|
18
|
+
if (!existsSync(cwd)) {
|
|
21
19
|
throw new Error(`Unable to load database: Working directory (${cwd}) does not exist!`);
|
|
22
20
|
}
|
|
23
21
|
this.paths = {
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
22
|
+
[MyCampusCourseStatus.ACTIVE]: this.cwd,
|
|
23
|
+
[MyCampusCourseStatus.INFO]: join(this.cwd, 'Infos & Organisatorisches'),
|
|
24
|
+
[MyCampusCourseStatus.COMPLETED]: join(this.cwd, 'Abgeschlossene Module')
|
|
27
25
|
};
|
|
28
|
-
this.path =
|
|
26
|
+
this.path = join(cwd, '.iubh-campus-sync.db');
|
|
29
27
|
this.activities = [];
|
|
30
|
-
if (
|
|
28
|
+
if (existsSync(this.path)) {
|
|
31
29
|
this.load();
|
|
32
30
|
}
|
|
33
31
|
else {
|
|
@@ -35,7 +33,7 @@ class Database {
|
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
load() {
|
|
38
|
-
const json = JSON.parse(
|
|
36
|
+
const json = JSON.parse(readFileSync(this.path, { encoding: 'utf8' }));
|
|
39
37
|
if (json.version !== 1) {
|
|
40
38
|
throw new Error('Invalid db version: unable to continue.');
|
|
41
39
|
}
|
|
@@ -44,7 +42,7 @@ class Database {
|
|
|
44
42
|
id: activity[0],
|
|
45
43
|
fingerprint: activity[1],
|
|
46
44
|
hash: activity[2],
|
|
47
|
-
path:
|
|
45
|
+
path: resolve(this.cwd, activity[3])
|
|
48
46
|
}));
|
|
49
47
|
}
|
|
50
48
|
}
|
|
@@ -55,17 +53,17 @@ class Database {
|
|
|
55
53
|
activitiy.id,
|
|
56
54
|
activitiy.fingerprint,
|
|
57
55
|
activitiy.hash,
|
|
58
|
-
|
|
56
|
+
relative(this.cwd, activitiy.path)
|
|
59
57
|
]))
|
|
60
58
|
};
|
|
61
59
|
}
|
|
62
60
|
save() {
|
|
63
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
yield
|
|
62
|
+
yield writeFile(this.path, JSON.stringify(this.toJSON(), null, ' '));
|
|
65
63
|
});
|
|
66
64
|
}
|
|
67
65
|
saveSync() {
|
|
68
|
-
|
|
66
|
+
writeFileSync(this.path, JSON.stringify(this.toJSON(), null, ' '));
|
|
69
67
|
}
|
|
70
68
|
findOrCreateFolder(id, name, folder = this.cwd) {
|
|
71
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -73,13 +71,13 @@ class Database {
|
|
|
73
71
|
if (existingFolder) {
|
|
74
72
|
return existingFolder;
|
|
75
73
|
}
|
|
76
|
-
if (!
|
|
77
|
-
yield
|
|
74
|
+
if (!existsSync(folder)) {
|
|
75
|
+
yield mkdir(folder);
|
|
78
76
|
}
|
|
79
|
-
const folderPath = yield this.getConflictFreeFileName(
|
|
80
|
-
yield
|
|
81
|
-
const idFilePath =
|
|
82
|
-
yield
|
|
77
|
+
const folderPath = yield this.getConflictFreeFileName(join(folder, name));
|
|
78
|
+
yield mkdir(folderPath);
|
|
79
|
+
const idFilePath = join(folderPath, '.iubh-campus-sync-folder');
|
|
80
|
+
yield writeFile(idFilePath, id + '\n');
|
|
83
81
|
return folderPath;
|
|
84
82
|
});
|
|
85
83
|
}
|
|
@@ -89,19 +87,19 @@ class Database {
|
|
|
89
87
|
const results = yield Promise.all(Object.values(this.paths).map(path => this.findFolder(id, path)));
|
|
90
88
|
return results.find(Boolean) || null;
|
|
91
89
|
}
|
|
92
|
-
if (!
|
|
90
|
+
if (!existsSync(folder)) {
|
|
93
91
|
return null;
|
|
94
92
|
}
|
|
95
|
-
const files = yield
|
|
93
|
+
const files = yield readdir(folder, { withFileTypes: true });
|
|
96
94
|
const results = yield Promise.all(files.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
97
95
|
if (file.isDirectory()) {
|
|
98
|
-
return this.findFolder(id,
|
|
96
|
+
return this.findFolder(id, join(folder, file.name));
|
|
99
97
|
}
|
|
100
98
|
if (file.name !== '.iubh-campus-sync-folder' || !file.isFile()) {
|
|
101
99
|
return null;
|
|
102
100
|
}
|
|
103
|
-
const path =
|
|
104
|
-
const content = yield
|
|
101
|
+
const path = join(folder, file.name);
|
|
102
|
+
const content = yield readFile(path, { encoding: 'utf8' });
|
|
105
103
|
const savedId = content.split('\n')[0].trim();
|
|
106
104
|
if (savedId === id) {
|
|
107
105
|
return folder;
|
|
@@ -133,7 +131,7 @@ class Database {
|
|
|
133
131
|
// file exists?
|
|
134
132
|
let foundByHash = false;
|
|
135
133
|
let filePath = entry.path;
|
|
136
|
-
if (!filePath || !
|
|
134
|
+
if (!filePath || !existsSync(filePath)) {
|
|
137
135
|
// no? is the file somewhere else?
|
|
138
136
|
filePath = yield this.searchFileByHash(entry.hash);
|
|
139
137
|
foundByHash = true;
|
|
@@ -174,13 +172,13 @@ class Database {
|
|
|
174
172
|
}
|
|
175
173
|
return null;
|
|
176
174
|
}
|
|
177
|
-
if (!
|
|
175
|
+
if (!existsSync(path)) {
|
|
178
176
|
return null;
|
|
179
177
|
}
|
|
180
|
-
const files = yield
|
|
178
|
+
const files = yield readdir(path, { withFileTypes: true });
|
|
181
179
|
for (const i in files) {
|
|
182
180
|
const file = files[i];
|
|
183
|
-
const filePath =
|
|
181
|
+
const filePath = join(path, file.name);
|
|
184
182
|
if (file.isDirectory()) {
|
|
185
183
|
const r = yield this.searchFileByHash(hash, filePath);
|
|
186
184
|
if (r) {
|
|
@@ -200,9 +198,9 @@ class Database {
|
|
|
200
198
|
}
|
|
201
199
|
getHashByFile(path) {
|
|
202
200
|
return __awaiter(this, void 0, void 0, function* () {
|
|
203
|
-
const hash =
|
|
201
|
+
const hash = createHash('sha1');
|
|
204
202
|
hash.setEncoding('hex');
|
|
205
|
-
const fd =
|
|
203
|
+
const fd = createReadStream(path);
|
|
206
204
|
const promise = new Promise(resolve => {
|
|
207
205
|
fd.on('end', () => {
|
|
208
206
|
hash.end();
|
|
@@ -243,14 +241,13 @@ class Database {
|
|
|
243
241
|
}
|
|
244
242
|
static getConflictFreeFileName(filePath) {
|
|
245
243
|
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
-
const extension =
|
|
244
|
+
const extension = extname(filePath);
|
|
247
245
|
let newPath = filePath;
|
|
248
|
-
for (let i = 1;
|
|
249
|
-
newPath =
|
|
246
|
+
for (let i = 1; existsSync(newPath); i++) {
|
|
247
|
+
newPath = join(dirname(filePath), basename(filePath, extension) + '-' + i + extension);
|
|
250
248
|
}
|
|
251
249
|
return newPath;
|
|
252
250
|
});
|
|
253
251
|
}
|
|
254
252
|
}
|
|
255
|
-
exports.default = Database;
|
|
256
253
|
//# sourceMappingURL=database.js.map
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-campus.d.ts
CHANGED
package/dist/sync-campus.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,19 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const campus_1 = __importDefault(require("./campus"));
|
|
16
|
-
const path_1 = require("path");
|
|
17
|
-
const promises_1 = require("fs/promises");
|
|
18
|
-
class SyncCampus {
|
|
10
|
+
import MyCampus from './campus.js';
|
|
11
|
+
import { join, dirname, basename, extname } from 'path';
|
|
12
|
+
import { rename } from 'fs/promises';
|
|
13
|
+
export default class SyncCampus {
|
|
19
14
|
constructor(options) {
|
|
20
15
|
this.username = options.username;
|
|
21
16
|
this.password = options.password;
|
|
22
17
|
this.database = options.database;
|
|
23
|
-
this.myCampus = new
|
|
18
|
+
this.myCampus = new MyCampus();
|
|
24
19
|
}
|
|
25
20
|
static run(options) {
|
|
26
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -94,20 +89,20 @@ class SyncCampus {
|
|
|
94
89
|
}
|
|
95
90
|
const niceFileName = activity.name
|
|
96
91
|
.replace(/[^a-z0-9-_äüöß.a ()\[]/gi, '_')
|
|
97
|
-
.replace(/"/g, '') +
|
|
98
|
-
const niceFilePath = yield this.database.getConflictFreeFileName(
|
|
99
|
-
console.log(`> Download of ${
|
|
92
|
+
.replace(/"/g, '') + extname(originalFilePath);
|
|
93
|
+
const niceFilePath = yield this.database.getConflictFreeFileName(join(folder, niceFileName));
|
|
94
|
+
console.log(`> Download of ${basename(originalFilePath)} complete`);
|
|
100
95
|
console.log(`> Rename file to ${niceFileName}`);
|
|
101
|
-
yield
|
|
96
|
+
yield rename(originalFilePath, niceFilePath);
|
|
102
97
|
yield this.database.updateLocalActivityFile(activity, niceFilePath);
|
|
103
98
|
console.log('> Done!\n');
|
|
104
99
|
}
|
|
105
100
|
else if (activityInfo.changedOnRemote && activityInfo.changedLocally && activityInfo.filePath) {
|
|
106
101
|
console.log(`${course.name || course.id} / ${section.name || section.id} / ${activity.name || activity.id}`);
|
|
107
102
|
console.log('> File changed on MyCampus and locally, rename local one and download update…');
|
|
108
|
-
const fileExt =
|
|
109
|
-
const newNameForLocalFile = yield this.database.getConflictFreeFileName(
|
|
110
|
-
yield
|
|
103
|
+
const fileExt = extname(activityInfo.filePath);
|
|
104
|
+
const newNameForLocalFile = yield this.database.getConflictFreeFileName(join(dirname(activityInfo.filePath), basename(activityInfo.filePath, fileExt) + '.local' + fileExt));
|
|
105
|
+
yield rename(activityInfo.filePath, newNameForLocalFile);
|
|
111
106
|
console.log('> File renamed to', newNameForLocalFile);
|
|
112
107
|
const filePath = yield activity.download(folder);
|
|
113
108
|
yield this.database.updateLocalActivityFile(activity, filePath);
|
|
@@ -124,5 +119,4 @@ class SyncCampus {
|
|
|
124
119
|
});
|
|
125
120
|
}
|
|
126
121
|
}
|
|
127
|
-
exports.default = SyncCampus;
|
|
128
122
|
//# sourceMappingURL=sync-campus.js.map
|
package/dist/sync-campus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-campus.js","sourceRoot":"","sources":["../src/sync-campus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-campus.js","sourceRoot":"","sources":["../src/sync-campus.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.js
CHANGED
|
@@ -8,15 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const database_1 = __importDefault(require("./database"));
|
|
16
|
-
const sync_campus_1 = __importDefault(require("./sync-campus"));
|
|
11
|
+
import Database from './database.js';
|
|
12
|
+
import SyncCampus from './sync-campus.js';
|
|
17
13
|
class Sync {
|
|
18
14
|
constructor(options) {
|
|
19
|
-
this.database = new
|
|
15
|
+
this.database = new Database(options.cwd);
|
|
20
16
|
this.options = options;
|
|
21
17
|
if (!this.options.username || !this.options.password) {
|
|
22
18
|
throw new Error('Username or password empty, please check environment variables.');
|
|
@@ -34,7 +30,7 @@ class Sync {
|
|
|
34
30
|
}
|
|
35
31
|
run() {
|
|
36
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
yield
|
|
33
|
+
yield SyncCampus.run({
|
|
38
34
|
username: this.options.username,
|
|
39
35
|
password: this.options.password,
|
|
40
36
|
database: this.database
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;AAGb,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,IAAI;IAcN,YAAY,OAAoB;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACtF;IACL,CAAC;IApBD,MAAM,CAAO,GAAG;;YACZ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;gBAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;gBACzC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;aAC5C,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;KAAA;IAcK,GAAG;;YACL,MAAM,UAAU,CAAC,GAAG,CAAC;gBACjB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAED,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MyCampusCourseStatus = void 0;
|
|
4
|
-
var MyCampusCourseStatus;
|
|
1
|
+
export var MyCampusCourseStatus;
|
|
5
2
|
(function (MyCampusCourseStatus) {
|
|
6
3
|
MyCampusCourseStatus[MyCampusCourseStatus["ACTIVE"] = 0] = "ACTIVE";
|
|
7
4
|
MyCampusCourseStatus[MyCampusCourseStatus["COMPLETED"] = 1] = "COMPLETED";
|
|
8
5
|
MyCampusCourseStatus[MyCampusCourseStatus["INFO"] = 2] = "INFO";
|
|
9
|
-
})(MyCampusCourseStatus
|
|
6
|
+
})(MyCampusCourseStatus || (MyCampusCourseStatus = {}));
|
|
10
7
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,mEAAM,CAAA;IACN,yEAAS,CAAA;IACT,+DAAI,CAAA;AACR,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}
|
package/package.json
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"url": "https://github.com/sebbo2002/iubh-campus-sync/issues"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@types/node-fetch": "^2.6.
|
|
11
|
+
"@types/node-fetch": "^2.6.2",
|
|
12
12
|
"cheerio": "^1.0.0-rc.10",
|
|
13
13
|
"es-cookie": "^1.3.2",
|
|
14
14
|
"node-fetch": "^2.6.7",
|
|
15
|
-
"puppeteer": "^14.
|
|
15
|
+
"puppeteer": "^14.4.1"
|
|
16
16
|
},
|
|
17
17
|
"description": "Syncs data between a local folder and IUBH's MyCampus",
|
|
18
18
|
"devDependencies": {
|
|
@@ -26,8 +26,9 @@
|
|
|
26
26
|
"@types/node": "^17.0.42",
|
|
27
27
|
"@typescript-eslint/eslint-plugin": "^5.27.1",
|
|
28
28
|
"@typescript-eslint/parser": "^5.27.1",
|
|
29
|
-
"eslint": "^8.
|
|
29
|
+
"eslint": "^8.18.0",
|
|
30
30
|
"eslint-plugin-jsonc": "^2.3.0",
|
|
31
|
+
"esm": "^3.2.25",
|
|
31
32
|
"license-checker": "^25.0.1",
|
|
32
33
|
"mocha": "^10.0.0",
|
|
33
34
|
"mochawesome": "^7.1.3",
|
|
@@ -36,11 +37,12 @@
|
|
|
36
37
|
"source-map-support": "^0.5.21",
|
|
37
38
|
"ts-node": "^10.8.1",
|
|
38
39
|
"typedoc": "^0.22.17",
|
|
39
|
-
"typescript": "^4.7.
|
|
40
|
+
"typescript": "^4.7.4"
|
|
40
41
|
},
|
|
41
42
|
"engines": {
|
|
42
|
-
"node": "
|
|
43
|
+
"node": "^12.20.0 || >=14.13.1"
|
|
43
44
|
},
|
|
45
|
+
"exports": "./dist/index.js",
|
|
44
46
|
"files": [
|
|
45
47
|
"/dist"
|
|
46
48
|
],
|
|
@@ -61,5 +63,6 @@
|
|
|
61
63
|
"start": "node ./dist/sync.js",
|
|
62
64
|
"test": "mocha"
|
|
63
65
|
},
|
|
64
|
-
"
|
|
66
|
+
"type": "module",
|
|
67
|
+
"version": "3.0.0-develop.1"
|
|
65
68
|
}
|