diff --git a/.github/workflows/Close_Stale_Issues_and_PRs.yaml b/.github/workflows/Close_Stale_Issues_and_PRs.yaml index 56c2721..fc8c89d 100644 --- a/.github/workflows/Close_Stale_Issues_and_PRs.yaml +++ b/.github/workflows/Close_Stale_Issues_and_PRs.yaml @@ -27,10 +27,10 @@ jobs: 🔒 此 PR 已因无更新而自动关闭。如仍需合并,请重新打开或提交新 PR。 🔒 This PR has been automatically closed due to inactivity. If you still wish to merge it, please reopen it or submit a new PR. - days-before-issue-stale: 28 - days-before-pr-stale: 28 + days-before-stale: 28 days-before-close: 14 - operations-per-run: 60 + + ascending: true stale-issue-label: "未跟进问题(Stale)" close-issue-label: "自动关闭(Close)" diff --git a/README.md b/README.md index 63762b1..fe276db 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@
🔥 小红书链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品链接、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!
🔥 “小红书”、“XiaoHongShu”、“RedNote” 含义相同,本项目统称为 “小红书”
⭐ XHS-Downloader 开发计划及进度可前往 Projects 查阅
+🎥 点击图片观看演示视频
-
+前往 bilibili 观看演示;前往 YouTube 观看演示
+
+
+
https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXXMCP URL:http://127.0.0.1:5556/mcp/
+如果您的浏览器安装了 Tampermonkey 浏览器扩展程序,可以添加 用户脚本(右键单击复制链接),无需下载安装即可体验项目功能!
+
+提示:使用 XHS-Downloader 用户脚本批量提取作品链接,搭配 XHS-Downloader 程序可以实现批量下载无水印作品文件!
XHS-Downloader 会将下载过的作品 ID 储存至数据库,当重复下载相同的作品时,XHS-Downloader 会自动跳过该作品的文件下载(即使作品文件不存在),如果想要重新下载作品文件,请先删除数据库中对应的作品 ID,再使用 XHS-Downloader 下载作品文件!
该功能默认开启,如果关闭该功能,XHS-Downloader 会检查文件是否存在,若文件存在则跳过下载!
- -# 📦 构建可执行文件指南 +
diff --git a/README_EN.md b/README_EN.md
index 18d250d..a053ec4 100644
--- a/README_EN.md
+++ b/README_EN.md
@@ -21,6 +21,8 @@
🔥 "RedNote", "XiaoHongShu" and "小红书" have the same meaning, and this project is collectively referred to as "RedNote".
⭐ Due to the author's limited energy, I was unable to update the English document in a timely manner, and the content may have become outdated, partial translation is machine translation, the translation result may be incorrect, Suggest referring to Chinese documentation. If you want to contribute to translation, we warmly welcome you.
⭐ The development plan and progress of XHS-Downloader can be found at Projects
+🎥 Click the images to watch the demo video
-
+Watch Demo on Bilibili;Watch Demo on YouTube
+
+
+
https://www.xiaohongshu.com/explore/WorksID?xsec_token=XXXMCP URL:http://127.0.0.1:5556/mcp/
+If your browser has the Tampermonkey browser extension installed, you can add the user script(Right click to copy link) to experience the project features without needing to download or install anything!
-After successfully installing the script, open the RedNote page, check the script instructions, and follow the prompts to operate.
-
+
+Note: Using the XHS-Downloader user script to batch extract works links, in combination with the XHS-Downloader program, can achieve batch downloading of watermark-free works files!
XHS-Downloader will store the IDs of downloaded works in a database. When downloading the same works again, XHS-Downloader will automatically skip the file download (even if the works file does not exist). If you want to re-download the works file, please delete the corresponding works ID from the database and then use XHS-Downloader to download the works file again!
This feature is enabled by default. If it is turned off, XHS-Downloader will check if the file exists. If the file exists, it will skip the download!
- -# 📦 Build of Executable File Guide +
diff --git a/locale/en_US/LC_MESSAGES/xhs.mo b/locale/en_US/LC_MESSAGES/xhs.mo
index 15c70b1..a4a8015 100644
Binary files a/locale/en_US/LC_MESSAGES/xhs.mo and b/locale/en_US/LC_MESSAGES/xhs.mo differ
diff --git a/locale/en_US/LC_MESSAGES/xhs.po b/locale/en_US/LC_MESSAGES/xhs.po
index 3b779a4..91a9603 100644
--- a/locale/en_US/LC_MESSAGES/xhs.po
+++ b/locale/en_US/LC_MESSAGES/xhs.po
@@ -500,57 +500,57 @@ msgid "免责声明\n"
msgstr ""
"Disclaimer for XHS-Downloader:\n"
"\n"
-"1. The use of this project is entirely at the user's own discretion and "
+"1.The use of this project is entirely at the user's own discretion and "
"risk. The author assumes no responsibility or liability of any kind for any "
"loss, damage, or risk arising from the user's use of this project.\n"
-"2. The code and functionalities provided by the author of this project are "
+"2.The code and functionalities provided by the author of this project are "
"developed based on current knowledge and technology. The author makes every "
"effort to ensure the correctness and security of the code according to "
"current technical standards but does not guarantee that the code is "
"completely free of errors or defects.\n"
-"3. All third-party libraries, plugins, or services used by this project "
+"3.All third-party libraries, plugins, or services used by this project "
"follow their original open-source or commercial licenses. Users must review "
"and comply with these license agreements accordingly. The author assumes no "
"responsibility for the stability, security, or compliance of any third-party "
"components.\n"
-"4. When using this project, users must strictly comply with the requirements "
+"4.When using this project, users must strictly comply with the requirements "
"of the GNU General Public License v3.0 and clearly indicate in appropriate "
"places that the code was used under the GNU General Public License v3.0.\n"
-"5. When using the code and functionalities of this project, users must "
+"5.When using the code and functionalities of this project, users must "
"independently research relevant laws and regulations and ensure that their "
"usage is legal and compliant. Any legal liabilities or risks arising from "
"violations of laws and regulations shall be borne solely by the user.\n"
-"6. Users must not use this tool to engage in any activities that infringe "
+"6.Users must not use this tool to engage in any activities that infringe "
"intellectual property rights, including but not limited to downloading or "
"distributing copyrighted content without authorization. Developers do not "
"participate in, support, or endorse the acquisition or distribution of any "
"illegal or unauthorized content.\n"
-"7. This project assumes no responsibility for the compliance of data "
+"7.This project assumes no responsibility for the compliance of data "
"processing activities (including collection, storage, and transmission) "
"performed by users. Users must comply with relevant laws and regulations and "
"ensure that such activities are lawful and proper. Legal liabilities "
"resulting from non-compliant operations shall be borne by the user.\n"
-"8. Under no circumstances may users associate the author, contributors, or "
+"8.Under no circumstances may users associate the author, contributors, or "
"other related parties of this project with their usage of the project, nor "
"may they hold these parties liable for any loss or damage resulting from "
"such usage.\n"
-"9. The author of this project will not provide a paid version of the XHS-"
+"9.The author of this project will not provide a paid version of the XHS-"
"Downloader project, nor will they offer any commercial services related to "
"it.\n"
-"10. Any secondary development, modification, or compilation based on this "
+"10.Any secondary development, modification, or compilation based on this "
"project is unrelated to the original author. The original author assumes no "
"liability for any consequences resulting from such secondary development. "
"Users bear full responsibility for all outcomes arising from such "
"modifications.\n"
-"11. This project does not grant users any patent licenses. If the use of "
+"11.This project does not grant users any patent licenses. If the use of "
"this project leads to patent disputes or infringement, the user assumes all "
"associated risks and responsibilities. Without written authorization from "
"the author or rights holder, users may not use this project for any "
"commercial promotion, advertising, or re-licensing.\n"
-"12. The author reserves the right to terminate service to any user who "
+"12.The author reserves the right to terminate service to any user who "
"violates this disclaimer at any time and may require them to destroy all "
"obtained code and derivative works.\n"
-"13. The author reserves the right to update this disclaimer at any time "
+"13.The author reserves the right to update this disclaimer at any time "
"without prior notice. Continued use of the project constitutes acceptance of "
"the revised terms.\n"
"\n"
diff --git a/locale/zh_CN/LC_MESSAGES/xhs.mo b/locale/zh_CN/LC_MESSAGES/xhs.mo
index b9c9e72..ccb2b1d 100644
Binary files a/locale/zh_CN/LC_MESSAGES/xhs.mo and b/locale/zh_CN/LC_MESSAGES/xhs.mo differ
diff --git a/locale/zh_CN/LC_MESSAGES/xhs.po b/locale/zh_CN/LC_MESSAGES/xhs.po
index 27a49d2..9345d4b 100644
--- a/locale/zh_CN/LC_MESSAGES/xhs.po
+++ b/locale/zh_CN/LC_MESSAGES/xhs.po
@@ -472,36 +472,36 @@ msgid "免责声明\n"
msgstr ""
"关于 XHS-Downloader 的 免责声明:\n"
"\n"
-"1. 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项"
+"1.使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项"
"目所产生的任何损失、责任、或风险概不负责。\n"
-"2. 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者按现有技术"
+"2.本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者按现有技术"
"水平努力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。\n"
-"3. 本项目依赖的所有第三方库、插件或服务各自遵循其原始开源或商业许可,使用者需"
+"3.本项目依赖的所有第三方库、插件或服务各自遵循其原始开源或商业许可,使用者需"
"自行查阅并遵守相应协议,作者不对第三方组件的稳定性、安全性及合规性承担任何责"
"任。\n"
-"4. 使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,"
+"4.使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,"
"并在适当的地方注明使用了 GNU General Public License v3.0 的代码。\n"
-"5. 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行"
+"5.使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行"
"为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。\n"
-"6. 使用者不得使用本工具从事任何侵犯知识产权的行为,包括但不限于未经授权下载、"
+"6.使用者不得使用本工具从事任何侵犯知识产权的行为,包括但不限于未经授权下载、"
"传播受版权保护的内容,开发者不参与、不支持、不认可任何非法内容的获取或分"
"发。\n"
-"7. 本项目不对使用者涉及的数据收集、存储、传输等处理活动的合规性承担责任。使用"
+"7.本项目不对使用者涉及的数据收集、存储、传输等处理活动的合规性承担责任。使用"
"者应自行遵守相关法律法规,确保处理行为合法正当;因违规操作导致的法律责任由使"
"用者自行承担。\n"
-"8. 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行"
+"8.使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行"
"为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。\n"
-"9. 本项目的作者不会提供 XHS-Downloader 项目的付费版本,也不会提供与 XHS-"
+"9.本项目的作者不会提供 XHS-Downloader 项目的付费版本,也不会提供与 XHS-"
"Downloader 项目相关的任何商业服务。\n"
-"10. 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不"
+"10.基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不"
"承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的"
"各种情况负全部责任。\n"
-"11. 本项目不授予使用者任何专利许可;若使用本项目导致专利纠纷或侵权,使用者自"
+"11.本项目不授予使用者任何专利许可;若使用本项目导致专利纠纷或侵权,使用者自"
"行承担全部风险和责任。未经作者或权利人书面授权,不得使用本项目进行任何商业宣"
"传、推广或再授权。\n"
-"12. 作者保留随时终止向任何违反本声明的使用者提供服务的权利,并可能要求其销毁"
+"12.作者保留随时终止向任何违反本声明的使用者提供服务的权利,并可能要求其销毁"
"已获取的代码及衍生作品。\n"
-"13. 作者保留在不另行通知的情况下更新本声明的权利,使用者持续使用即视为接受修"
+"13.作者保留在不另行通知的情况下更新本声明的权利,使用者持续使用即视为接受修"
"订后的条款。\n"
"\n"
"在使用本项目的代码和功能之前,请您认真考虑并接受以上免责声明。如果您对上述声"
diff --git a/source/expansion/browser.py b/source/expansion/browser.py
index f80b273..9c80ac8 100644
--- a/source/expansion/browser.py
+++ b/source/expansion/browser.py
@@ -42,7 +42,7 @@ class BrowserCookie:
cls,
domains: list[str],
console: Console = None,
- ) -> str:
+ ) -> str | None:
console = console or Console()
options = "\n".join(
f"{i}. {k}: {v[1]}"
@@ -61,6 +61,7 @@ class BrowserCookie:
console,
)
console.print(_("未选择浏览器!"))
+ return None
@classmethod
def get(
diff --git a/source/module/static.py b/source/module/static.py
index 6164888..05e5b8e 100644
--- a/source/module/static.py
+++ b/source/module/static.py
@@ -2,7 +2,7 @@ from pathlib import Path
VERSION_MAJOR = 2
VERSION_MINOR = 6
-VERSION_BETA = True
+VERSION_BETA = False
__VERSION__ = f"{VERSION_MAJOR}.{VERSION_MINOR}.{'beta' if VERSION_BETA else 'stable'}"
ROOT = Path(__file__).resolve().parent.parent.parent.joinpath("Volume")
ROOT.mkdir(exist_ok=True)
@@ -16,7 +16,7 @@ RELEASES = "https://github.com/JoeanAmier/XHS-Downloader/releases/latest"
USERSCRIPT = "https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/master/static/XHS-Downloader.js"
-USERAGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
+USERAGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
HEADERS = {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,"
diff --git a/static/screenshot/MCP配置示例.png b/static/screenshot/MCP配置示例.png
index ba0aa7d..007b0f1 100644
Binary files a/static/screenshot/MCP配置示例.png and b/static/screenshot/MCP配置示例.png differ
diff --git a/static/screenshot/命令行模式截图CN1.png b/static/screenshot/命令行模式截图CN1.png
index 6c6a9d0..2dd51bb 100644
Binary files a/static/screenshot/命令行模式截图CN1.png and b/static/screenshot/命令行模式截图CN1.png differ
diff --git a/static/screenshot/命令行模式截图CN2.png b/static/screenshot/命令行模式截图CN2.png
index f7eaaf8..4a930b6 100644
Binary files a/static/screenshot/命令行模式截图CN2.png and b/static/screenshot/命令行模式截图CN2.png differ
diff --git a/static/screenshot/命令行模式截图EN1.png b/static/screenshot/命令行模式截图EN1.png
index 4ff802e..8de643d 100644
Binary files a/static/screenshot/命令行模式截图EN1.png and b/static/screenshot/命令行模式截图EN1.png differ
diff --git a/static/screenshot/命令行模式截图EN2.png b/static/screenshot/命令行模式截图EN2.png
index 9b558ed..9c64fa2 100644
Binary files a/static/screenshot/命令行模式截图EN2.png and b/static/screenshot/命令行模式截图EN2.png differ
diff --git a/static/screenshot/用户脚本截图1.png b/static/screenshot/用户脚本截图1.png
index b06e3ec..56ae723 100644
Binary files a/static/screenshot/用户脚本截图1.png and b/static/screenshot/用户脚本截图1.png differ
diff --git a/static/screenshot/用户脚本截图2.png b/static/screenshot/用户脚本截图2.png
index e5a962b..e32ce5e 100644
Binary files a/static/screenshot/用户脚本截图2.png and b/static/screenshot/用户脚本截图2.png differ
diff --git a/static/screenshot/用户脚本截图3.png b/static/screenshot/用户脚本截图3.png
index 19ffb63..cab0480 100644
Binary files a/static/screenshot/用户脚本截图3.png and b/static/screenshot/用户脚本截图3.png differ
diff --git a/static/screenshot/用户脚本截图4.png b/static/screenshot/用户脚本截图4.png
new file mode 100644
index 0000000..04a5fc2
Binary files /dev/null and b/static/screenshot/用户脚本截图4.png differ
diff --git a/static/screenshot/程序运行截图CN1.png b/static/screenshot/程序运行截图CN1.png
index 24cfaef..c3840fc 100644
Binary files a/static/screenshot/程序运行截图CN1.png and b/static/screenshot/程序运行截图CN1.png differ
diff --git a/static/screenshot/程序运行截图CN2.png b/static/screenshot/程序运行截图CN2.png
index 4506744..384283f 100644
Binary files a/static/screenshot/程序运行截图CN2.png and b/static/screenshot/程序运行截图CN2.png differ
diff --git a/static/screenshot/程序运行截图CN3.png b/static/screenshot/程序运行截图CN3.png
index 6326733..ea80ac3 100644
Binary files a/static/screenshot/程序运行截图CN3.png and b/static/screenshot/程序运行截图CN3.png differ
diff --git a/static/screenshot/程序运行截图EN1.png b/static/screenshot/程序运行截图EN1.png
index ee247fd..f411c4a 100644
Binary files a/static/screenshot/程序运行截图EN1.png and b/static/screenshot/程序运行截图EN1.png differ
diff --git a/static/screenshot/程序运行截图EN2.png b/static/screenshot/程序运行截图EN2.png
index 835dc9e..7bba189 100644
Binary files a/static/screenshot/程序运行截图EN2.png and b/static/screenshot/程序运行截图EN2.png differ
diff --git a/static/screenshot/程序运行截图EN3.png b/static/screenshot/程序运行截图EN3.png
index 7300124..d7aaf87 100644
Binary files a/static/screenshot/程序运行截图EN3.png and b/static/screenshot/程序运行截图EN3.png differ