Skip to content

Commit 8521925

Browse files
authored
Merge pull request #127 from qiniu/refactoring/dowload-and-upgrade-electron
Refactoring dowload and upgrade electron
2 parents ecdadce + d86e2ad commit 8521925

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+2958
-3656
lines changed

gulpfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const gulp = require("gulp"),
1111
const NAME = 'Kodo Browser';
1212
const KICK_NAME = 'kodo-browser';
1313
const VERSION = pkg.version;
14-
const ELECTRON_VERSION = "4.2.7";
14+
const ELECTRON_VERSION = "18.3.3";
1515
const ROOT = __dirname;
1616
const ICONS = `${ROOT}/src/renderer/icons`;
1717
const DIST = `${ROOT}/dist`;

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "kodo-browser",
3-
"version": "1.0.18",
3+
"version": "1.0.19-alpha",
44
"license": "Apache-2.0",
55
"author": {
66
"name": "Rong Zhou",
@@ -85,6 +85,7 @@
8585
"webpack-cli": "^4.9.0"
8686
},
8787
"dependencies": {
88+
"@electron/remote": "^2.0.8",
8889
"@root/walk": "^1.1.0",
8990
"@uirouter/angularjs": "^1.0.20",
9091
"angular": "1.7.9",
@@ -97,14 +98,14 @@
9798
"codemirror": "^5.41.0",
9899
"csv-stringify": "^5.3.6",
99100
"downloads-folder": "1.0.3",
100-
"electron": "^4.0",
101+
"electron": "18.3.3",
101102
"events": "^2.0.0",
102103
"form-data": "^4.0.0",
103104
"jquery": "^3.5.1",
104105
"jquery.qrcode": "^1.0.3",
105106
"js-base64": "^3.4.5",
106107
"js-md5": "^0.7.3",
107-
"kodo-s3-adapter-sdk": "0.2.30",
108+
"kodo-s3-adapter-sdk": "0.2.31",
108109
"lodash": "^4.17.21",
109110
"mime": "^2.3.1",
110111
"moment": "^2.22.2",

src/common/const/qiniu.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/common/ipc-actions/download.ts

Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
import {IpcRenderer} from "electron";
2+
import {NatureLanguage} from "kodo-s3-adapter-sdk/dist/uplog";
3+
import {Domain} from "kodo-s3-adapter-sdk/dist/adapter";
4+
5+
import {ClientOptions} from "@common/qiniu";
6+
import {Status} from "@common/models/job/types";
7+
import DownloadJob from "@common/models/job/download-job";
8+
import StorageClass from "@common/models/storage-class";
9+
10+
export interface RemoteObject {
11+
name: string,
12+
region: string,
13+
bucket: string,
14+
key: string,
15+
size: number,
16+
mtime: number,
17+
isDirectory: boolean,
18+
isFile: boolean,
19+
}
20+
21+
export interface DownloadOptions {
22+
region: string,
23+
bucket: string,
24+
25+
domain?: Domain,
26+
27+
isOverwrite: boolean,
28+
storageClasses: StorageClass[],
29+
userNatureLanguage: NatureLanguage
30+
}
31+
32+
export enum DownloadAction {
33+
UpdateConfig = "UpdateConfig",
34+
LoadPersistJobs = "LoadPersistJobs",
35+
AddJobs = "AddJobs",
36+
StopJob = "StopJob",
37+
WaitJob = "WaitJob",
38+
StartJob = "StartJob",
39+
RemoveJob = "RemoveJob",
40+
CleanupJobs = "CleanupJobs",
41+
StartAllJobs = "StartAllJobs",
42+
StopAllJobs = "StopAllJobs",
43+
RemoveAllJobs = "RemoveAllJobs",
44+
45+
// common
46+
UpdateUiData = "UpdateUiData",
47+
48+
// reply only
49+
AddedJobs = "AddedJobs",
50+
JobCompleted = "JobCompleted",
51+
}
52+
53+
export interface UpdateConfigMessage {
54+
action: DownloadAction.UpdateConfig,
55+
data: Partial<{
56+
resumable: boolean,
57+
maxConcurrency: number,
58+
multipartSize: number,
59+
multipartThreshold: number,
60+
speedLimit: number,
61+
isDebug: boolean,
62+
persistPath: string,
63+
64+
isOverwrite: boolean,
65+
}>
66+
}
67+
68+
export interface LoadPersistJobsMessage {
69+
action: DownloadAction.LoadPersistJobs,
70+
data: {
71+
clientOptions: Pick<ClientOptions, "accessKey" | "secretKey" | "ucUrl" | "regions">
72+
downloadOptions: Pick<DownloadOptions, "userNatureLanguage">,
73+
}
74+
}
75+
76+
export interface AddJobsMessage {
77+
action: DownloadAction.AddJobs,
78+
data: {
79+
remoteObjects: RemoteObject[],
80+
destPath: string,
81+
downloadOptions: DownloadOptions,
82+
clientOptions: ClientOptions,
83+
}
84+
}
85+
86+
export interface AddedJobsReplyMessage {
87+
action: DownloadAction.AddedJobs,
88+
data: {
89+
remoteObjects: RemoteObject[],
90+
destPath: string,
91+
},
92+
}
93+
94+
export interface UpdateUiDataMessage {
95+
action: DownloadAction.UpdateUiData,
96+
data: {
97+
pageNum: number,
98+
count: number,
99+
query?: {
100+
status?: Status,
101+
name?: string,
102+
},
103+
},
104+
}
105+
106+
export interface UpdateUiDataReplyMessage {
107+
action: DownloadAction.UpdateUiData,
108+
data: {
109+
list: (DownloadJob["uiData"] | undefined)[],
110+
total: number,
111+
finished: number,
112+
running: number,
113+
failed: number,
114+
stopped: number,
115+
},
116+
}
117+
118+
export interface StopJobMessage {
119+
action: DownloadAction.StopJob,
120+
data: {
121+
jobId: string,
122+
},
123+
}
124+
125+
export interface WaitJobMessage {
126+
action: DownloadAction.WaitJob,
127+
data: {
128+
jobId: string,
129+
},
130+
}
131+
132+
export interface StartJobMessage {
133+
action: DownloadAction.StartJob,
134+
data: {
135+
jobId: string,
136+
forceOverwrite?: boolean,
137+
},
138+
}
139+
140+
export interface RemoveJobMessage {
141+
action: DownloadAction.RemoveJob,
142+
data: {
143+
jobId: string,
144+
},
145+
}
146+
147+
export interface CleanupJobMessage {
148+
action: DownloadAction.CleanupJobs,
149+
data?: {},
150+
}
151+
152+
153+
export interface StartAllJobsMessage {
154+
action: DownloadAction.StartAllJobs,
155+
data?: {},
156+
}
157+
158+
export interface StopAllJobsMessage {
159+
action: DownloadAction.StopAllJobs,
160+
data?: {},
161+
}
162+
163+
export interface RemoveAllJobsMessage {
164+
action: DownloadAction.RemoveAllJobs,
165+
data?: {},
166+
}
167+
168+
export interface JobCompletedReplyMessage {
169+
action: DownloadAction.JobCompleted,
170+
data: {
171+
jobsId: string,
172+
jobUiData: DownloadJob["uiData"],
173+
}
174+
}
175+
176+
export type DownloadMessage = UpdateConfigMessage
177+
| LoadPersistJobsMessage
178+
| AddJobsMessage
179+
| UpdateUiDataMessage
180+
| StopJobMessage
181+
| WaitJobMessage
182+
| StartJobMessage
183+
| RemoveJobMessage
184+
| CleanupJobMessage
185+
| StartAllJobsMessage
186+
| StopAllJobsMessage
187+
| RemoveAllJobsMessage
188+
189+
export type DownloadReplyMessage = UpdateUiDataReplyMessage
190+
| AddedJobsReplyMessage
191+
| JobCompletedReplyMessage
192+
193+
export class DownloadActionFns {
194+
constructor(
195+
private readonly ipc: IpcRenderer,
196+
private readonly channel: string,
197+
) {
198+
}
199+
200+
updateConfig(data: UpdateConfigMessage["data"]) {
201+
this.ipc.send(this.channel, {
202+
action: DownloadAction.UpdateConfig,
203+
data: data,
204+
});
205+
}
206+
207+
loadPersistJobs(data: LoadPersistJobsMessage["data"]) {
208+
this.ipc.send(this.channel, {
209+
action: DownloadAction.LoadPersistJobs,
210+
data,
211+
})
212+
}
213+
214+
addJobs(data: AddJobsMessage["data"]) {
215+
this.ipc.send(this.channel, {
216+
action: DownloadAction.AddJobs,
217+
data,
218+
});
219+
}
220+
221+
updateUiData(data: UpdateUiDataMessage["data"]) {
222+
this.ipc.send(this.channel, {
223+
action: DownloadAction.UpdateUiData,
224+
data,
225+
});
226+
}
227+
228+
waitJob(data: WaitJobMessage["data"]) {
229+
this.ipc.send(this.channel, {
230+
action: DownloadAction.WaitJob,
231+
data,
232+
});
233+
}
234+
235+
startJob(data: StartJobMessage["data"]) {
236+
this.ipc.send(this.channel, {
237+
action: DownloadAction.StartJob,
238+
data,
239+
});
240+
}
241+
242+
stopJob(data: StopJobMessage["data"]) {
243+
this.ipc.send(this.channel, {
244+
action: DownloadAction.StopJob,
245+
data,
246+
});
247+
}
248+
249+
removeJob(data: RemoveJobMessage["data"]) {
250+
this.ipc.send(this.channel, {
251+
action: DownloadAction.RemoveJob,
252+
data,
253+
});
254+
}
255+
256+
cleanUpJobs() {
257+
this.ipc.send(this.channel, {
258+
action: DownloadAction.CleanupJobs,
259+
data: {},
260+
});
261+
}
262+
263+
startAllJobs() {
264+
this.ipc.send(this.channel, {
265+
action: DownloadAction.StartAllJobs,
266+
data: {},
267+
});
268+
}
269+
270+
stopAllJobs() {
271+
this.ipc.send(this.channel, {
272+
action: DownloadAction.StopAllJobs,
273+
data: {},
274+
});
275+
}
276+
277+
removeAllJobs() {
278+
this.ipc.send(this.channel, {
279+
action: DownloadAction.RemoveAllJobs,
280+
data: {},
281+
});
282+
}
283+
}

0 commit comments

Comments
 (0)