pixivflow 2.10.30 → 2.11.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.
Files changed (80) hide show
  1. package/README.md +17 -15
  2. package/config/fly-two-bots.example.json +4 -0
  3. package/dist/commands/SchedulerCommand.d.ts.map +1 -1
  4. package/dist/commands/SchedulerCommand.js +49 -0
  5. package/dist/commands/SchedulerCommand.js.map +1 -1
  6. package/dist/commands/scheduler-runtime.d.ts +2 -1
  7. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  8. package/dist/commands/scheduler-runtime.js +71 -5
  9. package/dist/commands/scheduler-runtime.js.map +1 -1
  10. package/dist/config/defaults.d.ts +7 -0
  11. package/dist/config/defaults.d.ts.map +1 -1
  12. package/dist/config/defaults.js +7 -0
  13. package/dist/config/defaults.js.map +1 -1
  14. package/dist/config/types.d.ts +49 -0
  15. package/dist/config/types.d.ts.map +1 -1
  16. package/dist/config/validation.d.ts.map +1 -1
  17. package/dist/config/validation.js +16 -1
  18. package/dist/config/validation.js.map +1 -1
  19. package/dist/delivery/DeliveryOutbox.d.ts +7 -0
  20. package/dist/delivery/DeliveryOutbox.d.ts.map +1 -1
  21. package/dist/delivery/DeliveryOutbox.js +12 -0
  22. package/dist/delivery/DeliveryOutbox.js.map +1 -1
  23. package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
  24. package/dist/delivery/HttpMultipartDelivery.js +6 -1
  25. package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
  26. package/dist/delivery/types.d.ts +4 -0
  27. package/dist/delivery/types.d.ts.map +1 -1
  28. package/dist/download/DownloadManager.d.ts +12 -1
  29. package/dist/download/DownloadManager.d.ts.map +1 -1
  30. package/dist/download/DownloadManager.js +15 -0
  31. package/dist/download/DownloadManager.js.map +1 -1
  32. package/dist/download/IllustrationDownloader.d.ts +2 -2
  33. package/dist/download/IllustrationDownloader.d.ts.map +1 -1
  34. package/dist/download/IllustrationDownloader.js +21 -18
  35. package/dist/download/IllustrationDownloader.js.map +1 -1
  36. package/dist/download/UgoiraConverter.d.ts +2 -0
  37. package/dist/download/UgoiraConverter.d.ts.map +1 -0
  38. package/dist/download/UgoiraConverter.js +21 -0
  39. package/dist/download/UgoiraConverter.js.map +1 -0
  40. package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
  41. package/dist/download/handlers/IllustrationTargetHandler.js +12 -4
  42. package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
  43. package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
  44. package/dist/download/handlers/NovelTargetHandler.js +12 -3
  45. package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
  46. package/dist/download/pipeline/DownloadPipeline.d.ts +5 -0
  47. package/dist/download/pipeline/DownloadPipeline.d.ts.map +1 -1
  48. package/dist/download/pipeline/DownloadPipeline.js +10 -0
  49. package/dist/download/pipeline/DownloadPipeline.js.map +1 -1
  50. package/dist/download/ugoira_to_gif.py +65 -0
  51. package/dist/package.json +1 -1
  52. package/dist/scheduler/MultiScheduleManager.d.ts +20 -1
  53. package/dist/scheduler/MultiScheduleManager.d.ts.map +1 -1
  54. package/dist/scheduler/MultiScheduleManager.js +37 -3
  55. package/dist/scheduler/MultiScheduleManager.js.map +1 -1
  56. package/dist/scheduler/ScheduleTriggerServer.d.ts +55 -0
  57. package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -0
  58. package/dist/scheduler/ScheduleTriggerServer.js +101 -0
  59. package/dist/scheduler/ScheduleTriggerServer.js.map +1 -0
  60. package/dist/scheduler/Scheduler.d.ts +12 -3
  61. package/dist/scheduler/Scheduler.d.ts.map +1 -1
  62. package/dist/scheduler/Scheduler.js +28 -10
  63. package/dist/scheduler/Scheduler.js.map +1 -1
  64. package/dist/scheduler/SlotCoordinator.d.ts +59 -0
  65. package/dist/scheduler/SlotCoordinator.d.ts.map +1 -0
  66. package/dist/scheduler/SlotCoordinator.js +150 -0
  67. package/dist/scheduler/SlotCoordinator.js.map +1 -0
  68. package/dist/storage/Database.d.ts +4 -0
  69. package/dist/storage/Database.d.ts.map +1 -1
  70. package/dist/storage/Database.js +7 -0
  71. package/dist/storage/Database.js.map +1 -1
  72. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  73. package/dist/storage/DatabaseMigration.js +35 -0
  74. package/dist/storage/DatabaseMigration.js.map +1 -1
  75. package/dist/storage/repositories/SlotRepository.d.ts +78 -0
  76. package/dist/storage/repositories/SlotRepository.d.ts.map +1 -0
  77. package/dist/storage/repositories/SlotRepository.js +170 -0
  78. package/dist/storage/repositories/SlotRepository.js.map +1 -0
  79. package/dist/webui/package.json +1 -1
  80. package/package.json +1 -1
