@nger/fk-upload 1.0.5 → 1.0.8

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 (62) hide show
  1. package/dist/core.d.ts +1 -0
  2. package/dist/entities/fk-download-task.entity.d.ts +12 -0
  3. package/dist/entities/fk-download-task.entity.js +83 -0
  4. package/dist/entities/fk-login-account.entity.d.ts +5 -0
  5. package/dist/entities/fk-login-account.entity.js +38 -0
  6. package/dist/entities/fk-login-cookie.entity.d.ts +7 -0
  7. package/dist/entities/fk-login-cookie.entity.js +54 -0
  8. package/dist/entities/fk-login.entity.d.ts +12 -0
  9. package/dist/entities/fk-login.entity.js +88 -0
  10. package/dist/entities/index.d.ts +3 -0
  11. package/dist/entities/index.js +19 -0
  12. package/dist/fk-upload.controller.d.ts +28 -0
  13. package/dist/fk-upload.controller.js +271 -0
  14. package/dist/fk-upload.module.d.ts +2 -0
  15. package/dist/fk-upload.module.js +58 -0
  16. package/dist/fk-v2.service.d.ts +29 -0
  17. package/dist/fk-v2.service.js +153 -0
  18. package/dist/fk.service.d.ts +17 -0
  19. package/dist/fk.service.js +89 -0
  20. package/dist/login.controller.d.ts +14 -0
  21. package/dist/login.controller.js +211 -0
  22. package/dist/main.d.ts +3 -0
  23. package/dist/main.js +38 -0
  24. package/dist/templates/account-manage.d.ts +3 -0
  25. package/dist/templates/account-manage.js +27 -0
  26. package/dist/templates/add-account.d.ts +0 -0
  27. package/dist/templates/add-account.js +1 -0
  28. package/dist/templates/add-fk-login.d.ts +10 -0
  29. package/dist/templates/add-fk-login.js +96 -0
  30. package/dist/templates/add-task.d.ts +10 -0
  31. package/dist/templates/add-task.js +76 -0
  32. package/dist/templates/code.d.ts +3 -0
  33. package/dist/templates/code.js +51 -0
  34. package/dist/templates/component.d.ts +9 -0
  35. package/dist/templates/component.js +34 -0
  36. package/dist/templates/download-task.d.ts +12 -0
  37. package/dist/templates/download-task.js +103 -0
  38. package/dist/templates/error.d.ts +3 -0
  39. package/dist/templates/error.js +41 -0
  40. package/dist/templates/help.d.ts +6 -0
  41. package/dist/templates/help.js +67 -0
  42. package/dist/templates/login.service.d.ts +2 -0
  43. package/dist/templates/login.service.js +16 -0
  44. package/dist/templates/relogin.d.ts +5 -0
  45. package/dist/templates/relogin.js +25 -0
  46. package/dist/templates/task-manage.d.ts +6 -0
  47. package/dist/templates/task-manage.js +76 -0
  48. package/dist/templates/upload-task.d.ts +9 -0
  49. package/dist/templates/upload-task.js +155 -0
  50. package/dist/templates/upload.d.ts +15 -0
  51. package/dist/templates/upload.js +248 -0
  52. package/dist/templates/upload.service.d.ts +20 -0
  53. package/dist/templates/upload.service.js +298 -0
  54. package/dist/templates/verify.d.ts +15 -0
  55. package/dist/templates/verify.js +75 -0
  56. package/dist/tests/test.d.ts +3 -0
  57. package/dist/tests/test.js +101 -0
  58. package/dist/urlSafeBase64Decode.d.ts +3 -0
  59. package/dist/urlSafeBase64Decode.js +37 -0
  60. package/package.json +6 -5
  61. package/pnpm-lock.yaml +1172 -0
  62. package/tsconfig.json +12 -0
