@nger/fk-upload 1.0.90 → 1.0.93

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.
@@ -29,4 +29,7 @@ export declare class CheckUploadController {
29
29
  checkWaitUploadTask(): Promise<{
30
30
  list: string[];
31
31
  }>;
32
+ checkFinish(): Promise<{
33
+ list: string[];
34
+ }>;
32
35
  }
@@ -11,6 +11,7 @@ const http_1 = require("@nger/http");
11
11
  const typeorm_2 = require("typeorm");
12
12
  const fs_extra_1 = require("fs-extra");
13
13
  const task_service_1 = require("./tasks/task.service");
14
+ const actions_1 = require("./tasks/actions");
14
15
  let CheckUploadController = class CheckUploadController {
15
16
  db;
16
17
  manager;
@@ -100,6 +101,16 @@ let CheckUploadController = class CheckUploadController {
100
101
  list: list.map(item => item.filename)
101
102
  };
102
103
  }
104
+ async checkFinish() {
105
+ const finishs = await this.db.manager.find(fk_download_task_entity_1.FkDownloadTaskEntity, { where: { status: 3 } });
106
+ await Promise.all(finishs.map(finish => {
107
+ const item = new rabbitmq_1.TaskEntity();
108
+ item.topic = actions_1.CHECK_ACTION;
109
+ item.data = { filename: finish.filename };
110
+ this.manager.send(item);
111
+ }));
112
+ return { list: finishs.map(it => it.filename) };
113
+ }
103
114
  };