package/README.md CHANGED
@@ -14,6 +14,8 @@ Pixiv 批量下载与定时收集工具。支持插画和小说的批量下载
14
14
  ## 安装
15
15
 
16
16
  需要 Node.js 22.12 或更高版本;生产环境请使用仍受支持的 LTS。
17
+ 下载 Pixiv 动图(ugoira)还需要 `python3` 和 `ffmpeg`:程序按逐帧延迟合成循环 GIF,
18
+ 可直接交给 TelePost 作为动画发送。官方 Docker 镜像已包含两者,详见 [配置说明](docs/CONFIG.md#pixiv-动图ugoira)。
17
19
 
18
20
  ```bash
19
21
  npm install -g pixivflow
@@ -103,9 +105,13 @@ pixivflow scheduler # 按 cron 配置长期挂机自动收集
103
105
 
104
106
  ### 本地留存与缓存交付
105
107
 
106
- 每个 target 可选择 `storageMode: "persistent"`(默认,本地永久留存)或
107
- `storageMode: "cache"`(下载后交给命名 delivery target,成功才删除本地文件)。
108
- 交付层不绑定具体服务;下面只是把一个 HTTP multipart 投稿接口翻译成配置:
108
+ 每个 target(一个 tag / 计划)有两种保存方式:
109
+
110
+ - **`persistent`(默认)**:下载后永久留在本地。
111
+ - **`cache`**:下载后投给一个「交付目标」(比如投稿机器人),对方确认收到后才删本地文件,省磁盘。
112
+
113
+ 「交付目标」就是一段配置:告诉 PixivFlow 把文件 POST 到哪个地址、带哪些字段。
114
+ 它不绑定具体服务,可指向任何 HTTP 投稿接口(TelePost、telepress 等)。示例:
109
115
 
110
116
  ```json
111
117
  {
@@ -143,20 +149,16 @@ pixivflow scheduler # 按 cron 配置长期挂机自动收集
143
149
  }
144
150
  ```
145
151
 
146
- headers 和 URL 支持任意 `${ENV_NAME}` 环境变量插值。交付失败时文件和
147
- outbox 清单保留在 SQLite 数据库同级的 `delivery-outbox/`;下一次运行会先
148
- 检查待投递项。作品投递与“最终无候选”状态通知都走同一个持久 outbox;
149
- 即使进程重启或审核端短暂不可用也会继续重试。失败项默认从 5 分钟开始
150
- 指数退避、最长 6 小时,避免浪费带宽;成功后再清理。
151
- 对上面的 TG 示例,可把 `/gen_token` 得到的 `tp_...` 放入
152
- `TG_SUBMIT_TOKEN` 环境变量;这只是示例服务自己的认证流程。
152
+ `headers``url` 里可用 `${环境变量名}` 引用环境变量(Token 别写死进配置)。
153
+
154
+ 投递是「发件箱」式的,进程重启也不丢:失败的文件和待投清单保存在数据库同级的
155
+ `delivery-outbox/`,下次运行先补投,按「5 分钟起步、最长 6 小时」指数退避重试,
156
+ 成功后才清理。「今天没有可投稿内容」这类通知也走同一个 outbox,审核端暂时挂掉也能继续重试。
153
157
 
154
- 同样的目标也可以指向 [telepress](https://github.com/redtidev1918/telepress)
155
- 的 `/publish/gallery`,把插画自动发布成 Telegra.ph 相册(自动分页、`#标签`
156
- 与来源链接页脚、R-18 提示),见 [CONFIG.md](docs/CONFIG.md) 的「Telegraph
157
- (telegra.ph)相册上传」一节。
158
+ - 上面的示例是投稿给一个 HTTP 接口:把 `/gen_token` 得到的 `tp_...` 放进 `TG_SUBMIT_TOKEN` 即可(这是示例服务自己的鉴权方式)。
159
+ - 同一目标也可指向 [telepress](https://github.com/redtidev1918/telepress) 的 `/publish/gallery`,把插画自动发布成 Telegra.ph 相册,见 [CONFIG.md](docs/CONFIG.md) 的「Telegraph(telegra.ph)相册上传」。
158
160
 
159
- 交互式配置向导:`pixivflow setup`。
161
+ 不想手写配置?运行交互式向导 `pixivflow setup` 一步步生成。
160
162
 
161
163
  ## 常用命令
162
164
 
@@ -92,6 +92,8 @@
92
92
  ],
