@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.
- package/dist/templates/check-upload.d.ts +3 -0
- package/dist/templates/check-upload.js +17 -0
- package/dist/templates/tasks/actions.d.ts +4 -0
- package/dist/templates/tasks/actions.js +2 -1
- package/dist/templates/tasks/check-task.d.ts +7 -0
- package/dist/templates/tasks/check-task.js +52 -0
- package/dist/templates/tasks/effect-task.js +2 -1
- package/dist/templates/tasks/fk.service.js +2 -1
- package/dist/templates/tasks/providers.js +6 -0
- package/docs.md +2 -0
- package/package.json +1 -1
@@ -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])
|
@@ -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,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, {
|
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