mirror of
https://github.com/JoeanAmier/XHS-Downloader.git
synced 2025-12-26 04:48:05 +08:00
feat(XHS-Downloader.js): 新增下载失败重试机制
This commit is contained in:
parent
ef68346f28
commit
b3974fe8f3
@ -18,13 +18,14 @@
|
||||
|
||||
**用户脚本更新内容:**
|
||||
|
||||
**版本号:1.8.4**
|
||||
**版本号:1.8.6**
|
||||
|
||||
1. 重构自动滚动页面功能
|
||||
2. 新增文件名称长度限制
|
||||
3. 优化文件名称过滤规则
|
||||
4. 新增文件打包下载功能
|
||||
5. 优化作品文件下载速度
|
||||
6. 优化文件下载功能
|
||||
6. 新增下载失败重试机制
|
||||
7. 优化文件下载功能
|
||||
|
||||
<p><strong>注意:自动滚动页面功能默认关闭!启用该功能可能会被小红书检测为自动化操作,从而导致账号受到风控或封禁!该功能在使用过程中遇到任何问题请及时向开发者反馈!</strong></p>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// ==UserScript==
|
||||
// @name XHS-Downloader
|
||||
// @namespace https://github.com/JoeanAmier/XHS-Downloader
|
||||
// @version 1.8.5
|
||||
// @version 1.8.6
|
||||
// @description 提取小红书作品/用户链接,下载小红书无水印图文/视频作品文件
|
||||
// @author JoeanAmier
|
||||
// @match http*://xhslink.com/*
|
||||
@ -240,29 +240,34 @@ XHS-Downloader 用户脚本 详细说明:
|
||||
console.info(`文件已成功下载: ${name}`);
|
||||
}
|
||||
|
||||
const downloadFile = async (link, name, trigger = true,) => {
|
||||
try {
|
||||
// 使用 fetch 获取文件数据
|
||||
const response = await fetch(link, {method: "GET"});
|
||||
const downloadFile = async (link, name, trigger = true, retries = 5) => {
|
||||
for (let attempt = 1; attempt <= retries; attempt++) {
|
||||
try {
|
||||
// 使用 fetch 获取文件数据
|
||||
const response = await fetch(link, {method: "GET"});
|
||||
|
||||
// 检查响应状态码
|
||||
if (!response.ok) {
|
||||
console.error(`下载失败,状态码: ${response.status},URL: ${link}`);
|
||||
return false;
|
||||
// 检查响应状态码
|
||||
if (!response.ok) {
|
||||
console.error(`下载失败,状态码: ${response.status},URL: ${link},尝试次数: ${attempt}`);
|
||||
continue; // 继续下一次尝试
|
||||
}
|
||||
|
||||
const blob = await response.blob();
|
||||
|
||||
if (trigger) {
|
||||
triggerDownload(name, blob);
|
||||
return true;
|
||||
} else {
|
||||
return blob;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`下载失败 (${name}),错误信息:`, error, `尝试次数: ${attempt}`);
|
||||
if (attempt === retries) {
|
||||
return false; // 如果达到最大重试次数,返回失败
|
||||
}
|
||||
}
|
||||
|
||||
const blob = await response.blob();
|
||||
|
||||
if (trigger) {
|
||||
triggerDownload(name, blob);
|
||||
return true;
|
||||
} else {
|
||||
return blob;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`下载失败 (${name}),错误信息:`, error);
|
||||
return false;
|
||||
}
|
||||
return false; // 如果所有尝试都失败,返回失败
|
||||
};
|
||||
|
||||
const downloadFiles = async (urls, name,) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user