93
93
  "note": "Pixiv ID: {{pixivId}}",
94
94
  "target_id": "{{targetId}}",
95
+ "slot_name": "{{slotName}}",
96
+ "slot_date": "{{slotDate}}",
95
97
  "anonymous": true,
96
98
  "idempotency_key": "pixiv:bot1:{{type}}:{{pixivId}}"
97
99
  },
@@ -122,6 +124,8 @@
122
124
  ],
123
125
  "note": "Pixiv ID: {{pixivId}}",
124
126
  "target_id": "{{targetId}}",
127
+ "slot_name": "{{slotName}}",
128
+ "slot_date": "{{slotDate}}",
125
129
  "anonymous": true,
126
130
  "idempotency_key": "pixiv:bot2:{{type}}:{{pixivId}}"
127
131
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA0DjF,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,IAAI,MAAM;CAYnB"}
1
+ {"version":3,"file":"SchedulerCommand.d.ts","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAOrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,oDAAoD;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAS;IACnC,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IA6GjF,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,IAAI,MAAM;CAYnB"}
@@ -8,6 +8,8 @@ const Command_1 = require("./Command");
8
8
  const metadata_1 = require("./metadata");
9
9
  const config_1 = require("../config");
10
10
  const MultiScheduleManager_1 = require("../scheduler/MultiScheduleManager");
11
+ const ScheduleTriggerServer_1 = require("../scheduler/ScheduleTriggerServer");
12
+ const SlotCoordinator_1 = require("../scheduler/SlotCoordinator");
11
13
  const scheduler_runtime_1 = require("./scheduler-runtime");
