Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
mycard
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
syntax_j
mycard
Commits
93b715cd
Commit
93b715cd
authored
Apr 25, 2017
by
2breakegg
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://github.com/moecube/moecube
into dev
parents
4996814c
2eb5e626
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
152 additions
and
160 deletions
+152
-160
app/update/update.component.html
app/update/update.component.html
+2
-2
app/update/update.component.ts
app/update/update.component.ts
+15
-25
index.js
index.js
+31
-67
package.json
package.json
+3
-3
update/index.html
update/index.html
+57
-63
update/lang.json
update/lang.json
+44
-0
No files found.
app/update/update.component.html
View file @
93b715cd
<i
*ngIf=
"update_status === 'error'"
(click)=
"
retry
()"
class=
"fa fa-exclamation-circle"
<i
*ngIf=
"update_status === 'error'"
(click)=
"
autoUpdater.checkForUpdates
()"
class=
"fa fa-exclamation-circle"
i18n-title
title=
"更新出错,点击重试"
></i>
i18n-title
title=
"更新出错,点击重试"
></i>
<i
*ngIf=
"update_status === 'checking-for-update'"
class=
"fa fa-spinner fa-pulse fa-spin"
<i
*ngIf=
"update_status === 'checking-for-update'"
class=
"fa fa-spinner fa-pulse fa-spin"
i18n-title
title=
"正在检查更新"
></i>
i18n-title
title=
"正在检查更新"
></i>
<i
*ngIf=
"update_status === 'update-available'"
class=
"fa fa-refresh fa-spin"
<i
*ngIf=
"update_status === 'update-available'"
class=
"fa fa-refresh fa-spin"
i18n-title
title=
"正在下载更新"
></i>
i18n-title
title=
"正在下载更新"
></i>
<i
*ngIf=
"update_status === 'update-downloaded'"
(click)=
"
i
nstall()"
class=
"fa fa-angle-double-up"
<i
*ngIf=
"update_status === 'update-downloaded'"
(click)=
"
autoUpdater.quitAndI
nstall()"
class=
"fa fa-angle-double-up"
i18n-title
title=
"下载更新完成,点击安装"
></i>
i18n-title
title=
"下载更新完成,点击安装"
></i>
app/update/update.component.ts
View file @
93b715cd
/**
/**
* Created by zh99998 on 16/9/2.
* Created by zh99998 on 16/9/2.
*/
*/
import
{
Component
,
OnInit
}
from
'
@angular/core
'
;
import
{
Component
,
On
Destroy
,
On
Init
}
from
'
@angular/core
'
;
import
{
remote
}
from
'
electron
'
;
import
{
remote
}
from
'
electron
'
;
@
Component
({
@
Component
({
selector
:
'
update
'
,
selector
:
'
update
'
,
templateUrl
:
'
./update.component.html
'
,
templateUrl
:
'
./update.component.html
'
,
styleUrls
:
[
'
./update.component.css
'
],
styleUrls
:
[
'
./update.component.css
'
],
})
})
export
class
UpdateComponent
implements
OnInit
{
export
class
UpdateComponent
implements
OnInit
,
OnDestroy
{
autoUpdater
:
Electron
.
AutoUpdater
=
remote
.
getGlobal
(
'
autoUpdater
'
);
events
=
new
Map
<
string
,
Function
>
();
status
:
string
;
status
:
string
;
error
:
string
;
error
:
string
;
readonly
autoUpdater
:
Electron
.
AutoUpdater
=
remote
.
getGlobal
(
'
autoUpdater
'
);
ngOnInit
()
{
ngOnInit
()
{
this
.
autoUpdater
.
on
(
'
error
'
,
(
error
)
=>
{
for
(
let
event
of
[
'
error
'
,
'
checking-for-update
'
,
'
update-available
'
,
'
update-not-available
'
,
'
update-downloaded
'
])
{
this
.
status
=
'
error
'
;
const
listener
=
()
=>
this
.
status
=
event
;
});
this
.
autoUpdater
.
on
(
event
,
listener
);
this
.
autoUpdater
.
on
(
'
checking-for-update
'
,
()
=>
{
this
.
events
.
set
(
event
,
listener
);
this
.
status
=
'
checking-for-update
'
;
}
});
window
.
addEventListener
(
'
unload
'
,
()
=>
this
.
ngOnDestroy
());
this
.
autoUpdater
.
on
(
'
update-available
'
,
()
=>
{
this
.
status
=
'
update-available
'
;
});
this
.
autoUpdater
.
on
(
'
update-not-available
'
,
()
=>
{
this
.
status
=
'
update-not-available
'
;
});
this
.
autoUpdater
.
on
(
'
update-downloaded
'
,
()
=>
{
this
.
status
=
'
update-downloaded
'
;
});
}
retry
()
{
this
.
autoUpdater
.
checkForUpdates
();
}
}
install
()
{
ngOnDestroy
()
{
this
.
autoUpdater
.
quitAndInstall
();
for
(
let
[
event
,
listener
]
of
this
.
events
)
{
this
.
autoUpdater
.
removeListener
(
event
,
listener
);
}
this
.
events
.
clear
();
}
}
}
}
index.js
View file @
93b715cd
'
use strict
'
;
'
use strict
'
;
const
{
ipcMain
,
app
,
shell
,
BrowserWindow
,
Menu
,
Tray
}
=
require
(
'
electron
'
);
const
{
app
,
shell
,
BrowserWindow
,
Menu
,
Tray
}
=
require
(
'
electron
'
);
const
{
autoUpdater
}
=
require
(
'
electron-updater
'
);
const
{
autoUpdater
}
=
require
(
'
electron-updater
'
);
const
isDev
=
require
(
'
electron-is-dev
'
);
const
isDev
=
require
(
'
electron-is-dev
'
);
const
child_process
=
require
(
'
child_process
'
);
const
child_process
=
require
(
'
child_process
'
);
const
path
=
require
(
'
path
'
);
const
path
=
require
(
'
path
'
);
const
net
=
require
(
'
net
'
);
const
readline
=
require
(
'
readline
'
);
const
{
EOL
}
=
require
(
'
os
'
);
// 提权
// 提权
function
handleElevate
()
{
function
handleElevate
()
{
...
@@ -16,13 +19,13 @@ function handleElevate() {
...
@@ -16,13 +19,13 @@ function handleElevate() {
if
(
process
.
argv
[
1
]
===
'
-e
'
)
{
if
(
process
.
argv
[
1
]
===
'
-e
'
)
{
if
(
process
.
platform
===
'
darwin
'
)
{
if
(
process
.
platform
===
'
darwin
'
)
{
require
(
'
electron
'
).
app
.
dock
.
hide
();
app
.
dock
.
hide
();
}
}
let
elevate
=
JSON
.
parse
(
new
Buffer
(
process
.
argv
[
2
],
'
base64
'
).
toString
());
let
elevate
=
JSON
.
parse
(
new
Buffer
(
process
.
argv
[
2
],
'
base64
'
).
toString
());
require
(
'
net
'
)
.
connect
(
elevate
[
'
ipc
'
],
function
()
{
net
.
connect
(
elevate
[
'
ipc
'
],
function
()
{
process
.
send
=
(
message
,
sendHandle
,
options
,
callback
)
=>
this
.
write
(
JSON
.
stringify
(
message
)
+
require
(
'
os
'
).
EOL
,
callback
);
process
.
send
=
(
message
,
sendHandle
,
options
,
callback
)
=>
this
.
write
(
JSON
.
stringify
(
message
)
+
EOL
,
callback
);
this
.
on
(
'
end
'
,
()
=>
process
.
emit
(
'
disconnect
'
));
this
.
on
(
'
end
'
,
()
=>
process
.
emit
(
'
disconnect
'
));
re
quire
(
'
readline
'
)
.
createInterface
({
input
:
this
}).
on
(
'
line
'
,
(
line
)
=>
process
.
emit
(
'
message
'
,
JSON
.
parse
(
line
)));
re
adline
.
createInterface
({
input
:
this
}).
on
(
'
line
'
,
(
line
)
=>
process
.
emit
(
'
message
'
,
JSON
.
parse
(
line
)));
process
.
argv
=
elevate
[
'
arguments
'
][
1
];
process
.
argv
=
elevate
[
'
arguments
'
][
1
];
require
(
'
./
'
+
elevate
[
'
arguments
'
][
0
]);
require
(
'
./
'
+
elevate
[
'
arguments
'
][
0
]);
});
});
...
@@ -57,45 +60,16 @@ if (!process.env['NODE_ENV']) {
...
@@ -57,45 +60,16 @@ if (!process.env['NODE_ENV']) {
// 自动更新
// 自动更新
let
updateWindow
;
let
updateWindow
;
// 置 global 后可以在页面进程里取
global
.
autoUpdater
=
autoUpdater
;
global
.
autoUpdater
=
autoUpdater
;
autoUpdater
.
on
(
'
error
'
,
(
event
)
=>
{
autoUpdater
.
on
(
'
update-downloaded
'
,
()
=>
{
global
.
update_status
=
'
error
'
;
updateWindow
=
new
BrowserWindow
({
width
:
640
,
height
:
360
});
console
.
log
(
'
autoUpdater
'
,
'
error
'
,
event
);
updateWindow
.
loadURL
(
`file://
${
__dirname
}
/update/index.html`
);
});
updateWindow
.
on
(
'
closed
'
,
()
=>
updateWindow
=
null
);
autoUpdater
.
on
(
'
checking-for-update
'
,
()
=>
{
global
.
update_status
=
'
checking-for-update
'
;
console
.
log
(
'
autoUpdater
'
,
'
checking-for-update
'
);
});
autoUpdater
.
on
(
'
update-available
'
,
()
=>
{
global
.
update_status
=
'
update-available
'
;
console
.
log
(
'
autoUpdater
'
,
'
update-available
'
);
});
autoUpdater
.
on
(
'
update-not-available
'
,
()
=>
{
global
.
update_status
=
'
update-not-available
'
;
console
.
log
(
'
autoUpdater
'
,
'
update-not-available
'
);
});
autoUpdater
.
on
(
'
update-downloaded
'
,
(
event
)
=>
{
global
.
update_status
=
'
update-downloaded
'
;
console
.
log
(
'
autoUpdater
'
,
'
update-downloaded
'
,
event
);
updateWindow
=
new
BrowserWindow
({
width
:
640
,
height
:
360
,
});
updateWindow
.
loadURL
(
process
.
env
[
'
NODE_ENV
'
]
===
'
development
'
?
'
http://localhost:3000
'
:
`file://
${
__dirname
}
/update/index.html`
);
updateWindow
.
webContents
.
on
(
'
new-window
'
,
function
(
e
,
url
)
{
e
.
preventDefault
();
shell
.
openExternal
(
url
);
});
updateWindow
.
on
(
'
closed
'
,
function
()
{
updateWindow
=
null
;
});
ipcMain
.
on
(
'
update
'
,
(
event
,
arg
)
=>
{
autoUpdater
.
quitAndInstall
();
});
});
});
// Aria2c
// Aria2c
function
createAria2c
()
{
const
aria2
=
(()
=>
{
let
aria2c_path
;
let
aria2c_path
;
switch
(
process
.
platform
)
{
switch
(
process
.
platform
)
{
case
'
win32
'
:
case
'
win32
'
:
...
@@ -116,8 +90,7 @@ function createAria2c() {
...
@@ -116,8 +90,7 @@ function createAria2c() {
throw
'
unsupported platform
'
;
throw
'
unsupported platform
'
;
}
}
return
child_process
.
spawn
(
aria2c_path
,
[
'
--enable-rpc
'
,
'
--rpc-allow-origin-all
'
,
'
--continue
'
,
'
--split=10
'
,
'
--min-split-size=1M
'
,
'
--max-connection-per-server=10
'
,
'
--remove-control-file
'
,
'
--allow-overwrite
'
],
{
stdio
:
'
ignore
'
});
return
child_process
.
spawn
(
aria2c_path
,
[
'
--enable-rpc
'
,
'
--rpc-allow-origin-all
'
,
'
--continue
'
,
'
--split=10
'
,
'
--min-split-size=1M
'
,
'
--max-connection-per-server=10
'
,
'
--remove-control-file
'
,
'
--allow-overwrite
'
],
{
stdio
:
'
ignore
'
});
}
})();
const
aria2c
=
createAria2c
();
// Keep a global reference of the window object, if you don't, the window will
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
// be closed automatically when the JavaScript object is garbage collected.
...
@@ -157,36 +130,26 @@ function createWindow() {
...
@@ -157,36 +130,26 @@ function createWindow() {
});
});
}
}
function
toggleMainWindow
()
{
if
(
mainWindow
.
isVisible
())
{
mainWindow
.
hide
();
}
else
{
mainWindow
.
show
();
}
}
// 托盘
// 托盘
let
tray
;
let
tray
;
function
createTray
()
{
function
createTray
()
{
tray
=
new
Tray
(
path
.
join
(
process
.
env
[
'
NODE_ENV
'
]
===
'
production
'
?
process
.
resourcesPath
:
app
.
getAppPath
(),
'
assets
'
,
'
icon.ico
'
));
tray
=
new
Tray
(
path
.
join
(
process
.
env
[
'
NODE_ENV
'
]
===
'
production
'
?
process
.
resourcesPath
:
app
.
getAppPath
(),
'
assets
'
,
'
icon.ico
'
));
tray
.
on
(
'
click
'
,
(
event
)
=>
{
tray
.
on
(
'
click
'
,
()
=>
event
.
metaKey
?
mainWindow
.
webContents
.
openDevTools
()
:
toggleMainWindow
());
console
.
log
(
event
);
if
(
event
.
metaKey
)
{
mainWindow
.
webContents
.
openDevTools
();
}
else
{
mainWindow
.
isVisible
()
?
mainWindow
.
hide
()
:
mainWindow
.
show
();
}
});
const
contextMenu
=
Menu
.
buildFromTemplate
([
// {label: '游戏', type: 'normal', click: (menuItem, browserWindow, event)=>{}},
// {label: '社区', type: 'normal', click: (menuItem, browserWindow, event)=>{}},
// {label: '切换账号', type: 'normal', click: (menuItem, browserWindow, event)=>{}},
{
label
:
'
显示主界面
'
,
type
:
'
normal
'
,
click
:
()
=>
{
mainWindow
.
isVisible
()
?
mainWindow
.
hide
()
:
mainWindow
.
show
();
}
},
{
label
:
'
退出
'
,
type
:
'
normal
'
,
click
:
app
.
quit
}
]);
tray
.
setToolTip
(
'
MoeCube
'
);
tray
.
setToolTip
(
'
MoeCube
'
);
tray
.
setContextMenu
(
contextMenu
);
tray
.
setContextMenu
(
Menu
.
buildFromTemplate
([
{
label
:
'
显示主界面
'
,
type
:
'
normal
'
,
click
:
toggleMainWindow
},
{
label
:
'
退出
'
,
type
:
'
normal
'
,
click
:
app
.
quit
}
]));
}
}
// This method will be called when Electron has finished
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
// Some APIs can only be used after this event occurs.
...
@@ -209,7 +172,8 @@ app.on('window-all-closed', function () {
...
@@ -209,7 +172,8 @@ app.on('window-all-closed', function () {
}
}
});
});
app
.
on
(
'
activate
'
,
function
()
{
app
.
on
(
'
activate
'
,
function
(
event
)
{
console
.
log
(
event
);
// On OS X it's common to re-create a window in the currentCube when the
// On OS X it's common to re-create a window in the currentCube when the
// dock icon is clicked and there are no other windows open.
// dock icon is clicked and there are no other windows open.
if
(
mainWindow
===
null
)
{
if
(
mainWindow
===
null
)
{
...
@@ -222,6 +186,6 @@ app.on('activate', function () {
...
@@ -222,6 +186,6 @@ app.on('activate', function () {
app
.
on
(
'
quit
'
,
()
=>
{
app
.
on
(
'
quit
'
,
()
=>
{
// windows 在非 detach 模式下会自动退出子进程
// windows 在非 detach 模式下会自动退出子进程
if
(
process
.
platform
!==
'
win32
'
)
{
if
(
process
.
platform
!==
'
win32
'
)
{
aria2
c
.
kill
();
aria2
.
kill
();
}
}
});
});
package.json
View file @
93b715cd
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
"
@angular/animations
"
:
"
latest
"
,
"
@angular/animations
"
:
"
latest
"
,
"
@angular/common
"
:
"
latest
"
,
"
@angular/common
"
:
"
latest
"
,
"
@angular/compiler
"
:
"
latest
"
,
"
@angular/compiler
"
:
"
latest
"
,
"
@angular/compiler-cli
"
:
"
^4.0.2
"
,
"
@angular/compiler-cli
"
:
"
latest
"
,
"
@angular/core
"
:
"
latest
"
,
"
@angular/core
"
:
"
latest
"
,
"
@angular/forms
"
:
"
latest
"
,
"
@angular/forms
"
:
"
latest
"
,
"
@angular/http
"
:
"
latest
"
,
"
@angular/http
"
:
"
latest
"
,
...
@@ -28,14 +28,14 @@
...
@@ -28,14 +28,14 @@
"
@angular/platform-browser-dynamic
"
:
"
latest
"
,
"
@angular/platform-browser-dynamic
"
:
"
latest
"
,
"
@angular/platform-server
"
:
"
latest
"
,
"
@angular/platform-server
"
:
"
latest
"
,
"
@angular/router
"
:
"
latest
"
,
"
@angular/router
"
:
"
latest
"
,
"
@types/uuid
"
:
"
^2.0.29
"
,
"
@types/uuid
"
:
"
latest
"
,
"
angular-in-memory-web-api
"
:
"
latest
"
,
"
angular-in-memory-web-api
"
:
"
latest
"
,
"
aria2
"
:
"
latest
"
,
"
aria2
"
:
"
latest
"
,
"
bootstrap
"
:
"
next
"
,
"
bootstrap
"
:
"
next
"
,
"
candy
"
:
"
https://github.com/moecube/candy/releases/download/v2.2.0/candy.tar.gz
"
,
"
candy
"
:
"
https://github.com/moecube/candy/releases/download/v2.2.0/candy.tar.gz
"
,
"
candy-shop
"
:
"
zh99998/candy-plugins#patch-5
"
,
"
candy-shop
"
:
"
zh99998/candy-plugins#patch-5
"
,
"
core-js
"
:
"
latest
"
,
"
core-js
"
:
"
latest
"
,
"
electron-cookies
"
:
"
^1.1.0
"
,
"
electron-cookies
"
:
"
latest
"
,
"
electron-is-dev
"
:
"
latest
"
,
"
electron-is-dev
"
:
"
latest
"
,
"
electron-schema
"
:
"
moecube/electron-schema
"
,
"
electron-schema
"
:
"
moecube/electron-schema
"
,
"
electron-sudo
"
:
"
moecube/electron-sudo#moecube
"
,
"
electron-sudo
"
:
"
moecube/electron-sudo#moecube
"
,
...
...
update/index.html
View file @
93b715cd
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<html>
<head>
<head>
<meta
charset=
"utf-8"
>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
>
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<!--<meta name="description" content="">-->
<!--<meta name="author" content="">-->
<!--<link rel="icon" href="../../favicon.ico">-->
<title
id=
"title"
></title>
<title
id=
"title"
></title>
<!-- Bootstrap core CSS -->
<!-- Bootstrap core CSS -->
<link
href=
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
>
<link
href=
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
rel=
"stylesheet"
>
<script
src=
"../node_modules/vue/dist/vue.min.js"
></script>
<script
src=
"../node_modules/vue/dist/vue.min.js"
></script>
<style>
<style>
h1
{
h1
{
margin-top
:
10px
;
margin-top
:
10px
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
text-align
:
center
;
text-align
:
center
;
}
}
#actions
{
#actions
{
margin-top
:
20px
;
margin-top
:
20px
;
text-align
:
center
;
text-align
:
center
;
}
}
</style>
</style>
</head>
</head>
<body>
<body>
<div
id=
"vueApp"
>
<div
id=
"vueApp"
>
<div
class=
"container"
>
<div
class=
"container"
>
<h1>
{{pageText.updateTitle}}
</h1>
<h1>
{{pageText.updateTitle}}
</h1>
<p
v-for=
"(msg, index) in pageText.updateMsg"
>
{{msg}}
</p>
<p
v-for=
"(msg, index) in pageText.updateMsg"
>
{{msg}}
</p>
<p>
{{pageText.updateFailed.p1}}
<p>
{{pageText.updateFailed.p1}}
<a
href=
"https://moecube.com"
target=
"_blank"
>
{{pageText.updateFailed.p2}}
</a>
{{pageText.updateFailed.p3}}
<a
href=
"https://moecube.com"
target=
"_blank"
>
{{pageText.updateFailed.p2}}
</a>
{{pageText.updateFailed.p3}}
</p>
</p>
<p
id=
"actions"
>
<p
id=
"actions"
>
<button
@
click=
"onClose"
type=
"button"
class=
"btn btn-secondary"
>
{{pageText.actions.close}}
</button>
<button
@
click=
"onClose"
type=
"button"
class=
"btn btn-secondary"
>
{{pageText.actions.close}}
</button>
<button
@
click=
"onUpdate"
type=
"button"
class=
"btn btn-primary"
>
{{pageText.actions.update}}
</button>
<button
@
click=
"onUpdate"
type=
"button"
class=
"btn btn-primary"
>
{{pageText.actions.update}}
</button>
</p>
</p>
</div>
</div>
</div>
]\.=
</div>
<script>
<script>
const
{
ipcRenderer
,
remote
}
=
require
(
'
electron
'
);
const
{
remote
}
=
require
(
'
electron
'
);
const
lang
=
require
(
'
./lang.js
'
);
const
autoUpdater
=
remote
.
getGlobal
(
'
autoUpdater
'
);
const
lang
=
require
(
'
./lang.json
'
);
new
Vue
({
new
Vue
({
el
:
'
#vueApp
'
,
el
:
'
#vueApp
'
,
created
:
function
()
{
created
:
function
()
{
let
locale
=
localStorage
.
getItem
(
'
locale
'
)
||
remote
.
app
.
getLocale
();
let
locale
=
localStorage
.
getItem
(
'
locale
'
)
||
remote
.
app
.
getLocale
();
if
(
locale
.
startsWith
(
'
zh-
'
))
{
if
(
locale
.
startsWith
(
'
zh-
'
))
{
locale
=
'
zh-CN
'
;
locale
=
'
zh-CN
'
;
}
else
{
}
else
{
locale
=
'
en-US
'
;
locale
=
'
en-US
'
;
}
}
this
.
pageText
=
lang
[
'
update
'
][
locale
];
this
.
pageText
=
lang
[
'
update
'
][
locale
];
document
.
getElementById
(
'
title
'
).
innerHTML
=
this
.
pageText
.
pageTitle
;
document
.
getElementById
(
'
title
'
).
innerHTML
=
this
.
pageText
.
pageTitle
;
},
},
methods
:
{
methods
:
{
onClose
(){
onClose
(){
window
.
close
();
window
.
close
();
},
},
onUpdate
(){
onUpdate
(){
ipcRenderer
.
send
(
'
update
'
);
autoUpdater
.
quitAndInstall
(
);
}
}
},
},
data
:
{
data
:
{
message
:
'
Hello Vue!
'
,
message
:
'
Hello Vue!
'
,
pageText
:
{}
pageText
:
{}
}
}
});
});
</script>
</script>
</body>
</body>
</html>
</html>
update/lang.js
→
update/lang.js
on
View file @
93b715cd
module
.
exports
=
{
{
"update"
:
{
"update"
:
{
"zh-CN"
:
{
"zh-CN"
:
{
"
pageTitle
"
:
"
更新消息
"
,
"pageTitle"
:
"更新消息"
,
"
updateTitle
"
:
"
AppModule 更新下载完毕
"
,
"updateTitle"
:
"AppModule 更新下载完毕"
,
"
updateMsg
"
:[
"updateMsg"
:
[
"点击【现在安装更新】,会立即关闭 AppModule 平台及正在运行中的游戏,并安装更新。"
,
"点击【现在安装更新】,会立即关闭 AppModule 平台及正在运行中的游戏,并安装更新。"
,
"点击【下次启动时安装更新】,会在 AppModule 平台退出之后进行更新。"
,
"点击【下次启动时安装更新】,会在 AppModule 平台退出之后进行更新。"
,
"你也可以随时点击平台上的更新按钮安装哦!"
"你也可以随时点击平台上的更新按钮安装哦!"
],
],
"
updateFailed
"
:{
"updateFailed"
:
{
"
p1
"
:
"
如果自动更新失败,请至
"
,
"p1"
:
"如果自动更新失败,请至"
,
"
p2
"
:
"
https://moecube.com
"
,
"p2"
:
"https://moecube.com"
,
"
p3
"
:
"
手动下载最新版本
"
"p3"
:
"手动下载最新版本"
},
},
"
actions
"
:{
"actions"
:
{
"
update
"
:
"
(。・`ω´・) 现在安装更新
"
,
"update"
:
"(。・`ω´・) 现在安装更新"
,
"
close
"
:
"
下次启动时安装更新 _(:3 」∠)_
"
"close"
:
"下次启动时安装更新 _(:3 」∠)_"
}
}
},
},
"en-US"
:
{
"en-US"
:
{
"
pageTitle
"
:
"
Update
"
,
"pageTitle"
:
"Update"
,
"
updateTitle
"
:
"
Update downloaded
"
,
"updateTitle"
:
"Update downloaded"
,
"
updateMsg
"
:[
"updateMsg"
:
[
"If you install now, AppModule will go offline and update immediately, your gaming value may be affected."
,
"If you install now, AppModule will go offline and update immediately, your gaming value may be affected."
,
"If you install later, then the update will be automatically installed when you start-up AppModule next time."
,
"If you install later, then the update will be automatically installed when you start-up AppModule next time."
,
"You may also click the Update button to install the update anytime."
"You may also click the Update button to install the update anytime."
],
],
"
updateFailed
"
:{
"updateFailed"
:
{
"
p1
"
:
""
,
"p1"
:
""
,
"
p2
"
:
""
,
"p2"
:
""
,
"
p3
"
:
""
"p3"
:
""
},
},
"
actions
"
:{
"actions"
:
{
"
update
"
:
"
(。・`ω´・) Install Now
"
,
"update"
:
"(。・`ω´・) Install Now"
,
"
close
"
:
"
Install Later _(:3 」∠)_
"
"close"
:
"Install Later _(:3 」∠)_"
}
}
}
}
},
},
"
other-page
"
:{
"other-page"
:
{
"
zh-CN
"
:{},
"zh-CN"
:
{},
"
en-US
"
:{}
"en-US"
:
{}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment