@nger/fk-upload 1.0.162 → 1.0.166

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 (54) hide show
  1. package/dist/electon.js +15 -7
  2. package/dist/templates/add-fk-login.js +1 -3
  3. package/dist/templates/add-task.d.ts +1 -1
  4. package/dist/templates/add-task.js +11 -5
  5. package/dist/templates/code.js +2 -1
  6. package/dist/templates/help.js +0 -1
  7. package/dist/templates/setting.d.ts +1 -3
  8. package/dist/templates/setting.js +2 -5
  9. package/dist/templates/task-manage.d.ts +5 -1
  10. package/dist/templates/task-manage.js +71 -34
  11. package/dist/templates/tasks/upload-task.js +11 -8
  12. package/electron/.env +32 -0
  13. package/electron/package.json +31 -0
  14. package/electron/pnpm-lock.yaml +2888 -0
  15. package/env.env +30 -0
  16. package/package.json +10 -5
  17. package/pnpm-lock.yaml +1390 -57
  18. package/.env +0 -44
  19. package/dist/entities/fk-login-account.entity.d.ts +0 -6
  20. package/dist/entities/fk-login-account.entity.js +0 -47
  21. package/dist/fk-upload.controller.d.ts +0 -28
  22. package/dist/fk-upload.controller.js +0 -271
  23. package/dist/fk-v2.service.d.ts +0 -29
  24. package/dist/fk-v2.service.js +0 -152
  25. package/dist/fk.service.d.ts +0 -17
  26. package/dist/fk.service.js +0 -89
  27. package/dist/templates/account-manage.d.ts +0 -3
  28. package/dist/templates/account-manage.js +0 -27
  29. package/dist/templates/add-account.d.ts +0 -0
  30. package/dist/templates/add-account.js +0 -1
  31. package/dist/templates/create-download-task.d.ts +0 -0
  32. package/dist/templates/create-download-task.js +0 -1
  33. package/dist/templates/download-task.d.ts +0 -10
  34. package/dist/templates/download-task.js +0 -47
  35. package/dist/templates/login.service.d.ts +0 -2
  36. package/dist/templates/login.service.js +0 -16
  37. package/dist/templates/receive-shedule-task.d.ts +0 -14
  38. package/dist/templates/receive-shedule-task.js +0 -64
  39. package/dist/templates/relogin.d.ts +0 -5
  40. package/dist/templates/relogin.js +0 -25
  41. package/dist/templates/task-types.d.ts +0 -34
  42. package/dist/templates/task-types.js +0 -2
  43. package/dist/templates/task.service.d.ts +0 -0
  44. package/dist/templates/task.service.js +0 -407
  45. package/dist/templates/tasks/create-download-task.d.ts +0 -12
  46. package/dist/templates/tasks/create-download-task.js +0 -65
  47. package/dist/templates/tasks/index.d.ts +0 -0
  48. package/dist/templates/tasks/index.js +0 -1
  49. package/dist/templates/tasks/receive-shedule-task.d.ts +0 -16
  50. package/dist/templates/tasks/receive-shedule-task.js +0 -66
  51. package/dist/templates/upload.service.d.ts +0 -0
  52. package/dist/templates/upload.service.js +0 -1
  53. package/dist/tests/test.d.ts +0 -3
  54. package/dist/tests/test.js +0 -101