12
14
  /**
13
15
  * Scheduler command - Start scheduler (default if enabled in config)
@@ -45,8 +47,55 @@ class SchedulerCommand extends Command_1.BaseCommand {
45
47
  },
46
48
  });
47
49
  const status = manager.start(runtime.config);
50
+ // External mode: expose the authenticated Slot trigger HTTP server. The
51
+ // in-process cron is disabled (manager.init); runs arrive via POST only.
52
+ let triggerServer = null;
53
+ if (manager.isExternalMode(runtime.config)) {
54
+ const rt = runtime.config.schedulerRuntime;
55
+ const coordinator = new SlotCoordinator_1.SlotCoordinator(runtime.database);
56
+ const resolveConfig = () => manager['activeConfig'] ?? runtime.config;
57
+ triggerServer = new ScheduleTriggerServer_1.ScheduleTriggerServer(ScheduleTriggerServer_1.ScheduleTriggerServer.resolveToken(rt.trigger?.token), {
58
+ resolveSlot: (requested) => coordinator.resolveSlot(requested, resolveConfig()),
59
+ runScheduleSlot: async (scheduleId, slotCtx) => {
60
+ const cfg = resolveConfig();
61
+ const plan = cfg.schedules?.find((s) => s.id === scheduleId);
62
+ if (!plan) {
63
+ return { scheduleId, slotId: slotCtx.slotId, status: 'failed', cells: [], alreadyCompleted: false };
64
+ }
65
+ const slot = { ...slotCtx, triggerSource: 'external' };
66
+ const before = coordinator.begin(slot, plan);
67
+ if (before.alreadyCompleted) {
68
+ return coordinator.completedSummary(slot.slotId, plan);
69
+ }
70
+ // runJob performs begin/pendingTargets/finish against the ledger.
71
+ await runtime.runJob(cfg, plan, slot);
72
+ const rec = runtime.database.slots.getSlot(slot.slotId);
73
+ const cells = runtime.database.slots.getCells(slot.slotId).map((c) => ({
74
+ targetId: c.targetId,
75
+ status: c.status,
76
+ workId: c.workId,
77
+ error: c.lastError,
78
+ }));
79
+ return {
80
+ scheduleId,
81
+ slotId: slot.slotId,
82
+ status: rec?.status ?? 'failed',
83
+ alreadyCompleted: false,
84
+ cells,
85
+ };
86
+ },
87
+ status: () => ({
88
+ mode: 'external',
89
+ schedules: manager.scheduleIds(),
90
+ }),
91
+ });
92
+ const port = rt.trigger?.port ?? (Number(process.env.PORT) || 8090);
93
+ triggerServer.start(rt.trigger?.host ?? '0.0.0.0', port);
94
+ context.logger.info('External scheduler mode: internal cron disabled, awaiting authenticated Slot triggers', { port });
95
+ }
48
96
  const cleanup = () => {
49
97
  context.logger.info('Shutting down PixivFlow');
98
+ triggerServer?.stop();
50
99
  manager.stop();
51
100
  runtime.close();
52
101
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchedulerCommand.js","sourceRoot":"","sources":["../../src/commands/SchedulerCommand.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { Database } from '../storage/Database';
11
11
  import { PixivClient } from '../pixiv/PixivClient';
12
12
  import { FileService } from '../download/FileService';
13
13
  import { createTokenMaintenanceService } from '../utils/token-maintenance';
14
+ import { SlotContext } from '../scheduler/SlotCoordinator';
14
15
  import { JobFailure } from '../scheduler/Scheduler';
15
16
  export interface SchedulerRuntime {
16
17
  config: StandaloneConfig;
@@ -19,7 +20,7 @@ export interface SchedulerRuntime {
19
20
  fileService: FileService;
20
21
  tokenMaintenance: ReturnType<typeof createTokenMaintenanceService>;
21
22
  /** Run one schedule's enabled targets once (the same job the cron fires). */
22
- runJob(snapshot: StandaloneConfig, schedule: ScheduleConfig, targetFilter?: string): Promise<void>;
23
+ runJob(snapshot: StandaloneConfig, schedule: ScheduleConfig, targetFilter?: string | SlotContext, slot?: SlotContext): Promise<void>;
23
24
  /** Cancel the in-flight download plan, if any. */
24
25
  cancelActive(reason: string): void;
25
26
  /** Notify the affected review group after a failed scheduled run. */
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA6B,cAAc,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AACtG,OAAO,EAAE,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACnE,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,qBAAqB,CACnB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAsGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyG9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAcZ"}
1
+ {"version":3,"file":"scheduler-runtime.d.ts","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA6B,cAAc,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AACtG,OAAO,EAAE,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAmD,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACnE,6EAA6E;IAC7E,MAAM,CACJ,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,EACnC,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,qBAAqB,CACnB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAAC;CACf;AAsGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkL9F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAcZ"}
@@ -22,6 +22,7 @@ const DeliveryDispatcher_1 = require("../delivery/DeliveryDispatcher");
22
22
  const DeliveryOutbox_1 = require("../delivery/DeliveryOutbox");
23
23
  const token_maintenance_1 = require("../utils/token-maintenance");
24
24
  const schedules_1 = require("../scheduler/schedules");
25
+ const SlotCoordinator_1 = require("../scheduler/SlotCoordinator");
25
26
  const placeholders_1 = require("../config/placeholders");
26
27
  const logger_1 = require("../logger");
