检测更新增加强制更新

This commit is contained in:
whyour 2021-11-27 20:19:49 +08:00
parent 7cba2cf76c
commit e19d2412fc
3 changed files with 44 additions and 9 deletions

View File

@ -5,7 +5,7 @@ import { createRandomString } from './util';
process.env.NODE_ENV = process.env.NODE_ENV || 'development'; process.env.NODE_ENV = process.env.NODE_ENV || 'development';
const lastVersionFile = const lastVersionFile =
'https://ghproxy.com/https://raw.githubusercontent.com/whyour/qinglong/master/src/version.ts'; 'https://raw.githubusercontent.com/whyour/qinglong/master/src/version.ts';
const envFound = dotenv.config(); const envFound = dotenv.config();
const rootPath = process.cwd(); const rootPath = process.cwd();

View File

@ -403,13 +403,22 @@ export default class UserService {
const currentVersionFile = fs.readFileSync(config.versionFile, 'utf8'); const currentVersionFile = fs.readFileSync(config.versionFile, 'utf8');
const currentVersion = currentVersionFile.match(versionRegx)![1]; const currentVersion = currentVersionFile.match(versionRegx)![1];
const lastVersionFileContent = await ( let lastVersion = '';
await got.get(config.lastVersionFile) let lastLog = '';
).body; try {
const lastVersion = lastVersionFileContent.match(versionRegx)![1]; const result = await Promise.race([
const lastLog = lastVersionFileContent.match(logRegx) got.get(config.lastVersionFile, { timeout: 1000, retry: 0 }),
? lastVersionFileContent.match(logRegx)![1] got.get(`https://ghproxy.com/${config.lastVersionFile}`, {
: ''; timeout: 5000,
retry: 0,
}),
]);
const lastVersionFileContent = result.body;
lastVersion = lastVersionFileContent.match(versionRegx)![1];
lastLog = lastVersionFileContent.match(logRegx)
? lastVersionFileContent.match(logRegx)![1]
: '';
} catch (error) {}
return { return {
code: 200, code: 200,

View File

@ -24,7 +24,7 @@ const CheckUpdate = ({ socketMessage }: any) => {
if (data.hasNewVersion) { if (data.hasNewVersion) {
showConfirmUpdateModal(data); showConfirmUpdateModal(data);
} else { } else {
message.success('已经是最新版了!'); showForceUpdateModal();
} }
} else { } else {
message.error(data); message.error(data);
@ -39,6 +39,32 @@ const CheckUpdate = ({ socketMessage }: any) => {
}); });
}; };
const showForceUpdateModal = () => {
Modal.confirm({
width: 500,
title: '更新',
content: (
<>
<div></div>
<div style={{ fontSize: 12, fontWeight: 400, marginTop: 5 }}>
{version}
</div>
</>
),
okText: '确认',
cancelText: '强制更新',
onCancel() {
showUpdatingModal();
request
.put(`${config.apiPrefix}system/update`)
.then((_data: any) => {})
.catch((error: any) => {
console.log(error);
});
},
});
};
const showConfirmUpdateModal = (data: any) => { const showConfirmUpdateModal = (data: any) => {
const { lastVersion, lastLog } = data; const { lastVersion, lastLog } = data;
Modal.confirm({ Modal.confirm({