@nger/fk-upload 1.0.160 → 1.0.163

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env ADDED
@@ -0,0 +1,32 @@
1
+
2
+
3
+
4
+
5
+ DB_TYPE=mysql
6
+ DB_HOST=sh-cdb-36cco5yk.sql.tencentcdb.com
7
+ DB_PORT=59440
8
+ DB_USERNAME=wx_jidujiaowang
9
+ DB_PASSWORD=S4Gx3ScmdYf23Gbb
10
+ DB_DATABASE=wx_jidujiaowang
11
+ DB_SYNCHRONIZE=true
12
+
13
+ REDIS_HOST=localhost
14
+ REDIS_PORT=6379
15
+ REDIS_PASS=123qwe
16
+
17
+ HTTP_HOST=0.0.0.0
18
+ HTTP_PORT=8081
19
+
20
+ WS_HOST=0.0.0.0
21
+ WS_PORT=8082
22
+
23
+ RABBITMQ_HOST=111.229.255.176
24
+ RABBITMQ_PORT=5672
25
+ RABBITMQ_USERNAME=imeepos
26
+ RABBITMQ_PASSWORD=123qwe
27
+
28
+ CLOUD_URL=http://111.229.255.176:8081
29
+ HOST_URL=http://111.229.255.176:8081
30
+
31
+
32
+
@@ -0,0 +1,3 @@
1
+ import "reflect-metadata";
2
+ export declare class AppModule {
3
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const electron_1 = require("electron");
6
+ require("reflect-metadata");
7
+ require('dotenv').config();
8
+ const core_1 = require("@nger/core");
9
+ const fk_upload_module_1 = require("./fk-upload.module");
10
+ const http_1 = require("@nger/http");
11
+ const typeorm_1 = require("@nger/typeorm");
12
+ const api_1 = require("@nger/api");
13
+ const utils_1 = require("@nger/utils");
14
+ const ws_1 = require("@nger/ws");
15
+ const redis_1 = require("@nger/redis");
16
+ const rabbitmq_1 = require("@nger/rabbitmq");
17
+ const schedule_1 = require("@nger/schedule");
18
+ const w7_1 = require("@nger/w7");
19
+ let AppModule = class AppModule {
20
+ };
21
+ AppModule = tslib_1.__decorate([
22
+ (0, core_1.Module)({
23
+ providers: [{
24
+ provide: core_1.APP_ROOT,
25
+ useValue: process.cwd()
26
+ }],
27
+ imports: [
28
+ w7_1.W7Module,
29
+ fk_upload_module_1.FkUploadModule,
30
+ http_1.HttpModule.forEnv(),
31
+ typeorm_1.TypeormModule.forEnv(),
32
+ ws_1.WsModule.forEnv(),
33
+ redis_1.RedisModule.forEnv(),
34
+ rabbitmq_1.RabbitMqModule.forEnv(),
35
+ api_1.ApiModule,
36
+ utils_1.UtilsModule,
37
+ schedule_1.ScheduleModule
38
+ ],
39
+ controllers: []
40
+ })
41
+ ], AppModule);
42
+ exports.AppModule = AppModule;
43
+ async function createWindow() {
44
+ const win = new electron_1.BrowserWindow({
45
+ width: 1024,
46
+ height: 768,
47
+ closable: true,
48
+ title: 'FkUpload'
49
+ });
50
+ const injector = await (0, core_1.platformCore)().bootstrap(AppModule);
51
+ injector.use([{
52
+ provide: electron_1.BrowserWindow,
53
+ useValue: win
54
+ }], 'root');
55
+ win.webContents.closeDevTools();
56
+ electron_1.Menu.setApplicationMenu(null);
57
+ setTimeout(() => {
58
+ win.loadURL('http://0.0.0.0:8081/@nger/fk-upload/help');
59
+ }, 200);
60
+ }
61
+ //
62
+ electron_1.app.whenReady().then(() => {
63
+ createWindow();
64
+ electron_1.app.on('activate', () => {
65
+ if (electron_1.BrowserWindow.getAllWindows().length === 0) {
66
+ createWindow();
67
+ }
68
+ });
69
+ });
@@ -47,7 +47,6 @@ let AddFkLoginController = class AddFkLoginController {
47
47
  fkLogin = item;
48
48
  }
49
49
  return react_1.default.createElement(component_1.Nav, { active: 1 },
50
- react_1.default.createElement("link", { href: "https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css", rel: "stylesheet" }),
51
50
  react_1.default.createElement("form", { action: '', method: 'post', encType: 'application/x-www-form-urlencoded' },
52
51
  react_1.default.createElement("div", { className: "form-group" },
53
52
  react_1.default.createElement("label", { htmlFor: "username" }, "\u7528\u6237\u540D"),
@@ -60,8 +59,7 @@ let AddFkLoginController = class AddFkLoginController {
60
59
  react_1.default.createElement("input", { id: "w7Username", name: "w7Username", onChange: e => { }, className: "form-control", type: "text", value: fkLogin.w7Username })),
61
60
  react_1.default.createElement("div", { className: "for-group" },
62
61
  react_1.default.createElement("button", { type: "submit", className: 'btn btn-primary' }, "\u6DFB\u52A0"),
63
- react_1.default.createElement("button", { type: "reset", className: 'btn' }, "\u91CD\u7F6E"),
64
- react_1.default.createElement("a", { className: "btn btn-link", href: "/@nger/fk-upload/help" }, "\u9996\u9875"))));
62
+ react_1.default.createElement("button", { type: "reset", className: 'btn' }, "\u91CD\u7F6E"))));
65
63
  }
