Skip to content

Commit d007d8b

Browse files
committed
feat: 更新换源及优化
1 parent e543c63 commit d007d8b

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

lib/update.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,24 @@ async function update(isDdownload) {
6262
try {
6363
const { tag_name, assets, body: text } = await getLatestRelease('shanmiteko', 'LotteryAutoScript');
6464
if (checkVersion(version) < checkVersion(tag_name)) {
65-
const download_url = assets
65+
/**
66+
* @type {{browser_download_url:string, size:number}[]}
67+
*/
68+
const download_item = assets
6669
.filter(({ name }) => checkPlatform(name))
67-
.map(({ browser_download_url }) => browser_download_url);
68-
if (download_url.length) {
70+
.map(({ browser_download_url, size }) => { return { browser_download_url, size }; });
71+
if (download_item.length) {
6972
if (isDdownload) {
70-
await try_for_each(download_url.entries(), async ([i, url]) => {
71-
let proxy_url = 'https://mirror.ghproxy.com/';
72-
proxy_url += url;
73+
await try_for_each(download_item.entries(), async ([i, { browser_download_url, size }]) => {
74+
let proxy_url = 'https://ghfast.top/';
75+
proxy_url += browser_download_url;
7376
log.warn('自动下载', `切换代理${proxy_url}`);
74-
await download(proxy_url, `latest_version${i}.zip`)
77+
await download(proxy_url, `latest_version${i}.zip`, size)
7578
.catch(async err => {
7679
log.error('自动下载', err);
77-
proxy_url = url;
80+
proxy_url = browser_download_url;
7881
log.warn('自动下载', `使用原始链接${proxy_url}`);
79-
await download(proxy_url, `latest_version${i}.zip`);
82+
await download(proxy_url, `latest_version${i}.zip`, size);
8083
});
8184
return false;
8285
});

lib/utils.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,10 @@ const utils = {
318318
* 下载文件
319319
* @param {string} url
320320
* @param {string} file_name
321+
* @param {number} size
321322
* @returns {Promise<void | string>}
322323
*/
323-
download(url, file_name) {
324+
download(url, file_name, size) {
324325
return new Promise((resolve, reject) => {
325326
send({
326327
url,
@@ -340,6 +341,9 @@ const utils = {
340341
resStream.pipe(wtbs);
341342
wtbs.on('finish', () => {
342343
utils.log.proPrint('下载完成');
344+
if (recv_length < size) {
345+
reject(`未正确下载文件: ${recv_length}B < ${size}B`);
346+
}
343347
resolve();
344348
}).on('error', error => {
345349
wtbs.destroy();

0 commit comments

Comments
 (0)