novel-downloader icon indicating copy to clipboard operation
novel-downloader copied to clipboard

[Bug]: 真白萌设置访问频率限制,导致下载不完整

Open Chfeig opened this issue 1 year ago • 3 comments

必要条件

  • [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 位)

Chfeig avatar Jan 03 '24 18:01 Chfeig

我下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));

little-wheat avatar Jan 13 '24 04:01 little-wheat

我下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));

请问下源码要怎么更改,能简单告知一下么,想要下载真白萌被困扰了很久

Lin1nan279 avatar Jan 21 '24 01:01 Lin1nan279

油猴-》管理面板=》点一下插件的名称,就进入编辑插件的代码面板了,网上随便搜索下就知道怎么做了

little-wheat avatar Jan 24 '24 03:01 little-wheat