Back to home

SongChengMing1

dsh-news

DSH Web GUI 新闻聚合插件:侧边栏入口 + 弹窗聚合国际/AI/科普/历史 RSS 新闻,站内阅读、中英互译、自定义源。A news aggregator plugin for the DeepSeek Harness (DSH) Web GUI: RSS feeds, in-app reading, bilingual translation, custom sources.

Stars
0
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-news

中文 · English

还在盯着进度条发呆?

DSH 里的长任务——抓取、训练、批量处理——动辄几分钟甚至更久。与其干等,不如把等待变成阅读时间:

点开侧边栏「新闻」,国际要闻 · AI 大模型动态 · 知识科普 · 历史冷知识一站聚合;正文站内阅读不跳外站,标题 / 全文中英一键互译,支持自定义 RSS 源——全程不离开 GUI、不打断工作流。

任务结束,世界也刷完了。🌍

DSH Web GUI 新闻插件:在左侧栏注入「新闻」入口,点击弹出模态窗,聚合浏览国际新闻、知识科普、历史科普、AI 大模型新闻四类内容,全部文章可站内阅读(不跳外站)。

A news plugin for the DSH Web GUI: a sidebar entry opens a modal that aggregates world news, science, history and AI-model news from public RSS feeds, with in-place reading (no external jumps).

DSH Web GUI License npm

界面预览 / Preview

dsh-news 卡片列表界面


目录 / Table of Contents

功能 / Features

能力说明
侧边栏入口左侧栏「新闻 / News」入口,点击弹出模态框(遮罩 / Esc / 关闭按钮)
四类内容国际新闻 · AI 大模型新闻 · 知识科普 · 历史科普(内置 17 个公开源)
列表浏览分类 tab、时间倒序卡片流(来源徽标 / 标题 / 摘要 / 相对时间 / 缩略图)
站内阅读Readability 正文提取 + 白名单清洗,正文图片经 Host 代理(防盗链)
中英翻译列表「翻译列表」总开关:随滚动自动翻译视口内卡片(标题+摘要,失败可重试),开启后点进文章阅读页也自动翻译(标题+正文,可手动切回原文);Google 免费接口(gtx),跟随 GUI 语言自动互译,Host 缓存 24h
默认源管理澎湃新闻、科普中国、知乎日报、机器之心、36氪 因反爬/改版默认关闭(可设置中开启)
自定义源任意公开 RSS / Atom 地址即加即用(见下方示例),站内阅读与翻译同样生效
设置内置源逐个启停、自定义源增删、刷新间隔、图片代理、仅摘要模式、RSSHub 实例
i18n中 / 英双语(跟随 GUI 语言设置,即时切换)
缓存Host 端内存 LRU + 磁盘缓存(feed 15min / 正文 24h / 图片 7d)
安全SSRF 防护(内网 / 保留 IP / .local 拒绝)、并发限流、超时与失败降级

安装 / Install

方式一:npm 安装(推荐 / Recommended)

npm i @wilond/dsh-news
dsh plugin --profile web add @wilond/dsh-news

安装后重启 dsh webCtrl+C 后重新 dsh web),刷新浏览器,侧边栏出现「新闻 / News」入口。

方式二:本地联调 / From a local checkout

git clone https://github.com/SongChengMing1/dsh-news.git
cd dsh-news
pnpm install
pnpm build
dsh plugin --profile web add link:$PWD

本地联调时每次代码变更需重新 pnpm build(Host 半)并重启 dsh web(Client 半)。

卸载 / Uninstall

dsh plugin --profile web remove @wilond/dsh-news

使用 / Usage

  1. 点击侧边栏「新闻 / News」入口打开弹窗。
  2. 顶栏切换分类(全部 / 国际 / AI / 科普 / 历史);「↻」手动强制刷新(绕过缓存)。
  3. 列表顶部点「翻译列表」开启总开关:随滚动自动翻译视口内的卡片标题+摘要(翻译失败卡片显示「重试」,再点「关闭翻译」恢复原文);开关开启时点进文章,阅读页也会自动翻译标题+全文(可点「显示原文」切回,开关关闭时需手动点「翻译全文」),底部「原文链接」在新标签页打开原站。
  4. 「⚙」进入设置:启停内置源、添加自定义源、调整刷新间隔(分钟)、图片代理、仅摘要模式、RSSHub 实例地址。

设置保存在浏览器 localStorage(键 dsh.news.config.v1),多标签页共享。

添加自定义 RSS 源 / Custom RSS Sources

内置源之外,任何公开的 RSS / Atom 地址都可以加进来。以 Hacker News 为例:

  1. 打开新闻弹窗,点右上角「⚙」进入设置

  2. 在「自定义源」区域填写:

    字段填写内容
    名称Hacker News
    RSS 地址https://news.ycombinator.com/rss
    分类下拉选择(如「国际」或「AI」)
  3. 点「添加源」,再点「保存」,返回列表即可看到新源的内容——站内阅读、翻译对它同样生效。

