@czlonkowski/n8n-nodes-librus 0.1.5 → 0.3.0
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/CHANGELOG.md +32 -0
- package/README.md +19 -1
- package/dist/nodes/Librus/Librus.node.js +2 -1
- package/dist/nodes/Librus/Librus.node.js.map +1 -1
- package/dist/nodes/Librus/LibrusClient.d.ts +29 -9
- package/dist/nodes/Librus/LibrusClient.js +246 -106
- package/dist/nodes/Librus/LibrusClient.js.map +1 -1
- package/dist/nodes/Librus/LibrusTrigger.node.js +135 -16
- package/dist/nodes/Librus/LibrusTrigger.node.js.map +1 -1
- package/dist/nodes/Librus/calendarState.d.ts +57 -0
- package/dist/nodes/Librus/calendarState.js +289 -0
- package/dist/nodes/Librus/calendarState.js.map +1 -0
- package/dist/nodes/Librus/errors.d.ts +9 -0
- package/dist/nodes/Librus/errors.js +45 -0
- package/dist/nodes/Librus/errors.js.map +1 -0
- package/dist/nodes/Librus/sessionCache.d.ts +25 -0
- package/dist/nodes/Librus/sessionCache.js +51 -0
- package/dist/nodes/Librus/sessionCache.js.map +1 -0
- package/dist/nodes/Librus/terminarz.d.ts +26 -0
- package/dist/nodes/Librus/terminarz.js +151 -0
- package/dist/nodes/Librus/terminarz.js.map +1 -0
- package/docs/architecture.md +56 -1
- package/docs/live-verification.md +58 -0
- package/package.json +3 -3
|
@@ -1,42 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LibrusClient = exports.LibrusError = void 0;
|
|
4
|
-
exports.safeError = safeError;
|
|
3
|
+
exports.LibrusClient = exports.safeError = exports.LibrusError = void 0;
|
|
5
4
|
const tough_cookie_1 = require("tough-cookie");
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
AUTH_FAILED: 'Librus odrzucił logowanie. Sprawdź login i hasło na stronie Librusa.',
|
|
11
|
-
ACTION_REQUIRED: 'Zaloguj się na stronie Librusa i uzupełnij wymagane potwierdzenia konta.',
|
|
12
|
-
SESSION_EXPIRED: 'Sesja Librusa wygasła podczas zapytania.',
|
|
13
|
-
RATE_LIMITED: 'Librus ogranicza liczbę zapytań. Odczekaj przed kolejną próbą.',
|
|
14
|
-
ACCESS_DENIED: 'Librus odmówił dostępu. Sprawdź uprawnienia konta na stronie Librusa.',
|
|
15
|
-
SERVICE_ERROR: 'Librus jest niedostępny lub zwrócił nieoczekiwany status HTTP.',
|
|
16
|
-
SCAN_INCOMPLETE: 'Nie udało się sprawdzić całej skrzynki w wyznaczonych granicach. Zwiększ Maksymalną liczbę stron lub ogranicz liczbę pobieranych wiadomości.',
|
|
17
|
-
FULL_CONTENT_LIMIT: 'W jednym wykonaniu można pobrać pełną treść maksymalnie 50 wiadomości. Wyłącz Pobierz wszystkie i ustaw Limit na 50 lub mniej.',
|
|
18
|
-
INVALID_OPTIONS: 'Nieprawidłowe dane logowania do Librusa lub ustawienia pobierania wiadomości.',
|
|
19
|
-
TRIGGER_STATE_INVALID: 'Zapisana historia wykrytych wiadomości jest nieprawidłowa. Utwórz ponownie węzeł Nowa wiadomość, aby zapamiętać aktualną skrzynkę.',
|
|
20
|
-
TRIGGER_STATE_LIMIT: 'Osiągnięto limit historii 10 000 wiadomości. Utwórz ponownie węzeł Nowa wiadomość, aby zapamiętać aktualną skrzynkę.',
|
|
21
|
-
};
|
|
22
|
-
class LibrusError extends Error {
|
|
23
|
-
constructor(code, stage, destination, rejection) {
|
|
24
|
-
var _a;
|
|
25
|
-
super(((_a = messages[code]) !== null && _a !== void 0 ? _a : messages.PROTOCOL_ERROR) +
|
|
26
|
-
(stage ? ` [Etap: ${stage}; strona: ${destination}]` : '') +
|
|
27
|
-
(rejection ? ` [Odrzucone przekierowanie: ${rejection}]` : ''));
|
|
28
|
-
this.code = code;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.LibrusError = LibrusError;
|
|
32
|
-
function safeError(error) {
|
|
33
|
-
return error instanceof LibrusError ? error : new LibrusError('PROTOCOL_ERROR');
|
|
34
|
-
}
|
|
5
|
+
const errors_1 = require("./errors");
|
|
6
|
+
Object.defineProperty(exports, "LibrusError", { enumerable: true, get: function () { return errors_1.LibrusError; } });
|
|
7
|
+
Object.defineProperty(exports, "safeError", { enumerable: true, get: function () { return errors_1.safeError; } });
|
|
8
|
+
const terminarz_1 = require("./terminarz");
|
|
35
9
|
function protocolError(check, value) {
|
|
36
|
-
|
|
37
|
-
const error = new LibrusError('PROTOCOL_ERROR');
|
|
38
|
-
error.message += ` [Walidacja: ${check}; otrzymany typ: ${type}]`;
|
|
39
|
-
return error;
|
|
10
|
+
return (0, errors_1.protocolError)(check, value);
|
|
40
11
|
}
|
|
41
12
|
const allowedHosts = new Set([
|
|
42
13
|
'portal.librus.pl',
|
|
@@ -44,13 +15,18 @@ const allowedHosts = new Set([
|
|
|
44
15
|
'api.librus.pl',
|
|
45
16
|
'wiadomosci.librus.pl',
|
|
46
17
|
]);
|
|
18
|
+
const allowedPostUrls = new Set(['https://synergia.librus.pl/terminarz']);
|
|
19
|
+
const MAX_DETAILS = 50;
|
|
20
|
+
const MAX_REQUESTS = 100;
|
|
21
|
+
const MAX_REDIRECTS = 10;
|
|
22
|
+
const DETAIL_HEADROOM = MAX_REDIRECTS + 1;
|
|
47
23
|
function checkedUrl(value, base) {
|
|
48
24
|
let url;
|
|
49
25
|
try {
|
|
50
26
|
url = new URL(value, base);
|
|
51
27
|
}
|
|
52
28
|
catch {
|
|
53
|
-
throw new LibrusError('UNSAFE_URL');
|
|
29
|
+
throw new errors_1.LibrusError('UNSAFE_URL');
|
|
54
30
|
}
|
|
55
31
|
if (url.protocol !== 'https:' ||
|
|
56
32
|
url.port ||
|
|
@@ -64,7 +40,7 @@ function checkedUrl(value, base) {
|
|
|
64
40
|
: url.port
|
|
65
41
|
? 'niestandardowy port'
|
|
66
42
|
: 'nierozpoznana domena';
|
|
67
|
-
throw new LibrusError('UNSAFE_URL', undefined, undefined, rejection);
|
|
43
|
+
throw new errors_1.LibrusError('UNSAFE_URL', undefined, undefined, rejection);
|
|
68
44
|
}
|
|
69
45
|
return url;
|
|
70
46
|
}
|
|
@@ -74,7 +50,7 @@ function checkedRedirect(value, base) {
|
|
|
74
50
|
url = new URL(value, base);
|
|
75
51
|
}
|
|
76
52
|
catch {
|
|
77
|
-
throw new LibrusError('UNSAFE_URL');
|
|
53
|
+
throw new errors_1.LibrusError('UNSAFE_URL');
|
|
78
54
|
}
|
|
79
55
|
if (url.protocol === 'http:' &&
|
|
80
56
|
allowedHosts.has(url.hostname) &&
|
|
@@ -84,6 +60,18 @@ function checkedRedirect(value, base) {
|
|
|
84
60
|
url.protocol = 'https:';
|
|
85
61
|
return checkedUrl(url.href);
|
|
86
62
|
}
|
|
63
|
+
function transportCause(cause) {
|
|
64
|
+
const nested = object(cause) ? cause.cause : undefined;
|
|
65
|
+
for (const candidate of [cause, nested]) {
|
|
66
|
+
const code = object(candidate) ? candidate.code : undefined;
|
|
67
|
+
if (typeof code === 'string' && /^[A-Z][A-Z0-9_]{1,40}$/.test(code))
|
|
68
|
+
return code;
|
|
69
|
+
}
|
|
70
|
+
return cause instanceof Error && /timeout/i.test(cause.message) ? 'TIMEOUT' : 'nieznana';
|
|
71
|
+
}
|
|
72
|
+
function minutes(ms) {
|
|
73
|
+
return Math.max(0, Math.round(ms / 60000));
|
|
74
|
+
}
|
|
87
75
|
function authUrl(url) {
|
|
88
76
|
return url.hostname === 'api.librus.pl' && /^\/OAuth\/Authorization(?:\/|$)/.test(url.pathname);
|
|
89
77
|
}
|
|
@@ -99,7 +87,7 @@ function actionRequired(stage, url) {
|
|
|
99
87
|
: url.hostname === 'wiadomosci.librus.pl'
|
|
100
88
|
? 'serwis wiadomości'
|
|
101
89
|
: 'inna dozwolona strona';
|
|
102
|
-
return new LibrusError('ACTION_REQUIRED', stage, destination);
|
|
90
|
+
return new errors_1.LibrusError('ACTION_REQUIRED', stage, destination);
|
|
103
91
|
}
|
|
104
92
|
function object(value) {
|
|
105
93
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -181,20 +169,84 @@ function parseMessage(value, includeContent) {
|
|
|
181
169
|
return result;
|
|
182
170
|
}
|
|
183
171
|
class LibrusClient {
|
|
184
|
-
constructor(transport, login) {
|
|
172
|
+
constructor(transport, login, options = {}) {
|
|
185
173
|
this.transport = transport;
|
|
186
174
|
this.login = login;
|
|
175
|
+
this.options = options;
|
|
187
176
|
this.jar = new tough_cookie_1.CookieJar();
|
|
188
177
|
this.deadline = 0;
|
|
189
178
|
this.requests = 0;
|
|
179
|
+
this.budgetCode = 'SCAN_INCOMPLETE';
|
|
180
|
+
this.sessionStart = 0;
|
|
181
|
+
}
|
|
182
|
+
note(message) {
|
|
183
|
+
var _a, _b;
|
|
184
|
+
(_b = (_a = this.options).log) === null || _b === void 0 ? void 0 : _b.call(_a, `Librus: ${message}`);
|
|
185
|
+
}
|
|
186
|
+
key(sessions) {
|
|
187
|
+
var _a;
|
|
188
|
+
(_a = this.cacheKey) !== null && _a !== void 0 ? _a : (this.cacheKey = sessions.key(this.login.username, this.login.password));
|
|
189
|
+
return this.cacheKey;
|
|
190
|
+
}
|
|
191
|
+
restoreSession() {
|
|
192
|
+
const sessions = this.options.sessions;
|
|
193
|
+
if (!sessions)
|
|
194
|
+
return false;
|
|
195
|
+
const stored = sessions.lookup(this.key(sessions));
|
|
196
|
+
if (stored.status === 'expired')
|
|
197
|
+
this.note(`zapisana sesja osiągnęła limit wieku (${minutes(stored.ageMs)} min)`);
|
|
198
|
+
if (stored.status !== 'ok')
|
|
199
|
+
return false;
|
|
200
|
+
this.jar = stored.jar;
|
|
201
|
+
this.sessionStart = stored.establishedAt;
|
|
202
|
+
this.note(`używam zapisanej sesji (wiek: ${minutes(stored.ageMs)} min)`);
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
forgetSession() {
|
|
206
|
+
const sessions = this.options.sessions;
|
|
207
|
+
if (sessions)
|
|
208
|
+
sessions.forget(this.key(sessions));
|
|
209
|
+
}
|
|
210
|
+
async withSession(budget, run) {
|
|
211
|
+
const operation = async () => {
|
|
212
|
+
this.budgetCode = budget;
|
|
213
|
+
this.deadline = Date.now() + 120000;
|
|
214
|
+
this.requests = 0;
|
|
215
|
+
let reused = this.restoreSession();
|
|
216
|
+
if (!reused)
|
|
217
|
+
await this.authenticate('brak zapisanej sesji');
|
|
218
|
+
for (let attempt = 0;; attempt++) {
|
|
219
|
+
try {
|
|
220
|
+
return await run();
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
this.forgetSession();
|
|
224
|
+
const code = error instanceof errors_1.LibrusError ? error.code : undefined;
|
|
225
|
+
const stale = code === 'SESSION_EXPIRED' ||
|
|
226
|
+
(reused && (code === 'PROTOCOL_ERROR' || code === 'ACCESS_DENIED'));
|
|
227
|
+
if (!stale || attempt === 1)
|
|
228
|
+
throw error;
|
|
229
|
+
const reason = reused
|
|
230
|
+
? `zapisana sesja przestała działać po ${minutes(Date.now() - this.sessionStart)} min (${code})`
|
|
231
|
+
: 'sesja wygasła w trakcie zapytania';
|
|
232
|
+
reused = false;
|
|
233
|
+
this.requests = 0;
|
|
234
|
+
await this.authenticate(reason);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
const sessions = this.options.sessions;
|
|
239
|
+
return sessions ? sessions.exclusive(this.key(sessions), operation) : operation();
|
|
190
240
|
}
|
|
191
241
|
async request(value, body) {
|
|
192
242
|
let url = checkedUrl(value);
|
|
193
|
-
for (let hop = 0; hop <=
|
|
194
|
-
if (++this.requests >
|
|
195
|
-
throw new LibrusError(
|
|
196
|
-
if (body !== undefined &&
|
|
197
|
-
|
|
243
|
+
for (let hop = 0; hop <= MAX_REDIRECTS; hop++) {
|
|
244
|
+
if (++this.requests > MAX_REQUESTS || Date.now() >= this.deadline)
|
|
245
|
+
throw new errors_1.LibrusError(this.budgetCode);
|
|
246
|
+
if (body !== undefined &&
|
|
247
|
+
!authUrl(url) &&
|
|
248
|
+
!allowedPostUrls.has(`${url.origin}${url.pathname}`))
|
|
249
|
+
throw new errors_1.LibrusError('UNSAFE_URL');
|
|
198
250
|
const headers = {
|
|
199
251
|
Accept: 'application/json, text/html;q=0.9',
|
|
200
252
|
'User-Agent': 'n8n-nodes-librus/0.1',
|
|
@@ -206,7 +258,7 @@ class LibrusClient {
|
|
|
206
258
|
headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
207
259
|
const remaining = this.deadline - Date.now();
|
|
208
260
|
if (remaining <= 0)
|
|
209
|
-
throw new LibrusError(
|
|
261
|
+
throw new errors_1.LibrusError(this.budgetCode);
|
|
210
262
|
let response;
|
|
211
263
|
try {
|
|
212
264
|
response = await this.transport({
|
|
@@ -217,8 +269,10 @@ class LibrusClient {
|
|
|
217
269
|
timeout: Math.max(1, Math.min(15000, remaining)),
|
|
218
270
|
});
|
|
219
271
|
}
|
|
220
|
-
catch {
|
|
221
|
-
|
|
272
|
+
catch (cause) {
|
|
273
|
+
const error = new errors_1.LibrusError('TRANSPORT_ERROR');
|
|
274
|
+
error.message += ` [Przyczyna: ${transportCause(cause)}; host: ${url.hostname}]`;
|
|
275
|
+
throw error;
|
|
222
276
|
}
|
|
223
277
|
if (typeof response.body !== 'string')
|
|
224
278
|
throw protocolError('typ treści odpowiedzi HTTP', response.body);
|
|
@@ -239,8 +293,21 @@ class LibrusClient {
|
|
|
239
293
|
}
|
|
240
294
|
}
|
|
241
295
|
if ([301, 302, 303, 307, 308].includes(response.statusCode)) {
|
|
242
|
-
if (body !== undefined)
|
|
296
|
+
if (body !== undefined) {
|
|
297
|
+
const location = normalized.location;
|
|
298
|
+
if (!authUrl(url) && typeof location === 'string') {
|
|
299
|
+
let target;
|
|
300
|
+
try {
|
|
301
|
+
target = checkedRedirect(location, url.href);
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
target = undefined;
|
|
305
|
+
}
|
|
306
|
+
if (target && (authUrl(target) || /^\/loguj(?:\/|$)/.test(target.pathname)))
|
|
307
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
308
|
+
}
|
|
243
309
|
throw protocolError('przekierowanie POST');
|
|
310
|
+
}
|
|
244
311
|
const location = normalized.location;
|
|
245
312
|
if (typeof location !== 'string')
|
|
246
313
|
throw protocolError('adres przekierowania', location);
|
|
@@ -248,23 +315,27 @@ class LibrusClient {
|
|
|
248
315
|
continue;
|
|
249
316
|
}
|
|
250
317
|
if (response.statusCode === 429)
|
|
251
|
-
throw new LibrusError('RATE_LIMITED');
|
|
318
|
+
throw new errors_1.LibrusError('RATE_LIMITED');
|
|
252
319
|
if (response.statusCode === 401)
|
|
253
|
-
throw new LibrusError('SESSION_EXPIRED');
|
|
320
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
254
321
|
if ((response.statusCode === 403 || response.statusCode === 200) &&
|
|
255
322
|
url.hostname === 'wiadomosci.librus.pl' &&
|
|
256
323
|
/^\/api\/inbox\/messages(?:\/[A-Za-z0-9_-]+)?$/.test(url.pathname) &&
|
|
257
324
|
isLoginForm(response.body))
|
|
258
|
-
throw new LibrusError('SESSION_EXPIRED');
|
|
325
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
259
326
|
if (response.statusCode === 403)
|
|
260
|
-
throw new LibrusError('ACCESS_DENIED');
|
|
261
|
-
if (response.statusCode < 200 || response.statusCode >= 300)
|
|
262
|
-
|
|
327
|
+
throw new errors_1.LibrusError('ACCESS_DENIED');
|
|
328
|
+
if (response.statusCode < 200 || response.statusCode >= 300) {
|
|
329
|
+
const error = new errors_1.LibrusError('SERVICE_ERROR');
|
|
330
|
+
error.status = response.statusCode;
|
|
331
|
+
throw error;
|
|
332
|
+
}
|
|
263
333
|
return { ...response, url };
|
|
264
334
|
}
|
|
265
335
|
throw protocolError('limit przekierowań');
|
|
266
336
|
}
|
|
267
|
-
async authenticate() {
|
|
337
|
+
async authenticate(reason) {
|
|
338
|
+
this.note(`nowe logowanie (${reason})`);
|
|
268
339
|
try {
|
|
269
340
|
this.jar = new tough_cookie_1.CookieJar();
|
|
270
341
|
const entry = await this.request('https://synergia.librus.pl/loguj/portalRodzina');
|
|
@@ -280,10 +351,10 @@ class LibrusClient {
|
|
|
280
351
|
throw actionRequired('przesłanie danych logowania', loginReply.url);
|
|
281
352
|
const reply = parseJson(loginReply.body);
|
|
282
353
|
if (!object(reply) || typeof reply.goTo !== 'string' || !reply.goTo)
|
|
283
|
-
throw new LibrusError('AUTH_FAILED');
|
|
354
|
+
throw new errors_1.LibrusError('AUTH_FAILED');
|
|
284
355
|
const continuation = checkedUrl(reply.goTo, 'https://api.librus.pl');
|
|
285
356
|
if (!authUrl(continuation))
|
|
286
|
-
throw new LibrusError('UNSAFE_URL');
|
|
357
|
+
throw new errors_1.LibrusError('UNSAFE_URL');
|
|
287
358
|
const authorized = await this.request(continuation.href);
|
|
288
359
|
if (authorized.url.hostname !== 'synergia.librus.pl' ||
|
|
289
360
|
(/\/loguj(?:\/|$)/.test(authorized.url.pathname) &&
|
|
@@ -294,9 +365,12 @@ class LibrusClient {
|
|
|
294
365
|
const inbox = await this.request('https://synergia.librus.pl/wiadomosci3');
|
|
295
366
|
if (authUrl(inbox.url) || /\/loguj(?:\/|$)/.test(inbox.url.pathname))
|
|
296
367
|
throw actionRequired('otwarcie skrzynki', inbox.url);
|
|
368
|
+
const sessions = this.options.sessions;
|
|
369
|
+
this.sessionStart = sessions ? sessions.store(this.key(sessions), this.jar) : Date.now();
|
|
297
370
|
}
|
|
298
371
|
catch (error) {
|
|
299
|
-
|
|
372
|
+
this.forgetSession();
|
|
373
|
+
if (error instanceof errors_1.LibrusError && error.code === 'PROTOCOL_ERROR')
|
|
300
374
|
error.message += ' [Faza: logowanie]';
|
|
301
375
|
throw error;
|
|
302
376
|
}
|
|
@@ -315,67 +389,47 @@ class LibrusClient {
|
|
|
315
389
|
(options.contentSource !== undefined &&
|
|
316
390
|
options.contentSource !== 'preview' &&
|
|
317
391
|
options.contentSource !== 'full'))
|
|
318
|
-
throw new LibrusError('INVALID_OPTIONS');
|
|
319
|
-
this.deadline = Date.now() + 120000;
|
|
320
|
-
this.requests = 0;
|
|
321
|
-
await this.authenticate();
|
|
392
|
+
throw new errors_1.LibrusError('INVALID_OPTIONS');
|
|
322
393
|
let unreadSelection;
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
if (
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
message.contentSource = 'full';
|
|
334
|
-
}
|
|
394
|
+
return await this.withSession('SCAN_INCOMPLETE', async () => {
|
|
395
|
+
const result = unreadSelection !== null && unreadSelection !== void 0 ? unreadSelection : (await this.scan(options));
|
|
396
|
+
if (options.includeContent && options.contentSource === 'full') {
|
|
397
|
+
if (result.length > 50)
|
|
398
|
+
throw new errors_1.LibrusError('FULL_CONTENT_LIMIT');
|
|
399
|
+
if (options.readStatus === 'unread')
|
|
400
|
+
unreadSelection = result;
|
|
401
|
+
for (const message of result) {
|
|
402
|
+
message.content = await this.fullContent(message.messageId);
|
|
403
|
+
message.contentSource = 'full';
|
|
335
404
|
}
|
|
336
|
-
return result;
|
|
337
|
-
}
|
|
338
|
-
catch (error) {
|
|
339
|
-
if (!(error instanceof LibrusError) || error.code !== 'SESSION_EXPIRED' || attempt === 1)
|
|
340
|
-
throw error;
|
|
341
|
-
await this.authenticate();
|
|
342
405
|
}
|
|
343
|
-
|
|
344
|
-
|
|
406
|
+
return result;
|
|
407
|
+
});
|
|
345
408
|
}
|
|
346
409
|
async getMessageContent(messageId) {
|
|
347
410
|
if (!this.login.username ||
|
|
348
411
|
!this.login.password ||
|
|
349
412
|
typeof messageId !== 'string' ||
|
|
350
413
|
!/^[A-Za-z0-9_-]+$/.test(messageId))
|
|
351
|
-
throw new LibrusError('INVALID_OPTIONS');
|
|
352
|
-
this.
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
return { messageId, content: await this.fullContent(messageId), contentSource: 'full' };
|
|
358
|
-
}
|
|
359
|
-
catch (error) {
|
|
360
|
-
if (!(error instanceof LibrusError) || error.code !== 'SESSION_EXPIRED' || attempt === 1)
|
|
361
|
-
throw error;
|
|
362
|
-
await this.authenticate();
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
throw new LibrusError('SESSION_EXPIRED');
|
|
414
|
+
throw new errors_1.LibrusError('INVALID_OPTIONS');
|
|
415
|
+
return await this.withSession('SCAN_INCOMPLETE', async () => ({
|
|
416
|
+
messageId,
|
|
417
|
+
content: await this.fullContent(messageId),
|
|
418
|
+
contentSource: 'full',
|
|
419
|
+
}));
|
|
366
420
|
}
|
|
367
421
|
async fullContent(messageId) {
|
|
368
422
|
if (!/^[A-Za-z0-9_-]+$/.test(messageId))
|
|
369
|
-
throw new LibrusError('PROTOCOL_ERROR');
|
|
423
|
+
throw new errors_1.LibrusError('PROTOCOL_ERROR');
|
|
370
424
|
const path = `/api/inbox/messages/${encodeURIComponent(messageId)}`;
|
|
371
425
|
const response = await this.request(`https://wiadomosci.librus.pl${path}`);
|
|
372
426
|
if (authUrl(response.url) || /\/loguj(?:\/|$)/.test(response.url.pathname))
|
|
373
|
-
throw new LibrusError('SESSION_EXPIRED');
|
|
427
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
374
428
|
if (response.url.hostname !== 'wiadomosci.librus.pl' || response.url.pathname !== path)
|
|
375
|
-
throw new LibrusError('PROTOCOL_ERROR');
|
|
429
|
+
throw new errors_1.LibrusError('PROTOCOL_ERROR');
|
|
376
430
|
const payload = parseJson(response.body);
|
|
377
431
|
if (!object(payload) || !object(payload.data) || payload.data.messageId !== messageId)
|
|
378
|
-
throw new LibrusError('PROTOCOL_ERROR');
|
|
432
|
+
throw new errors_1.LibrusError('PROTOCOL_ERROR');
|
|
379
433
|
return decodeContent(payload.data.Message);
|
|
380
434
|
}
|
|
381
435
|
async scan(options) {
|
|
@@ -389,7 +443,7 @@ class LibrusClient {
|
|
|
389
443
|
try {
|
|
390
444
|
const response = await this.request(`https://wiadomosci.librus.pl/api/inbox/messages?page=${page}&limit=${pageSize}`);
|
|
391
445
|
if (authUrl(response.url) || /\/loguj(?:\/|$)/.test(response.url.pathname))
|
|
392
|
-
throw new LibrusError('SESSION_EXPIRED');
|
|
446
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
393
447
|
if (response.url.hostname !== 'wiadomosci.librus.pl' ||
|
|
394
448
|
response.url.pathname !== '/api/inbox/messages')
|
|
395
449
|
throw protocolError('adres skrzynki');
|
|
@@ -416,18 +470,104 @@ class LibrusClient {
|
|
|
416
470
|
if (payload.data.length === 0)
|
|
417
471
|
return [...found.values()];
|
|
418
472
|
if (scanned.size === before)
|
|
419
|
-
throw new LibrusError('SCAN_INCOMPLETE');
|
|
473
|
+
throw new errors_1.LibrusError('SCAN_INCOMPLETE');
|
|
420
474
|
if (payload.data.length < pageSize)
|
|
421
475
|
return [...found.values()];
|
|
422
476
|
}
|
|
423
477
|
catch (error) {
|
|
424
|
-
if (error instanceof LibrusError && error.code === 'PROTOCOL_ERROR') {
|
|
478
|
+
if (error instanceof errors_1.LibrusError && error.code === 'PROTOCOL_ERROR') {
|
|
425
479
|
error.message += ` [Strona skrzynki: ${page}; rozmiar strony: ${pageSize}${itemIndex === undefined ? '' : `; pozycja: ${itemIndex}`}]`;
|
|
426
480
|
}
|
|
427
481
|
throw error;
|
|
428
482
|
}
|
|
429
483
|
}
|
|
430
|
-
throw new LibrusError('SCAN_INCOMPLETE');
|
|
484
|
+
throw new errors_1.LibrusError('SCAN_INCOMPLETE');
|
|
485
|
+
}
|
|
486
|
+
async monthPage(year, month) {
|
|
487
|
+
const body = new URLSearchParams({
|
|
488
|
+
rok: String(year),
|
|
489
|
+
miesiac: String(month),
|
|
490
|
+
}).toString();
|
|
491
|
+
const response = await this.request('https://synergia.librus.pl/terminarz', body);
|
|
492
|
+
if (authUrl(response.url) ||
|
|
493
|
+
/\/loguj(?:\/|$)/.test(response.url.pathname) ||
|
|
494
|
+
isLoginForm(response.body))
|
|
495
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
496
|
+
if (response.url.hostname !== 'synergia.librus.pl' ||
|
|
497
|
+
!/^\/terminarz\/?$/.test(response.url.pathname))
|
|
498
|
+
throw protocolError('adres terminarza');
|
|
499
|
+
try {
|
|
500
|
+
return (0, terminarz_1.parseMonth)(response.body, year, month);
|
|
501
|
+
}
|
|
502
|
+
catch (error) {
|
|
503
|
+
if (error instanceof errors_1.LibrusError && error.code === 'PROTOCOL_ERROR')
|
|
504
|
+
error.message += ` [Miesiąc terminarza: ${year}-${String(month).padStart(2, '0')}]`;
|
|
505
|
+
throw error;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
async eventDetail(route, id) {
|
|
509
|
+
if ((route !== 'szczegoly' && route !== 'szczegoly_wolne') || !/^\d+$/.test(id))
|
|
510
|
+
throw new errors_1.LibrusError('PROTOCOL_ERROR');
|
|
511
|
+
const path = `/terminarz/${route}/${id}`;
|
|
512
|
+
let response;
|
|
513
|
+
try {
|
|
514
|
+
response = await this.request(`https://synergia.librus.pl${path}`);
|
|
515
|
+
}
|
|
516
|
+
catch (error) {
|
|
517
|
+
if (error instanceof errors_1.LibrusError && error.code === 'SERVICE_ERROR' && error.status === 404)
|
|
518
|
+
return null;
|
|
519
|
+
throw error;
|
|
520
|
+
}
|
|
521
|
+
if (authUrl(response.url) ||
|
|
522
|
+
/\/loguj(?:\/|$)/.test(response.url.pathname) ||
|
|
523
|
+
isLoginForm(response.body))
|
|
524
|
+
throw new errors_1.LibrusError('SESSION_EXPIRED');
|
|
525
|
+
if (response.url.hostname !== 'synergia.librus.pl' || response.url.pathname !== path)
|
|
526
|
+
throw protocolError('adres wydarzenia terminarza');
|
|
527
|
+
return (0, terminarz_1.parseEventDetail)(response.body);
|
|
528
|
+
}
|
|
529
|
+
async getCalendar(options, select) {
|
|
530
|
+
if (!this.login.username ||
|
|
531
|
+
!this.login.password ||
|
|
532
|
+
typeof select !== 'function' ||
|
|
533
|
+
!Array.isArray(options.months) ||
|
|
534
|
+
options.months.length < 1 ||
|
|
535
|
+
options.months.length > 7 ||
|
|
536
|
+
options.months.some((month) => !/^\d{4}-(?:0[1-9]|1[0-2])$/.test(month)))
|
|
537
|
+
throw new errors_1.LibrusError('CALENDAR_INVALID_OPTIONS');
|
|
538
|
+
return await this.withSession('CALENDAR_SCAN_INCOMPLETE', async () => {
|
|
539
|
+
const entries = [];
|
|
540
|
+
for (const month of options.months) {
|
|
541
|
+
const [year, index] = month.split('-').map(Number);
|
|
542
|
+
if (year < 2000 || year > 2100)
|
|
543
|
+
throw new errors_1.LibrusError('CALENDAR_INVALID_OPTIONS');
|
|
544
|
+
entries.push(...(await this.monthPage(year, index)));
|
|
545
|
+
}
|
|
546
|
+
const known = new Map(entries.map((entry) => [entry.key, entry]));
|
|
547
|
+
const selected = select(entries);
|
|
548
|
+
if (!Array.isArray(selected))
|
|
549
|
+
throw new errors_1.LibrusError('CALENDAR_INVALID_OPTIONS');
|
|
550
|
+
const details = new Map();
|
|
551
|
+
const fetchable = [];
|
|
552
|
+
for (const key of selected) {
|
|
553
|
+
const entry = known.get(key);
|
|
554
|
+
if (!entry)
|
|
555
|
+
continue;
|
|
556
|
+
if (!entry.route || !entry.eventId) {
|
|
557
|
+
details.set(key, null);
|
|
558
|
+
continue;
|
|
559
|
+
}
|
|
560
|
+
fetchable.push({ key, route: entry.route, id: entry.eventId });
|
|
561
|
+
}
|
|
562
|
+
for (const { key, route, id } of fetchable.slice(0, MAX_DETAILS)) {
|
|
563
|
+
if (MAX_REQUESTS - this.requests < DETAIL_HEADROOM)
|
|
564
|
+
break;
|
|
565
|
+
const detail = await this.eventDetail(route, id);
|
|
566
|
+
if (detail !== null)
|
|
567
|
+
details.set(key, detail);
|
|
568
|
+
}
|
|
569
|
+
return { entries, details };
|
|
570
|
+
});
|
|
431
571
|
}
|
|
432
572
|
}
|
|
433
573
|
exports.LibrusClient = LibrusClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibrusClient.js","sourceRoot":"","sources":["../../../nodes/Librus/LibrusClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LibrusClient.js","sourceRoot":"","sources":["../../../nodes/Librus/LibrusClient.ts"],"names":[],"mappings":"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"}
|