diff --git a/.gitignore b/.gitignore index 1f59558..963e010 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ docs/dist/ .env.local .env.*.local dist_electron/ +test.js diff --git a/src/main/utils/updateChecker.ts b/src/main/utils/updateChecker.ts index 631239c..2d2fb37 100644 --- a/src/main/utils/updateChecker.ts +++ b/src/main/utils/updateChecker.ts @@ -2,6 +2,7 @@ import { dialog, shell } from 'electron' import db from '#/datastore' import axios from 'axios' import pkg from 'root/package.json' +import { lt } from 'semver' const version = pkg.version const releaseUrl = 'https://api.github.com/repos/Molunerfinn/PicGo/releases/latest' const releaseUrlBackup = 'https://cdn.jsdelivr.net/gh/Molunerfinn/PicGo@latest/package.json' @@ -51,18 +52,17 @@ const checkVersion = async () => { // if true -> update else return false const compareVersion2Update = (current: string, latest: string) => { - const currentVersion = current.split('.').map(item => parseInt(item)) - const latestVersion = latest.split('.').map(item => parseInt(item)) - - for (let i = 0; i < 3; i++) { - if (currentVersion[i] < latestVersion[i]) { - return true - } - if (currentVersion[i] > latestVersion[i]) { - return false + try { + if (latest.includes('Beta')) { + const isCheckBetaUpdate = db.get('settings.checkBetaUpdate') !== false + if (!isCheckBetaUpdate) { + return false + } } + return lt(current, latest) + } catch (e) { + return false } - return false } export default checkVersion diff --git a/src/renderer/pages/PicGoSetting.vue b/src/renderer/pages/PicGoSetting.vue index aa0e720..43c9ba5 100644 --- a/src/renderer/pages/PicGoSetting.vue +++ b/src/renderer/pages/PicGoSetting.vue @@ -56,6 +56,17 @@ @change="updateHelperChange" > + + + @@ -347,7 +358,8 @@ export default class extends Vue { uploadNotification: db.get('settings.uploadNotification') || false, miniWindowOntop: db.get('settings.miniWindowOntop') || false, logLevel, - autoCopyUrl: db.get('settings.autoCopy') === undefined ? true : db.get('settings.autoCopy') + autoCopyUrl: db.get('settings.autoCopy') === undefined ? true : db.get('settings.autoCopy'), + checkBetaUpdate: db.get('settings.checkBetaUpdate') === undefined ? true : db.get('settings.checkBetaUpdate') } picBed: IPicBedType[] = [] logFileVisible = false @@ -452,6 +464,9 @@ export default class extends Vue { updateHelperChange (val: boolean) { db.set('settings.showUpdateTip', val) } + checkBetaUpdateChange (val: boolean) { + db.set('settings.checkBetaUpdate', val) + } handleShowPicBedListChange (val: string[]) { const list = this.picBed.map(item => { if (!val.includes(item.name)) { diff --git a/src/universal/types/view.d.ts b/src/universal/types/view.d.ts index 2353f19..feb066b 100644 --- a/src/universal/types/view.d.ts +++ b/src/universal/types/view.d.ts @@ -8,6 +8,7 @@ interface ISettingForm { miniWindowOntop: boolean logLevel: string[] autoCopyUrl: boolean + checkBetaUpdate: boolean } interface IShortKeyMap {