worklog-reminder

Форк
0
/
CheckForUpdatesTask.js 
53 строки · 1.6 Кб
1
import path from 'path';
2
import { app, dialog, shell } from 'electron';
3
import fetch from 'node-fetch';
4
import AbstractIntervalTask from '../AbstractIntervalTask';
5
import config from '../../../app.config.main';
6

7
const repositoryName = 'Doka-NT/worklog-reminder';
8
const githubHost = 'https://github.com';
9
const updaterHost = 'https://update.electronjs.org';
10
const releasePage = 'releases/latest';
11

12
class CheckForUpdatesTask extends AbstractIntervalTask {
13
  _iteration() {
14
    const url = `${updaterHost}/${repositoryName}/${process.platform}-${process.arch}/${app.getVersion()}`;
15

16
    fetch(url)
17
      .then((response) => {
18
        if (response.status === 200) {
19
          // update is available
20
          this.onUpdateAvailable();
21
        } else if (response.status === 204) {
22
          // app is up to date
23
          console.log('Application is up to date');
24
        } else {
25
          // no updates or other state/error
26
          console.log('Updates is not available');
27
        }
28
      });
29
  }
30

31
  onUpdateAvailable() {
32
    const dialogOpts = {
33
      type: 'info',
34
      buttons: ['Download now', 'Later'],
35
      defaultId: 0,
36
      cancelId: 1,
37
      title: 'Application Update',
38
      icon: path.join(config.assetsDir, 'appIconColored.png'),
39
      detail: 'A new version of Worklog Reminder is available. Do you want to download it now?',
40
    };
41

42
    dialog.showMessageBox(dialogOpts).then(({ response }) => {
43
      if (response === 0) {
44
        shell.openExternal(`${githubHost}/${repositoryName}/${releasePage}`);
45
      }
46
    });
47

48
    // once message dialog is shown, stop checking updates
49
    this.stop();
50
  }
51
}
52

53
export default CheckForUpdatesTask;
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.