Feature: add beta-version update support

This commit is contained in:
Molunerfinn 2020-04-30 16:47:09 +08:00
parent 2aeca509a8
commit ad6acd8c4f
4 changed files with 28 additions and 11 deletions

1
.gitignore vendored
View File

@ -16,3 +16,4 @@ docs/dist/
.env.local
.env.*.local
dist_electron/
test.js

View File

@ -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

View File

@ -56,6 +56,17 @@
@change="updateHelperChange"
></el-switch>
</el-form-item>
<el-form-item
v-show="form.updateHelper"
label="接受Beta版本更新"
>
<el-switch
v-model="form.checkBetaUpdate"
active-text="开"
inactive-text="关"
@change="checkBetaUpdateChange"
></el-switch>
</el-form-item>
<el-form-item
label="开机自启"
>
@ -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)) {

View File

@ -8,6 +8,7 @@ interface ISettingForm {
miniWindowOntop: boolean
logLevel: string[]
autoCopyUrl: boolean
checkBetaUpdate: boolean
}
interface IShortKeyMap {