novel-downloader
novel-downloader copied to clipboard
[Bug]: 真白萌设置访问频率限制,导致下载不完整
必要条件
- [X] 我已经搜索 issue 区,并确定没有相同问题存在。
- [X] 我已经尝试将脚本升级至最新版本,但问题仍存在。
- [X] 在尝试下载付费章节前,我已经购买了相应付费章节。
当我尝试复现issue时……
- [X] 我使用的浏览器是最新版 Chrome 或 Firefox
- [X] 脚本管理器(Tampermonkey/Violentmonkey)是唯一浏览器插件
- [X] 小说下载器脚本是唯一用户脚本
问题描述
在使用下载器下载时,下载结果会出现三份TXT文件,其中一份为部分小说文件,另外两份为报错日志,而当我想要打开其他真白萌网页时,会显示访问过于频繁的界面,过一段时间才会恢复正常。我想问一下有没有办法设置检测频率好让下载顺利进行?或者提供可供选择的部分下载选项,并且能够接续下载。感谢!
问题发生的网址:
https://masiro.me/admin/novelView?novel_id=88
复现步骤
1.打开某个章节数较多的小说 2.启用脚本下载 3.下载不完整,出现报错日志
期待的行为
下载完成,内容为完整内容
实际的行为
下载成功,但是内容不完整 [ウスバー]不是主人公!.txt novel-downloader-1704306127188.log [割内@タリサ]异世界迷宫最深处为目标.txt novel-downloader-1704305697803.log novel-downloader-1704305698242.log
novel-downloader-1704306125916.log
小说下载器脚本版本
5.2.855
脚本管理器(Tampermonkey/Violentmonkey)版本
v5.0.0
浏览器名称及版本
chrome 120.0.6099.130(正式版本) (64 位)
我下syosetu.com的小说也会因为频率太高被ban掉,尝试修改了源码,可以正常下载了,你可以试下。 if (self.concurrencyLimit === 1) { for (const chapter of chapters) { if (window.failedCount > 10) { if (!window.stopFlag.aborted) { window.stopController.abort(); console.error("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); alert("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); (0,log/* saveLogTextToFile /.qS)(); } } if (window.stopFlag.aborted) { throw new main/ ExpectError /.K2("[chapter]收到停止信号,停止继续下载。"); } try { let chapterObj = await chapter.init(); chapterObj = await postChapterParseHook(chapterObj, saveBookObj); } catch (error) { loglevel_default().error(error); loglevel_default().trace(error); } await new Promise((resolve, reject) => setTimeout(resolve, 500)); } } else { const asyncHandle = async (curChapter) => { if (window.failedCount > 10) { if (!window.stopFlag.aborted) { window.stopController.abort(); console.error("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); alert("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); (0,log/ saveLogTextToFile /.qS)(); } } if (curChapter === undefined) { return null; } try { let chapterObj = await curChapter.init(); chapterObj = await postChapterParseHook(chapterObj, saveBookObj); await new Promise((resolve, reject) => setTimeout(resolve, 500)); return chapterObj; } catch (error) { loglevel_default().error(error); loglevel_default().trace(error); } }; await (0,misc/ concurrencyRun */.C1)(chapters, self.concurrencyLimit, asyncHandle, { signal: window.stopFlag, reason: "[chapter]收到停止信号,停止继续下载。", }); }
你自己在源码里搜索改下吧 上面加了2句下面的代码,500代表每次等待0.5s,你自己可以修改这个数字,例如每章等待一秒就改成1000 await new Promise((resolve, reject) => setTimeout(resolve, 500));
我下syosetu.com的小说也会因为频率太高被ban掉,尝试修改了源码,可以正常下载了,你可以试下。 if (self.concurrencyLimit === 1) { for (const chapter of chapters) { if (window.failedCount > 10) { if (!window.stopFlag.aborted) { window.stopController.abort(); console.error("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); alert("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); (0,log/* saveLogTextToFile /.qS)(); } } if (window.stopFlag.aborted) { throw new main/ ExpectError /.K2("[chapter]收到停止信号,停止继续下载。"); } try { let chapterObj = await chapter.init(); chapterObj = await postChapterParseHook(chapterObj, saveBookObj); } catch (error) { loglevel_default().error(error); loglevel_default().trace(error); } await new Promise((resolve, reject) => setTimeout(resolve, 500)); } } else { const asyncHandle = async (curChapter) => { if (window.failedCount > 10) { if (!window.stopFlag.aborted) { window.stopController.abort(); console.error("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); alert("连续十章下载失败,放弃本次下载。\n请附上相关日志至支持地址进行反馈。\n支持地址:https://github.com/404-novel-project/novel-downloader"); (0,log/ saveLogTextToFile /.qS)(); } } if (curChapter === undefined) { return null; } try { let chapterObj = await curChapter.init(); chapterObj = await postChapterParseHook(chapterObj, saveBookObj); await new Promise((resolve, reject) => setTimeout(resolve, 500)); return chapterObj; } catch (error) { loglevel_default().error(error); loglevel_default().trace(error); } }; await (0,misc/ concurrencyRun */.C1)(chapters, self.concurrencyLimit, asyncHandle, { signal: window.stopFlag, reason: "[chapter]收到停止信号,停止继续下载。", }); }
你自己在源码里搜索改下吧 上面加了2句下面的代码,500代表每次等待0.5s,你自己可以修改这个数字,例如每章等待一秒就改成1000 await new Promise((resolve, reject) => setTimeout(resolve, 500));
请问下源码要怎么更改,能简单告知一下么,想要下载真白萌被困扰了很久
油猴-》管理面板=》点一下插件的名称,就进入编辑插件的代码面板了,网上随便搜索下就知道怎么做了