@nger/fk-upload 1.0.201 → 1.0.204

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.
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;