From 4895ddab255b5f7bcacc7e4b24fcc86538a77a80 Mon Sep 17 00:00:00 2001 From: Quan Date: Sun, 10 Aug 2025 16:22:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(script):=20=E4=BF=AE=E5=A4=8D=E6=8F=90?= =?UTF-8?q?=E5=8F=96=E6=90=9C=E7=B4=A2=E7=BB=93=E6=9E=9C=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/Release_Notes.md | 14 ++++++++------ static/XHS-Downloader.js | 10 +++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/static/Release_Notes.md b/static/Release_Notes.md index 30a5e9f..5930d7c 100644 --- a/static/Release_Notes.md +++ b/static/Release_Notes.md @@ -18,12 +18,14 @@ **用户脚本更新内容:** -**版本号:2.1.4** +**版本号:2.1.5** 1. 修复单张图片的作品下载后文件损坏问题 2. 添加未登录状态下无法提取作品链接的提示 -3. 脚本设置新增 `菜单始终显示` 配置项 -4. 修复用户脚本 CSS 样式冲突问题 -5. 优化部分弹窗提示的交互界面样式 -6. 新增支持仅提取勾选的作品链接 -7. 优化提取作品 ID 的正则表达式 +3. 修复提取搜索结果作品链接失败的问题 +4. 修复提取搜索结果作品链接失败的问题 +5. 脚本设置新增 `菜单始终显示` 配置项 +6. 修复用户脚本 CSS 样式冲突问题 +7. 优化部分弹窗提示的交互界面样式 +8. 新增支持仅提取勾选的作品链接 +9. 优化提取作品 ID 的正则表达式 diff --git a/static/XHS-Downloader.js b/static/XHS-Downloader.js index 7a39cac..72cf87a 100644 --- a/static/XHS-Downloader.js +++ b/static/XHS-Downloader.js @@ -1,7 +1,7 @@ // ==UserScript== // @name XHS-Downloader // @namespace https://github.com/JoeanAmier/XHS-Downloader -// @version 2.1.4 +// @version 2.1.5 // @description 提取小红书作品/用户链接,下载小红书无水印图文/视频作品文件 // @author JoeanAmier // @match http*://xhslink.com/* @@ -485,7 +485,7 @@ const extractNotesInfo = order => { const notesRawValue = unsafeWindow.__INITIAL_STATE__.user.notes._rawValue[order]; - return notesRawValue.map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); + return notesRawValue.filter(item => item?.noteCard).map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); }; const extractBoardInfo = () => { @@ -501,7 +501,7 @@ const id = match[1]; // match[0] 是整个匹配的字符串,match[1] 是第一个括号内的匹配 const notesRawValue = unsafeWindow.__INITIAL_STATE__.board.boardFeedsMap._rawValue[id].notes; - return notesRawValue.map(item => [item.noteId, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); + return notesRawValue.filter(item => item?.noteCard).map(item => [item.noteId, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); } else { console.error("从链接提取专辑 ID 失败", currentUrl,); return []; @@ -510,12 +510,12 @@ const extractFeedInfo = () => { const notesRawValue = unsafeWindow.__INITIAL_STATE__.feed.feeds._rawValue; - return notesRawValue.map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); + return notesRawValue.filter(item => item?.noteCard).map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); }; const extractSearchNotes = () => { const notesRawValue = unsafeWindow.__INITIAL_STATE__.search.feeds._rawValue; - return notesRawValue.map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); + return notesRawValue.filter(item => item?.noteCard).map(item => [item.id, item.xsecToken, item.noteCard.cover.urlDefault, item.noteCard.user.nickName, item.noteCard.displayTitle,]); } const extractSearchUsers = () => {