rotion 1.14.1 → 1.15.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/exporter/database.js +63 -59
- package/dist/exporter/database.js.map +1 -1
- package/dist/exporter/files.d.ts +1 -1
- package/dist/exporter/files.js +37 -14
- package/dist/exporter/files.js.map +1 -1
- package/dist/exporter/mutex.d.ts +10 -0
- package/dist/exporter/mutex.js +110 -0
- package/dist/exporter/mutex.js.map +1 -0
- package/dist/exporter/page.js +51 -47
- package/dist/exporter/page.js.map +1 -1
- package/dist/ui/cjs/index.css +1 -1
- package/dist/ui/cjs/index.js +1 -1
- package/dist/ui/cjs/index.js.map +1 -1
- package/dist/ui/cjs/types/exporter/files.d.ts +1 -1
- package/dist/ui/cjs/types/exporter/mutex.d.ts +10 -0
- package/dist/ui/esm/index.css +1 -1
- package/dist/ui/esm/index.js +1 -1
- package/dist/ui/esm/index.js.map +1 -1
- package/dist/ui/esm/types/exporter/files.d.ts +1 -1
- package/dist/ui/esm/types/exporter/mutex.d.ts +10 -0
- package/dist/ui/style-without-dark.css +1 -1
- package/dist/ui/umd/index.css +1 -1
- package/dist/ui/umd/index.js +1 -1
- package/dist/ui/umd/index.js.map +1 -1
- package/dist/ui/umd/types/exporter/files.d.ts +1 -1
- package/dist/ui/umd/types/exporter/mutex.d.ts +10 -0
- package/package.json +5 -5
|
@@ -2,6 +2,7 @@ import { reqAPIWithBackoff, notion, } from './api.js';
|
|
|
2
2
|
import { cacheDir, incrementalCache, debug, } from './variables.js';
|
|
3
3
|
import { atoh, createDirWhenNotfound, saveImage, readCache, writeCache, isAvailableCache, isEmpty, } from './files.js';
|
|
4
4
|
import { savePageCover, savePageIcon, } from './page.js';
|
|
5
|
+
import { withFileLock } from './mutex.js';
|
|
5
6
|
/**
|
|
6
7
|
* FetchDatabase retrieves database and download images in from blocks.
|
|
7
8
|
* And create cache that includes filepath of downloaded images.
|
|
@@ -13,77 +14,80 @@ export const FetchDatabase = async (p) => {
|
|
|
13
14
|
const paramsHash = atoh(JSON.stringify(params));
|
|
14
15
|
await createDirWhenNotfound(cacheDir);
|
|
15
16
|
const cacheFile = `${cacheDir}/notion.databases.query-${paramsHash}${limit !== undefined ? `.limit-${limit}` : ''}`;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
const lockKey = `database-${paramsHash}`;
|
|
18
|
+
return withFileLock(lockKey, async () => {
|
|
19
|
+
let allres;
|
|
20
|
+
let res;
|
|
21
|
+
try {
|
|
22
|
+
const list = await readCache(cacheFile);
|
|
23
|
+
if (!isEmpty(list)) {
|
|
24
|
+
if (!incrementalCache) {
|
|
25
|
+
if (debug) {
|
|
26
|
+
console.log(`use cache in FetchDatabase() with no-incremental-cache: ${cacheFile}`);
|
|
27
|
+
}
|
|
28
|
+
return list;
|
|
29
|
+
}
|
|
30
|
+
if (await isAvailableCache(cacheFile)) {
|
|
31
|
+
if (debug) {
|
|
32
|
+
console.log(`use available cache in FetchDatabase(): ${cacheFile}`);
|
|
33
|
+
}
|
|
34
|
+
return list;
|
|
24
35
|
}
|
|
25
|
-
return list;
|
|
26
|
-
}
|
|
27
|
-
if (await isAvailableCache(cacheFile)) {
|
|
28
36
|
if (debug) {
|
|
29
|
-
console.log(`
|
|
37
|
+
console.log(`requesting to API because an old cache file was found in FetchDatabase(): ${cacheFile}`);
|
|
30
38
|
}
|
|
31
|
-
return list;
|
|
32
39
|
}
|
|
33
|
-
if (debug) {
|
|
34
|
-
console.log(`requesting to API because an old cache file was found in FetchDatabase(): ${cacheFile}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
catch (_) {
|
|
39
|
-
/* not fatal */
|
|
40
|
-
}
|
|
41
|
-
while (true) {
|
|
42
|
-
if (res && res.next_cursor) {
|
|
43
|
-
params.start_cursor = res.next_cursor;
|
|
44
|
-
}
|
|
45
|
-
res = await reqAPIWithBackoff({
|
|
46
|
-
func: notion.databases.query,
|
|
47
|
-
args: params,
|
|
48
|
-
count: 3,
|
|
49
|
-
});
|
|
50
|
-
if (allres === undefined) {
|
|
51
|
-
allres = res;
|
|
52
40
|
}
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
catch (_) {
|
|
42
|
+
/* not fatal */
|
|
55
43
|
}
|
|
56
|
-
|
|
57
|
-
|
|
44
|
+
while (true) {
|
|
45
|
+
if (res && res.next_cursor) {
|
|
46
|
+
params.start_cursor = res.next_cursor;
|
|
47
|
+
}
|
|
48
|
+
res = await reqAPIWithBackoff({
|
|
49
|
+
func: notion.databases.query,
|
|
50
|
+
args: params,
|
|
51
|
+
count: 3,
|
|
52
|
+
});
|
|
53
|
+
if (allres === undefined) {
|
|
54
|
+
allres = res;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
allres.results.push(...res.results);
|
|
58
|
+
}
|
|
59
|
+
if (res.next_cursor === null || limit !== undefined) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
63
|
+
for (const result of allres.results) {
|
|
64
|
+
const page = result;
|
|
65
|
+
await savePageCover(page);
|
|
66
|
+
await savePageIcon(page);
|
|
67
|
+
for (const [, v] of Object.entries(page.properties)) {
|
|
68
|
+
// Save avatar in people property type
|
|
69
|
+
if (v.type === 'people') {
|
|
70
|
+
const peoples = v.people;
|
|
71
|
+
for (const people of peoples) {
|
|
72
|
+
if (people.avatar_url) {
|
|
73
|
+
const ipws = await saveImage(people.avatar_url, `database-avatar-${people.id}`);
|
|
74
|
+
people.avatar = ipws.path;
|
|
75
|
+
}
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
const meta = await reqAPIWithBackoff({
|
|
81
|
+
func: notion.databases.retrieve,
|
|
82
|
+
args: { database_id },
|
|
83
|
+
count: 3,
|
|
84
|
+
});
|
|
85
|
+
await saveDatabaseCover(meta);
|
|
86
|
+
await saveDatabaseIcon(meta);
|
|
87
|
+
allres.meta = meta;
|
|
88
|
+
await writeCache(cacheFile, allres);
|
|
89
|
+
return allres;
|
|
81
90
|
});
|
|
82
|
-
await saveDatabaseCover(meta);
|
|
83
|
-
await saveDatabaseIcon(meta);
|
|
84
|
-
allres.meta = meta;
|
|
85
|
-
await writeCache(cacheFile, allres);
|
|
86
|
-
return allres;
|
|
87
91
|
};
|
|
88
92
|
export async function saveDatabaseCover(db) {
|
|
89
93
|
if (db.cover === undefined || db.cover === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/exporter/database.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,MAAM,GACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,KAAK,GACN,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,IAAI,EACJ,qBAAqB,EACrB,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,OAAO,GACR,MAAM,YAAY,CAAA;AAQnB,OAAO,EACL,aAAa,EACb,YAAY,GACb,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/exporter/database.ts"],"names":[],"mappings":"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"}
|
package/dist/exporter/files.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare function saveFile(fileUrl: string, prefix: string): Promise<{
|
|
|
13
13
|
size: number;
|
|
14
14
|
}>;
|
|
15
15
|
export declare const saveImage: (imageUrl: string, prefix: string) => Promise<ImagePathWithSize>;
|
|
16
|
-
export declare const findHtmlByRegexp: (regexps: RegExp[], html: string) => string | null;
|
|
16
|
+
export declare const findHtmlByRegexp: (regexps: RegExp[], html: string, removeJS?: boolean) => string | null;
|
|
17
17
|
export declare const titleRegexps: RegExp[];
|
|
18
18
|
export declare const descRegexps: RegExp[];
|
|
19
19
|
export declare const imageRegexps: RegExp[];
|
package/dist/exporter/files.js
CHANGED
|
@@ -280,8 +280,25 @@ export const saveImage = async (imageUrl, prefix) => {
|
|
|
280
280
|
}
|
|
281
281
|
return { path: urlPath };
|
|
282
282
|
};
|
|
283
|
-
export const findHtmlByRegexp = (regexps, html) => {
|
|
283
|
+
export const findHtmlByRegexp = (regexps, html, removeJS = false) => {
|
|
284
284
|
let matched = null;
|
|
285
|
+
if (removeJS) {
|
|
286
|
+
html = html
|
|
287
|
+
.replace(/\$\([^)]*\)[^;]*;?/g, '')
|
|
288
|
+
.replace(/jQuery[^;]*;?/g, '')
|
|
289
|
+
.replace(/document\.ready[^;]*;?/g, '')
|
|
290
|
+
.replace(/\(\(\)=>\{[^}]*\}\)/g, '')
|
|
291
|
+
.replace(/function\s*\([^)]*\)\s*\{[^}]*\}/g, '')
|
|
292
|
+
.replace(/var\s+\w+\s*=[^;]*;?/g, '')
|
|
293
|
+
.replace(/let\s+\w+\s*=[^;]*;?/g, '')
|
|
294
|
+
.replace(/const\s+\w+\s*=[^;]*;?/g, '')
|
|
295
|
+
.replace(/\.selected\s*=\s*[^;]*;?/g, '')
|
|
296
|
+
.replace(/if\s*?\([^)]*\)\s*\{[^}]*\}/g, '')
|
|
297
|
+
.replace(/navigator\.userAgent[^;]*;?/g, '')
|
|
298
|
+
.replace(/\.toLowerCase\(\)[^;]*;?/g, '')
|
|
299
|
+
.replace(/\.indexOf\([^)]*\)[^;]*;?/g, '')
|
|
300
|
+
.replace(/selected\s*=\s*[^;]*;?/g, '');
|
|
301
|
+
}
|
|
285
302
|
for (let i = 0; i < regexps.length; i++) {
|
|
286
303
|
const result = html.match(regexps[i]);
|
|
287
304
|
if (result !== null) {
|
|
@@ -292,11 +309,13 @@ export const findHtmlByRegexp = (regexps, html) => {
|
|
|
292
309
|
if (matched === null) {
|
|
293
310
|
return null;
|
|
294
311
|
}
|
|
295
|
-
|
|
312
|
+
let result = matched[1]
|
|
296
313
|
.replace(/\n/g, ' ')
|
|
297
314
|
.trim()
|
|
298
315
|
.replace(/<[^>]*>?/gm, '')
|
|
299
|
-
.replace(/https:https:/g, 'https:')
|
|
316
|
+
.replace(/https:https:/g, 'https:')
|
|
317
|
+
.replace(/\s+/g, ' ');
|
|
318
|
+
return result;
|
|
300
319
|
};
|
|
301
320
|
export const titleRegexps = [
|
|
302
321
|
/<title>([^"]*?)<\/title>/,
|
|
@@ -323,16 +342,16 @@ export const imageRegexps = [
|
|
|
323
342
|
/name="twitter:image"\s+content="([^"]+)"/,
|
|
324
343
|
];
|
|
325
344
|
export const iconRegexps = [
|
|
326
|
-
/<link\s+href="([^"]+)"
|
|
327
|
-
/<link\s+rel="icon"\s+href="(
|
|
328
|
-
/<link\s+rel="icon".*?href="([^"]+)"
|
|
345
|
+
/<link\s+href="?([^"]+)"?\s+rel="icon"/,
|
|
346
|
+
/<link\s+rel="icon"\s+href="?([^"]+)"?\s*?\/?>/,
|
|
347
|
+
/<link\s+rel="icon".*?href="?([^"]+)"?/,
|
|
329
348
|
/<link\s+rel="shortcut icon"\s+type="image\/x-icon"\s+href="?([^"]+)"?\s?\/?>/,
|
|
330
|
-
/<link\s+rel="shortcut icon"\s+href="?([
|
|
349
|
+
/<link\s+rel="shortcut icon"\s+href="?([^\s>]+)"?\s?\/?>/,
|
|
331
350
|
/<link\s+href="?([^"]+)"?\s+rel="(shortcut icon|icon shortcut)"(\s+type="image\/x-icon")?\s?\/?>/,
|
|
332
|
-
/<link\s+href="([^"]+)"
|
|
333
|
-
/type="image\/x-icon"\s+href="(
|
|
334
|
-
/rel="icon"\s+href="(
|
|
335
|
-
/rel="shortcut icon"\s+href="([
|
|
351
|
+
/<link\s+href="?([^"]+)"?\s+rel="icon"\s+sizes="[^"]+"\s+type="image\/[^"]"\s*\/?>/,
|
|
352
|
+
/type="image\/x-icon"\s+href="?([^"]+)"?/,
|
|
353
|
+
/rel="icon"\s+href="?([^"]+)"?/,
|
|
354
|
+
/rel="shortcut icon"\s+href="?([^\s>]+)"?/,
|
|
336
355
|
];
|
|
337
356
|
export const findImage = (html) => {
|
|
338
357
|
const img = html.match(/<img\s(.*?)\s?\/?>/);
|
|
@@ -346,19 +365,23 @@ export const findImage = (html) => {
|
|
|
346
365
|
}
|
|
347
366
|
return null;
|
|
348
367
|
};
|
|
368
|
+
const maxDescLength = 400;
|
|
349
369
|
export const getHtmlMeta = async (reqUrl, httpFunc) => {
|
|
350
370
|
try {
|
|
351
371
|
const resbody = httpFunc ? await httpFunc(reqUrl) : await getHTTP(reqUrl);
|
|
352
372
|
const body = resbody.replace(/\n/g, ' ');
|
|
353
373
|
const title = findHtmlByRegexp(titleRegexps, body) || '';
|
|
354
|
-
const
|
|
374
|
+
const descRaw = findHtmlByRegexp(descRegexps, body, true) || '';
|
|
375
|
+
const desc = descRaw.length > maxDescLength ? descRaw.substring(0, maxDescLength) + '...' : descRaw;
|
|
355
376
|
const imagePath = findHtmlByRegexp(imageRegexps, body) || findImage(body) || '';
|
|
356
|
-
const iconPath = findHtmlByRegexp(iconRegexps, body) || '/favicon.ico';
|
|
377
|
+
const iconPath = findHtmlByRegexp(iconRegexps, body, true) || '/favicon.ico';
|
|
357
378
|
const url = new URL(reqUrl);
|
|
358
379
|
const imageUrl = imagePath !== '' ? (imagePath.match(/^(https?:|data:)/) ? imagePath : `${url.protocol}//${url.hostname}${imagePath}`) : '';
|
|
359
380
|
const ipws = imagePath !== '' ? (imagePath.match(/^data:/) ? { path: imagePath } : await saveImage(imageUrl, 'html-image')) : null;
|
|
360
381
|
const image = ipws ? ipws.path : '';
|
|
361
|
-
const iconUrl = iconPath !== '' ? (iconPath.match(/^(https?:|data:)/) ? iconPath :
|
|
382
|
+
const iconUrl = iconPath !== '' ? (iconPath.match(/^(https?:|data:)/) ? iconPath :
|
|
383
|
+
iconPath.match(/^\/\//) ? `${url.protocol}${iconPath}` :
|
|
384
|
+
`${url.protocol}//${url.hostname}${iconPath}`) : '';
|
|
362
385
|
const ipws2 = iconUrl !== '' ? (iconPath.match(/^data:/) ? { path: iconPath } : await saveImage(iconUrl, `html-icon-${atoh(reqUrl)}`)) : null;
|
|
363
386
|
const icon = ipws2 ? ipws2.path : '';
|
|
364
387
|
return { title, desc, image, icon };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/exporter/files.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/exporter/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface LockOptions {
|
|
2
|
+
timeout?: number;
|
|
3
|
+
retryInterval?: number;
|
|
4
|
+
maxAge?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Performs exclusive control using file-based mutex
|
|
8
|
+
*/
|
|
9
|
+
export declare function withFileLock<T>(key: string, operation: () => Promise<T>, options?: LockOptions): Promise<T>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { cacheDir, debug } from './variables.js';
|
|
4
|
+
import { createDirWhenNotfound } from './files.js';
|
|
5
|
+
const DEFAULT_OPTIONS = {
|
|
6
|
+
timeout: 30000, // 30 seconds
|
|
7
|
+
retryInterval: 100, // 100ms
|
|
8
|
+
maxAge: 60000, // 1 minute
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Performs exclusive control using file-based mutex
|
|
12
|
+
*/
|
|
13
|
+
export async function withFileLock(key, operation, options = {}) {
|
|
14
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
15
|
+
const lockDir = path.join(cacheDir, 'locks');
|
|
16
|
+
const lockFile = path.join(lockDir, `${key}.lock`);
|
|
17
|
+
await createDirWhenNotfound(lockDir);
|
|
18
|
+
const startTime = Date.now();
|
|
19
|
+
let fd = null;
|
|
20
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
21
|
+
try {
|
|
22
|
+
// Cleanup stale lock files
|
|
23
|
+
await cleanupStalelock(lockFile, opts.maxAge);
|
|
24
|
+
// Create lock file exclusively
|
|
25
|
+
fd = await fs.open(lockFile, 'wx');
|
|
26
|
+
// Write process ID and timestamp
|
|
27
|
+
const lockData = JSON.stringify({
|
|
28
|
+
pid: process.pid,
|
|
29
|
+
timestamp: Date.now(),
|
|
30
|
+
key
|
|
31
|
+
});
|
|
32
|
+
await fd.writeFile(lockData);
|
|
33
|
+
if (debug) {
|
|
34
|
+
console.log(`Lock acquired: ${key} (pid: ${process.pid})`);
|
|
35
|
+
}
|
|
36
|
+
// Execute operation
|
|
37
|
+
try {
|
|
38
|
+
const result = await operation();
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
// Release lock
|
|
43
|
+
await releaseLock(fd, lockFile, key);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error.code === 'EEXIST') {
|
|
48
|
+
// Lock file already exists - wait and retry
|
|
49
|
+
await new Promise(resolve => setTimeout(resolve, opts.retryInterval));
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw new Error(`Failed to acquire lock for "${key}" within ${opts.timeout}ms`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Cleanup stale lock files
|
|
59
|
+
*/
|
|
60
|
+
async function cleanupStalelock(lockFile, maxAge) {
|
|
61
|
+
try {
|
|
62
|
+
const stats = await fs.stat(lockFile);
|
|
63
|
+
const age = Date.now() - stats.mtime.getTime();
|
|
64
|
+
if (age > maxAge) {
|
|
65
|
+
const lockData = await fs.readFile(lockFile, 'utf-8');
|
|
66
|
+
const lock = JSON.parse(lockData);
|
|
67
|
+
// Check if process is alive
|
|
68
|
+
if (!isProcessAlive(lock.pid)) {
|
|
69
|
+
await fs.unlink(lockFile);
|
|
70
|
+
if (debug) {
|
|
71
|
+
console.log(`Cleaned up stale lock: ${lockFile} (dead pid: ${lock.pid})`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Ignore if file doesn't exist or can't be read
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if process is alive
|
|
82
|
+
*/
|
|
83
|
+
function isProcessAlive(pid) {
|
|
84
|
+
try {
|
|
85
|
+
// Signal 0 doesn't actually send a signal, just checks process existence
|
|
86
|
+
process.kill(pid, 0);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Release lock
|
|
95
|
+
*/
|
|
96
|
+
async function releaseLock(fd, lockFile, key) {
|
|
97
|
+
try {
|
|
98
|
+
await fd.close();
|
|
99
|
+
await fs.unlink(lockFile);
|
|
100
|
+
if (debug) {
|
|
101
|
+
console.log(`Lock released: ${key} (pid: ${process.pid})`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (debug) {
|
|
106
|
+
console.error(`Failed to release lock: ${key}`, error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=mutex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/exporter/mutex.ts"],"names":[],"mappings":"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"}
|
package/dist/exporter/page.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { reqAPIWithBackoff, reqAPIWithBackoffAndCache, notion, } from './api.js';
|
|
2
2
|
import { cacheDir, incrementalCache, debug, } from './variables.js';
|
|
3
3
|
import { createDirWhenNotfound, saveImage, readCache, writeCache, isEmpty, } from './files.js';
|
|
4
|
+
import { withFileLock } from './mutex.js';
|
|
4
5
|
/**
|
|
5
6
|
* FetchPage retrieves page properties and download images in from properties.
|
|
6
7
|
* And create cache that includes filepath of downloaded images.
|
|
@@ -9,60 +10,63 @@ import { createDirWhenNotfound, saveImage, readCache, writeCache, isEmpty, } fro
|
|
|
9
10
|
export const FetchPage = async ({ page_id, last_edited_time }) => {
|
|
10
11
|
await createDirWhenNotfound(cacheDir);
|
|
11
12
|
const cacheFile = `${cacheDir}/notion.pages.retrieve-${page_id}`;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const lockKey = `page-${page_id}`;
|
|
14
|
+
return withFileLock(lockKey, async () => {
|
|
15
|
+
try {
|
|
16
|
+
const page = await readCache(cacheFile);
|
|
17
|
+
if (!isEmpty(page)) {
|
|
18
|
+
if (incrementalCache && last_edited_time === undefined) {
|
|
19
|
+
if (debug) {
|
|
20
|
+
console.log(`use cache in FetchPage(): ${cacheFile}, last_edited_time is required as a FetchPage() args when incremental cache`);
|
|
21
|
+
}
|
|
22
|
+
return page;
|
|
23
|
+
}
|
|
24
|
+
if (!incrementalCache || ('last_edited_time' in page && page.last_edited_time === last_edited_time)) {
|
|
25
|
+
if (debug) {
|
|
26
|
+
console.log(`use cache so same last-edited-time in FetchPage(): ${cacheFile}`);
|
|
27
|
+
}
|
|
28
|
+
return page;
|
|
18
29
|
}
|
|
19
|
-
return page;
|
|
20
|
-
}
|
|
21
|
-
if (!incrementalCache || ('last_edited_time' in page && page.last_edited_time === last_edited_time)) {
|
|
22
30
|
if (debug) {
|
|
23
|
-
console.log(`
|
|
31
|
+
console.log(`requesting to API because an old cache file was found in FetchPage(): ${cacheFile}`);
|
|
24
32
|
}
|
|
25
|
-
return page;
|
|
26
|
-
}
|
|
27
|
-
if (debug) {
|
|
28
|
-
console.log(`requesting to API because an old cache file was found in FetchPage(): ${cacheFile}`);
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
catch (_) {
|
|
36
|
+
/* not fatal */
|
|
37
|
+
}
|
|
38
|
+
const page = await reqAPIWithBackoff({
|
|
39
|
+
func: notion.pages.retrieve,
|
|
40
|
+
args: { page_id },
|
|
41
|
+
count: 3
|
|
42
|
+
});
|
|
43
|
+
if ('properties' in page) {
|
|
44
|
+
let list;
|
|
45
|
+
for (const [, v] of Object.entries(page.properties)) {
|
|
46
|
+
const property_id = v.id;
|
|
47
|
+
const res = await reqAPIWithBackoffAndCache({
|
|
48
|
+
name: 'notion.pages.properties.retrieve',
|
|
49
|
+
func: notion.pages.properties.retrieve,
|
|
50
|
+
args: { page_id, property_id },
|
|
51
|
+
count: 3,
|
|
52
|
+
});
|
|
53
|
+
if (res.object !== 'list') {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (list === undefined) {
|
|
57
|
+
list = res;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
list.results.push(...res.results);
|
|
61
|
+
}
|
|
58
62
|
}
|
|
63
|
+
page.meta = list;
|
|
59
64
|
}
|
|
60
|
-
page
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return page;
|
|
65
|
+
await savePageCover(page);
|
|
66
|
+
await savePageIcon(page);
|
|
67
|
+
await writeCache(cacheFile, page);
|
|
68
|
+
return page;
|
|
69
|
+
});
|
|
66
70
|
};
|
|
67
71
|
export async function savePageCover(page) {
|
|
68
72
|
if (page.cover === undefined || page.cover === null) {
|