27
28
  /**
@@ -136,14 +137,17 @@ async function createSchedulerRuntime(configPathArg) {
136
137
  tokenMaintenance.start();
137
138
  }
138
139
  let activeDownloadManager = null;
139
- const runJob = async (snapshot, schedule, targetFilter) => {
140
+ const runJob = async (snapshot, schedule, targetFilter, slotArg) => {
141
+ // External trigger passes a SlotContext as the 3rd arg (no targetFilter);
142
+ // internal cron passes none. Normalize both.
143
+ const slot = slotArg ?? (targetFilter && typeof targetFilter === 'object' ? targetFilter : undefined);
144
+ const onlyTarget = targetFilter && typeof targetFilter === 'string' ? targetFilter : undefined;
140
145
  const runtimeConfig = (0, placeholders_1.processConfigPlaceholders)(snapshot);
141
146
  let targets = (0, schedules_1.selectScheduleTargets)(runtimeConfig.targets, schedule);
142
- if (targetFilter) {
147
+ if (onlyTarget) {
143
148
  // "重抓/换一张" 只重跑产生该审核的那一个 target。
144
- targets = targets.filter((t) => t.id === targetFilter);
149
+ targets = targets.filter((t) => t.id === onlyTarget);
145
150
  }
146
- const scopedConfig = { ...runtimeConfig, targets };
147
151
  if (targets.length === 0) {
148
152
  logger_1.logger.warn('Scheduled plan has no selected targets; skipping', {
149
153
  scheduleId: schedule.id,
@@ -151,9 +155,68 @@ async function createSchedulerRuntime(configPathArg) {
151
155
  });
152
156
  return;
153
157
  }
158
+ // Slot ledger: in external mode every run belongs to a named slot. Internal
159
+ // cron runs also get a slot (so the same idempotency/resume rules apply).
160
+ const coordinator = new SlotCoordinator_1.SlotCoordinator(database);
161
+ let slotCtx;
162
+ if (slot) {
163
+ slotCtx = slot;
164
+ }
165
+ else {
166
+ const tz = schedule.timezone ?? runtimeConfig.scheduler?.timezone;
167
+ const name = (0, SlotCoordinator_1.slotNameForNow)(tz);
168
+ const date = (0, SlotCoordinator_1.slotDateForNow)(tz);
169
+ slotCtx = { slotId: `${date}:${name}`, slotName: name, slotDate: date, triggerSource: 'cron' };
170
+ }
171
+ const begin = coordinator.begin(slotCtx, schedule);
172
+ if (begin.alreadyCompleted && !onlyTarget) {
173
+ logger_1.logger.info('Slot already terminal; nothing to do', { slot: slotCtx.slotId, status: begin.slotRec.status });
174
+ return;
175
+ }
176
+ // Skip cells that already reached a terminal state in this slot (resume
177
+ // never re-runs a finished cell — that is what prevents a second post).
178
+ const pending = coordinator.pendingTargets(slotCtx.slotId, targets);
179
+ const runTargets = (onlyTarget ? pending.filter((p) => p.target.id === onlyTarget) : pending).map((p) => p.target);
180
+ if (runTargets.length === 0) {
181
+ logger_1.logger.info('All slot cells already complete', { slot: slotCtx.slotId });
182
+ coordinator.finish(slotCtx, schedule, targets);
183
+ return;
184
+ }
185
+ const scopedConfig = {
186
+ ...runtimeConfig,
187
+ targets: runTargets.map((t) => ({
188
+ ...t,
189
+ delivery: t.delivery
190
+ ? { ...t.delivery, slotContext: { slotId: slotCtx.slotId, slotName: slotCtx.slotName, slotDate: slotCtx.slotDate } }
191
+ : t.delivery,
192
+ })),
193
+ };
154
194
  const downloadManager = new DownloadManager_1.DownloadManager(scopedConfig, pixivClient, database, fileService);
155
195
  activeDownloadManager = downloadManager;
156
196
  await downloadManager.initialise();
197
+ // Record cell outcomes into the slot ledger.
198
+ downloadManager.setWorkLockedHook((artifact, target) => {
199
+ if (!target.id)
200
+ return;
201
+ // First selection wins; retries/replays carry the same pixivId and the
202
+ // ledger COALESCE keeps it, so a retry never silently swaps the work.
203
+ coordinator.lockWork(slotCtx.slotId, target.id, artifact.pixivId, artifact.type);
204
+ });
205
+ downloadManager.setTargetOutcomeHook((target, error) => {
206
+ if (!target.id)
207
+ return;
208
+ if (!error) {
209
+ // Delivered (or queued in outbox, which retries the SAME work). Mark
210
+ // submitted; the work id is best-effort from the most recent download.
211
+ coordinator.markCell(slotCtx.slotId, target.id, 'submitted');
212
+ }
213
+ else if (/no matching|no_candidate|all .*filtered|already downloaded/i.test(error)) {
214
+ coordinator.markCell(slotCtx.slotId, target.id, 'no_candidate', error);
215
+ }
216
+ else {
217
+ coordinator.markCell(slotCtx.slotId, target.id, 'failed', error);
218
+ }
219
+ });
157
220
  // Apply initial delay if configured
158
221
  if (runtimeConfig.initialDelay && runtimeConfig.initialDelay > 0) {
159
222
  logger_1.logger.info(`Waiting ${runtimeConfig.initialDelay}ms before starting download...`, {
@@ -164,7 +227,8 @@ async function createSchedulerRuntime(configPathArg) {
164
227
  logger_1.logger.info('='.repeat(60));
165
228
  logger_1.logger.info('Starting scheduled Pixiv download plan', {
166
229
  scheduleId: schedule.id,
167
- targets: targets.map((target) => target.id ?? target.tag ?? target.filterTag ?? target.type),
230
+ slot: slotCtx.slotId,
231
+ targets: runTargets.map((target) => target.id ?? target.tag ?? target.filterTag ?? target.type),
168
232
  });
169
233
  logger_1.logger.info('='.repeat(60));
170
234
  const startTime = Date.now();
@@ -176,9 +240,11 @@ async function createSchedulerRuntime(configPathArg) {
176
240
  activeDownloadManager = null;
177
241
  }
178
242
  const duration = Math.round((Date.now() - startTime) / 1000);
243
+ coordinator.finish(slotCtx, schedule, targets);
179
244
  logger_1.logger.info('='.repeat(60));
180
245
  logger_1.logger.info(`Scheduled download plan finished (took ${duration}s)`, {
181
246
  scheduleId: schedule.id,
247
+ slot: slotCtx.slotId,
182
248
  });
183
249
  logger_1.logger.info('='.repeat(60));
184
250
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-runtime.js","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler-runtime.js","sourceRoot":"","sources":["../../src/commands/scheduler-runtime.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,16 @@ export declare const DEFAULT_CONFIG: {
19
19
  readonly timezone: "Asia/Shanghai";
20
20
  };
21
21
  readonly schedulerRuntime: {
22
+ readonly mode: "internal";
23
+ readonly catchUpMissedRuns: true;
22
24
  readonly watchConfig: true;
23
25
  readonly reloadDebounceMs: 500;
24
26
  readonly queueLimit: 8;
27
+ readonly trigger: {
28
+ readonly port: 8090;
29
+ readonly host: "0.0.0.0";
30
+ readonly graceMinutes: 90;
31
+ };
25
32
  };
26
33
  readonly download: {
27
34
  readonly concurrency: 3;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAyBxD"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAyBxD"}
@@ -22,9 +22,16 @@ exports.DEFAULT_CONFIG = {
22
22
  timezone: 'Asia/Shanghai',
23
23
  },
24
24
  schedulerRuntime: {
25
+ mode: 'internal',
26
+ catchUpMissedRuns: true,
25
27
  watchConfig: true,
26
28
  reloadDebounceMs: 500,
27
29
  queueLimit: 8,
30
+ trigger: {
31
+ port: 8090,
32
+ host: '0.0.0.0',
33
+ graceMinutes: 90,
34
+ },
28
35
  },
29
36
  download: {
30
37
  concurrency: 3,
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAwCH,sDAyBC;AA7DY,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAe;IACzB,OAAO,EAAE;QACP,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,IAAI;KACjB;IACD,OAAO,EAAE;QACP,YAAY,EAAE,4BAA4B;QAC1C,iBAAiB,EAAE,aAAa;KACjC;IACD,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,eAAe;KAC1B;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,CAAC;KACd;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,GAAG;QACjB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,KAAK;KACf;IACD,YAAY,EAAE,CAAC;CACP,CAAC;AAEX;;GAEG;AACH,SAAgB,qBAAqB;IACnC,OAAO;QACL,QAAQ,EAAE,sBAAc,CAAC,QAAQ;QACjC,KAAK,EAAE;YACL,QAAQ,EAAE,8BAA8B;YACxC,YAAY,EAAE,0CAA0C;YACxD,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,oBAAoB;YAClC,SAAS,EAAE,+CAA+C;SAC3D;QACD,OAAO,EAAE,sBAAc,CAAC,OAAO;QAC/B,OAAO,EAAE,sBAAc,CAAC,OAAO;QAC/B,SAAS,EAAE,sBAAc,CAAC,SAAS;QACnC,gBAAgB,EAAE,sBAAc,CAAC,gBAAgB;QACjD,QAAQ,EAAE,sBAAc,CAAC,QAAQ;QACjC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,wBAAwB;aACvC;SACF;QACD,YAAY,EAAE,sBAAc,CAAC,YAAY;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+CH,sDAyBC;AApEY,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAe;IACzB,OAAO,EAAE;QACP,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,IAAI;KACjB;IACD,OAAO,EAAE;QACP,YAAY,EAAE,4BAA4B;QAC1C,iBAAiB,EAAE,aAAa;KACjC;IACD,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,eAAe;KAC1B;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,UAAU;QAChB,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,CAAC;QACb,OAAO,EAAE;YACP,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,EAAE;SACjB;KACF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,GAAG;QACjB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,KAAK;KACf;IACD,YAAY,EAAE,CAAC;CACP,CAAC;AAEX;;GAEG;AACH,SAAgB,qBAAqB;IACnC,OAAO;QACL,QAAQ,EAAE,sBAAc,CAAC,QAAQ;QACjC,KAAK,EAAE;YACL,QAAQ,EAAE,8BAA8B;YACxC,YAAY,EAAE,0CAA0C;YACxD,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,oBAAoB;YAClC,SAAS,EAAE,+CAA+C;SAC3D;QACD,OAAO,EAAE,sBAAc,CAAC,OAAO;QAC/B,OAAO,EAAE,sBAAc,CAAC,OAAO;QAC/B,SAAS,EAAE,sBAAc,CAAC,SAAS;QACnC,gBAAgB,EAAE,sBAAc,CAAC,gBAAgB;QACjD,QAAQ,EAAE,sBAAc,CAAC,QAAQ;QACjC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,wBAAwB;aACvC;SACF;QACD,YAAY,EAAE,sBAAc,CAAC,YAAY;KAC1C,CAAC;AACJ,CAAC"}
@@ -43,6 +43,15 @@ export interface TargetDeliveryConfig {
43
43
  target: string;
44
44
  /** 覆盖该交付目标的表单字段,支持 {{title}} 等模板变量 */
