@s-hirano-ist/s-scripts 1.23.0 → 1.23.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/enrich-books.js +4 -9
- package/dist/enrich-books.js.map +1 -1
- package/package.json +3 -3
package/dist/enrich-books.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* markdown/book/*.md の frontmatter
|
|
4
|
-
*
|
|
3
|
+
* markdown/book/*.md の frontmatter について、毎回 Google Books API を呼び出して
|
|
4
|
+
* google* および title を最新状態に更新するスクリプト。
|
|
5
5
|
*
|
|
6
6
|
* API が title を返した場合は frontmatter.title を上書きする。
|
|
7
7
|
* notFound (API が volume を返さない) の場合は手動入力 title を保持する。
|
|
8
|
+
* markdown 本文 (h1 含む) には触れないため、自己入力の h1 はそのまま維持される。
|
|
8
9
|
*/
|
|
9
10
|
import { readFile, writeFile } from "node:fs/promises";
|
|
10
11
|
import { basename, join } from "node:path";
|
|
@@ -35,7 +36,6 @@ async function main() {
|
|
|
35
36
|
const files = await glob(`${bookDir}/*.md`);
|
|
36
37
|
console.log(`📁 ${files.length} 件の markdown を検出しました。${dryRun ? " (dry-run)" : ""}`);
|
|
37
38
|
let enrichedCount = 0;
|
|
38
|
-
let skippedCount = 0;
|
|
39
39
|
let errorCount = 0;
|
|
40
40
|
for (const filePath of files.sort()) {
|
|
41
41
|
const fileName = basename(filePath);
|
|
@@ -44,11 +44,6 @@ async function main() {
|
|
|
44
44
|
const raw = await readFile(filePath, "utf8");
|
|
45
45
|
const parsed = matter(raw);
|
|
46
46
|
const data = parsed.data;
|
|
47
|
-
// googleImgSrc が既に埋まっているならスキップ (enrich 実行済みの判定キー)
|
|
48
|
-
if (data.googleImgSrc != null && data.googleImgSrc !== "") {
|
|
49
|
-
skippedCount++;
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
47
|
console.log(`🔍 ${fileName}: Google Books API 問い合わせ中...`);
|
|
53
48
|
const book = await api.volumes.list({ q: `isbn:${isbn}` });
|
|
54
49
|
await sleep(API_INTERVAL_MS);
|
|
@@ -87,7 +82,7 @@ async function main() {
|
|
|
87
82
|
errorCount++;
|
|
88
83
|
}
|
|
89
84
|
}
|
|
90
|
-
console.log(`\n📊 結果:
|
|
85
|
+
console.log(`\n📊 結果: 更新 ${enrichedCount} 件, エラー ${errorCount} 件${dryRun ? " (dry-run)" : ""}`);
|
|
91
86
|
}
|
|
92
87
|
main().catch((error) => {
|
|
93
88
|
console.error("❌ エラーが発生しました:", error);
|
package/dist/enrich-books.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrich-books.js","sourceRoot":"","sources":["../src/enrich-books.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"enrich-books.js","sourceRoot":"","sources":["../src/enrich-books.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@s-hirano-ist/s-scripts",
|
|
3
|
-
"version": "1.23.
|
|
3
|
+
"version": "1.23.1",
|
|
4
4
|
"description": "CLI scripts for s-private data operations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"js-yaml": "4.1.1",
|
|
59
59
|
"sharp": "0.34.5",
|
|
60
60
|
"turndown": "7.2.4",
|
|
61
|
+
"@s-hirano-ist/s-core": "1.20.0",
|
|
61
62
|
"@s-hirano-ist/s-database": "1.19.0",
|
|
62
63
|
"@s-hirano-ist/s-notification": "1.18.4",
|
|
63
64
|
"@s-hirano-ist/s-search": "1.18.8",
|
|
64
|
-
"@s-hirano-ist/s-storage": "1.18.5"
|
|
65
|
-
"@s-hirano-ist/s-core": "1.20.0"
|
|
65
|
+
"@s-hirano-ist/s-storage": "1.18.5"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/js-yaml": "4.0.9",
|