104
115
  tslib_1.__decorate([
105
116
  (0, http_1.Get)('reupload'),
@@ -143,6 +154,12 @@ tslib_1.__decorate([
143
154
  tslib_1.__metadata("design:paramtypes", []),
144
155
  tslib_1.__metadata("design:returntype", Promise)
145
156
  ], CheckUploadController.prototype, "checkWaitUploadTask", null);
157
+ tslib_1.__decorate([
158
+ (0, http_1.Get)('checkFinish'),
159
+ tslib_1.__metadata("design:type", Function),
160
+ tslib_1.__metadata("design:paramtypes", []),
161
+ tslib_1.__metadata("design:returntype", Promise)
162
+ ], CheckUploadController.prototype, "checkFinish", null);
146
163
  CheckUploadController = tslib_1.__decorate([
147
164
  (0, core_1.Controller)(`@nger/fk-upload`),
148
165
  tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, rabbitmq_1.TaskManager, core_1.Injector])
@@ -37,3 +37,7 @@ export interface IEffectTask {
37
37
  path: string;
38
38
  }
39
39
  export declare const EFFECT_ACTION: StringToken<IEffectTask>;
40
+ export interface ICheckTask {
41
+ filename: string;
42
+ }
43
+ export declare const CHECK_ACTION: StringToken<IEffectTask>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EFFECT_ACTION = exports.UPLOAD_ACTION = exports.SCHEDULE_ACTION = exports.DOWNLOAD_ACTION = void 0;
3
+ exports.CHECK_ACTION = exports.EFFECT_ACTION = exports.UPLOAD_ACTION = exports.SCHEDULE_ACTION = exports.DOWNLOAD_ACTION = void 0;
4
4
  exports.DOWNLOAD_ACTION = `@nger/fk-upload/download-task`;
5
5
  exports.SCHEDULE_ACTION = `@nger/fk-upload/schedule-task`;
6
6
  exports.UPLOAD_ACTION = `@nger/fk-upload/upload-task`;
7
7
  exports.EFFECT_ACTION = `@nger/fk-upload/effect-task`;
8
+ exports.CHECK_ACTION = `@nger/fk-upload/check-task`;
@@ -0,0 +1,7 @@
1
+ import { Task } from '@nger/rabbitmq';
2
+ import { Next, Injector } from '@nger/core';
3
+ export declare class CheckTask extends Task {
4
+ constructor();
5
+ handle(injector: Injector, next?: Next): Promise<void>;
6
+ getSize(url: string): Promise<number>;
7
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CheckTask = void 0;
4
+ const fk_download_task_entity_1 = require("./../../entities/fk-download-task.entity");
5
+ const typeorm_1 = require("@nger/typeorm");
6
+ const actions_1 = require("./actions");
7
+ const rabbitmq_1 = require("@nger/rabbitmq");
8
+ const core_1 = require("@nger/core");
9
+ const request_1 = require("request");
10
+ class CheckTask extends rabbitmq_1.Task {
11
+ constructor() {
12
+ super(actions_1.CHECK_ACTION);
13
+ }
14
+ async handle(injector, next) {
15
+ const data = injector.get(rabbitmq_1.DATA);
16
+ const complete = injector.get(rabbitmq_1.COMPLETE);
17
+ const db = injector.get(typeorm_1.Db);
18
+ const task = injector.get(rabbitmq_1.TaskManager);
19
+ const filename = data.filename;
20
+ if (filename) {
21
+ const finishs = await db.manager.findOne(fk_download_task_entity_1.FkDownloadTaskEntity, { where: { filename } });
22
+ const uploadSize = await this.getSize(finishs.uploadUrl);
23
+ const downloadSize = await this.getSize(finishs.url);
24
+ if (uploadSize === downloadSize) {
25
+ await complete();
26
+ }
27
+ else {
28
+ console.log({ uploadSize, downloadSize });
29
+ await complete();
30
+ }
31
+ }
32
+ else {
33
+ await complete();
34
+ }
35
+ return next && next();
36
+ }
37
+ async getSize(url) {
38
+ const size = (0, core_1.defer)();
39
+ const req = (0, request_1.get)(url, {
40
+ headers: {
41
+ 'Content-Type': 'application/octet-stream'
42
+ }
43
+ });
44
+ req.on('response', async (resp) => {
45
+ const headers = resp.headers;
46
+ size.resolve(Number(headers["content-length"]));
47
+ req.destroy();
48
+ });
49
+ return size;
50
+ }
51
+ }
52
+ exports.CheckTask = CheckTask;
@@ -14,6 +14,7 @@ class EffectTask extends rabbitmq_1.Task {
14
14
  async handle(injector, next) {
15
15
  const task = injector.get(rabbitmq_1.DATA);
16
16
  const complete = injector.get(rabbitmq_1.COMPLETE);
17
+ console.log(`effect`, task.filename);
17
18
  if (task.uploadUrl.startsWith('https://site')) {
18
19
  await complete();
19
20
  return next && next();
@@ -27,7 +28,7 @@ class EffectTask extends rabbitmq_1.Task {
27
28
  await (0, fs_extra_1.unlink)(task.path);
28
29
  }
29
30
  catch (e) { }
30
- await w7.manager.update(w7_1.W7ChatTopicEntity, task.topicId, { thirdUrl: task.uploadUrl }).then(() => complete()).catch(() => fail());
31
+ await w7.manager.update(w7_1.W7ChatTopicEntity, task.topicId, { foreverUrl: task.uploadUrl }).then(() => complete()).catch(() => fail());
31
32
  await complete();
32
33
  }
33
34
  else {
@@ -162,9 +162,10 @@ let FkService = class FkService {
162
162
  task.uploadUrl = fullUrl;
163
163
  }
164
164
  }
165
- console.log(`uploading ${task.filename} ${Math.floor((index + 1 / task.totalChunks))}%`);
165
+ // console.log(`uploading ${task.filename} ${Math.floor((index + 1 / task.totalChunks))}%`)
166
166
  index = index + 1;
167
167
  } while (!complete);
168
+ index = 0;
168
169
  // upload complete
169
170
  axios_1.default.post(`https://smr00.vip.webportal.top/ajax/advanceUpload.jsp?cmd=_report&_TOKEN=${task.token}`, this.encodeURIComponent({
170
171
  type: 1,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tasksProviders = void 0;
4
+ const check_task_1 = require("./check-task");
4
5
  const rabbitmq_1 = require("@nger/rabbitmq");
5
6
  const download_task_1 = require("./download-task");
6
7
  const effect_task_1 = require("./effect-task");
@@ -26,5 +27,10 @@ exports.tasksProviders = [
26
27
  provide: rabbitmq_1.Task,
27
28
  useFactory: () => new effect_task_1.EffectTask(),
28
29
  multi: true
30
+ },
31
+ {
32
+ provide: rabbitmq_1.Task,
33
+ useFactory: () => new check_task_1.CheckTask(),
34
+ multi: true
29
35
  }
30
36
  ];
package/docs.md CHANGED
@@ -5,6 +5,8 @@
5
5
  ```ts
6
6
  ssh root@111.229.255.176
7
7
  Yang1989.
8
+
9
+ http://49.235.92.214:8889/a31539ae/
8
10
  ```
9
11
 
10
12
  ### manage url
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nger/fk-upload",
3
- "version": "1.0.90",
3
+ "version": "1.0.93",
4
4
  "description": "",
5
5
  "main": "dist/core.js",
6
6
  "types": "dist/core.d.ts",