45
45
  fields?: Record<string, DeliveryFieldValue>;
46
+ /**
47
+ * Schedule slot provenance injected at runtime for scheduled/external runs
48
+ * (not authored in config). Rendered as {{slotId}}/{{slotName}}/{{slotDate}}.
49
+ */
50
+ slotContext?: {
51
+ slotId: string;
52
+ slotName: string;
53
+ slotDate: string;
54
+ };
46
55
  }
47
56
  export interface TargetConfig {
48
57
  /**
@@ -368,6 +377,23 @@ export interface ScheduleConfig extends SchedulerConfig {
368
377
  targetIds?: string[];
369
378
  }
370
379
  export interface SchedulerRuntimeConfig {
380
+ /**
381
+ * Scheduler trigger source.
382
+ * - `internal` (default): the daemon owns the cron clock. Used on always-on
383
+ * hosts (VPS / Docker / systemd / Fly always-on / Fly Split's PixivFlow).
384
+ * - `external`: the daemon does NOT fire cron and does NOT catch up on start.
385
+ * Runs are driven by an authenticated HTTP Slot trigger (e.g. a Cloudflare
386
+ * cron worker waking a stopped Fly machine). Normal Telegram/webhook traffic
387
+ * that cold-starts the machine must never trigger a scheduled run.
388
+ */
389
+ mode?: 'internal' | 'external';
390
+ /**
391
+ * Internal-mode self-healing: at daemon start, if a cron fire was missed
392
+ * while the process was down (deploy/crash/restart on an always-on host),
393
+ * run that schedule once. Default true. Forced off in `external` mode where
394
+ * a stopped machine is the normal cost-saving state, not an outage.
395
+ */
396
+ catchUpMissedRuns?: boolean;
371
397
  /** Watch the active config and reload valid snapshots automatically. */
372
398
  watchConfig?: boolean;
373
399
  /** Debounce interval for atomic file replacements. Default: 500ms. */
@@ -377,6 +403,29 @@ export interface SchedulerRuntimeConfig {
377
403
  * One pending run per plan is retained; extra ticks are skipped.
378
404
  */
379
405
  queueLimit?: number;
406
+ /**
407
+ * External-mode HTTP trigger settings. Ignored in internal mode.
408
+ */
409
+ trigger?: SchedulerTriggerConfig;
410
+ }
411
+ /** Authenticated HTTP Slot trigger for `mode: external`. */
412
+ export interface SchedulerTriggerConfig {
413
+ /** Bind port for the trigger HTTP server. Default 8090. */
414
+ port?: number;
415
+ /** Bind host. Default 0.0.0.0 (Fly injects the port; host stays 0.0.0.0). */
416
+ host?: string;
417
+ /**
418
+ * Required bearer token. When unset the server reads SCHEDULER_TRIGGER_TOKEN
419
+ * from the environment. If neither is set the trigger endpoint refuses all
420
+ * requests (fails closed).
421
+ */
422
+ token?: string;
423
+ /**
424
+ * Minutes after a slot's scheduled time during which a trigger is accepted
425
+ * as a resume of that slot. Older slots are treated as expired and never
426
+ * back-filled. Default 90 (a 4-cell serial slot can take ~15-30 min).
427
+ */
428
+ graceMinutes?: number;
380
429
  }
381
430
  export interface HttpMultipartSuccessConfig {
382
431
  /** 可接受的 HTTP 状态码;缺省接受全部 2xx */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,MAAM,EAAE,MAAM,EAAE;aAChB,QAAQ,EAAE,MAAM,EAAE;gBAFlC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,GAAE,MAAM,EAAO;CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CA+W/G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB/G"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,MAAM,EAAE,MAAM,EAAE;aAChB,QAAQ,EAAE,MAAM,EAAE;gBAFlC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,GAAE,MAAM,EAAO;CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CA8X/G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB/G"}
@@ -336,13 +336,28 @@ function validateConfig(config, location, databasePath) {
336
336
  }
337
337
  }