@@ -1,407 +0,0 @@
1
- "use strict";
2
- // import { APP_ROOT, Injectable, Injector, isPrimitive } from '@nger/core';
3
- // import { RabbitMqService } from '@nger/rabbitmq';
4
- // import { Client } from '@nger/redis';
5
- // import { Db } from '@nger/typeorm';
6
- // import { createReadStream, createWriteStream, ensureDirSync, statSync } from 'fs-extra';
7
- // import { FkDownloadTaskEntity, FkLoginCookieEntity, FkLoginEntity } from '../entities';
8
- // import { get } from 'request'
9
- // import { Observable, throttleTime, switchMap } from 'rxjs';
10
- // import { WsService } from '@nger/ws';
11
- // import md5file from 'md5-file'
12
- // import { In, Not } from 'typeorm';
13
- // import Cid from 'cids';
14
- // import multihash from 'multihashing-async'
15
- // export interface DownloadTask {
16
- // filename: string;
17
- // path: string;
18
- // size: number;
19
- // url: string;
20
- // totalSize: number;
21
- // }
22
- // export interface UploadTask {
23
- // filename: string;
24
- // path: string;
25
- // uploadUrl: string;
26
- // start: number;
27
- // end: number;
28
- // total: number;
29
- // cookies: string;
30
- // aid: number;
31
- // folderId: number;
32
- // fileMd5: string;
33
- // index: number;
34
- // splitSize: number;
35
- // totalChunks: number;
36
- // complete: boolean;
37
- // topicId: number;
38
- // token: string;
39
- // }
40
- // import FromData from 'form-data';
41
- // import axios from 'axios';
42
- // import { ScheduleService } from '@nger/schedule';
43
- // import { W7ChatTopicEntity, W7DataSource, W7UniAccountEntity, W7UsersEntity } from '@nger/w7'
44
- // import { dirname, extname, join } from 'path';
45
- // export interface EffectTask {
46
- // filename: string;
47
- // uploadUrl: string;
48
- // topicId: number;
49
- // }
50
- // export interface ScheduleTask {
51
- // name: string;
52
- // rule: string;
53
- // }
54
- // @Injectable()
55
- // export class TaskService {
56
- // constructor(
57
- // private rabbit: RabbitMqService,
58
- // private redis: Client,
59
- // private db: Db,
60
- // private ws: WsService,
61
- // private schedule: ScheduleService,
62
- // private w7: W7DataSource,
63
- // private injector: Injector
64
- // ) { }
65
- // async addDownloadTask(task: DownloadTask) {
66
- // const content = Buffer.from(JSON.stringify(task));
67
- // await this.rabbit.send('@nger/fk-upload/download-task', content)
68
- // }
69
- // async addUploadTask(task: UploadTask) {
70
- // const content = Buffer.from(JSON.stringify(task));
71
- // await this.rabbit.send('@nger/fk-upload/upload-task', content)
72
- // }
73
- // async beginUploadTask(filename: string) {
74
- // this.redis.set(filename, `0`);
75
- // }
76
- // async addEffectTask(task: EffectTask) {
77
- // // const content = Buffer.from(JSON.stringify(task)); // await this.rabbit.send('@nger/fk-upload/effect-task', content)
78
- // }
79
- // async addScheduleTask(task: ScheduleTask) {
80
- // const content = Buffer.from(JSON.stringify(task));
81
- // await this.rabbit.send('@nger/fk-upload/schedule-task', content)
82
- // }
83
- // async receiveEffectTask() {
84
- // const obs = await this.rabbit.receive(`@nger/fk-upload/effect-task`);
85
- // obs.subscribe({
86
- // next: async ([data, complete, fail]) => {
87
- // const task = JSON.parse(data) as EffectTask;
88
- // if (task.topicId) {
89
- // this.w7.manager.update(W7ChatTopicEntity, task.topicId, { thirdUrl: task.uploadUrl }).then(() => complete()).catch(() => fail())
90
- // } else {
91
- // complete();
92
- // }
93
- // }
94
- // })
95
- // }
96
- // async receiveUploadTask() {
97
- // const obs = await this.rabbit.receive(`@nger/fk-upload/upload-task`);
98
- // obs.subscribe({
99
- // next: async ([data, complete, fail]) => {
100
- // const task = JSON.parse(data) as UploadTask;
101
- // this.redis.get(task.filename, async (err, reply) => {
102
- // if (err) return fail();
103
- // if (reply) {
104
- // const isExist = await this.db.manager.find(FkDownloadTaskEntity, { where: { filename: task.filename } });
105
- // if (!isExist) {
106
- // return complete();
107
- // }
108
- // const taskIndex = Number(reply); // next
109
- // const isComplete = task.complete && task.index === taskIndex;
110
- // const isShouldRunning = isComplete || (!isComplete && task.index == taskIndex);
111
- // if (isShouldRunning) {
112
- // // uploading
113
- // // should handler
114
- // const fileStream = createReadStream(task.path, { start: task.start, end: task.end, encoding: 'utf8' });
115
- // const formdata = new FromData();
116
- // formdata.append('ctrl', fileStream);
117
- // formdata.append('isFreeVer', this.encodeURIComponent(false));
118
- // formdata.append('aid', this.encodeURIComponent(task.aid));
119
- // formdata.append('folderId', this.encodeURIComponent(task.folderId));
120
- // formdata.append('fileName', task.filename);
121
- // formdata.append(`totalSize`, this.encodeURIComponent(task.total));
122
- // formdata.append(`fileMd5`, task.fileMd5);
123
- // formdata.append('index', this.encodeURIComponent(task.index));
124
- // formdata.append('chunkSize', this.encodeURIComponent(task.splitSize));
125
- // formdata.append('totalChunks', this.encodeURIComponent(task.totalChunks))
126
- // formdata.append(`complete`, this.encodeURIComponent(task.complete))
127
- // const bssInfo = {
128
- // fromSite: true, siteId: 0, groupId: 0, fileSizeLimit: 1024
129
- // };
130
- // formdata.append('bssInfo', JSON.stringify(bssInfo))
131
- // const headers = formdata.getHeaders();
132
- // const uploadResult = await axios.post(task.uploadUrl, formdata, {
133
- // headers: {
134
- // ...headers,
135
- // Cookie: task.cookies
136
- // }
137
- // }).then(res => res.data).catch((e) => fail());
138
- // if (uploadResult && uploadResult.code === 200) {
139
- // const data = uploadResult.data;
140
- // this.ws.send({
141
- // action: `@nger/fk-upload/uploading`,
142
- // data: {
143
- // uploadSize: task.end,
144
- // filename: task.filename,
145
- // total: task.total
146
- // }
147
- // });
148
- // this.redis.set(task.filename, `${task.index + 1}`, (err) => {
149
- // if (err) return fail();
150
- // if (data) {
151
- // // fullDownUrl
152
- // const downUrl = data.path as string;
153
- // if (downUrl) {
154
- // const fullUrl = downUrl.startsWith('http') ? downUrl : `https:` + downUrl;
155
- // axios.post(`https://smr00.vip.webportal.top/ajax/advanceUpload.jsp?cmd=_report&_TOKEN=${task.token}`, this.encodeURIComponent({
156
- // type: 1,
157
- // size: task.total,
158
- // time: NaN,
159
- // flag: true,
160
- // name: task.filename
161
- // }), {
162
- // headers: {
163
- // [`Content-Type`]: `application/x-www-form-urlencoded; charset=UTF-8`,
164
- // Cookie: task.cookies
165
- // }
166
- // });
167
- // this.redis.del(task.filename, () => {
168
- // complete()
169
- // });
170
- // this.ws.send({
171
- // action: `@nger/fk-upload/uploading`,
172
- // data: {
173
- // uploadSize: task.end,
174
- // filename: task.filename,
175
- // total: task.total,
176
- // uploadUrl: fullUrl
177
- // }
178
- // });
179
- // this.addEffectTask({
180
- // filename: task.filename,
181
- // uploadUrl: fullUrl,
182
- // topicId: task.topicId
183
- // })
184
- // this.db.manager.update(FkDownloadTaskEntity, task.filename, {
185
- // status: 2,
186
- // uploadUrl: fullUrl,
187
- // uploadSize: task.total
188
- // })
189
- // } else {
190
- // this.db.manager.update(FkDownloadTaskEntity, task.filename, {
191
- // uploadSize: task.end
192
- // })
193
- // }
194
- // } else {
195
- // console.log(`data is empty`, uploadResult)
196
- // }
197
- // });
198
- // } else {
199
- // fail();
200
- // }
201
- // } else {
202
- // fail();
203
- // }
204
- // } else {
205
- // return complete();
206
- // }
207
- // })
208
- // }
209
- // })
210
- // }
211
- // async receiveDownloadTask() {
212
- // const obs = await this.rabbit.receive(`@nger/fk-upload/download-task`);
213
- // obs.subscribe({
214
- // next: async ([data, complete, fail]) => {
215
- // const task = JSON.parse(data) as DownloadTask;
216
- // const download = await this.db.manager.findOne(FkDownloadTaskEntity, { where: { filename: task.filename } });
217
- // if (download) {
218
- // let total = 0;
219
- // download.url = decodeURIComponent(download.url);
220
- // this.download(download).pipe(
221
- // throttleTime(1000),
222
- // switchMap(async res => {
223
- // const size = res.size;
224
- // total = res.totalSize;
225
- // this.ws.send({
226
- // action: `@nger/fk-upload/downloading`,
227
- // data: { total, size, filename: res.filename }
228
- // });
229
- // await this.db.manager.update(FkDownloadTaskEntity, download.filename, { size: size, totalSize: total })
230
- // return res;
231
- // })
232
- // ).subscribe({
233
- // next: (task) => { },
234
- // complete: async () => {
235
- // const md5 = await md5file(task.path);
236
- // this.db.manager.update(FkDownloadTaskEntity, download.filename, { status: 1, size: total, fileMd5: md5 }).then(async () => {
237
- // this.ws.send({
238
- // action: `@nger/fk-upload/downloading`,
239
- // data: { total, size: total, filename: download.filename }
240
- // });
241
- // this.redis.del(task.filename);
242
- // await this.startUploadTask(task.filename);
243
- // complete()
244
- // }).catch(() => fail())
245
- // },
246
- // error: () => {
247
- // fail();
248
- // }
249
- // })
250
- // } else {
251
- // complete();
252
- // }
253
- // }
254
- // })
255
- // }
256
- // private getUploadInfourl(token: any) {
257
- // return `https://${token.url}/${token.visitType}/${token.app}/advance/info?cmd=${token.cmd}&token=${token.token}`
258
- // }
259
- // private encodeURIComponent(data: any) {
260
- // if (isPrimitive(data)) {
261
- // return encodeURIComponent(data)
262
- // }
263
- // return Object.keys(data).map(key => {
264
- // const value = Reflect.get(data, key)
265
- // return `${key}=${encodeURIComponent(value)}`
266
- // }).join('&')
267
- // }
268
- // private getUploadUrl(token: any, forceDirect: boolean = true) {
269
- // if (forceDirect) {
270
- // return `https://${token.url}/${token.visitType}/${token.app}/upload?cmd=${token.cmd}&token=${token.token}`
271
- // } else {
272
- // return `https://${token.url}/${token.visitType}/${token.app}/advance?cmd=${token.cmd}&token=${token.token}`
273
- // }
274
- // }
275
- // async reUploadTask() { }
276
- // async startUploadTask(filename: string) {
277
- // const task = await this.db.manager.findOne(FkDownloadTaskEntity, { where: { filename } });
278
- // if (task && task.status === 1) {
279
- // const loginEntity = await this.db.manager.findOne(FkLoginEntity, { where: { fkLoginId: task.loginId } })
280
- // const cookies = await this.db.manager.find(FkLoginCookieEntity, { where: { fkLoginId: task.loginId } });
281
- // const cookie = cookies.map(cookie => `${cookie.key}=${cookie.value}`).join(';')
282
- // // 00 take token
283
- // const url = `https://i.vip.webportal.top/`;
284
- // const iVipWebPortal: string = await axios.get(url, {
285
- // headers: {
286
- // Cookie: cookie
287
- // }
288
- // }).then(res => res.data);
289
- // const items = iVipWebPortal.match(/<meta id='_TOKEN' value='(.*?)'\/>/);
290
- // let token: string = ``;
291
- // if (items && items.length === 2) {
292
- // token = items[1];
293
- // }
294
- // if (token.length > 0) {
295
- // // 01
296
- // const url = `https://smr00.vip.webportal.top/cn/api/manage/advanceUpload/genAccessKey?_v=${new Date().getTime()}&_TOKEN=${token}`;
297
- // const accessKey = await axios.get(url).then(res => res.data);
298
- // if (accessKey.success) {
299
- // const accessTokenString = decode(accessKey.accessKey)
300
- // if (accessTokenString) {
301
- // const accessToken = JSON.parse(accessTokenString);
302
- // const uploadInfoUrl = this.getUploadInfourl(accessToken);
303
- // const bssInfo = {
304
- // fromSite: true, siteId: 0, groupId: 0, fileSizeLimit: 1024
305
- // };
306
- // const info = await axios.post(uploadInfoUrl, this.encodeURIComponent({
307
- // fileMd5: task.fileMd5,
308
- // fileSize: task.totalSize,
309
- // isFreeVer: false,
310
- // aid: loginEntity!.aid,
311
- // folderId: loginEntity!.uploadGroupId,
312
- // bssInfo: JSON.stringify(bssInfo),
313
- // fileName: task.filename
314
- // }), { headers: { cookie: cookie } }).then(res => res.data);
315
- // if (info.code === 200) {
316
- // const data = info.data;
317
- // const { delayTime, splitSize, uploadedSize } = data;
318
- // const uploadUrl = this.getUploadUrl(accessToken, false);
319
- // const totalChunks = Math.ceil((task.totalSize) / splitSize);
320
- // let start = uploadedSize;
321
- // let index: number = Math.ceil(uploadedSize / splitSize);
322
- // let complete: boolean = false;
323
- // this.beginUploadTask(task.filename);
324
- // do {
325
- // const maxEndSize = start + splitSize;
326
- // if (index >= totalChunks - 1 || maxEndSize >= task.totalSize) {
327
- // complete = true;
328
- // }
329
- // const endSize = maxEndSize > task.totalSize ? task.totalSize : maxEndSize;
330
- // await this.addUploadTask({
331
- // filename: task.filename,
332
- // path: task.path,
333
- // uploadUrl: uploadUrl,
334
- // cookies: cookie,
335
- // aid: loginEntity?.aid || 0,
336
- // folderId: loginEntity?.uploadGroupId || 0,
337
- // start,
338
- // end: endSize,
339
- // total: task.totalSize,
340
- // index,
341
- // fileMd5: task.fileMd5,
342
- // totalChunks: totalChunks,
343
- // splitSize,
344
- // complete,
345
- // topicId: task.topicId,
346
- // token: token
347
- // });
348
- // index = index + 1;
349
- // start = endSize;
350
- // } while (!complete);
351
- // }
352
- // }
353
- // }
354
- // }
355
- // }
356
- // }
357
- // download(task: DownloadTask) {
358
- // return new Observable<DownloadTask>((sub) => {
359
- // // go on
360
- // task.size = 0;
361
- // let length = task.size;
362
- // const writeStream = createWriteStream(task.path, { start: task.size });
363
- // const req = get(task.url, {
364
- // headers: {
365
- // 'Content-Type': 'application/octet-stream'
366
- // }
367
- // });
368
- // req.on('data', (buf) => {
369
- // length = length + buf.length;
370
- // task.size = length;
371
- // writeStream.write(buf, (err: Error | undefined | null) => {
372
- // if (err) sub.error(err)
373
- // });
374
- // sub.next(task);
375
- // });
376
- // req.on('end', () => {
377
- // sub.complete();
378
- // writeStream.end();
379
- // });
380
- // req.on('response', (resp: Response) => {
381
- // const headers = resp.headers;
382
- // task.totalSize = Number(Reflect.get(headers, 'content-length'))
383
- // sub.next(task);
384
- // })
385
- // })
386
- // }
387
- // }
388
- // function decode(base64Str: string): string | void {
389
- // if (!base64Str) return;
390
- // const t = base64Str.replace(/_/g, "/").replace(/-/g, "+")
391
- // const f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
392
- // let l = 0;
393
- // let p = 0;
394
- // let h: string[] = [];
395
- // do {
396
- // const o = f.indexOf(t.charAt(l++))
397
- // const u = f.indexOf(t.charAt(l++))
398
- // const a = f.indexOf(t.charAt(l++))
399
- // const c = f.indexOf(t.charAt(l++))
400
- // const s = o << 18 | u << 12 | a << 6 | c;
401
- // const e = s >> 16 & 255
402
- // const r = s >> 8 & 255;
403
- // const n = 255 & s;
404
- // h[p++] = 64 === a ? String.fromCharCode(e) : 64 === c ? String.fromCharCode(e, r) : String.fromCharCode(e, r, n);
405
- // } while (l < t.length)
406
- // return h.join('')
407
- // }
@@ -1,12 +0,0 @@
1
- import { Injector } from '@nger/core';
2
- import { Db } from '@nger/typeorm';
3
- import { DownloadTask } from '../task-types';
4
- import { RabbitMqService } from '@nger/rabbitmq';
5
- export declare class CreateDownloadTask {
6
- private injector;
7
- private db;
8
- private rabbit;
9
- constructor(injector: Injector, db: Db, rabbit: RabbitMqService);
10
- createDownLoadTask(url: string, fkLoginId: number, topicId: number): Promise<void>;
11
- addDownloadTask(task: DownloadTask): Promise<void>;
12
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CreateDownloadTask = void 0;
16
- const core_1 = require("@nger/core");
17
- const cids_1 = __importDefault(require("cids"));
18
- const fs_extra_1 = require("fs-extra");
19
- const multihashing_async_1 = __importDefault(require("multihashing-async"));
20
- const path_1 = require("path");
21
- const entities_1 = require("../../entities");
22
- const typeorm_1 = require("@nger/typeorm");
23
- const rabbitmq_1 = require("@nger/rabbitmq");
24
- let CreateDownloadTask = class CreateDownloadTask {
25
- injector;
26
- db;
27
- rabbit;
28
- constructor(injector, db, rabbit) {
29
- this.injector = injector;
30
- this.db = db;
31
- this.rabbit = rabbit;
32
- }
33
- async createDownLoadTask(url, fkLoginId, topicId) {
34
- const hash = await (0, multihashing_async_1.default)(Buffer.from(url), 'sha1', 16);
35
- const cid = new cids_1.default(1, 'raw', hash, 'base64');
36
- let filename = encodeURIComponent(cid.toString('base64'));
37
- const _url = new URL(url);
38
- const filePath = _url.pathname;
39
- let ext = (0, path_1.extname)(filePath);
40
- filename += ext === '.' ? '.mp4' : ext;
41
- const task = new entities_1.FkDownloadTaskEntity();
42
- const root = this.injector.get(core_1.APP_ROOT);
43
- (0, fs_extra_1.ensureDirSync)((0, path_1.join)(root, 'attachments/fk-upload'));
44
- const path = (0, path_1.join)(root, 'attachments/fk-upload', filename);
45
- task.filename = filename;
46
- task.url = url;
47
- task.loginId = fkLoginId;
48
- task.totalSize = 0;
49
- task.path = path;
50
- task.status = 0;
51
- task.size = 0;
52
- task.topicId = topicId;
53
- await this.db.manager.save(task);
54
- return this.addDownloadTask(task);
55
- }
56
- async addDownloadTask(task) {
57
- const content = Buffer.from(JSON.stringify(task));
58
- await this.rabbit.send('@nger/fk-upload/download-task', content);
59
- }
60
- };
61
- CreateDownloadTask = __decorate([
62
- (0, core_1.Injectable)(),
63
- __metadata("design:paramtypes", [core_1.Injector, typeorm_1.Db, rabbitmq_1.RabbitMqService])
64
- ], CreateDownloadTask);
65
- exports.CreateDownloadTask = CreateDownloadTask;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,16 +0,0 @@
1
- import { RabbitMqService } from "@nger/rabbitmq";
2
- import { RedisService } from "@nger/redis";
3
- import { ScheduleService } from "@nger/schedule";
4
- import { Db } from "@nger/typeorm";
5
- import { W7DataSource } from "@nger/w7";
6
- import { CreateDownloadTask } from "./create-download-task";
7
- export declare class ReceiveScheduleTask {
8
- private rabbit;
9
- private redis;
10
- private schedule;
11
- private db;
12
- private w7;
13
- private createDownloadTask;
14
- constructor(rabbit: RabbitMqService, redis: RedisService, schedule: ScheduleService, db: Db, w7: W7DataSource, createDownloadTask: CreateDownloadTask);
15
- receiveScheduleTask(runner: Function): Promise<void>;
16
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReceiveScheduleTask = void 0;
4
- const w7_1 = require("@nger/w7");
5
- const entities_1 = require("../../entities");
6
- const typeorm_1 = require("typeorm");
7
- class ReceiveScheduleTask {
8
- rabbit;
9
- redis;
10
- schedule;
11
- db;
12
- w7;
13
- createDownloadTask;
14
- constructor(rabbit, redis, schedule, db, w7, createDownloadTask) {
15
- this.rabbit = rabbit;
16
- this.redis = redis;
17
- this.schedule = schedule;
18
- this.db = db;
19
- this.w7 = w7;
20
- this.createDownloadTask = createDownloadTask;
21
- }
22
- async receiveScheduleTask(runner) {
23
- const obs = await this.rabbit.receive(`@nger/fk-upload/schedule-task`);
24
- obs.subscribe({
25
- next: async ([data, complete, fail]) => {
26
- try {
27
- const task = JSON.parse(data);
28
- const setting = await this.redis.get(`setting`);
29
- if (!setting) {
30
- return complete();
31
- }
32
- if (task.name === setting.name) {
33
- console.log(`shedule job regist ${task.name}`);
34
- this.schedule.scheduleJob(task.name, task.rule, async (time) => {
35
- const accounts = await this.db.manager.find(entities_1.FkLoginEntity, {});
36
- const w7Usernames = accounts.map(account => account.w7Username);
37
- const users = await this.w7.manager.find(w7_1.W7UsersEntity, { where: { username: (0, typeorm_1.In)(w7Usernames) } });
38
- const uids = users.map(user => user.uid);
39
- const uniAccounts = await this.w7.manager.find(w7_1.W7UniAccountEntity, { where: { createUid: (0, typeorm_1.In)(uids) } });
40
- const uniacids = uniAccounts.map(a => a.uniacid);
41
- const tasks = await this.db.manager.find(entities_1.FkDownloadTaskEntity, { select: ['topicId'] });
42
- const ids = tasks.map(task => task.topicId);
43
- const topics = await this.w7.manager.find(w7_1.W7ChatTopicEntity, { where: { uniacid: (0, typeorm_1.In)(uniacids), id: (0, typeorm_1.Not)((0, typeorm_1.In)(ids)) } });
44
- topics.map(topic => {
45
- if (topic.thirdUrl) {
46
- const uniacid = topic.uniacid;
47
- const account = uniAccounts.find(a => a.uniacid === uniacid);
48
- const user = users.find(u => u.uid === account.createUid);
49
- const login = accounts.find(a => a.w7Username === user.username);
50
- this.createDownloadTask.createDownLoadTask(topic.thirdUrl, login.fkLoginId, topic.id);
51
- }
52
- });
53
- });
54
- }
55
- else {
56
- complete();
57
- }
58
- }
59
- catch (e) {
60
- fail();
61
- }
62
- }
63
- });
64
- }
65
- }
66
- exports.ReceiveScheduleTask = ReceiveScheduleTask;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,3 +0,0 @@
1
- import "reflect-metadata";
2
- export declare class AppModule {
3
- }