66
64
  };
67
65
  tslib_1.__decorate([
@@ -9,5 +9,5 @@ export declare class AddTaskController {
9
9
  private taskService;
10
10
  constructor(db: Db, task: TaskManager, taskService: TaskService);
11
11
  postAddTask(post: any, ctx: Context): Promise<void>;
12
- addTask(): JSX.Element;
12
+ addTask(query: any): JSX.Element;
13
13
  }
@@ -23,7 +23,8 @@ let AddTaskController = class AddTaskController {
23
23
  const { url, we7Username } = post;
24
24
  const loginEntity = await this.db.manager.findOne(entities_1.FkLoginEntity, { where: { w7Username: we7Username } });
25
25
  if (loginEntity) {
26
- const task = await this.taskService.createDownLoadTask(url, loginEntity.fkLoginId, 0);
26
+ const topicId = Number(post.topicId);
27
+ const task = await this.taskService.createDownLoadTask(url, loginEntity.fkLoginId, topicId);
27
28
  const download = task.data;
28
29
  const fkdownloadTask = new entities_1.FkDownloadTaskEntity();
29
30
  fkdownloadTask.filename = download.filename;
@@ -37,15 +38,19 @@ let AddTaskController = class AddTaskController {
37
38
  ctx.redirect('/@nger/fk-upload/task-manage');
38
39
  return;
39
40
  }
40
- addTask() {
41
+ addTask(query) {
42
+ const data = query || {};
41
43
  return react_1.default.createElement(component_1.Nav, { active: 3 },
42
44
  react_1.default.createElement("form", { action: "/@nger/fk-upload/add-task", method: "post" },
43
45
  react_1.default.createElement("div", { className: "form-group" },
44
46
  react_1.default.createElement("label", { htmlFor: "url" }, "\u8FDE\u63A5"),
45
- react_1.default.createElement("input", { type: "text", name: "url", className: 'form-control', id: "url" })),
47
+ react_1.default.createElement("input", { type: "text", onChange: e => { }, name: "url", value: data.value, className: 'form-control', id: "url" })),
46
48
  react_1.default.createElement("div", { className: "form-group" },
47
49
  react_1.default.createElement("label", { htmlFor: "w7Username" }, "\u5FAE\u64CE\u8D26\u6237"),
48
- react_1.default.createElement("input", { type: "text", name: "we7Username", className: 'form-control', id: "w7Username" })),
50
+ react_1.default.createElement("input", { type: "text", onChange: e => { }, name: "we7Username", value: data.username, className: 'form-control', id: "w7Username" })),
51
+ react_1.default.createElement("div", { className: "form-group" },
52
+ react_1.default.createElement("label", { htmlFor: "w7Username" }, "topicId"),
53
+ react_1.default.createElement("input", { type: "text", onChange: e => { }, name: "topicId", value: "{data.id}", className: 'form-control', id: "topicId" })),
49
54
  react_1.default.createElement("div", { className: "form-group" },
50
55
  react_1.default.createElement("button", { type: "submit", className: "btn btn-primary" }, "\u63D0\u4EA4"),
51
56
  react_1.default.createElement("button", { type: "reset", className: "btn" }, "\u91CD\u7F6E"))));
@@ -61,8 +66,9 @@ tslib_1.__decorate([
61
66
  ], AddTaskController.prototype, "postAddTask", null);
62
67
  tslib_1.__decorate([
63
68
  (0, http_1.Get)('add-task'),
69
+ tslib_1.__param(0, (0, http_1.Query)()),
64
70
  tslib_1.__metadata("design:type", Function),
65
- tslib_1.__metadata("design:paramtypes", []),
71
+ tslib_1.__metadata("design:paramtypes", [Object]),
66
72
  tslib_1.__metadata("design:returntype", void 0)
67
73
  ], AddTaskController.prototype, "addTask", null);
68
74
  AddTaskController = tslib_1.__decorate([
@@ -21,7 +21,8 @@ initFaicaptcha({
21
21
  window.location.href = '/@nger/fk-upload/relogin?token='+n+'&loginId='+loginId;
22
22
  });
23
23
  `
24
- } }));
24
+ } }),
25
+ react_1.default.createElement("a", { href: "/@nger/fk-upload/help" }, "go home"));
25
26
  }
26
27
  };
27
28
  tslib_1.__decorate([
@@ -21,7 +21,7 @@ function Nav(props) {
21
21
  title: '设置'
22
22
  }];
23
23
  return react_1.default.createElement("div", null,
24
- react_1.default.createElement("link", { href: "https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css", rel: "stylesheet" }),
24
+ react_1.default.createElement("link", { href: "https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css", rel: "stylesheet" }),
25
25
  react_1.default.createElement("nav", { className: "navbar navbar-expand-lg navbar-dark bg-primary" },
26
26
  react_1.default.createElement("div", { className: "collapse navbar-collapse show" },
27
27
  react_1.default.createElement("ul", { className: "navbar-nav mr-auto", style: { display: "flex", flexDirection: 'row' } },
@@ -16,7 +16,6 @@ let HelpController = class HelpController {
16
16
  async help() {
17
17
  const list = await this.db.manager.find(fk_login_entity_1.FkLoginEntity, { where: {} });
18
18
  return react_1.default.createElement(component_1.Nav, { active: 0 },
19
- react_1.default.createElement("link", { href: "https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css", rel: "stylesheet" }),
20
19
  react_1.default.createElement("table", { className: 'table' },
21
20
  react_1.default.createElement("thead", null,
22
21
  react_1.default.createElement("tr", null,
@@ -1,15 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { TaskService } from './tasks/task.service';
3
- import { Client } from '@nger/redis';
4
3
  import { Context } from 'koa';
5
4
  import { TaskManager } from '@nger/rabbitmq';
6
5
  import { Db } from '@nger/typeorm';
7
6
  export declare class SettingController {
8
7
  private task;
9
- private redis;
10
8
  private manager;
11
9
  private db;
12
- constructor(task: TaskService, redis: Client, manager: TaskManager, db: Db);
10
+ constructor(task: TaskService, manager: TaskManager, db: Db);
13
11
  saveSetting(body: any, taskId: number, ctx: Context): Promise<void>;
14
12
  setting(): Promise<JSX.Element>;
15
13
  }
@@ -7,18 +7,15 @@ const http_1 = require("@nger/http");
7
7
  const react_1 = tslib_1.__importDefault(require("react"));
8
8
  const component_1 = require("./component");
9
9
  const task_service_1 = require("./tasks/task.service");
10
- const redis_1 = require("@nger/redis");
11
10
  const actions_1 = require("./tasks/actions");
12
11
  const rabbitmq_1 = require("@nger/rabbitmq");
13
12
  const typeorm_1 = require("@nger/typeorm");
14
13
  let SettingController = class SettingController {
15
14
  task;
16
- redis;
17
15
  manager;
18
16
  db;
19
- constructor(task, redis, manager, db) {
17
+ constructor(task, manager, db) {
20
18
  this.task = task;
21
- this.redis = redis;
22
19
  this.manager = manager;
23
20
  this.db = db;
24
21
  }
@@ -63,6 +60,6 @@ tslib_1.__decorate([
63
60
  ], SettingController.prototype, "setting", null);
64
61
  SettingController = tslib_1.__decorate([
65
62
  (0, core_1.Controller)(`@nger/fk-upload`),
66
- tslib_1.__metadata("design:paramtypes", [task_service_1.TaskService, redis_1.Client, rabbitmq_1.TaskManager, typeorm_1.Db])
63
+ tslib_1.__metadata("design:paramtypes", [task_service_1.TaskService, rabbitmq_1.TaskManager, typeorm_1.Db])
67
64
  ], SettingController);
68
65
  exports.SettingController = SettingController;
@@ -2,15 +2,19 @@
2
2
  import { Config } from '@nger/core';
3
3
  import { Db } from '@nger/typeorm';
4
4
  import { Context } from 'koa';
5
+ import { BrowserWindow } from 'electron';
5
6
  export declare class TaskManageController {
6
7
  private db;
7
8
  private config;
8
- constructor(db: Db, config: Config);
9
+ private win;
10
+ constructor(db: Db, config: Config, win: BrowserWindow);
9
11
  toUrl(query: any): string;
10
12
  createPages(total: number, query: any, page: number): {
11
13
  index: number;
12
14
  link: string;
15
+ cls: string;
13
16
  }[];
14
17
  taskManage(query: any): Promise<JSX.Element>;
18
+ downloadFile(url: string, back: string, ctx: Context): void;
15
19
  staticTaskManage(ctx: Context): any;
16
20
  }
@@ -24,12 +24,15 @@ function getStatusTitle(status) {
24
24
  return 'unknow';
25
25
  }
26
26
  }
27
+ const electron_1 = require("electron");
27
28
  let TaskManageController = class TaskManageController {
28
29
  db;
29
30
  config;
30
- constructor(db, config) {
31
+ win;
32
+ constructor(db, config, win) {
31
33
  this.db = db;
32
34
  this.config = config;
35
+ this.win = win;
33
36
  }
34
37
  toUrl(query) {
35
38
  return Object.keys(query).map(key => `${key}=${decodeURIComponent(query[key])}`).join('&');
@@ -45,13 +48,26 @@ let TaskManageController = class TaskManageController {
45
48
  max += -min;
46
49
  }
47
50
  if (d > min && d < max) {
48
- list.push({
49
- index: d,
50
- link: `/@nger/fk-upload/task-manage?${this.toUrl({
51
- ...query,
52
- page: d
53
- })}`
54
- });
51
+ if (d === page) {
52
+ list.push({
53
+ index: d,
54
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({
55
+ ...query,
56
+ page: d
57
+ })}`,
58
+ cls: `page-item active`
59
+ });
60
+ }
61
+ else {
62
+ list.push({
63
+ index: d,
64
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({
65
+ ...query,
66
+ page: d
67
+ })}`,
68
+ cls: `page-item`
69
+ });
70
+ }
55
71
  }
56
72
  }
57
73
  return list;
@@ -98,37 +114,37 @@ let TaskManageController = class TaskManageController {
98
114
  const nextUrl = `/@nger/fk-upload/task-manage?${this.toUrl(next)}`;
99
115
  const pages = this.createPages(totalPage, query, page);
100
116
  const bigNav = [{
101
- title: 'all',
102
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: -1 })}`,
117
+ title: '不限',
118
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: -1, page: 1 })}`,
103
119
  key: -1
104
120
  }, {
105
- title: 'big',
106
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 1 })}`,
121
+ title: '大于1G',
122
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 1, page: 1 })}`,
107
123
  key: 1
108
124
  }, {
109
- title: 'small',
110
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 0 })}`,
125
+ title: '小于1G',
126
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, isBigFile: 0, page: 1 })}`,
111
127
  key: 0
112
128
  }];
113
129
  const navs = [{
114
- title: 'all',
115
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: -1 })}`,
130
+ title: '不限',
131
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: -1, page: 1 })}`,
116
132
  key: -1
117
133
  }, {
118
- title: 'downloading',
119
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 0 })}`,
134
+ title: '待下载',
135
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 0, page: 1 })}`,
120
136
  key: 0
121
137
  }, {
122
- title: 'uploading',
123
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 1 })}`,
138
+ title: '待上传',
139
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 1, page: 1 })}`,
124
140
  key: 1
125
141
  }, {
126
- title: 'effecting',
127
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 2 })}`,
142
+ title: '待生效',
143
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 2, page: 1 })}`,
128
144
  key: 2
129
145
  }, {
130
- title: 'finish',
131
- link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 3 })}`,
146
+ title: '已完成',
147
+ link: `/@nger/fk-upload/task-manage?${this.toUrl({ ...query, status: 3, page: 1 })}`,
132
148
  key: 3