@@ -0,0 +1,58 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FkUploadModule = void 0;
10
+ const core_1 = require("@nger/core");
11
+ const typeorm_1 = require("@nger/typeorm");
12
+ const entities_1 = require("./entities");
13
+ const fk_login_account_entity_1 = require("./entities/fk-login-account.entity");
14
+ const login_controller_1 = require("./login.controller");
15
+ const add_fk_login_1 = require("./templates/add-fk-login");
16
+ const add_task_1 = require("./templates/add-task");
17
+ const code_1 = require("./templates/code");
18
+ const download_task_1 = require("./templates/download-task");
19
+ const error_1 = require("./templates/error");
20
+ const help_1 = require("./templates/help");
21
+ const task_manage_1 = require("./templates/task-manage");
22
+ const upload_1 = require("./templates/upload");
23
+ const upload_task_1 = require("./templates/upload-task");
24
+ const upload_service_1 = require("./templates/upload.service");
25
+ const verify_1 = require("./templates/verify");
26
+ const urlSafeBase64Decode_1 = require("./urlSafeBase64Decode");
27
+ let FkUploadModule = class FkUploadModule {
28
+ };
29
+ FkUploadModule = __decorate([
30
+ (0, core_1.Module)({
31
+ providers: [
32
+ urlSafeBase64Decode_1.UrlSafeBase64,
33
+ upload_service_1.UploadService
34
+ ],
35
+ controllers: [
36
+ code_1.FkUploadCodeController,
37
+ login_controller_1.LoginController,
38
+ verify_1.VerifyController,
39
+ help_1.HelpController,
40
+ upload_1.UploadController,
41
+ download_task_1.DownloadTaskController,
42
+ upload_task_1.UploadTaskController,
43
+ add_fk_login_1.AddFkLoginController,
44
+ task_manage_1.TaskManageController,
45
+ add_task_1.AddTaskController,
46
+ error_1.ErrorController
47
+ ],
48
+ imports: [
49
+ typeorm_1.TypeormModule.forFeature([
50
+ entities_1.FkLoginEntity,
51
+ entities_1.FkLoginCookieEntity,
52
+ entities_1.FkDownloadTaskEntity,
53
+ fk_login_account_entity_1.FkLoginAccountEntity
54
+ ])
55
+ ]
56
+ })
57
+ ], FkUploadModule);
58
+ exports.FkUploadModule = FkUploadModule;
@@ -0,0 +1,29 @@
1
+ import { Injector } from '@nger/core';
2
+ import { Db } from '@nger/typeorm';
3
+ import { FkLoginEntity } from './entities';
4
+ import { UrlSafeBase64 } from './urlSafeBase64Decode';
5
+ export declare class FkV2Service {
6
+ private fkLogin;
7
+ private db;
8
+ private injector;
9
+ baseurl: string;
10
+ get urlSafeBase64(): UrlSafeBase64;
11
+ aid: number | undefined;
12
+ siteId: number | undefined;
13
+ get fileSizeLimit(): number;
14
+ constructor(fkLogin: FkLoginEntity, db: Db, injector: Injector);
15
+ init(): Promise<any>;
16
+ updateToken(token: string): Promise<void>;
17
+ getSiteId(html: string): number | undefined;
18
+ getAid(html: string): number | undefined;
19
+ getCookies(): Promise<string>;
20
+ genAccessKey(): Promise<any>;
21
+ getUploadUrl(token: any): string;
22
+ getWatermark(): Promise<any>;
23
+ _uTime: number;
24
+ advanceUploadReport(tempFile: any, tempType: number, tempFlag: boolean): Promise<void>;
25
+ get(url: string): Promise<any>;
26
+ post(url: string, data: any): Promise<any>;
27
+ encodeURIComponent(data: any): string;
28
+ upload(): void;
29
+ }
@@ -0,0 +1,153 @@
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.FkV2Service = void 0;
16
+ const core_1 = require("@nger/core");
17
+ const typeorm_1 = require("@nger/typeorm");
18
+ const entities_1 = require("./entities");
19
+ const axios_1 = __importDefault(require("axios"));
20
+ const urlSafeBase64Decode_1 = require("./urlSafeBase64Decode");
21
+ let FkV2Service = class FkV2Service {
22
+ fkLogin;
23
+ db;
24
+ injector;
25
+ baseurl = `https://smr00.vip.webportal.top/`;
26
+ get urlSafeBase64() {
27
+ return this.injector.get(urlSafeBase64Decode_1.UrlSafeBase64);
28
+ }
29
+ aid;
30
+ siteId;
31
+ get fileSizeLimit() {
32
+ return this.fkLogin.fileSizeLimit;
33
+ }
34
+ constructor(fkLogin, db, injector) {
35
+ this.fkLogin = fkLogin;
36
+ this.db = db;
37
+ this.injector = injector;
38
+ }
39
+ async init() {
40
+ return this.get(`https://i.vip.webportal.top/`).then(async (html) => {
41
+ this.aid = this.getAid(html);
42
+ this.siteId = this.getSiteId(html);
43
+ await this.db.manager.update(entities_1.FkLoginEntity, this.fkLogin.fkLoginId, {
44
+ aid: this.aid || 0,
45
+ uploadGroupId: this.siteId || 0
46
+ });
47
+ return html;
48
+ });
49
+ }
50
+ async updateToken(token) {
51
+ await this.db.manager.update(entities_1.FkLoginEntity, this.fkLogin.fkLoginId, {
52
+ token
53
+ });
54
+ }
55
+ // Fai.top._siteId
56
+ getSiteId(html) {
57
+ const list = html.match(/Fai.top._siteId = (.*),/);
58
+ if (list && list.length === 2)
59
+ return Number(list[1]);
60
+ return undefined;
61
+ }
62
+ getAid(html) {
63
+ const list = html.match(/Fai.top._aid = (.*),/);
64
+ if (list && list.length === 2)
65
+ return Number(list[1]);
66
+ return undefined;
67
+ }
68
+ async getCookies() {
69
+ const cookies = await this.db.manager.find(entities_1.FkLoginCookieEntity, { where: { fkLoginId: this.fkLogin.fkLoginId } });
70
+ const cookieStr = cookies.map(cookie => `${cookie.key}=${cookie.value}`).join(';');
71
+ return cookieStr;
72
+ }
73
+ async genAccessKey() {
74
+ const url = `${this.baseurl}/api/manage/advanceUpload/genAccessKey`;
75
+ const res = await this.get(url);
76
+ if (res.success) {
77
+ const str = this.urlSafeBase64.decode(res.accessKey);
78
+ if (str) {
79
+ const obj = JSON.parse(str);
80
+ return obj;
81
+ }
82
+ }
83
+ }
84
+ getUploadUrl(token) {
85
+ return `https://${token.url}/${token.visitType}/${token.app}/upload?cmd=${token.cmd}&token=${token.token}`;
86
+ }
87
+ async getWatermark() {
88
+ const url = `${this.baseurl}/api/manage/advanceUpload/getWatermark`;
89
+ const res = await this.get(url);
90
+ if (res.success) {
91
+ return res.waterMark;
92
+ }
93
+ }
94
+ _uTime = new Date().getTime();
95
+ async advanceUploadReport(tempFile, tempType, tempFlag) {
96
+ const url = `${this.baseurl}/ajax/advanceUpload.jsp?cmd=_report`;
97
+ const tempTime = new Date().getTime() - this._uTime;
98
+ const tempSize = tempFile.size;
99
+ const tempName = tempFile.name;
100
+ const res = await this.post(url, { "type": tempType, "size": tempSize, "time": tempTime, "flag": tempFlag, "name": tempName });
101
+ debugger;
102
+ }
103
+ async get(url) {
104
+ return axios_1.default.get(url, {
105
+ headers: {
106
+ Cookie: await this.getCookies()
107
+ }
108
+ }).then(res => {
109
+ const cookies = res.headers['set-cookie'];
110
+ console.log(cookies);
111
+ return res.data;
112
+ });
113
+ }
114
+ async post(url, data) {
115
+ return axios_1.default.post(url, this.encodeURIComponent(data), {
116
+ headers: {
117
+ Cookie: await this.getCookies()
118
+ }
119
+ }).then(res => res.data);
120
+ }
121
+ encodeURIComponent(data) {
122
+ return Object.keys(data).map(key => {
123
+ const value = Reflect.get(data, key);
124
+ return `${key}=${encodeURIComponent(value)}`;
125
+ }).join('&');
126
+ }
127
+ upload() {
128
+ // get /api/manage/advanceUpload/genAccessKey
129
+ // get /api/manage/advanceUpload/getWatermark
130
+ // post /ajax/advanceUpload.jsp?cmd=_report
131
+ // file, accessKey
132
+ // var bssInfo = {
133
+ // fromSite: true,
134
+ // siteId: Fai.top._siteId || 0,
135
+ // groupId: upload_groupId,
136
+ // fileSizeLimit: file_size_limit,
137
+ // }
138
+ // if(watermarkUse) {
139
+ // bssInfo.waterMark = waterMark
140
+ // }
141
+ // var params = {
142
+ // isFreeVer:(false || false == true),//是否为免费版
143
+ // aid: Fai.top._aid,
144
+ // folderId: Fai.top._siteId || 0,
145
+ // bssInfo: JSON.stringify(bssInfo)
146
+ // }
147
+ }
148
+ };
149
+ FkV2Service = __decorate([
150
+ (0, core_1.Injectable)(),
151
+ __metadata("design:paramtypes", [entities_1.FkLoginEntity, typeorm_1.Db, core_1.Injector])
152
+ ], FkV2Service);
153
+ exports.FkV2Service = FkV2Service;
@@ -0,0 +1,17 @@
1
+ import { Injector } from '@nger/core';
2
+ import { Db } from '@nger/typeorm';
3
+ import { FkLoginCookieEntity, FkLoginEntity } from './entities';
4
+ export declare class FkService {
5
+ db: Db;
6
+ private injector;
7
+ cookies: Map<string, any>;
8
+ constructor(db: Db, injector: Injector);
9
+ saveLogin(username: string, password: string): Promise<FkLoginEntity | null>;
10
+ updateFkLoginToken(token: string, fkLoginId: number): Promise<any>;
11
+ getCookie(): string;
12
+ getCloudUrl(url: string): void;
13
+ getFkLogin(username: string): Promise<FkLoginEntity | null>;
14
+ getFkLoginCookie(fkLoginId: number): Promise<FkLoginCookieEntity[]>;
15
+ createV2(login: FkLoginEntity): Promise<any>;
16
+ saveCookie(fkLoginId: number): Promise<void>;
17
+ }
@@ -0,0 +1,89 @@
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.FkService = void 0;
16
+ const core_1 = require("@nger/core");
17
+ const typeorm_1 = require("@nger/typeorm");
18
+ const entities_1 = require("./entities");
19
+ const request_1 = __importDefault(require("request"));
20
+ const fs_1 = require("fs");
21
+ const path_1 = require("path");
22
+ const fk_v2_service_1 = require("./fk-v2.service");
23
+ let FkService = class FkService {
24
+ db;
25
+ injector;
26
+ cookies = new Map();
27
+ constructor(db, injector) {
28
+ this.db = db;
29
+ this.injector = injector;
30
+ }
31
+ async saveLogin(username, password) {
32
+ let item = await this.db.manager.findOne(entities_1.FkLoginEntity, { where: { username } });
33
+ if (!item && username && password) {
34
+ const login = new entities_1.FkLoginEntity();
35
+ login.username = username;
36
+ login.password = password;
37
+ item = await this.db.manager.save(entities_1.FkLoginEntity, login);
38
+ }
39
+ return item;
40
+ }
41
+ async updateFkLoginToken(token, fkLoginId) {
42
+ return this.db.manager.update(entities_1.FkLoginEntity, fkLoginId, { token });
43
+ }
44
+ getCookie() {
45
+ let cookies = [];
46
+ this.cookies.forEach((value, key) => {
47
+ cookies.push(`${key}=${value}`);
48
+ });
49
+ return cookies.join(';');
50
+ }
51
+ getCloudUrl(url) {
52
+ const req = (0, request_1.default)({
53
+ uri: url,
54
+ method: 'GET'
55
+ });
56
+ const out = (0, fs_1.createWriteStream)((0, path_1.join)(__dirname, 'demo.mp4'));
57
+ req.pipe(out);
58
+ req.on('end', () => {
59
+ console.log(`en`);
60
+ });
61
+ }
62
+ getFkLogin(username) {
63
+ return this.db.manager.findOne(entities_1.FkLoginEntity, { where: { username } });
64
+ }
65
+ getFkLoginCookie(fkLoginId) {
66
+ return this.db.manager.find(entities_1.FkLoginCookieEntity, { where: { fkLoginId } });
67
+ }
68
+ async createV2(login) {
69
+ return new fk_v2_service_1.FkV2Service(login, this.db, this.injector);
70
+ }
71
+ async saveCookie(fkLoginId) {
72
+ const cookies = this.cookies;
73
+ const list = await this.db.manager.find(entities_1.FkLoginCookieEntity, { where: { fkLoginId } });
74
+ await this.db.manager.remove(list);
75
+ const cookieEntities = [...cookies.entries()].map(([k, v]) => {
76
+ const cookie = new entities_1.FkLoginCookieEntity();
77
+ cookie.fkLoginId = fkLoginId;
78
+ cookie.key = k;
79
+ cookie.value = v;
80
+ return cookie;
81
+ });
82
+ await this.db.manager.save(entities_1.FkLoginCookieEntity, cookieEntities);
83
+ }
84
+ };
85
+ FkService = __decorate([
86
+ (0, core_1.Injectable)(),
87
+ __metadata("design:paramtypes", [typeorm_1.Db, core_1.Injector])
88
+ ], FkService);
89
+ exports.FkService = FkService;
@@ -0,0 +1,14 @@
1
+ import { Context } from 'koa';
2
+ import { Db } from '@nger/typeorm';
3
+ export declare class LoginController {
4
+ private db;
5
+ cookies: Map<string, Map<string, string>>;
6
+ constructor(db: Db);
7
+ login(loginId: string, ctx: Context): Promise<any>;
8
+ relogin(token: string, loginId: string, ctx: Context): Promise<"login success" | undefined>;
9
+ private tryLogin;
10
+ logDog(arg0: number, arg1: number): void;
11
+ private loginSuccess;
12
+ private toCookie;
13
+ private toUrl;
14
+ }
@@ -0,0 +1,211 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.LoginController = void 0;
19
+ const core_1 = require("@nger/core");
20
+ const http_1 = require("@nger/http");
21
+ const axios_1 = __importDefault(require("axios"));
22
+ const typeorm_1 = require("@nger/typeorm");
23
+ const entities_1 = require("./entities");
24
+ let LoginController = class LoginController {
25
+ db;
26
+ cookies = new Map();
27
+ constructor(db) {
28
+ this.db = db;
29
+ }
30
+ async login(loginId, ctx) {
31
+ if (!loginId) {
32
+ ctx.redirect(`/@nger/fk-upload/help`);
33
+ return;
34
+ }
35
+ const loginEntity = await this.db.manager.findOne(entities_1.FkLoginEntity, { where: { fkLoginId: Number(loginId) } });
36
+ if (loginEntity) {
37
+ const baseUrl = `https://adm.webportal.top`;
38
+ return axios_1.default.get(baseUrl).then(async (res) => {
39
+ const map = this.cookies.get(baseUrl) || new Map();
40
+ const cookies = res.headers['set-cookie'];
41
+ // const domain
42
+ if (cookies) {
43
+ cookies.map(cookie => {
44
+ const list = cookie.split(';');
45
+ list.map(item => {
46
+ const [name, value] = item.split('=');
47
+ map.set(name, value);
48
+ });
49
+ });
50
+ }
51
+ const data = {
52
+ cacct: loginEntity.username,
53
+ pwd: loginEntity.password,
54
+ autoLogin: true,
55
+ staffLogin: false,
56
+ };
57
+ const login = await this.tryLogin(map, data);
58
+ if (!login.success) {
59
+ this.cookies.set(baseUrl, map);
60
+ ctx.redirect(`/@nger/fk-upload/code?loginId=${loginId}`);
61
+ return;
62
+ }
63
+ this.cookies.set(baseUrl, map);
64
+ return res.data;
65
+ });
66
+ }
67
+ }
68
+ async relogin(token, loginId, ctx) {
69
+ if (!loginId || !token) {
70
+ ctx.redirect('/@nger/fk-upload/help');
71
+ return;
72
+ }
73
+ const baseUrl = `https://adm.webportal.top`;
74
+ const fkLogin = await this.db.manager.findOne(entities_1.FkLoginEntity, { where: { fkLoginId: Number(loginId) } });
75
+ if (fkLogin) {
76
+ const map = this.cookies.get(baseUrl);
77
+ if (!map) {
78
+ ctx.redirect('/@nger/fk-upload/login?loginId=' + loginId);
79
+ return;
80
+ }
81
+ const data = {
82
+ cacct: fkLogin.username,
83
+ pwd: fkLogin.password,
84
+ autoLogin: true,
85
+ staffLogin: false,
86
+ checkSign: token
87
+ };
88
+ const login = await this.tryLogin(map, data);
89
+ if (login.success) {
90
+ await this.db.manager.update(entities_1.FkLoginEntity, fkLogin.fkLoginId, { aid: login.aid, status: 1 });
91
+ await this.loginSuccess(fkLogin.fkLoginId, login, fkLogin.pass, map);
92
+ ctx.redirect('/@nger/fk-upload/help');
93
+ return;
94
+ }
95
+ }
96
+ return `login success`;
97
+ }
98
+ async tryLogin(map, data) {
99
+ return await axios_1.default.post(`https://adm.webportal.top/ajax/login_h.jsp?cmd=loginCorp`, this.toUrl(data), {
100
+ headers: {
101
+ [`Content-Type`]: `application/x-www-form-urlencoded; charset=UTF-8`,
102
+ Cookie: this.toCookie(map)
103
+ }
104
+ }).then(async (res) => {
105
+ const cookies = res.headers['set-cookie'];
106
+ // const domain
107
+ if (cookies) {
108
+ cookies.map(cookie => {
109
+ const list = cookie.split(';');
110
+ list.map(item => {
111
+ const [name, value] = item.split('=');
112
+ map.set(name, value);
113
+ });
114
+ });
115
+ }
116
+ const data = res.data;
117
+ return data;
118
+ });
119
+ }
120
+ logDog(arg0, arg1) { }
121
+ loginSuccess(loginId, o, pass, map) {
122
+ const url = `https://adm.webportal.top`;
123
+ const cookie = this.cookies.get(url) || new Map();
124
+ this.logDog(100132, 0);
125
+ const e = pass;
126
+ let t = 0;
127
+ /\d/.test(e) && t++;
128
+ (/[a-z]/.test(e) || /[A-Z]/.test(e)) && t++;
129
+ (/\W/.test(e) || /[_]/.test(e)) && t++;
130
+ e.length < 8 && (t = 0);
131
+ if (t < 2) {
132
+ map.set('faiIng', `1`);
133
+ }
134
+ else {
135
+ map.set('faiIng', '0');
136
+ }
137
+ map.set('hasShowDomainBeianWindow', null);
138
+ map.set('hasShowBeianSmsTips', null);
139
+ return axios_1.default.get(url, {
140
+ headers: {
141
+ [`Content-Type`]: `text/plain`,
142
+ Cookie: this.toCookie(map)
143
+ }
144
+ }).then(async (res) => {
145
+ const cookies = res.headers['set-cookie'];
146
+ if (cookies) {
147
+ cookies.map(cok => {
148
+ const list = cok.split(';');
149
+ list.map(item => {
150
+ const [name, value] = item.split('=');
151
+ cookie.set(name, value);
152
+ });
153
+ });
154
+ }
155
+ this.cookies.set(url, cookie);
156
+ /**
157
+ * login success
158
+ */
159
+ const fkLoginCookies = [];
160
+ this.cookies.forEach((val, domain) => {
161
+ val.forEach((value, name) => {
162
+ const entity = new entities_1.FkLoginCookieEntity();
163
+ entity.domain = domain;
164
+ entity.key = name;
165
+ entity.value = value || '';
166
+ entity.fkLoginId = loginId;
167
+ fkLoginCookies.push(entity);
168
+ });
169
+ });
170
+ const list = await this.db.manager.find(entities_1.FkLoginCookieEntity, { where: { fkLoginId: loginId } });
171
+ await this.db.manager.remove(list);
172
+ await this.db.manager.save(entities_1.FkLoginCookieEntity, fkLoginCookies);
173
+ return `bind success`;
174
+ });
175
+ }
176
+ toCookie(map) {
177
+ let cookies = [];
178
+ map.forEach((value, key) => {
179
+ cookies.push(`${key}=${value ? value : ''}`);
180
+ });
181
+ return cookies.join(';');
182
+ }
183
+ toUrl(data) {
184
+ return Object.keys(data).map(key => {
185
+ const value = Reflect.get(data, key);
186
+ return `${key}=${value}`;
187
+ }).join('&');
188
+ }
189
+ };
190
+ __decorate([
191
+ (0, http_1.Get)('login'),
192
+ __param(0, (0, http_1.Query)('loginId')),
193
+ __param(1, (0, core_1.Inject)(http_1.CONTEXT)),
194
+ __metadata("design:type", Function),
195
+ __metadata("design:paramtypes", [String, Object]),
196
+ __metadata("design:returntype", Promise)
197
+ ], LoginController.prototype, "login", null);
198
+ __decorate([
199
+ (0, http_1.Get)('relogin'),
200
+ __param(0, (0, http_1.Query)('token')),
201
+ __param(1, (0, http_1.Query)('loginId')),
202
+ __param(2, (0, core_1.Inject)(http_1.CONTEXT)),
203
+ __metadata("design:type", Function),
204
+ __metadata("design:paramtypes", [String, String, Object]),
205
+ __metadata("design:returntype", Promise)
206
+ ], LoginController.prototype, "relogin", null);
207
+ LoginController = __decorate([
208
+ (0, core_1.Controller)('@nger/fk-upload'),
209
+ __metadata("design:paramtypes", [typeorm_1.Db])
210
+ ], LoginController);
211
+ exports.LoginController = LoginController;
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import "reflect-metadata";
2
+ export declare class AppModule {
3
+ }
package/dist/main.js ADDED
@@ -0,0 +1,38 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AppModule = void 0;
10
+ require("reflect-metadata");
11
+ require('dotenv').config();
12
+ const core_1 = require("@nger/core");
13
+ const core_2 = require("@nger/core");
14
+ const fk_upload_module_1 = require("./fk-upload.module");
15
+ const http_1 = require("@nger/http");
16
+ const typeorm_1 = require("@nger/typeorm");
17
+ const api_1 = require("@nger/api");
18
+ const utils_1 = require("@nger/utils");
19
+ let AppModule = class AppModule {
20
+ };
21
+ AppModule = __decorate([
22
+ (0, core_2.Module)({
23
+ providers: [{
24
+ provide: core_1.APP_ROOT,
25
+ useValue: process.cwd()
26
+ }],
27
+ imports: [
28
+ fk_upload_module_1.FkUploadModule,
29
+ http_1.HttpModule.forEnv(),
30
+ typeorm_1.TypeormModule.forEnv(),
31
+ api_1.ApiModule,
32
+ utils_1.UtilsModule
33
+ ],
34
+ controllers: []
35
+ })
36
+ ], AppModule);
37
+ exports.AppModule = AppModule;
38
+ (0, core_1.platformCore)().bootstrap(AppModule);
@@ -0,0 +1,3 @@
1
+ export declare class AccountManageController {
2
+ accountManage(): void;
3
+ }
@@ -0,0 +1,27 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AccountManageController = void 0;
13
+ const core_1 = require("@nger/core");
14
+ const http_1 = require("@nger/http");
15
+ let AccountManageController = class AccountManageController {
16
+ accountManage() { }
17
+ };
18
+ __decorate([
19
+ (0, http_1.Get)('account-manage'),
20
+ __metadata("design:type", Function),
21
+ __metadata("design:paramtypes", []),
22
+ __metadata("design:returntype", void 0)
23
+ ], AccountManageController.prototype, "accountManage", null);
24
+ AccountManageController = __decorate([
25
+ (0, core_1.Controller)(`@nger/fk-upload`)
26
+ ], AccountManageController);
27
+ exports.AccountManageController = AccountManageController;
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,10 @@
1
+ import { Db } from '@nger/typeorm';
2
+ import { Context } from 'koa';
3
+ import { CryptoService } from '@nger/utils';
4
+ export declare class AddFkLoginController {
5
+ private db;
6
+ private crypto;
7
+ constructor(db: Db, crypto: CryptoService);
8
+ postAddFkLogin(fkLoginId: string, post: any, ctx: Context): Promise<void>;
9
+ addFkLogin(fkLoginId: string): Promise<JSX.Element>;
10
+ }