DeepSHPlugins
dsh-reader 项目预览
GITHUB / COMMUNITY PROJECT

dsh-reader

安全与运维JavaScriptApache-2.0

DSH Web GUI 在线小说阅读器:书源搜索、聊天式阅读界面、整本下载 TXT 到本地。

2 StarsWodexinhaoleng-Kasssa 更新时间 2026-09-01
访问 GitHub 仓库
dsh-reader 项目预览

项目介绍

中文

DSH Web GUI 在线小说阅读器:书源搜索、聊天式阅读界面、整本下载 TXT 到本地。

English

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.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
Wodexinhaoleng-Kasssa
仓库
Wodexinhaoleng-Kasssa/dsh-reader
GitHub Stars
2
Forks
0
开发语言
JavaScript
许可证
Apache-2.0
最近推送
2026-09-01
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

54/ 100
维护活跃
94
文档与实用信息
75
生态关注度
14
安装便捷信号
75
项目声明信号
100

近 10 天仍在更新;关注度尚低(2)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:Wodexinhaoleng-Kasssa/dsh-reader

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

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 未放行),执行:
  cd ~/.dsh/profiles/web && pnpm approve-builds --all

然后重跑一次上面的 add 命令即可。

  • 装完硬刷新浏览器(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 同样警告);内置书源仅为功能演示, 请尊重各网站版权,下载内容仅限个人学习使用。

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目