更多可直接使用的示例源:

RSS 地址建议分类
少数派(数字生活指南)https://sspai.com/feed科普
阮一峰的网络日志https://www.ruanyifeng.com/blog/atom.xml科普
Solidot(奇客资讯)https://www.solidot.org/index.rss国际
Ars Technicahttps://feeds.arstechnica.com/arstechnica/indexAI

小提示:

  • 地址必须以 http://https:// 开头;重复地址会被拒绝。
  • 没有原生 RSS 的站点,可先用自建 RSSHub 生成 feed 地址再填入。
  • 自定义源与全部设置保存在浏览器 localStorage(键 dsh.news.config.v1),多标签页共享。

内置内容源 / Built-in Sources

注:以下源均为公开 RSS/Atom;个别源可能因站方改版、反爬或网络环境暂时不可用,界面会显示单源降级提示,可在设置中禁用,或通过自定义源 / RSSHub 路由替代。

🌍 国际新闻 (5)

Feed URL语言
BBC Worldhttps://feeds.bbci.co.uk/news/world/rss.xmlen
BBC 中文https://feeds.bbci.co.uk/zhongwen/simp/rss.xmlzh
The Guardian Worldhttps://www.theguardian.com/world/rssen
纽约时报中文网https://cn.nytimes.com/rss/zh
澎湃新闻https://www.thepaper.cn/rsszh

🔬 知识科普 (4)

Feed URL语言
科普中国https://www.kepuchina.cn/rss.xmlzh
ScienceDailyhttps://www.sciencedaily.com/rss/all.xmlen
LiveSciencehttps://www.livescience.com/feeds/allen
知乎日报https://www.zhihu.com/rsszh

🏛️ 历史科普 (2)

Feed URL语言
World History Encyclopediahttps://www.worldhistory.org/rss/en
History Extra (BBC History)https://www.historyextra.com/feed/en

🤖 AI 大模型新闻 (6)

Feed URL语言
机器之心https://www.jiqizhixin.com/rsszh
量子位https://www.qbitai.com/feedzh
TechCrunch AIhttps://techcrunch.com/category/artificial-intelligence/feed/en
The Verge AIhttps://www.theverge.com/rss/ai-artificial-intelligence/index.xmlen
MIT Tech Review AIhttps://www.technologyreview.com/topic/artificial-intelligence/feeden
36氪https://36kr.com/feedzh

架构 / Architecture

┌─ Browser (Client) ────────────────────────┐   ┌─ DSH Host 进程 ─────────────────┐
│ 侧边栏入口:DOM 注入 + MutationObserver   │   │ /news/feed    批量抓取+解析       │
│ 弹窗 (React):列表 / 阅读 / 设置三视图    │──▶│ /news/article 正文提取+清洗       │
│ localStorage:dsh.news.config.v1          │   │ /news/img     图片代理+防盗链     │
│ i18n:en/zh(dsh-client-locale)          │   │ 缓存:内存 LRU + 磁盘             │
└───────────────────────────────────────────┘   │ systemPrompt 段(可关闭)        │
                                                └──────────────────────────────────┘
  • Host 无业务状态:配置在 Client(localStorage),抓取时随请求提交源列表;缓存键为源 URL,多标签页天然一致。
  • Client 一切抓取走 Host 路由(绕过浏览器 CORS 与源站防盗链)。
  • Host 路由统一 /news/* 前缀;SSRF 防护 + 代理感知(尊重 HTTPS_PROXY / NO_PROXY 环境变量)。

开发 / Development

pnpm typecheck   # tsc --noEmit
pnpm test        # vitest run(68 用例:guard/cache/rss/article/routes/config/feed-state/reading)
pnpm build       # tsdown → lib/(host ESM + client ModuleLoader bundle)
node scripts/smoke-host.mjs     # 真实网络验收(三路由 + SSRF + 缓存)
node scripts/verify-articles.mjs # 主流源实读验证

免责声明 / Disclaimer

  • 列表以「标题 + 摘要 + 来源链接」为主;正文仅作临时阅读缓存(24h 过期),不做永久存档、不提供再分发 / 导出。
  • 请遵守各内容源的 robots 协议与使用条款;若频繁使用触发源站风控,请在设置中禁用对应源。
  • 本插件与任何内容源无隶属关系;内容版权归原作者 / 原站所有。
  • 公共 RSSHub 实例(rsshub.app)已被风控,本插件不依赖公共实例;如有需要请配置自建实例。

协议 / License

BSD-3-Clause。详见 LICENSE