133
149
  }];
134
150
  return react_1.default.createElement(component_1.Nav, { active: 2 },
@@ -158,32 +174,44 @@ let TaskManageController = class TaskManageController {
158
174
  react_1.default.createElement("tr", null,
159
175
  react_1.default.createElement("td", { width: '180px' }, "\u6587\u4EF6\u540D"),
160
176
  react_1.default.createElement("td", null, "\u72B6\u6001"),
161
- react_1.default.createElement("td", null, "size"),
162
- react_1.default.createElement("td", null, "isBigFile"),
163
- react_1.default.createElement("td", { width: '240px' }, "\u8FDE\u63A5"),
164
- react_1.default.createElement("td", null, "operation"))),
177
+ react_1.default.createElement("td", null, "\u5927\u5C0F"),
178
+ react_1.default.createElement("td", null, "\u5927\u4E8E1G"),
179
+ react_1.default.createElement("td", null, "\u64CD\u4F5C"))),
165
180
  react_1.default.createElement("tbody", null, tasks.map((task, key) => {
181
+ const uploadUrl = task.uploadUrl;
182
+ // https://29294142.s21v.faiusr.com/58/ABUIABA6GAAg3tiOlAYogPvErAY.mp4
183
+ // https://29294142.s21d.faiusrd.com/58/ABUIABA6GAAgzrCRlAYo_J_Aag.mp4
184
+ // https://29294142.s21d.faiusrd.com/0/ABUIABA6GAAg3tiOlAYogPvErAY.mp4?f=mAVUREPTVCTkBF%2BzQR2oy8h6lZw4.mp4&
185
+ // let downloadurl = uploadUrl.replace('s21v.faiusr/58', 's21d.faiusrd/0')
186
+ // downloadurl += `?f=${task.filename}&`
187
+ const url = `/@nger/fk-upload/download-file?url=${task.uploadUrl}&back=/@nger/fk-upload/task-manage?${this.toUrl(query)}`;
166
188
  return react_1.default.createElement("tr", { key: key },
167
189
  react_1.default.createElement("td", null, task.filename),
168
190
  react_1.default.createElement("td", null, getStatusTitle(task.status)),
169
191
  react_1.default.createElement("td", null,
170
192
  Math.ceil(100 * task.totalSize / (1024 * 1024 * 1024)) / 100,
171
193
  "G"),
172
- react_1.default.createElement("td", null, task.isBigFile ? 'big' : 'small'),
173
- react_1.default.createElement("td", { id: task.filename + '-upload-url' },
174
- react_1.default.createElement("a", { href: task.uploadUrl }, "download")),
175
- react_1.default.createElement("td", { id: task.filename + '-operation-td' }));
194
+ react_1.default.createElement("td", null, task.isBigFile ? '' : ''),
195
+ react_1.default.createElement("td", null,
196
+ react_1.default.createElement("input", { type: "hidden", id: task.filename + '-copy', onChange: () => { }, value: task.uploadUrl }),
197
+ react_1.default.createElement("a", { href: url }, "\u4E0B\u8F7D")));
176
198
  }))),
