@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.
Files changed (128) hide show
  1. package/dist/{templates → controllers}/code.d.ts +0 -0
  2. package/dist/{templates → controllers}/code.js +2 -1
  3. package/dist/controllers/relogin.d.ts +8 -0
  4. package/dist/controllers/relogin.js +42 -0
  5. package/dist/{templates → controllers}/verify.d.ts +0 -0
  6. package/dist/{templates → controllers}/verify.js +0 -0
  7. package/dist/entities/check-task.d.ts +13 -0
  8. package/dist/entities/check-task.js +221 -0
  9. package/dist/entities/download-task.d.ts +23 -0
  10. package/dist/entities/download-task.js +445 -0
  11. package/dist/entities/effect-task.d.ts +12 -0
  12. package/dist/entities/effect-task.js +207 -0
  13. package/dist/entities/fk-account.d.ts +16 -0
  14. package/dist/entities/fk-account.js +295 -0
  15. package/dist/entities/fk-jiqun.d.ts +5 -0
  16. package/dist/entities/fk-jiqun.js +56 -0
  17. package/dist/entities/upload-task.d.ts +15 -0
  18. package/dist/entities/upload-task.js +333 -0
  19. package/dist/entities/w7-account.d.ts +11 -0
  20. package/dist/entities/w7-account.js +126 -0
  21. package/dist/entities/w7.d.ts +10 -0
  22. package/dist/entities/w7.js +107 -0
  23. package/dist/entities/w7_chat_topic.d.ts +9 -0
  24. package/dist/entities/w7_chat_topic.js +58 -0
  25. package/dist/entities/w7_uni_account.d.ts +4 -0
  26. package/dist/entities/w7_uni_account.js +23 -0
  27. package/dist/fk-upload.module.d.ts +5 -0
  28. package/dist/fk-upload.module.js +76 -43
  29. package/dist/main.d.ts +1 -0
  30. package/dist/main.js +18 -29
  31. package/dist/services/check.service.d.ts +6 -0
  32. package/dist/services/check.service.js +32 -0
  33. package/dist/services/client.service.d.ts +6 -0
  34. package/dist/services/client.service.js +29 -0
  35. package/dist/services/download.service.d.ts +15 -0
  36. package/dist/services/download.service.js +139 -0
  37. package/dist/services/effect.service.d.ts +7 -0
  38. package/dist/services/effect.service.js +34 -0
  39. package/dist/services/fk.service.d.ts +24 -0
  40. package/dist/services/fk.service.js +323 -0
  41. package/dist/services/login.service.d.ts +17 -0
  42. package/dist/services/login.service.js +95 -0
  43. package/dist/services/upload.service.d.ts +13 -0
  44. package/dist/services/upload.service.js +100 -0
  45. package/dist/tasks/actions.d.ts +28 -0
  46. package/dist/tasks/actions.js +12 -0
  47. package/dist/{templates/tasks/schedule-task.d.ts → tasks/check-task.d.ts} +3 -5
  48. package/dist/tasks/check-task.js +205 -0
  49. package/dist/tasks/download-continue-task.d.ts +9 -0
  50. package/dist/tasks/download-continue-task.js +127 -0
  51. package/dist/{templates/tasks → tasks}/download-task.d.ts +0 -1
  52. package/dist/tasks/download-task.js +128 -0
  53. package/dist/{templates/tasks → tasks}/effect-task.d.ts +1 -1
  54. package/dist/tasks/effect-task.js +111 -0
  55. package/dist/{templates/tasks → tasks}/providers.d.ts +0 -0
  56. package/dist/{templates/tasks → tasks}/providers.js +11 -5
  57. package/dist/tasks/upload-continue-task.d.ts +8 -0
  58. package/dist/tasks/upload-continue-task.js +114 -0
  59. package/dist/{templates/tasks → tasks}/upload-task.d.ts +0 -0
  60. package/dist/tasks/upload-task.js +114 -0
  61. package/package.json +18 -14
  62. package/pnpm-lock.yaml +36 -1435
  63. package/dist/electon.d.ts +0 -3
  64. package/dist/electon.js +0 -80
  65. package/dist/entities/fk-download-task.entity.d.ts +0 -18
  66. package/dist/entities/fk-download-task.entity.js +0 -142
  67. package/dist/entities/fk-login-cookie.entity.d.ts +0 -7
  68. package/dist/entities/fk-login-cookie.entity.js +0 -46
  69. package/dist/entities/fk-login.entity.d.ts +0 -12
  70. package/dist/entities/fk-login.entity.js +0 -80
  71. package/dist/entities/index.d.ts +0 -3
  72. package/dist/entities/index.js +0 -6
  73. package/dist/login.controller.d.ts +0 -14
  74. package/dist/login.controller.js +0 -197
  75. package/dist/mq-runner.d.ts +0 -5
  76. package/dist/mq-runner.js +0 -19
  77. package/dist/static/task-manage.d.ts +0 -6
  78. package/dist/static/task-manage.js +0 -34
  79. package/dist/templates/add-fk-login.d.ts +0 -12
  80. package/dist/templates/add-fk-login.js +0 -93
  81. package/dist/templates/add-task.d.ts +0 -13
  82. package/dist/templates/add-task.js +0 -78
  83. package/dist/templates/check-upload.d.ts +0 -38
  84. package/dist/templates/check-upload.js +0 -195
  85. package/dist/templates/component.d.ts +0 -10
  86. package/dist/templates/component.js +0 -39
  87. package/dist/templates/error.d.ts +0 -4
  88. package/dist/templates/error.js +0 -27
  89. package/dist/templates/help.d.ts +0 -7
  90. package/dist/templates/help.js +0 -52
  91. package/dist/templates/player.d.ts +0 -4
  92. package/dist/templates/player.js +0 -23
  93. package/dist/templates/setting.d.ts +0 -13
  94. package/dist/templates/setting.js +0 -65
  95. package/dist/templates/task-manage.d.ts +0 -21
  96. package/dist/templates/task-manage.js +0 -314
  97. package/dist/templates/tasks/actions.d.ts +0 -44
  98. package/dist/templates/tasks/actions.js +0 -9
  99. package/dist/templates/tasks/check-task.d.ts +0 -8
  100. package/dist/templates/tasks/check-task.js +0 -89
  101. package/dist/templates/tasks/download-task.js +0 -130
  102. package/dist/templates/tasks/effect-task.js +0 -76
  103. package/dist/templates/tasks/fk.service.d.ts +0 -28
  104. package/dist/templates/tasks/fk.service.js +0 -254
  105. package/dist/templates/tasks/schedule-task.js +0 -94
  106. package/dist/templates/tasks/task.service.d.ts +0 -11
  107. package/dist/templates/tasks/task.service.js +0 -114
  108. package/dist/templates/tasks/upload-task.js +0 -97
  109. package/dist/templates/tasks/yasuo-task.d.ts +0 -0
  110. package/dist/templates/tasks/yasuo-task.js +0 -0
  111. package/dist/templates/upload-task.d.ts +0 -9
  112. package/dist/templates/upload-task.js +0 -141
  113. package/dist/templates/upload.d.ts +0 -16
  114. package/dist/templates/upload.js +0 -232
  115. package/dist/urlSafeBase64Decode.d.ts +0 -3
  116. package/dist/urlSafeBase64Decode.js +0 -32
  117. package/electron/.env +0 -32
  118. package/electron/package.json +0 -31
  119. package/electron/pnpm-lock.yaml +0 -2878
  120. package/fk-upload-pc/.vscode/extensions.json +0 -3
  121. package/fk-upload-pc/README.md +0 -16
  122. package/fk-upload-pc/index.html +0 -13
  123. package/fk-upload-pc/package.json +0 -19
  124. package/fk-upload-pc/pnpm-lock.yaml +0 -489
  125. package/fk-upload-pc/public/favicon.ico +0 -0
  126. package/fk-upload-pc/tsconfig.json +0 -18
  127. package/fk-upload-pc/tsconfig.node.json +0 -8
  128. 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;