@mp-assistant/cli 0.1.3 → 0.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/server/api/modules/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAY1C,eAAO,MAAM,iBAAiB,GAAI,SAAS,eAAe,SAqKzD,CAAA"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/server/api/modules/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAc1C,eAAO,MAAM,iBAAiB,GAAI,SAAS,eAAe,SAsNzD,CAAA"}
@@ -2,12 +2,14 @@ import { WorkerStore } from "../../../store/WorkerStore.js";
2
2
  import { Api } from "@mp-assistant/common/dist/api/index.js";
3
3
  import { createWorker, isWXWorker } from "@mp-assistant/core/dist/worker/index.js";
4
4
  import { ConfigStore } from "../../../store/ConfigStore.js";
5
- import { createTask } from "@mp-assistant/core/dist/worker/wx/task/index.js";
5
+ import { createTask, isReleaseTask } from "@mp-assistant/core/dist/worker/wx/task/index.js";
6
6
  import { getSuccessApiResponse, getErrorApiResponse } from "@mp-assistant/common/dist/api/utils.js";
7
7
  import { WSStore } from "../../../store/WSStore.js";
8
8
  import { WSMessage } from "@mp-assistant/common/dist/ws/message.js";
9
9
  import { WSMessageEvent } from "../../../event/WSMessageEvent.js";
10
10
  import fs from 'fs';
11
+ import { WorkerStatus } from "@mp-assistant/common/dist/work/index.js";
12
+ import { TaskStatus } from "@mp-assistant/common/dist/work/task/const.js";
11
13
  export const registerWorkerApi = (fastify) => {
12
14
  fastify.get(Api.Worker.GetWorkerList.url, async (request, reply) => {
13
15
  const workerInfos = WorkerStore.instance.workerList.map(item => {
@@ -40,17 +42,35 @@ export const registerWorkerApi = (fastify) => {
40
42
  executablePath: ConfigStore.instance.config.executablePath,
41
43
  headless: ConfigStore.instance.config.headless,
42
44
  });
45
+ // 如果是微信worker则自动触发登录
46
+ if (isWXWorker(worker)) {
47
+ worker.login();
48
+ }
43
49
  WorkerStore.instance.addWorker(worker);
44
50
  WSStore.instance.broadcast(WSMessage.Worker.ListChange.createMessage());
45
51
  return getSuccessApiResponse(worker.info());
46
52
  });
53
+ fastify.post(Api.Worker.PauseAndRecoverWorker.url, async (request, reply) => {
54
+ const { key } = request.query;
55
+ const worker = WorkerStore.instance.workerList.find(item => item.key === key);
56
+ if (!worker) {
57
+ return getErrorApiResponse('Worker not found', 404);
58
+ }
59
+ worker.pauseAndRecover();
60
+ WSStore.instance.broadcast(WSMessage.Worker.ListChange.createMessage());
61
+ return getSuccessApiResponse(undefined, worker.status === WorkerStatus.PAUSED ? '暂停Worker成功' : '恢复Worker成功');
62
+ });
47
63
  fastify.delete(Api.Worker.RemoveWorker.url, async (request, reply) => {
48
64
  const { key } = request.query;
49
65
  const worker = WorkerStore.instance.workerList.find(item => item.key === key);
50
66
  if (!worker) {
51
67
  return getErrorApiResponse('Worker not found', 404);
52
68
  }
53
- await worker.destroy();
69
+ // 如果任务正在运行则不能删除
70
+ if (worker.taskList.some(item => item.status === TaskStatus.RUNNING)) {
71
+ return getErrorApiResponse('Worker正在运行中,请先暂停,或者等任务执行完成后再删除', 400);
72
+ }
73
+ worker.destroy();
54
74
  WorkerStore.instance.removeWorker(worker);
55
75
  WSStore.instance.broadcast(WSMessage.Worker.ListChange.createMessage());
56
76
  return getSuccessApiResponse(undefined);
@@ -143,4 +163,23 @@ export const registerWorkerApi = (fastify) => {
143
163
  }
144
164
  return getSuccessApiResponse(task.info());
145
165
  });
166
+ fastify.post(Api.Worker.GetPublishQRCode.url, async (request, reply) => {
167
+ const { key, taskKey } = request.query;
168
+ const worker = WorkerStore.instance.workerList.find(item => item.key === key);
169
+ if (!worker) {
170
+ return getErrorApiResponse('Worker not found', 404);
171
+ }
172
+ const task = worker.taskList.find(item => item.key === taskKey);
173
+ if (!task) {
174
+ return getErrorApiResponse('Task not found', 404);
175
+ }
176
+ if (!isReleaseTask(task)) {
177
+ return getErrorApiResponse('Task type not supported', 400);
178
+ }
179
+ const qrCodeLoadingStatus = await task.getQrcodePath();
180
+ if (!qrCodeLoadingStatus) {
181
+ return getErrorApiResponse('Publish QR code path not found', 404);
182
+ }
183
+ return getSuccessApiResponse(undefined);
184
+ });
146
185
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mp-assistant/cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -19,14 +19,14 @@
19
19
  "dayjs": "^1.11.13",
20
20
  "fastify": "^5.7.4",
21
21
  "ws": "^8.19.0",
22
- "@mp-assistant/common": "0.1.3",
23
- "@mp-assistant/dashboard": "0.1.3",
24
- "@mp-assistant/core": "0.1.3"
22
+ "@mp-assistant/common": "0.1.4",
23
+ "@mp-assistant/core": "0.1.4",
24
+ "@mp-assistant/dashboard": "0.1.4"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/ws": "^8.18.1",
28
- "@mp-assistant/configuration": "0.1.3",
29
- "@mp-assistant/scripts": "0.1.3"
28
+ "@mp-assistant/configuration": "0.1.4",
29
+ "@mp-assistant/scripts": "0.1.4"
30
30
  },
31
31
  "repository": {
32
32
  "type": "git",