READMESource: main@1a8f5bfa
dsh-reader
DSH(DeepSeek Harness)内置 RSS 阅读器插件:三栏阅读界面、正文渲染、已读/收藏、搜索、OPML 导入导出。
功能
- 三栏布局:订阅源|文章列表|正文。点开文章在右侧 iframe 内渲染正文(sandbox 隔离,不执行脚本),并自动标记已读。
- 订阅管理(在 DSH 设置里):
设置 → 订阅管理集中管理——搜索筛选、勾选后批量刷新/批量删除、添加订阅、导入导出 OPML;阅读界面不再放单个源的删除按钮。 - 阅读状态:已读/未读、收藏、全部标为已读;本地持久化,重启不丢。
- 搜索与筛选:按标题/摘要/作者搜索,只看未读,只看收藏,按源过滤。
- OPML:导入(合并、去重)与导出备份。
- 自动刷新:打开面板时若数据超过 30 分钟未更新,会后台刷新一次。
安装
从 GitHub 直接安装,装完重开 DSH(或刷新窗口),左侧栏出现「阅读」入口:
dsh plugin --profile desktop add github:ShoWin2333/dsh-reader
本地开发时也可以直接装目录:
dsh plugin --profile desktop add "C:\path\to\reader-plugin"
设置入口
- 阅读:左侧栏「阅读」进入三栏阅读界面。
- 订阅管理:DSH
设置 → 订阅管理(由插件的settings.section提供),用于增删订阅、批量刷新、OPML 导入导出。
数据
~/.dsh/storages/dsh-reader/data.json(可用环境变量 DSH_HOME 指定 DSH 主目录)。
每个源最多保留最近 120 篇,已读状态随文章裁剪自动清理。
接口
单个路由 /_dsh/dsh-reader/api:
| 方法 | 参数 | 说明 |
|---|---|---|
| GET | op=state |
订阅列表 + 统计 |
| GET | op=items&feed=&unread=&starred=&q=&offset=&limit= |
文章列表 |
| GET | op=item&id= |
单篇正文 |
| GET | op=opml |
导出 OPML |
| POST | {action:'add', url} |
添加订阅 |
| POST | {action:'remove', id} |
删除订阅 |
| POST | {action:'refreshAll'} / {action:'refresh', id} |
刷新 |
| POST | {action:'read', id, read} / {action:'star', id, starred} |
已读/收藏 |
| POST | {action:'markAllRead', feedId} |
全部已读 |
| POST | {action:'import', opml} |
导入 OPML |
POST 需要 x-dsh-reader: 1 标记头(浏览器跨站请求无法携带);仅接受本机回环访问。
开发
node dev/reader-test.mjs # 后端端到端(真实 RSS 源)
node dev/client-smoke.mjs # 客户端 bundle 冒烟
无构建步骤:lib/client.js 是手写 bundle,直接以 window.__ModuleLoader__.load({id, factory}) 注册;
lib/index.js 是 cordis 插件(Node 半身),通过 ctx.inject(['webServer']) 注册路由。
No comments yet. Be the first to write one.