feat: 下载更新时有多个版本

This commit is contained in:
shanmite 2021-12-01 20:30:18 +08:00
parent b9c73bda96
commit 50e18e2772
2 changed files with 11 additions and 10 deletions

View File

@ -1,12 +1,12 @@
const { send } = require('./net/http') const { send } = require('./net/http')
const { strToJson, download } = require('./utils') const { strToJson, download, try_for_each } = require('./utils')
const { version, checkVersion, log } = require('./utils') const { version, checkVersion, log } = require('./utils')
/** /**
* 获取下载链接 * 获取下载链接
* @param {string} owner * @param {string} owner
* @param {string} repo * @param {string} repo
* @returns {Promise<{ download_url: string, text: string }>} * @returns {Promise<{ download_url: string[], text: string }>}
*/ */
function getLatestReleaseDownloadUrl(owner, repo) { function getLatestReleaseDownloadUrl(owner, repo) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -36,8 +36,8 @@ function getLatestReleaseDownloadUrl(owner, repo) {
try { try {
const download_url = assets const download_url = assets
.filter(({ name }) => name.includes(platform) && name.includes(arch)) .filter(({ name }) => name.includes(platform) && name.includes(arch))
.map(({ browser_download_url }) => browser_download_url)[0] .map(({ browser_download_url }) => browser_download_url)
if (!download_url) { if (!download_url.length) {
reject(`未找到能在此平台(${process.platform})-(${process.arch})上运行的版本`) reject(`未找到能在此平台(${process.platform})-(${process.arch})上运行的版本`)
} }
resolve({ download_url, text }) resolve({ download_url, text })
@ -67,11 +67,12 @@ function getLatestReleaseDownloadUrl(owner, repo) {
async function update() { async function update() {
try { try {
const { download_url, text } = await getLatestReleaseDownloadUrl('shanmiteko', 'LotteryAutoScript') const { download_url, text } = await getLatestReleaseDownloadUrl('shanmiteko', 'LotteryAutoScript')
await try_for_each(download_url.entries(), async ([i, url]) => {
let proxy_url = new URL(download_url) let proxy_url = new URL(url)
proxy_url.host = 'download.fastgit.org' proxy_url.host = 'download.fastgit.org'
await download(proxy_url.href, `latest_version${i}.zip`)
await download(proxy_url.href, 'latest_version.zip') return false
})
log.info('自动下载', '成功下载到当前目录') log.info('自动下载', '成功下载到当前目录')
log.info('更新说明', '\n' + text + '\n') log.info('更新说明', '\n' + text + '\n')

View File

@ -41,7 +41,7 @@ for file in "$TARGET_DIR/"*; do
./lottery update ./lottery update
if [[ -r "latest_version.zip" ]]; then if [[ -r "latest_version.zip" ]]; then
unzip latest_version.zip unzip latest_version.zip
rm latest_version.zip rm latest_version0.zip
chmod u+x lottery chmod u+x lottery
fi fi
EOF EOF