338
338
  if (config.schedulerRuntime) {
339
- const { reloadDebounceMs, queueLimit } = config.schedulerRuntime;
339
+ const rt = config.schedulerRuntime;
340
+ const { reloadDebounceMs, queueLimit, mode, trigger } = rt;
341
+ if (mode !== undefined && mode !== 'internal' && mode !== 'external') {
342
+ errors.push('schedulerRuntime.mode: Must be "internal" or "external"');
343
+ }
344
+ if (rt.catchUpMissedRuns !== undefined && typeof rt.catchUpMissedRuns !== 'boolean') {
345
+ errors.push('schedulerRuntime.catchUpMissedRuns: Must be a boolean');
346
+ }
340
347
  if (reloadDebounceMs !== undefined && reloadDebounceMs < 100) {
341
348
  errors.push('schedulerRuntime.reloadDebounceMs: Must be at least 100');
342
349
  }
343
350
  if (queueLimit !== undefined && (!Number.isInteger(queueLimit) || queueLimit < 0 || queueLimit > 100)) {
344
351
  errors.push('schedulerRuntime.queueLimit: Must be an integer between 0 and 100');
345
352
  }
353
+ if (trigger) {
354
+ if (trigger.port !== undefined && (!Number.isInteger(trigger.port) || trigger.port < 1 || trigger.port > 65535)) {
355
+ errors.push('schedulerRuntime.trigger.port: Must be a valid TCP port');
356
+ }
357
+ if (trigger.graceMinutes !== undefined && (!Number.isInteger(trigger.graceMinutes) || trigger.graceMinutes < 1)) {
358
+ errors.push('schedulerRuntime.trigger.graceMinutes: Must be a positive integer (minutes)');
359
+ }
360
+ }
346
361
  }
347
362
  // Validate download config
348
363
  if (config.download) {