pixivflow 2.40.0 → 2.41.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.
@@ -771,6 +771,13 @@ export interface StandaloneConfig {
771
771
  * terminalises immediately). Default: 3.
772
772
  */
773
773
  maxFallbackStages?: number;
774
+ /**
775
+ * Novel media materialization policy. 'eager' downloads inline images for
776
+ * the preview path (legacy); 'on-demand' keeps MediaReference
777
+ * (assetId/sourceUrl) and defers local files to explicit ZIP/archive.
778
+ * Default: 'eager'
779
+ */
780
+ materializationPolicy?: 'eager' | 'on-demand';
774
781
  };
775
782
  }
776
783
  //# sourceMappingURL=types.d.ts.map
@@ -5,6 +5,7 @@ const logger_1 = require("../logger");
5
5
  const RankingService_1 = require("./RankingService");
6
6
  const IllustrationDownloader_1 = require("./IllustrationDownloader");
7
7
  const NovelDownloader_1 = require("./NovelDownloader");
8
+ const MaterializationPolicy_1 = require("../domain/media/MaterializationPolicy");
8
9
  const ProgressReporter_1 = require("./report/ProgressReporter");
9
10
  const DownloadPlanner_1 = require("./plan/DownloadPlanner");
10
11
  const DownloadExecutor_1 = require("./exec/DownloadExecutor");
@@ -125,7 +126,10 @@ class DownloadManager {
125
126
  const downloadConcurrency = config.download?.concurrency || 3;
126
127
  const storagePath = config.storage?.illustrationDirectory ?? config.storage?.downloadDirectory ?? './downloads';
127
128
  this.illustrationDownloader = new IllustrationDownloader_1.IllustrationDownloader(client, database, fileService, downloadConcurrency, storagePath);
128
- this.novelDownloader = new NovelDownloader_1.NovelDownloader(client, database, fileService, database);
129
+ const materialization = config.download?.materializationPolicy
130
+ ? { mode: config.download?.materializationPolicy }
131
+ : MaterializationPolicy_1.DEFAULT_MATERIALIZATION_POLICY;
132
+ this.novelDownloader = new NovelDownloader_1.NovelDownloader(client, database, fileService, database, undefined, materialization);
129
133
  this.planner = new DownloadPlanner_1.DownloadPlanner(database, {
130
134
  deliveredIds: (target, type, ids) => this.deliveryService.deliveredIds(target, type, ids),
131
135
  // CANDIDATE SELECTION dedupe: also treats a work whose review submission is
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow",
4
- "version": "2.40.0",
4
+ "version": "2.41.0",
5
5
  "private": true
6
6
  }
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BUILD = void 0;
4
4
  // GENERATED by scripts/write-version.js — do not edit manually.
5
- exports.BUILD = { version: '2.40.0', commit: '8d72f5f5761a' };
5
+ exports.BUILD = { version: '2.41.0', commit: '471ff53f25c9' };
6
6
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow-webui-backend",
4
- "version": "2.40.0",
4
+ "version": "2.41.0",
5
5
  "description": "PixivFlow WebUI Backend - CommonJS module"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixivflow",
3
- "version": "2.40.0",
3
+ "version": "2.41.0",
4
4
  "description": "🎨 Pixiv 下载、筛选与自动收集工具 - 批量下载插画和小说、按标签/热度/日期筛选、定时任务与可靠 HTTP 交付 | Pixiv downloader and automation toolkit with filtering, scheduling and reliable HTTP delivery",
5
5
  "repository": {
6
6
  "type": "git",