thedesk/app/main/dl.js

139 lines
3.5 KiB
JavaScript
Raw Normal View History

2019-06-15 19:52:28 +10:00
function dl(mainWindow, lang_path, base, dirname) {
const electron = require('electron')
const shell = electron.shell
const fs = require('fs')
const { download } = require('electron-dl')
const BrowserWindow = electron.BrowserWindow
const dialog = electron.dialog
var updatewin = null
var ipc = electron.ipcMain
const app = electron.app
const join = require('path').join
ipc.on('update', function(e, x, y) {
var platform = process.platform
var bit = process.arch
if (platform != 'others') {
2019-05-19 17:39:30 +10:00
updatewin = new BrowserWindow({
2019-05-19 20:24:27 +10:00
webPreferences: {
2019-06-15 19:52:28 +10:00
webviewTag: false,
nodeIntegration: false,
contextIsolation: true,
preload: join(dirname, 'js', 'platform', 'preload.js')
2019-05-19 20:24:27 +10:00
},
2019-05-19 17:39:30 +10:00
width: 600,
height: 400,
transparent: false, // ウィンドウの背景を透過
frame: false, // 枠の無いウィンドウ
2020-05-10 22:59:25 +10:00
resizable: false,
show: false
2019-08-26 22:06:07 +10:00
})
var lang = fs.readFileSync(lang_path, 'utf8')
2020-09-07 01:14:51 +10:00
//updatewin.toggleDevTools()
updatewin.loadURL(base + lang + '/update.html')
2020-05-10 22:59:25 +10:00
updatewin.webContents.once('dom-ready', () => {
updatewin.show()
})
return 'true'
2019-05-19 17:39:30 +10:00
} else {
return false
2019-05-19 17:39:30 +10:00
}
})
//アプデDL
2020-04-07 15:00:20 +10:00
ipc.on('download-btn', async (e, args) => {
2019-06-15 19:52:28 +10:00
function dl(url, file, dir, e) {
2020-05-10 22:59:25 +10:00
e.sender.webContents.send('mess', 'Start...')
const opts = {
directory: dir,
2020-04-07 15:00:20 +10:00
filename: file,
openFolderWhenDone: true,
onProgress: function(event) {
2020-05-03 00:32:46 +10:00
e.sender.webContents.send('prog', [event, args[2]])
},
saveAs: false
}
download(updatewin, url, opts)
.then(dl => {
e.sender.webContents.send('mess', 'ダウンロードが完了しました。')
app.quit()
})
.catch(console.error)
}
var platform = process.platform
var bit = process.arch
2020-04-07 15:00:20 +10:00
var options = {
title: 'Save',
defaultPath: app.getPath('home') + '/' + args[1]
}
const file = await dialog.showSaveDialog(null, options)
const savedFiles = file.filePath
console.log(savedFiles)
if (!savedFiles) {
return false
}
if (platform == 'win32') {
var m = savedFiles.match(/(.+)\\(.+)$/)
} else {
var m = savedFiles.match(/(.+)\/(.+)$/)
}
//console.log(m);
if (isExistFile(savedFiles)) {
fs.unlinkSync(savedFiles)
}
console.log(m)
dl(args[0], m[2], m[1], e)
})
2019-04-03 14:59:29 +11:00
function isExistFile(file) {
try {
fs.statSync(file)
2019-04-03 14:59:29 +11:00
return true
} catch (err) {
if (err.code === 'ENOENT') return false
}
}
2019-06-16 00:07:18 +10:00
ipc.on('general-dl', (event, args) => {
var name = ''
var platform = process.platform
var bit = process.arch
2020-05-11 19:42:52 +10:00
const filename = args[0].match(/https:\/\/.+\/(.+\..+)$/)
if (args[1] == '') {
if (platform == 'win32') {
var dir = app.getPath('home') + '\\Pictures\\TheDesk'
} else if (platform == 'linux' || platform == 'darwin') {
var dir = app.getPath('home') + '/Pictures/TheDesk'
2019-04-03 14:59:29 +11:00
}
} else {
var dir = args[1]
2019-04-03 14:59:29 +11:00
}
const opts = {
directory: dir,
filename: name,
openFolderWhenDone: false,
onProgress: function(e) {
event.sender.webContents.send('general-dl-prog', e)
2019-04-03 14:59:29 +11:00
},
saveAs: false
}
download(BrowserWindow.getFocusedWindow(), args[0], opts)
2019-04-03 14:59:29 +11:00
.then(dl => {
2020-05-11 19:42:52 +10:00
if(filename[1]) {
if (platform == 'win32') {
var name = dir + '\\' + filename[1]
} else if (platform == 'linux' || platform == 'darwin') {
var name = dir + '/' + filename[1]
}
} else {
var name = dir
}
event.sender.webContents.send('general-dl-message', name)
2019-04-03 14:59:29 +11:00
})
.catch(console.error)
})
2020-05-11 19:42:52 +10:00
ipc.on('openFinder', (e, folder) => {
console.log(folder)
2019-04-03 14:59:29 +11:00
shell.showItemInFolder(folder)
})
2019-04-03 14:59:29 +11:00
}
exports.dl = dl