177
199
  react_1.default.createElement("nav", null,
178
200
  react_1.default.createElement("ul", { className: "pagination" },
179
201
  react_1.default.createElement("li", { className: "page-item" },
180
202
  react_1.default.createElement("a", { className: "page-link", href: preUrl }, "Previous")),
181
- pages.map(page => react_1.default.createElement("li", { className: "page-item" },
203
+ pages.map(page => react_1.default.createElement("li", { className: page.cls },
182
204
  react_1.default.createElement("a", { className: "page-link", href: page.link }, page.index))),
183
205
  react_1.default.createElement("li", { className: "page-item" },
184
206
  react_1.default.createElement("a", { className: "page-link", href: nextUrl }, "Next")))),
185
207
  react_1.default.createElement("script", { src: "/@nger/fk-upload/static/task-manage.js?t=" + new Date().getTime() }));
186
208
  }
209
+ downloadFile(url, back, ctx) {
210
+ if (this.win) {
211
+ this.win.webContents.downloadURL(url);
212
+ }
213
+ ctx.redirect(back);
214
+ }
187
215
  staticTaskManage(ctx) {
188
216
  try {
189
217
  ctx.type = 'js';
@@ -202,6 +230,15 @@ tslib_1.__decorate([
202
230
  tslib_1.__metadata("design:paramtypes", [Object]),
203
231
  tslib_1.__metadata("design:returntype", Promise)
204
232
  ], TaskManageController.prototype, "taskManage", null);
233
+ tslib_1.__decorate([
234
+ (0, http_1.Get)('download-file'),
235
+ tslib_1.__param(0, (0, http_1.Query)('url')),
236
+ tslib_1.__param(1, (0, http_1.Query)('back')),
237
+ tslib_1.__param(2, (0, core_1.Inject)(http_1.CONTEXT)),
238
+ tslib_1.__metadata("design:type", Function),
239
+ tslib_1.__metadata("design:paramtypes", [String, String, Object]),
240
+ tslib_1.__metadata("design:returntype", void 0)
241
+ ], TaskManageController.prototype, "downloadFile", null);
205
242
  tslib_1.__decorate([
206
243
  (0, http_1.Get)('static/task-manage.js'),
207
244
  tslib_1.__param(0, (0, core_1.Inject)(http_1.CONTEXT)),
@@ -211,6 +248,6 @@ tslib_1.__decorate([
211
248
  ], TaskManageController.prototype, "staticTaskManage", null);
212
249
  TaskManageController = tslib_1.__decorate([
213
250
  (0, core_1.Controller)(`@nger/fk-upload`),
214
- tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, core_1.Config])
251
+ tslib_1.__metadata("design:paramtypes", [typeorm_1.Db, core_1.Config, electron_1.BrowserWindow])
215
252
  ], TaskManageController);
216
253
  exports.TaskManageController = TaskManageController;
@@ -27,7 +27,7 @@ class DownloadTask extends rabbitmq_1.Task {
27
27
  const complete = injector.get(rabbitmq_1.COMPLETE);
28
28
  const fail = injector.get(rabbitmq_1.FAIL);
29
29
  const download = await db.manager.findOne(entities_1.FkDownloadTaskEntity, { where: { filename: task.filename } });
30
- if (download.status !== 0) {
30
+ if (!download || (download && download.status !== 0)) {
31
31
  await complete();
32
32
  return next && next();
33
33
  }
@@ -25,11 +25,13 @@ class UploadTask extends rabbitmq_1.Task {
25
25
  async handle(injector, next) {
26
26
  const task = injector.get(rabbitmq_1.DATA);
27
27
  const complete = injector.get(rabbitmq_1.COMPLETE);
28
- const fail = injector.get(rabbitmq_1.FAIL);
29
28
  const fk = injector.get(fk_service_1.FkService);
30
29
  const taskService = injector.get(task_service_1.TaskService);
31
30
  const manager = injector.get(rabbitmq_1.TaskManager);
32
31
  const db = injector.get(typeorm_1.Db);
32
+ if (!(0, fs_1.existsSync)(task.path)) {
33
+ throw new Error(`file ${task.path} not found`);
34
+ }
33
35
  // check file size
34
36
  const old = await db.manager.findOne(entities_1.FkDownloadTaskEntity, { where: { filename: task.filename } });
35
37
  // not exist
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nger/fk-upload",
3
- "version": "1.0.160",
3
+ "version": "1.0.163",
4
4
  "description": "",
5
- "main": "dist/core.js",
5
+ "main": "dist/electon.js",
6
6
  "types": "dist/core.d.ts",
7
7
  "nger": {
8
8
  "cover": [],
@@ -36,9 +36,13 @@
36
36
  "react": "^18.1.0",
37
37
  "request": "^2.88.2"
38
38
  },
39
+ "devDependencies": {
40
+ "electron": "^18.2.3"
41
+ },
39
42
  "scripts": {
40
43
  "tsc": "tsc",
41
- "tsc:build": "tsc"
44
+ "tsc:build": "tsc",
45
+ "electron": "electron ."
42
46
  },
43
47
  "readme": "## admin\n\n## account\n\n## test url -- \n\n## \n\nhttp://kaifa2.jidujiaowang.com/web/index.php?c=site&a=entry&eid=8&version_id=0\nadmin888\n12345678"
44
48
  }