@s-hirano-ist/s-scripts 1.18.1 → 1.18.2

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.
@@ -61,6 +61,21 @@ async function main() {
61
61
  }
62
62
  console.log(`💾 Markdown: ${exportedCount} 件書き出し, ${skippedCount} 件スキップ`);
63
63
  }
64
+ async function withRetry(fn, retries = 3) {
65
+ for (let attempt = 0; attempt < retries; attempt++) {
66
+ try {
67
+ return await fn();
68
+ }
69
+ catch (error) {
70
+ if (attempt === retries - 1)
71
+ throw error;
72
+ const delay = 1000 * 2 ** attempt;
73
+ console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
74
+ await new Promise((r) => setTimeout(r, delay));
75
+ }
76
+ }
77
+ throw new Error("unreachable");
78
+ }
64
79
  async function downloadBookImages(books) {
65
80
  const outputDir = path.join(process.cwd(), "image/book");
66
81
  await mkdir(outputDir, { recursive: true });
@@ -68,10 +83,10 @@ async function main() {
68
83
  console.log(`📷 ${booksWithImages.length} 件の書籍画像をダウンロードします。`);
69
84
  let skippedCount = 0;
70
85
  let downloadedCount = 0;
71
- const downloadPromises = booksWithImages.map(async (book) => {
86
+ for (const book of booksWithImages) {
72
87
  const { isbn, imagePath } = book;
73
88
  if (!imagePath)
74
- return;
89
+ continue;
75
90
  const ext = path.extname(imagePath);
76
91
  const fileName = `${isbn}${ext}`;
77
92
  const filePath = path.join(outputDir, fileName);
@@ -79,15 +94,14 @@ async function main() {
79
94
  try {
80
95
  await access(filePath);
81
96
  skippedCount++;
82
- return;
97
+ continue;
83
98
  }
84
99
  catch {
85
100
  // ファイルが存在しない場合はダウンロード
86
101
  }
87
- await minioClient.fGetObject(env.MINIO_BUCKET_NAME ?? "", `books/original/${imagePath}`, filePath);
102
+ await withRetry(() => minioClient.fGetObject(env.MINIO_BUCKET_NAME ?? "", `books/original/${imagePath}`, filePath));
88
103
  downloadedCount++;
89
- });
90
- await Promise.all(downloadPromises);
104
+ }
91
105
  console.log(`💾 書籍画像: ${downloadedCount} 件ダウンロード, ${skippedCount} 件スキップ`);
92
106
  }
93
107
  async function fetchBooks() {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-books.js","sourceRoot":"","sources":["../src/fetch-books.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACN,oBAAoB,EACpB,UAAU,GAGV,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAS5D,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,KAAK,UAAU,IAAI;IAClB,MAAM,GAAG,GAAG;QACX,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAChD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAClD,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAClD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;KACvC,CAAC;IAEX,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QAC1C,IACC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAChC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,CAAC;YACF,MAAM,IAAI,KAAK,CACd,0FAA0F,CAC1F,CAAC;QACH,CAAC;IACF,CAAC;IAED,8CAA8C;IAC9C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;IAE3E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;QACjD,GAAG,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QAC3B,OAAO,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACpC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE;KACtC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IAExC,MAAM,MAAM,GAAW,UAAU,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAW,oBAAoB,EAAE,CAAC;IAElD,KAAK,UAAU,UAAU,CAAC,IAAY;QACrC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC;YAEhD,qBAAqB;YACrB,IAAI,CAAC;gBACJ,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvB,YAAY,EAAE,CAAC;gBACf,SAAS;YACV,CAAC;YAAC,MAAM,CAAC;gBACR,oBAAoB;YACrB,CAAC;YAED,MAAM,WAAW,GAAG;gBACnB,KAAK;gBACL,YAAY,IAAI,CAAC,IAAI,EAAE;gBACvB,gBAAgB,IAAI,CAAC,KAAK,EAAE;gBAC5B,cAAc;gBACd,KAAK;aACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,WAAW,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YACjE,aAAa,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CACV,gBAAgB,aAAa,WAAW,YAAY,QAAQ,CAC5D,CAAC;IACH,CAAC;IAED,KAAK,UAAU,kBAAkB,CAAC,KAAa;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CACV,MAAM,eAAe,CAAC,MAAM,oBAAoB,CAChD,CAAC;QAEF,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAC3C,KAAK,EAAE,IAAgD,EAAE,EAAE;YAC1D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEhD,qBAAqB;YACrB,IAAI,CAAC;gBACJ,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvB,YAAY,EAAE,CAAC;gBACf,OAAO;YACR,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;YAED,MAAM,WAAW,CAAC,UAAU,CAC3B,GAAG,CAAC,iBAAiB,IAAI,EAAE,EAC3B,kBAAkB,SAAS,EAAE,EAC7B,QAAQ,CACR,CAAC;YACF,eAAe,EAAE,CAAC;QACnB,CAAC,CACD,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CACV,YAAY,eAAe,aAAa,YAAY,QAAQ,CAC5D,CAAC;IACH,CAAC;IAED,KAAK,UAAU,UAAU;QACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACxC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;SACrC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAEhD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,mBAAmB,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC7D,MAAM,EAAE,aAAa;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,mBAAmB,CAAC,WAAW,CAAC,uBAAuB,KAAK,EAAE,EAAE;YACrE,MAAM,EAAE,aAAa;SACrB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;YAAS,CAAC;QACV,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;AACF,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"fetch-books.js","sourceRoot":"","sources":["../src/fetch-books.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,21 @@ async function main() {
33
33
  const minioClient = createMinioClient();
34
34
  const userId = makeUserId(env.USERNAME_TO_EXPORT ?? "");
35
35
  const UNEXPORTED = makeUnexportedStatus();
36
+ async function withRetry(fn, retries = 3) {
37
+ for (let attempt = 0; attempt < retries; attempt++) {
38
+ try {
39
+ return await fn();
40
+ }
41
+ catch (error) {
42
+ if (attempt === retries - 1)
43
+ throw error;
44
+ const delay = 1000 * 2 ** attempt;
45
+ console.warn(`⚠️ リトライ ${attempt + 1}/${retries} (${delay}ms後)...`);
46
+ await new Promise((r) => setTimeout(r, delay));
47
+ }
48
+ }
49
+ throw new Error("unreachable");
50
+ }
36
51
  async function fetchImages() {
37
52
  const images = await prisma.image.findMany({
38
53
  where: { userId, status: UNEXPORTED },
@@ -40,13 +55,12 @@ async function main() {
40
55
  console.log(`📊 取得した画像データ数: ${images.length}。`);
41
56
  const outputDir = path.join(process.cwd(), "image/dump");
42
57
  await mkdir(outputDir, { recursive: true });
43
- const downloadPromises = images.map(async (image) => {
58
+ for (const image of images) {
44
59
  const { path: imagePath } = image;
45
60
  const filePath = path.join(outputDir, imagePath);
46
61
  await mkdir(path.dirname(filePath), { recursive: true });
47
- await minioClient.fGetObject(env.MINIO_BUCKET_NAME ?? "", `images/original/${imagePath}`, filePath);
48
- });
49
- await Promise.all(downloadPromises);
62
+ await withRetry(() => minioClient.fGetObject(env.MINIO_BUCKET_NAME ?? "", `images/original/${imagePath}`, filePath));
63
+ }
50
64
  console.log("💾 すべての画像の保存が完了しました。");
51
65
  }
52
66
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-images.js","sourceRoot":"","sources":["../src/fetch-images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-images.js","sourceRoot":"","sources":["../src/fetch-images.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.18.1",
3
+ "version": "1.18.2",
4
4
  "description": "CLI scripts for s-private data operations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -44,16 +44,16 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "dotenv": "17.3.1",
47
- "glob": "13.0.3",
48
- "jsdom": "28.0.0",
47
+ "glob": "13.0.6",
48
+ "jsdom": "28.1.0",
49
49
  "sharp": "0.34.5",
50
50
  "iconv-lite": "0.7.2",
51
51
  "turndown": "7.2.2",
52
- "@s-hirano-ist/s-core": "1.18.1",
53
- "@s-hirano-ist/s-search": "1.18.1",
54
- "@s-hirano-ist/s-database": "1.18.1",
52
+ "@s-hirano-ist/s-core": "1.18.2",
55
53
  "@s-hirano-ist/s-notification": "1.18.1",
56
- "@s-hirano-ist/s-storage": "1.18.1"
54
+ "@s-hirano-ist/s-search": "1.18.2",
55
+ "@s-hirano-ist/s-storage": "1.18.1",
56
+ "@s-hirano-ist/s-database": "1.18.2"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/jsdom": "27.0.0",