const { autoUpdater } = require("electron-updater")
const { build } = require("../../package.json")
function handleUpdate(mainWindow) {
    autoUpdater.setFeedURL(build.publish[0].url);    // 设置下载地址
    autoUpdater.autoDownload = false;                // 是否自动更新
    // 检查更新出错
    autoUpdater.on('error', (res) => {
        sendUpdateMessage('error',res,'检查更新出错')
    })
    // 检查是否有版本更新
    autoUpdater.on('checking-for-update', (res) => {
        sendUpdateMessage('checking-for-update',res,'检查是否有版本更新')
    })
    // 检测到有版本更新
    autoUpdater.on('update-available', (res) => {
        sendUpdateMessage('update-available',res,'检测到有版本更新')
    })
    // 未发现有新版本
    autoUpdater.on('update-not-available', (res) => {
        sendUpdateMessage('update-not-available',res,'未发现有新版本')
    })
    // 更新下载进度事件
    autoUpdater.on('download-progress', progressObj => {
        // mainWindow.setProgressBar(progressObj.percent / 100)
        sendUpdateMessage('download-progress',progressObj,'更新下载进度事件')
    })
    // 下载完成，询问用户是否更新
    autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) => {
        mainWindow.webContents.send('ev-should-update', {
            event,
            releaseNotes,
            releaseName,
            releaseDate,
            updateUrl,
            quitAndUpdate
        })
    })
    function sendUpdateMessage(type,res,text) {
        mainWindow.webContents.send('ev-message', type,res,text)
    }
}
module.exports = {
    handleUpdate
}
