@nger/fk-upload 1.0.201 → 1.0.204
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{templates → controllers}/code.d.ts +0 -0
- package/dist/{templates → controllers}/code.js +2 -1
- package/dist/controllers/relogin.d.ts +8 -0
- package/dist/controllers/relogin.js +42 -0
- package/dist/{templates → controllers}/verify.d.ts +0 -0
- package/dist/{templates → controllers}/verify.js +0 -0
- package/dist/entities/check-task.d.ts +13 -0
- package/dist/entities/check-task.js +221 -0
- package/dist/entities/download-task.d.ts +23 -0
- package/dist/entities/download-task.js +445 -0
- package/dist/entities/effect-task.d.ts +12 -0
- package/dist/entities/effect-task.js +207 -0
- package/dist/entities/fk-account.d.ts +16 -0
- package/dist/entities/fk-account.js +295 -0
- package/dist/entities/fk-jiqun.d.ts +5 -0
- package/dist/entities/fk-jiqun.js +56 -0
- package/dist/entities/upload-task.d.ts +15 -0
- package/dist/entities/upload-task.js +333 -0
- package/dist/entities/w7-account.d.ts +11 -0
- package/dist/entities/w7-account.js +126 -0
- package/dist/entities/w7.d.ts +10 -0
- package/dist/entities/w7.js +107 -0
- package/dist/entities/w7_chat_topic.d.ts +9 -0
- package/dist/entities/w7_chat_topic.js +58 -0
- package/dist/entities/w7_uni_account.d.ts +4 -0
- package/dist/entities/w7_uni_account.js +23 -0
- package/dist/fk-upload.module.d.ts +5 -0
- package/dist/fk-upload.module.js +76 -43
- package/dist/main.d.ts +1 -0
- package/dist/main.js +18 -29
- package/dist/services/check.service.d.ts +6 -0
- package/dist/services/check.service.js +32 -0
- package/dist/services/client.service.d.ts +6 -0
- package/dist/services/client.service.js +29 -0
- package/dist/services/download.service.d.ts +15 -0
- package/dist/services/download.service.js +139 -0
- package/dist/services/effect.service.d.ts +7 -0
- package/dist/services/effect.service.js +34 -0
- package/dist/services/fk.service.d.ts +24 -0
- package/dist/services/fk.service.js +323 -0
- package/dist/services/login.service.d.ts +17 -0
- package/dist/services/login.service.js +95 -0
- package/dist/services/upload.service.d.ts +13 -0
- package/dist/services/upload.service.js +100 -0
- package/dist/tasks/actions.d.ts +28 -0
- package/dist/tasks/actions.js +12 -0
- package/dist/{templates/tasks/schedule-task.d.ts → tasks/check-task.d.ts} +3 -5
- package/dist/tasks/check-task.js +205 -0
- package/dist/tasks/download-continue-task.d.ts +9 -0
- package/dist/tasks/download-continue-task.js +127 -0
- package/dist/{templates/tasks → tasks}/download-task.d.ts +0 -1
- package/dist/tasks/download-task.js +128 -0
- package/dist/{templates/tasks → tasks}/effect-task.d.ts +1 -1
- package/dist/tasks/effect-task.js +111 -0
- package/dist/{templates/tasks → tasks}/providers.d.ts +0 -0
- package/dist/{templates/tasks → tasks}/providers.js +11 -5
- package/dist/tasks/upload-continue-task.d.ts +8 -0
- package/dist/tasks/upload-continue-task.js +114 -0
- package/dist/{templates/tasks → tasks}/upload-task.d.ts +0 -0
- package/dist/tasks/upload-task.js +114 -0
- package/package.json +18 -14
- package/pnpm-lock.yaml +36 -1435
- package/dist/electon.d.ts +0 -3
- package/dist/electon.js +0 -80
- package/dist/entities/fk-download-task.entity.d.ts +0 -18
- package/dist/entities/fk-download-task.entity.js +0 -142
- package/dist/entities/fk-login-cookie.entity.d.ts +0 -7
- package/dist/entities/fk-login-cookie.entity.js +0 -46
- package/dist/entities/fk-login.entity.d.ts +0 -12
- package/dist/entities/fk-login.entity.js +0 -80
- package/dist/entities/index.d.ts +0 -3
- package/dist/entities/index.js +0 -6
- package/dist/login.controller.d.ts +0 -14
- package/dist/login.controller.js +0 -197
- package/dist/mq-runner.d.ts +0 -5
- package/dist/mq-runner.js +0 -19
- package/dist/static/task-manage.d.ts +0 -6
- package/dist/static/task-manage.js +0 -34
- package/dist/templates/add-fk-login.d.ts +0 -12
- package/dist/templates/add-fk-login.js +0 -93
- package/dist/templates/add-task.d.ts +0 -13
- package/dist/templates/add-task.js +0 -78
- package/dist/templates/check-upload.d.ts +0 -38
- package/dist/templates/check-upload.js +0 -195
- package/dist/templates/component.d.ts +0 -10
- package/dist/templates/component.js +0 -39
- package/dist/templates/error.d.ts +0 -4
- package/dist/templates/error.js +0 -27
- package/dist/templates/help.d.ts +0 -7
- package/dist/templates/help.js +0 -52
- package/dist/templates/player.d.ts +0 -4
- package/dist/templates/player.js +0 -23
- package/dist/templates/setting.d.ts +0 -13
- package/dist/templates/setting.js +0 -65
- package/dist/templates/task-manage.d.ts +0 -21
- package/dist/templates/task-manage.js +0 -314
- package/dist/templates/tasks/actions.d.ts +0 -44
- package/dist/templates/tasks/actions.js +0 -9
- package/dist/templates/tasks/check-task.d.ts +0 -8
- package/dist/templates/tasks/check-task.js +0 -89
- package/dist/templates/tasks/download-task.js +0 -130
- package/dist/templates/tasks/effect-task.js +0 -76
- package/dist/templates/tasks/fk.service.d.ts +0 -28
- package/dist/templates/tasks/fk.service.js +0 -254
- package/dist/templates/tasks/schedule-task.js +0 -94
- package/dist/templates/tasks/task.service.d.ts +0 -11
- package/dist/templates/tasks/task.service.js +0 -114
- package/dist/templates/tasks/upload-task.js +0 -97
- package/dist/templates/tasks/yasuo-task.d.ts +0 -0
- package/dist/templates/tasks/yasuo-task.js +0 -0
- package/dist/templates/upload-task.d.ts +0 -9
- package/dist/templates/upload-task.js +0 -141
- package/dist/templates/upload.d.ts +0 -16
- package/dist/templates/upload.js +0 -232
- package/dist/urlSafeBase64Decode.d.ts +0 -3
- package/dist/urlSafeBase64Decode.js +0 -32
- package/electron/.env +0 -32
- package/electron/package.json +0 -31
- package/electron/pnpm-lock.yaml +0 -2878
- package/fk-upload-pc/.vscode/extensions.json +0 -3
- package/fk-upload-pc/README.md +0 -16
- package/fk-upload-pc/index.html +0 -13
- package/fk-upload-pc/package.json +0 -19
- package/fk-upload-pc/pnpm-lock.yaml +0 -489
- package/fk-upload-pc/public/favicon.ico +0 -0
- package/fk-upload-pc/tsconfig.json +0 -18
- package/fk-upload-pc/tsconfig.node.json +0 -8
- package/fk-upload-pc/vite.config.ts +0 -7
@@ -1,65 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.SettingController = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const core_1 = require("@nger/core");
|
6
|
-
const http_1 = require("@nger/http");
|
7
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
8
|
-
const component_1 = require("./component");
|
9
|
-
const task_service_1 = require("./tasks/task.service");
|
10
|
-
const actions_1 = require("./tasks/actions");
|
11
|
-
const rabbitmq_1 = require("@nger/rabbitmq");
|
12
|
-
const typeorm_1 = require("@nger/typeorm");
|
13
|
-
let SettingController = class SettingController {
|
14
|
-
task;
|
15
|
-
manager;
|
16
|
-
db;
|
17
|
-
constructor(task, manager, db) {
|
18
|
-
this.task = task;
|
19
|
-
this.manager = manager;
|
20
|
-
this.db = db;
|
21
|
-
}
|
22
|
-
async saveSetting(body, taskId, ctx) {
|
23
|
-
const task = await this.task.createScheduleTask(body.name, body.rule, Number(taskId));
|
24
|
-
await this.manager.send(task);
|
25
|
-
ctx.redirect(`/@nger/fk-upload/setting`);
|
26
|
-
return;
|
27
|
-
}
|
28
|
-
async setting() {
|
29
|
-
const task = await this.db.manager.findOne(rabbitmq_1.TaskEntity, { where: { topic: actions_1.SCHEDULE_ACTION } });
|
30
|
-
const setting = task ? task.data : {};
|
31
|
-
const taskId = task ? task.taskId : 0;
|
32
|
-
const url = `/@nger/fk-upload/setting?id=${taskId}`;
|
33
|
-
return react_1.default.createElement(component_1.Nav, { active: 4 },
|
34
|
-
react_1.default.createElement("form", { action: url, method: 'post', encType: 'application/x-www-form-urlencoded' },
|
35
|
-
react_1.default.createElement("div", { className: "mb-3" },
|
36
|
-
react_1.default.createElement("label", { htmlFor: "name" }, "\u540D\u79F0"),
|
37
|
-
react_1.default.createElement("input", { type: "text", className: 'form-control', onChange: e => { }, value: setting.name, id: "name", name: "name" })),
|
38
|
-
react_1.default.createElement("div", { className: "mb-3" },
|
39
|
-
react_1.default.createElement("label", { htmlFor: "rule" }, "\u89C4\u5219"),
|
40
|
-
react_1.default.createElement("input", { type: "text", className: 'form-control', onChange: e => { }, value: setting.rule, id: "rule", name: "rule" })),
|
41
|
-
react_1.default.createElement("div", { className: "mb-3" },
|
42
|
-
react_1.default.createElement("button", { type: "submit", className: 'btn btn-primary' }, "\u4FDD\u5B58"),
|
43
|
-
react_1.default.createElement("button", { type: "reset", className: 'btn' }, "\u91CD\u7F6E"))));
|
44
|
-
}
|
45
|
-
};
|
46
|
-
tslib_1.__decorate([
|
47
|
-
(0, http_1.Post)('setting'),
|
48
|
-
tslib_1.__param(0, (0, http_1.Body)()),
|
49
|
-
tslib_1.__param(1, (0, http_1.Query)('id')),
|
50
|
-
tslib_1.__param(2, (0, core_1.Inject)(http_1.CONTEXT)),
|
51
|
-
tslib_1.__metadata("design:type", Function),
|
52
|
-
tslib_1.__metadata("design:paramtypes", [Object, Number, Object]),
|
53
|
-
tslib_1.__metadata("design:returntype", Promise)
|
54
|
-
], SettingController.prototype, "saveSetting", null);
|
55
|
-
tslib_1.__decorate([
|
56
|
-
(0, http_1.Get)(`setting`),
|
57
|
-
tslib_1.__metadata("design:type", Function),
|
58
|
-
tslib_1.__metadata("design:paramtypes", []),
|
59
|
-
tslib_1.__metadata("design:returntype", Promise)
|
60
|
-
], SettingController.prototype, "setting", null);
|
61
|
-
SettingController = tslib_1.__decorate([
|
62
|
-
(0, core_1.Controller)(`@nger/fk-upload`),
|
63
|
-
tslib_1.__metadata("design:paramtypes", [task_service_1.TaskService, rabbitmq_1.TaskManager, typeorm_1.Db])
|
64
|
-
], SettingController);
|
65
|
-
exports.SettingController = SettingController;
|
@@ -1,21 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
import { Config } from '@nger/core';
|
3
|
-
import { Db } from '@nger/typeorm';
|
4
|
-
import { Context } from 'koa';
|
5
|
-
import { W7DataSource } from '@nger/w7';
|
6
|
-
export declare class TaskManageController {
|
7
|
-
private db;
|
8
|
-
private config;
|
9
|
-
private w7;
|
10
|
-
constructor(db: Db, config: Config, w7: W7DataSource);
|
11
|
-
toUrl(query: any): string;
|
12
|
-
createPages(total: number, query: any, page: number): {
|
13
|
-
index: number;
|
14
|
-
link: string;
|
15
|
-
cls: string;
|
16
|
-
}[];
|
17
|
-
taskManage(query: any): Promise<JSX.Element>;
|
18
|
-
downloadFile(url: string, back: string, ctx: Context): void;
|
19
|
-
staticTaskManage(ctx: Context): any;
|
20
|
-
finishTask(filename: string, callback: string, ctx: Context): Promise<void>;
|
21
|
-
}
|
@@ -1,314 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.TaskManageController = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const core_1 = require("@nger/core");
|
6
|
-
const http_1 = require("@nger/http");
|
7
|
-
const typeorm_1 = require("@nger/typeorm");
|
8
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
9
|
-
const entities_1 = require("../entities");
|
10
|
-
const component_1 = require("./component");
|
11
|
-
const fs_extra_1 = require("fs-extra");
|
12
|
-
const path_1 = require("path");
|
13
|
-
function getStatusTitle(status) {
|
14
|
-
switch (status) {
|
15
|
-
case 0:
|
16
|
-
return '待下载';
|
17
|
-
case 1:
|
18
|
-
return '待上传';
|
19
|
-
case 2:
|
20
|
-
return '待生效';
|
21
|
-
case 3:
|
22
|
-
return '已完成';
|
23
|
-
default:
|
24
|
-
return '未知';
|
25
|
-
}
|
26
|
-
}
|
27
|
-
// import { BrowserWindow } from 'electron'
|
28
|
-
const w7_1 = require("@nger/w7");
|
29
|
-
let TaskManageController = class TaskManageController {
|
30
|
-
db;
|
31
|
-
config;
|
32
|
-
w7;
|
33
|
-
constructor(db, config, w7) {
|
34
|
-
this.db = db;
|
35
|
-
this.config = config;
|
36
|
-
this.w7 = w7;
|
37
|
-
}
|
38
|
-
toUrl(query) {
|
39
|
-
return Object.keys(query).map(key => `${key}=${decodeURIComponent(query[key])}`).join('&');
|
40
|
-
}
|
41
|
-
createPages(total, query, page) {
|
42
|
-
const list = [];
|
43
|
-
const first = 10;
|
44
|
-
for (let i = 0; i < total; i++) {
|
45
|
-
const d = i + 1;
|
46
|
-
const min = page - first;
|
47
|
-
let max = page + first;
|
48
|
-
if (min < 0) {
|
49
|
-
max += -min;
|
50
|
-
}
|
51
|
-
if (d > min && d < max) {
|
52
|
-
if (d === page) {
|
53
|
-
list.push({
|
54
|
-
index: d,
|
55
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({
|
56
|
-
...query,
|
57
|
-
page: d
|
58
|
-
})}`,
|
59
|
-
cls: `page-item active`
|
60
|
-
});
|
61
|
-
}
|
62
|
-
else {
|
63
|
-
list.push({
|
64
|
-
index: d,
|
65
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({
|
66
|
-
...query,
|
67
|
-
page: d
|
68
|
-
})}`,
|
69
|
-
cls: `page-item`
|
70
|
-
});
|
71
|
-
}
|
72
|
-
}
|
73
|
-
}
|
74
|
-
return list;
|
75
|
-
}
|
76
|
-
async taskManage(query) {
|
77
|
-
const where = {};
|
78
|
-
let page = 1;
|
79
|
-
let psize = 10;
|
80
|
-
let status = -1;
|
81
|
-
let big = -1;
|
82
|
-
where.status = 0;
|
83
|
-
where.isBigFile = true;
|
84
|
-
if (query && typeof query.status !== 'undefined') {
|
85
|
-
status = Number(query.status);
|
86
|
-
if (status !== -1) {
|
87
|
-
where.status = status;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
if (query && typeof query.isBigFile !== 'undefined') {
|
91
|
-
big = Number(query.isBigFile);
|
92
|
-
if (big !== -1) {
|
93
|
-
where.isBigFile = Boolean(big);
|
94
|
-
}
|
95
|
-
}
|
96
|
-
if (query && typeof query.page !== 'undefined') {
|
97
|
-
page = Number(query.page);
|
98
|
-
}
|
99
|
-
if (query && typeof query.psize !== 'undefined') {
|
100
|
-
psize = Number(query.psize);
|
101
|
-
}
|
102
|
-
const take = psize;
|
103
|
-
const skip = (page - 1) * psize;
|
104
|
-
const tasks = await this.db.manager.find(entities_1.FkDownloadTaskEntity, { where, order: { createDate: "DESC" }, take, skip });
|
105
|
-
await Promise.all(tasks.map(async (task) => {
|
106
|
-
if (!task.topicName) {
|
107
|
-
const topic = await this.w7.manager.findOne(w7_1.W7ChatTopicEntity, { where: { id: task.topicId } });
|
108
|
-
if (topic) {
|
109
|
-
task.topicName = topic.topicName;
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}));
|
113
|
-
const count = await this.db.manager.count(entities_1.FkDownloadTaskEntity, { where });
|
114
|
-
// const downloadSize = await this.db.manager.find();
|
115
|
-
const totalPage = Math.ceil(count / psize);
|
116
|
-
const pre = {
|
117
|
-
...query,
|
118
|
-
page: page - 1 > 0 ? page - 1 : 1
|
119
|
-
};
|
120
|
-
const preUrl = `/@nger/fk-upload/task-manage?${this.toUrl(pre)}`;
|
121
|
-
const next = {
|
122
|
-
...query,
|
123
|
-
page: page + 1 < totalPage ? page + 1 : totalPage
|
124
|
-
};
|
125
|
-
const nextUrl = `/@nger/fk-upload/task-manage?${this.toUrl(next)}`;
|
126
|
-
const pages = this.createPages(totalPage, query, page);
|
127
|
-
const bigNav = [{
|
128
|
-
title: '不限',
|
129
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: -1, page: 1 })}`,
|
130
|
-
key: -1
|
131
|
-
}, {
|
132
|
-
title: '大于1G',
|
133
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 1, page: 1 })}`,
|
134
|
-
key: 1
|
135
|
-
}, {
|
136
|
-
title: '小于1G',
|
137
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 0, page: 1 })}`,
|
138
|
-
key: 0
|
139
|
-
}];
|
140
|
-
const navs = [{
|
141
|
-
title: '不限',
|
142
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: -1, page: 1 })}`,
|
143
|
-
key: -1
|
144
|
-
}, {
|
145
|
-
title: '待下载',
|
146
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 0, page: 1 })}`,
|
147
|
-
key: 0
|
148
|
-
}, {
|
149
|
-
title: '待上传',
|
150
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 1, page: 1 })}`,
|
151
|
-
key: 1
|
152
|
-
}, {
|
153
|
-
title: '待生效',
|
154
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 2, page: 1 })}`,
|
155
|
-
key: 2
|
156
|
-
}, {
|
157
|
-
title: '已完成',
|
158
|
-
link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 3, page: 1 })}`,
|
159
|
-
key: 3
|
160
|
-
}];
|
161
|
-
const finishCallback = `/@nger/fk-upload/task-manage?${this.toUrl({
|
162
|
-
page: page,
|
163
|
-
psize: psize,
|
164
|
-
isBigFile: where.isBigFile ? 1 : 0,
|
165
|
-
status: where.status,
|
166
|
-
...query
|
167
|
-
})}`;
|
168
|
-
const finishUrl = (filename) => `/@nger/fk-upload/finish-task?filename=${encodeURIComponent(filename)}&callback=${encodeURIComponent(finishCallback)}`;
|
169
|
-
const logins = await this.db.manager.find(entities_1.FkLoginEntity, { where: {} });
|
170
|
-
const getLogin = (id) => {
|
171
|
-
return logins.find(it => it.fkLoginId = id);
|
172
|
-
};
|
173
|
-
return react_1.default.createElement(component_1.Nav, { active: 2 },
|
174
|
-
react_1.default.createElement("ul", { className: "nav nav-pills", style: { marginBottom: "10px" } }, navs.map((nav, key) => {
|
175
|
-
let cls = `nav-link`;
|
176
|
-
if (status === nav.key) {
|
177
|
-
cls += ` active`;
|
178
|
-
}
|
179
|
-
return react_1.default.createElement("li", { key: key, className: "nav-item" },
|
180
|
-
react_1.default.createElement("a", { className: cls, href: nav.link }, nav.title));
|
181
|
-
})),
|
182
|
-
react_1.default.createElement("ul", { className: 'nav nav-pills', style: { marginBottom: "10px" } }, bigNav.map((nav, key) => {
|
183
|
-
let cls = `nav-link`;
|
184
|
-
if (big === nav.key) {
|
185
|
-
cls += ` active`;
|
186
|
-
}
|
187
|
-
return react_1.default.createElement("li", { key: key, className: "nav-item" },
|
188
|
-
react_1.default.createElement("a", { className: cls, href: nav.link }, nav.title));
|
189
|
-
})),
|
190
|
-
react_1.default.createElement("script", { dangerouslySetInnerHTML: {
|
191
|
-
__html: `
|
192
|
-
window.WS_PORT = ${this.config.get(`WS_PORT`)};
|
193
|
-
`
|
194
|
-
} }),
|
195
|
-
react_1.default.createElement("table", { className: 'table' },
|
196
|
-
react_1.default.createElement("thead", null,
|
197
|
-
react_1.default.createElement("tr", null,
|
198
|
-
react_1.default.createElement("td", { width: '180px' }, "\u6587\u4EF6\u540D"),
|
199
|
-
react_1.default.createElement("td", null, "\u72B6\u6001"),
|
200
|
-
react_1.default.createElement("td", null, "\u5927\u5C0F"),
|
201
|
-
react_1.default.createElement("td", null, "\u5927\u4E8E1G"),
|
202
|
-
react_1.default.createElement("td", null),
|
203
|
-
react_1.default.createElement("td", null),
|
204
|
-
react_1.default.createElement("td", null),
|
205
|
-
react_1.default.createElement("td", null),
|
206
|
-
react_1.default.createElement("td", null, "\u65F6\u95F4"),
|
207
|
-
react_1.default.createElement("td", null, "\u8BFE\u7A0B\u6807\u9898"),
|
208
|
-
react_1.default.createElement("td", null, "\u64CD\u4F5C"))),
|
209
|
-
react_1.default.createElement("tbody", null, tasks.map((task, key) => {
|
210
|
-
const login = getLogin(task.loginId);
|
211
|
-
// const uploadUrl = task.uploadUrl;
|
212
|
-
// https://29294142.s21v.faiusr.com/58/ABUIABA6GAAg3tiOlAYogPvErAY.mp4
|
213
|
-
// https://29294142.s21d.faiusrd.com/58/ABUIABA6GAAgzrCRlAYo_J_Aag.mp4
|
214
|
-
// https://29294142.s21d.faiusrd.com/0/ABUIABA6GAAg3tiOlAYogPvErAY.mp4?f=mAVUREPTVCTkBF%2BzQR2oy8h6lZw4.mp4&
|
215
|
-
// let downloadurl = uploadUrl.replace('s21v.faiusr/58', 's21d.faiusrd/0')
|
216
|
-
// downloadurl += `?f=${task.filename}&`
|
217
|
-
const url = `/@nger/fk-upload/download-file?url=${task.url}&back=/@nger/fk-upload/task-manage?${this.toUrl(query)}`;
|
218
|
-
return react_1.default.createElement("tr", { key: key },
|
219
|
-
react_1.default.createElement("td", null, task.filename),
|
220
|
-
react_1.default.createElement("td", null, getStatusTitle(task.status)),
|
221
|
-
react_1.default.createElement("td", null,
|
222
|
-
Math.ceil(100 * task.totalSize / (1024 * 1024 * 1024)) / 100,
|
223
|
-
"G"),
|
224
|
-
react_1.default.createElement("td", null, task.isBigFile ? '是' : '否'),
|
225
|
-
react_1.default.createElement("td", null, task.topicId),
|
226
|
-
react_1.default.createElement("td", null, login.username),
|
227
|
-
react_1.default.createElement("td", null, login.pass),
|
228
|
-
react_1.default.createElement("td", null, login.w7Username),
|
229
|
-
react_1.default.createElement("td", null, `${task.createDate.getMonth() + 1}月${task.createDate.getDate()}日 ${task.createDate.getHours()}时:${task.createDate.getMinutes()}分`),
|
230
|
-
react_1.default.createElement("td", null, task.topicName),
|
231
|
-
react_1.default.createElement("td", null,
|
232
|
-
react_1.default.createElement("input", { type: "hidden", id: task.filename + '-copy', onChange: () => { }, value: task.uploadUrl }),
|
233
|
-
react_1.default.createElement("a", { className: "btn", target: "_blank", href: url }, "\u4E0B\u8F7D"),
|
234
|
-
"\u00A0",
|
235
|
-
react_1.default.createElement("a", { className: "btn", target: "_blank", href: `https://wx.jidujiaowang.com/web/index.php?c=site&a=entry&topic_id=${task.topicId}&do=topic_add&m=dg_chat` }, "\u7F16\u8F91"),
|
236
|
-
"\u00A0",
|
237
|
-
react_1.default.createElement("a", { className: "btn", href: finishUrl(task.filename) }, "\u5B8C\u6210")));
|
238
|
-
}))),
|
239
|
-
react_1.default.createElement("nav", null,
|
240
|
-
react_1.default.createElement("ul", { className: "pagination" },
|
241
|
-
react_1.default.createElement("li", { className: "page-item" },
|
242
|
-
react_1.default.createElement("a", { className: "page-link", href: preUrl }, "Previous")),
|
243
|
-
pages.map(page => react_1.default.createElement("li", { className: page.cls },
|
244
|
-
react_1.default.createElement("a", { className: "page-link", href: page.link }, page.index))),
|
245
|
-
react_1.default.createElement("li", { className: "page-item" },
|
246
|
-
react_1.default.createElement("a", { className: "page-link", href: nextUrl }, "Next")))),
|
247
|
-
react_1.default.createElement("script", { src: "/@nger/fk-upload/static/task-manage.js?t=" + new Date().getTime() }));
|
248
|
-
}
|
249
|
-
downloadFile(url, back, ctx) {
|
250
|
-
// if (this.win) {
|
251
|
-
// this.win.webContents.downloadURL(url)
|
252
|
-
// ctx.redirect(back)
|
253
|
-
// } else {
|
254
|
-
// }
|
255
|
-
ctx.redirect(url);
|
256
|
-
}
|
257
|
-
staticTaskManage(ctx) {
|
258
|
-
try {
|
259
|
-
ctx.type = 'js';
|
260
|
-
const content = (0, fs_extra_1.readFileSync)((0, path_1.join)(__dirname, '../static/task-manage.js')).toString('utf-8');
|
261
|
-
return content;
|
262
|
-
}
|
263
|
-
catch (e) {
|
264
|
-
return e.message;
|
265
|
-
}
|
266
|
-
}
|
267
|
-
async finishTask(filename, callback, ctx) {
|
268
|
-
if (filename) {
|
269
|
-
const item = this.db.manager.findOne(entities_1.FkDownloadTaskEntity, { where: { filename } });
|
270
|
-
console.log({ filename, callback });
|
271
|
-
if (item) {
|
272
|
-
await this.db.manager.update(entities_1.FkDownloadTaskEntity, filename, { status: 3 });
|
273
|
-
}
|
274
|
-
}
|
275
|
-
ctx.redirect(callback);
|
276
|
-
}
|
277
|
-
};
|
278
|
-
tslib_1.__decorate([
|
279
|
-
(0, http_1.Get)('task-manage'),
|
280
|
-
tslib_1.__param(0, (0, http_1.Query)()),
|
281
|
-
tslib_1.__metadata("design:type", Function),
|
282
|
-
tslib_1.__metadata("design:paramtypes", [Object]),
|
283
|
-
tslib_1.__metadata("design:returntype", Promise)
|
284
|
-
], TaskManageController.prototype, "taskManage", null);
|
285
|
-
tslib_1.__decorate([
|
286
|
-
(0, http_1.Get)('download-file'),
|
287
|
-
tslib_1.__param(0, (0, http_1.Query)('url')),
|
288
|
-
tslib_1.__param(1, (0, http_1.Query)('back')),
|
289
|
-
tslib_1.__param(2, (0, core_1.Inject)(http_1.CONTEXT)),
|
290
|
-
tslib_1.__metadata("design:type", Function),
|
291
|
-
tslib_1.__metadata("design:paramtypes", [String, String, Object]),
|
292
|
-
tslib_1.__metadata("design:returntype", void 0)
|
293
|
-
], TaskManageController.prototype, "downloadFile", null);
|
294
|
-
tslib_1.__decorate([
|
295
|
-
(0, http_1.Get)('static/task-manage.js'),
|
296
|
-
tslib_1.__param(0, (0, core_1.Inject)(http_1.CONTEXT)),
|
297
|
-
tslib_1.__metadata("design:type", Function),
|
298
|
-
tslib_1.__metadata("design:paramtypes", [Object]),
|
299
|
-
tslib_1.__metadata("design:returntype", void 0)
|
300
|
-
], TaskManageController.prototype, "staticTaskManage", null);
|
301
|
-
tslib_1.__decorate([
|
302
|
-
(0, http_1.Get)('finish-task'),
|
303
|
-
tslib_1.__param(0, (0, http_1.Query)('filename')),
|
304
|
-
tslib_1.__param(1, (0, http_1.Query)('callback')),
|
305
|
-
tslib_1.__param(2, (0, core_1.Inject)(http_1.CONTEXT)),
|
306
|
-
tslib_1.__metadata("design:type", Function),
|
307
|
-
tslib_1.__metadata("design:paramtypes", [String, String, Object]),
|
308
|
-
tslib_1.__metadata("design:returntype", Promise)
|
309
|
-
], TaskManageController.prototype, "finishTask", null);
|
310
|
-
TaskManageController = tslib_1.__decorate([
|
311
|
-
(0, core_1.Controller)(`@nger/fk-upload`),
|
312
|
-
tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, core_1.Config, w7_1.W7DataSource])
|
313
|
-
], TaskManageController);
|
314
|
-
exports.TaskManageController = TaskManageController;
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { StringToken } from "@nger/core";
|
2
|
-
export interface IDownloadTask {
|
3
|
-
filename: string;
|
4
|
-
path: string;
|
5
|
-
url: string;
|
6
|
-
topicId: number;
|
7
|
-
loginId: number;
|
8
|
-
}
|
9
|
-
export declare const DOWNLOAD_ACTION: StringToken<IDownloadTask>;
|
10
|
-
export interface IScheduleTask {
|
11
|
-
name: string;
|
12
|
-
rule: string;
|
13
|
-
}
|
14
|
-
export declare const SCHEDULE_ACTION: StringToken<IScheduleTask>;
|
15
|
-
export interface IUploadTask {
|
16
|
-
filename: string;
|
17
|
-
path: string;
|
18
|
-
uploadUrl: string;
|
19
|
-
total: number;
|
20
|
-
cookies: string;
|
21
|
-
aid: number;
|
22
|
-
folderId: number;
|
23
|
-
fileMd5: string;
|
24
|
-
splitSize: number;
|
25
|
-
totalChunks: number;
|
26
|
-
topicId: number;
|
27
|
-
token: string;
|
28
|
-
start: number;
|
29
|
-
loginId: number;
|
30
|
-
index: number;
|
31
|
-
}
|
32
|
-
export declare const UPLOAD_ACTION: StringToken<IUploadTask>;
|
33
|
-
export declare const YASUO_ACTION: StringToken<IUploadTask>;
|
34
|
-
export interface IEffectTask {
|
35
|
-
filename: string;
|
36
|
-
uploadUrl: string;
|
37
|
-
topicId: number;
|
38
|
-
path: string;
|
39
|
-
}
|
40
|
-
export declare const EFFECT_ACTION: StringToken<IEffectTask>;
|
41
|
-
export interface ICheckTask {
|
42
|
-
filename: string;
|
43
|
-
}
|
44
|
-
export declare const CHECK_ACTION: StringToken<IEffectTask>;
|
@@ -1,9 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.CHECK_ACTION = exports.EFFECT_ACTION = exports.YASUO_ACTION = exports.UPLOAD_ACTION = exports.SCHEDULE_ACTION = exports.DOWNLOAD_ACTION = void 0;
|
4
|
-
exports.DOWNLOAD_ACTION = `@nger/fk-upload/download-task`;
|
5
|
-
exports.SCHEDULE_ACTION = `@nger/fk-upload/schedule-task`;
|
6
|
-
exports.UPLOAD_ACTION = `@nger/fk-upload/upload-task`;
|
7
|
-
exports.YASUO_ACTION = `@nger/fk-upload/yasuo-task`;
|
8
|
-
exports.EFFECT_ACTION = `@nger/fk-upload/effect-task`;
|
9
|
-
exports.CHECK_ACTION = `@nger/fk-upload/check-task`;
|
@@ -1,8 +0,0 @@
|
|
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
|
-
getLocalSize(path: string): number;
|
7
|
-
getSize(url: string): Promise<number>;
|
8
|
-
}
|
@@ -1,89 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.CheckTask = void 0;
|
4
|
-
const task_service_1 = require("./task.service");
|
5
|
-
const fk_download_task_entity_1 = require("./../../entities/fk-download-task.entity");
|
6
|
-
const typeorm_1 = require("@nger/typeorm");
|
7
|
-
const actions_1 = require("./actions");
|
8
|
-
const rabbitmq_1 = require("@nger/rabbitmq");
|
9
|
-
const core_1 = require("@nger/core");
|
10
|
-
const request_1 = require("request");
|
11
|
-
const fs_extra_1 = require("fs-extra");
|
12
|
-
class CheckTask extends rabbitmq_1.Task {
|
13
|
-
constructor() {
|
14
|
-
super(actions_1.CHECK_ACTION);
|
15
|
-
}
|
16
|
-
async handle(injector, next) {
|
17
|
-
const data = injector.get(rabbitmq_1.DATA);
|
18
|
-
const complete = injector.get(rabbitmq_1.COMPLETE);
|
19
|
-
const db = injector.get(typeorm_1.Db);
|
20
|
-
const task = injector.get(task_service_1.TaskService);
|
21
|
-
const manager = injector.get(rabbitmq_1.TaskManager);
|
22
|
-
const filename = data.filename;
|
23
|
-
if (filename) {
|
24
|
-
const finishs = await db.manager.findOne(fk_download_task_entity_1.FkDownloadTaskEntity, { where: { filename } });
|
25
|
-
if (finishs.uploadUrl) {
|
26
|
-
const uploadSize = await this.getSize(finishs.uploadUrl);
|
27
|
-
const downloadSize = await this.getSize(finishs.url);
|
28
|
-
if (uploadSize === downloadSize) {
|
29
|
-
if (finishs.status < 2) {
|
30
|
-
await db.manager.update(fk_download_task_entity_1.FkDownloadTaskEntity, filename, { status: 2 });
|
31
|
-
}
|
32
|
-
await complete();
|
33
|
-
return next && next();
|
34
|
-
}
|
35
|
-
else {
|
36
|
-
if (finishs.totalSize === this.getLocalSize(finishs.path)) {
|
37
|
-
// re upload
|
38
|
-
await db.manager.update(fk_download_task_entity_1.FkDownloadTaskEntity, filename, { status: 1 });
|
39
|
-
const upload = await task.createUploadTask({
|
40
|
-
filename: finishs.filename,
|
41
|
-
path: finishs.path,
|
42
|
-
url: finishs.url,
|
43
|
-
topicId: finishs.topicId,
|
44
|
-
loginId: finishs.loginId
|
45
|
-
}, finishs.totalSize, finishs.fileMd5, injector);
|
46
|
-
await manager.send(upload);
|
47
|
-
await complete();
|
48
|
-
return next && next();
|
49
|
-
}
|
50
|
-
}
|
51
|
-
}
|
52
|
-
await db.manager.update(fk_download_task_entity_1.FkDownloadTaskEntity, filename, { status: 0 });
|
53
|
-
const item = await task.createDownLoadTask(finishs.url, finishs.loginId, finishs.topicId);
|
54
|
-
await manager.send(item);
|
55
|
-
await complete();
|
56
|
-
}
|
57
|
-
else {
|
58
|
-
await complete();
|
59
|
-
}
|
60
|
-
return next && next();
|
61
|
-
}
|
62
|
-
getLocalSize(path) {
|
63
|
-
try {
|
64
|
-
const satts = (0, fs_extra_1.statSync)(path);
|
65
|
-
return satts.size;
|
66
|
-
}
|
67
|
-
catch (e) {
|
68
|
-
return 0;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
async getSize(url) {
|
72
|
-
const size = (0, core_1.defer)();
|
73
|
-
const req = (0, request_1.get)(url, {
|
74
|
-
headers: {
|
75
|
-
'Content-Type': 'application/octet-stream'
|
76
|
-
}
|
77
|
-
});
|
78
|
-
req.on('response', async (resp) => {
|
79
|
-
const headers = resp.headers;
|
80
|
-
size.resolve(Number(headers["content-length"]));
|
81
|
-
req.destroy();
|
82
|
-
});
|
83
|
-
req.on('error', (e) => {
|
84
|
-
size.resolve(0);
|
85
|
-
});
|
86
|
-
return size;
|
87
|
-
}
|
88
|
-
}
|
89
|
-
exports.CheckTask = CheckTask;
|