Wodexinhaoleng-Kasssa/dsh-reader
In-browser novel reader for the dsh web GUI: online book-source search, chapter-by-chapter reading in a chat-style view, and whole-book TXT download.
Project Overview项目介绍
This is an online novel reader plugin for DSH. It supports multi-source search, chapter scraping, chat-dialog disguised reading, full TXT download, and caches reading progress. Use it when you need to read or download novels. Note that book sources may become invalid due to site changes, content is for personal study only.
这是DSH平台的在线小说阅读器插件。支持多书源搜索、章节抓取,可伪装成聊天对话框阅读,支持整本导出TXT到本地,用IndexedDB缓存书架和阅读进度。需要在线阅读或下载小说时使用,注意书源可能因网站改版失效,内容仅供个人学习使用。
请帮我了解并安装插件:【dsh-reader】【https://github.com/Wodexinhaoleng-Kasssa/dsh-reader】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:Wodexinhaoleng-Kasssa/dsh-reader
把 Wodexinhaoleng-Kasssa/dsh-reader 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-reader · DSH Web GUI 在线小说阅读器
侧边栏「阅读器」入口:在线书源搜索 / 章节抓取 / 整本下载到本地(TXT), 阅读界面伪装成聊天对话框——小说章节以一条条对话消息呈现,输入框支持 指令(下一章 / 目录 / 下载 / 设置字号…)。
功能
- 在线书源:内置 41 个书源(合并自 binbyu/Reader 的 bs.json 与 v2.0.0.4 发布包 .bs_bak.json),支持 HTML XPath 与 JSON 路径两种规则、 UTF-8/GBK 编码识别、章节/内容分页、广告文本过滤。 实测可用(2026-08):必去小说(1008 章,正文干净)、玄幻阁(1002 章)、狗狗书籍(1005 章)、 阅读库 / 笔趣阁yingsx / 蚂蚁文学 / 零零小说 / 唐三中文 / 晋江文学城 等。
- 搜索:输入书名 → 多书源并发搜索 → 结果以可点击的消息卡片展示。
- 阅读:点书即读,章节正文作为「对话消息」呈现;下一章 / 上一章 / 第N章 / 目录。
- 书架:IndexedDB 保存书籍与章节缓存,离线可读;进度自动记忆。
- 下载:整本抓取拼接为 TXT(UTF-8 BOM),保存到本地(默认
~/Downloads/dsh-reader),带进度消息。 - 书源管理:规则在
lib/bsdata.js中增删;参考原版doc/bs.md配置说明。
本地验证(开发者)
# 书源可用性测试(会实际请求各书源,需联网)
node scripts/test-sources.mjs 雪中悍刀行
# 可用源的章节+正文链路测试
node scripts/test-chapters.mjs 雪中悍刀行
# 集成测试:临时 http server 挂 /api/dsh-reader 全链路
node test-integration.mjs 雪中悍刀行
书源合并脚本:node scripts/merge-bsdata.mjs(读取 v2.0.0.4 的 .bs_bak.json + GitHub bs.json 重新生成 lib/bsdata.js)。
🚀 安装
前置:已装好 DSH(dsh web 能正常运行),Node.js ≥ 20、pnpm ≥ 10。
支持的 DSH 版本:0.1.0-rc.8 及以上(RC 系列;已在 rc.8 环境实测通过)。
方式一:插件市场一键安装(推荐) 🎉
已收录于 awesome-dsh-plugin(usage 分类):
- 在 DSH 的 dsh-market 插件市场搜索
dsh-reader即可一键安装; - 或直接访问收录条目:https://github.com/awesome-dsh-plugin/awesome-dsh-plugin
方式二:命令行安装
dsh plugin --profile web add github:Wodexinhaoleng-Kasssa/dsh-reader
- 首次安装若被 pnpm 11 拦截构建脚本(依赖写入成功但提示 build 未放行),执行:
然后重跑一次上面的 add 命令即可。cd ~/.dsh/profiles/web && pnpm approve-builds --all - 装完硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到左侧边栏的「阅读器」入口(DSH 对 client 改动热加载,无需重启;仅 host 半更新时需要重启)。
本插件暂未发布 npm;发布后可直接
dsh plugin --profile web add @Wodexinhaoleng-Kasssa/dsh-reader。
方式二:让 DSH 自己装
把下面这段提示词发给任意一个 DSH 会话:
帮我安装 dsh-reader 插件(DSH Web GUI 在线小说阅读器),步骤:
1. 执行 dsh plugin --profile web add github:Wodexinhaoleng-Kasssa/dsh-reader
2. 若被 pnpm 拦截构建脚本,在 ~/.dsh/profiles/web 下执行 pnpm approve-builds --all 并重跑 add
3. 完成后提醒我硬刷新浏览器(Cmd/Ctrl+Shift+R)
开发/源码方式
dsh plugin --profile web add link:<本仓库绝对路径>
注意:本插件已内置"双重启用自防御"(即使被同时加入 bundles 与插槽,也不会因重复路由导致 dsh web 崩溃),但正常安装仍应只保留一个启用入口。
架构
lib/index.js— host 半身:注册 /api/dsh-reader 路由(loopback-only)。lib/engine.js— 书源引擎:node fetch 抓取(规避浏览器 CORS)、编码识别、XPath/JSON 提取。lib/xpath.js— XPath 子集(//、[@attr='v']、[position()>1]、/@href、|联合)+ JSON 路径。lib/bsdata.js— 内置书源数据(原版 bs.json 移植)。lib/downloads.js— 整本下载任务(进度/取消/写盘)。lib/client.js— 浏览器半身:侧边栏入口 + 聊天伪装阅读 UI + IndexedDB 书架。
API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/dsh-reader/sources | 书源列表 |
| POST | /api/dsh-reader/search | {keyword} → 多源搜索结果 |
| POST | /api/dsh-reader/chapters | {source,url} → 章节列表 |
| POST | /api/dsh-reader/content | {source,url} → 单章正文 |
| POST | /api/dsh-reader/download | 创建整本下载任务 → {taskId} |
| GET | /api/dsh-reader/download?id= | 任务进度/结果 |
| POST | /api/dsh-reader/download/cancel | 取消任务 |
致谢与版权
本项目功能思路参考 binbyu/Reader(win32 小说阅读器, MIT 协议之外的作者自有版权声明:分享/推广需注明出处、严禁非法与商业用途)。 本插件未复制其任何 C++ 源码,全部代码为 TypeScript/JavaScript 独立重写; 内置书源规则数据(xpath 配置)来自其公开的 bs.json / .bs_bak.json,仅作学习参考。
本插件为免费开源的非商业用途软件,遵守原作者"注明出处、禁止商业用途"的要求; 若原作者对书源数据的使用有异议,请联系移除。
免责声明
书源网站随时可能失效/改版(原版 README 同样警告);内置书源仅为功能演示, 请尊重各网站版权,下载内容仅限个人学习使用。
yyyyukari/dsh-plugin-workshop
tingfeng347/dsh-vscode-workbench
UncleK/dsh-think-translate
beancookie/dsh-plugin-anydoc
bearllfleed/Dsh-FileExplorer
PHoenixs57/deepseek-aix
ParticleLight/dsh-browser-plus