소스 검색

Application now checks for updates every 30 minutes.

Daniel Scalzi 7 년 전
부모
커밋
0216582827
2개의 변경된 파일24개의 추가작업 그리고 15개의 파일을 삭제
  1. 20 13
      app/assets/js/scripts/uicore.js
  2. 4 2
      index.js

+ 20 - 13
app/assets/js/scripts/uicore.js

@@ -5,9 +5,9 @@
  * modules, excluding dependencies.
  */
 // Requirements
-const $                         = require('jquery');
+const $                                      = require('jquery');
 const {ipcRenderer, remote, shell, webFrame} = require('electron')
-const isDev = require('electron-is-dev')
+const isDev                                  = require('electron-is-dev')
 
 // Disable eval function.
 // eslint-disable-next-line
@@ -29,35 +29,42 @@ webFrame.setLayoutZoomLevelLimits(0, 0)
 
 // Initialize auto updates in production environments.
 // TODO Make this the case after implementation is done.
+let updateCheckListener
 if(!isDev){
     ipcRenderer.on('autoUpdateNotification', (event, arg, info) => {
         switch(arg){
             case 'checking-for-update':
-                console.log('Checking for update..')
+                console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Checking for update..')
                 break
             case 'update-available':
-                console.log('New update available', info.version)
+                console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'New update available', info.version)
                 break
             case 'update-downloaded':
-                console.log('Update ' + info.version + ' ready to be installed.')
+                console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Update ' + info.version + ' ready to be installed.')
                 showUpdateUI(info)
                 break
             case 'update-not-available':
-                console.log('No new update found.')
+                console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No new update found.')
                 break
             case 'ready':
+                updateCheckListener = setInterval(() => {
+                    ipcRenderer.send('autoUpdateAction', 'checkForUpdate')
+                }, 1800000)
                 ipcRenderer.send('autoUpdateAction', 'checkForUpdate')
-            case 'error':
-                console.log('Error during update check..')
-                console.debug('Error Code:', info != null ? info.code : null)
-                if(err != null && err.code != null){
-                    if(err.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){
-                        console.log('No suitable releases found.')
+            case 'realerror':
+                if(info != null && info.code != null){
+                    if(info.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){
+                        console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No suitable releases found.')
+                    } else if(info.code === 'ERR_XML_MISSED_ELEMENT'){
+                        console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No releases found.')
+                    } else {
+                        console.error('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error during update check..', info)
+                        console.debug('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error Code:', info.code)
                     }
                 }
                 break
             default:
-                console.log('Unknown argument', arg)
+                console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Unknown argument', arg)
                 break
         }
     })

+ 4 - 2
index.js

@@ -6,7 +6,8 @@ const url = require('url')
 const fs = require('fs')
 const ejse = require('ejs-electron')
 
-function initAutoUpdater(event){
+// Setup auto updater.
+function initAutoUpdater(event) {
     // Defaults to true if application version contains prerelease components (e.g. 0.12.1-alpha.1)
     // autoUpdater.allowPrerelease = true
     if(isDev){
@@ -27,6 +28,7 @@ function initAutoUpdater(event){
     })  
 }
 
+// Open channel to listen for update actions.
 ipcMain.on('autoUpdateAction', (event, arg) => {
     switch(arg){
         case 'initAutoUpdater':
@@ -37,7 +39,7 @@ ipcMain.on('autoUpdateAction', (event, arg) => {
         case 'checkForUpdate':
             autoUpdater.checkForUpdates()
                 .catch(err => {
-                    event.sender.send('autoUpdateNotification', 'error', err)
+                    event.sender.send('autoUpdateNotification', 'realerror', err)
                 })
             break
         case 'installUpdateNow':