dsh-tieba-dive

funtested: passnpmMIT

Tieba (Baidu forum) reader and companion for DSH: reads threads, writes daily digests, signs in, and builds a per-forum style library from high-liked replies. Optional replies to threads or to sub-replies under your own comments are off by default and limited per round and per day. Also ships a read

下载量 / Downloads
3,609
依赖体积 / node_modules
0.34 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-tieba-dive

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-tieba-dive

百度贴吧的 DSH 插件:自动读帖、生成日报、每日签到;回帖可选,并带频率与内容限制。

![test](https://github.com/Nekomeow114/dsh-tieba-dive/actions/workflows/test.yml)

![release](https://github.com/Nekomeow114/dsh-tieba-dive/releases)

![license](LICENSE)

⚠️ 走的是贴吧手机版页面(逆向解析),不是官方 API。贴吧改版可能失效,频繁请求可能触发风控;

账号风险与发布内容由使用者自行承担。


功能

  • 多吧阅读:按吧列帖、读楼层正文,附带帖子内图片
  • 日报:把这吧今天在聊什么、哪条值得点开写成 markdown,存在本地
  • 签到:未关注的吧先关注再签到,每天一次
  • 回帖(默认关闭):接话 / 共鸣 / 玩梗 / 答疑,受每轮、每天、间隔、内容四道限制
  • 楼中楼(默认关闭):读某层下的子回复;只回自己评论下的,每轮 / 每天限额,

自动带「回复 #(reply, 头像, 昵称) :」提及,真正挂到对方名下

  • 风格库(学习):读帖时把真实高赞回复入库;回帖前按话题检索 2~4 条当参考,

只学口气、不照抄、不改人设。每吧最多 40 条,过滤水楼/广告/重复

  • 高赞来源:app 端 protobuf 热门接口拿真实 agree_num;失败退回手机版楼中楼数
  • 人设:可手写或导入文件;语气样本、语气词、句式可改;版本快照可回滚/导出
  • 日记:公开(给使用者看)与私人(写感受,不写变更明细)两份,各有开关
  • 图片库:上传表情包/配图,模型只拿到 ID + 描述 + 标签,不含本地路径
  • 定时与后台:峰谷排班;模型轮为独立子进程,关掉设置页也会跑完
  • 风控熔断:撞到验证码后暂停,期间不发请求
  • 自检:一键检查 curl / 凭证 / 吧名 / 目录 / headless

它怎么学一个吧

读帖 → 高赞回复(真实赞数)→ 过滤 → 风格库(每吧 ≤40 条)
回帖 → 按话题检索 2~4 条 → 当 few-shot 参考 → 生成

默认不改变人设;旧版「泡满 3 次微调旋钮」已改为显式开关 allowSoak,默认关闭。

检查 profile / 工具

node scripts/check-profiles.mjs
# 或 npm run check:profiles

逐个 profile 检查:依赖有没有装、bundle 有没有登记、包名是否一致、工具是否齐全;

空 profile(如 default)会跳过。缺什么会直接给出 dsh plugin --profile ... add ... 命令。

MCP(可被支持 MCP 的客户端调用)

仓库自带一个零依赖、只读的 MCP stdio server:mcp-server.mjs。

实测范围:MCP 协议冒烟测试(initialize / tools/list / tools/call)与真实贴吧数据调用。
Codex、AstrBot、Claude Desktop 未逐客户端实测,下面的配置只是通用示例。
DSH_HOME=/root/.dsh node mcp-server.mjs

暴露的工具:

tieba_settings · tieba_list · tieba_thread · tieba_sub_replies
tieba_style_refs · tieba_report_read · tieba_whoami

故意不包含回帖/发帖/签到——MCP 侧只读,避免别的客户端拿账号乱发。

测试不需要安装任何 MCP 客户端:

npm run test:mcp

它会自己起 server,走 initialize → tools/list → tools/call,四项全 PASS 就说明协议通了。

也可以 npx @modelcontextprotocol/inspector node mcp-server.mjs 用网页点。

MCP 客户端配置示例(命令 + 环境变量,未逐客户端实测):

{
  "mcpServers": {
    "tieba": {
      "command": "node",
      "args": ["/绝对路径/dsh-tieba-dive/mcp-server.mjs"],
      "env": { "DSH_HOME": "/root/.dsh" }
    }
  }
}

安装

dsh plugin --profile web add dsh-tieba-dive                    # npm
dsh plugin --profile web add github:Nekomeow114/dsh-tieba-dive # 或从仓库

安装后重启一次 dsh,进入 设置 → 刷贴吧。

环境要求:Node 22+、curl(Linux / macOS 自带,Windows 10+ 自带)。

Windows 说明:npm 安装的 dsh 是 .cmd 启动器,插件会通过 cmd.exe 调起,

并把这一轮的 prompt 落成文件、命令行只传一句「读取该文件」——避免长文本里的引号和换行被 cmd 拆坏。定时功能另需在 headless profile 中安装本插件:

dsh plugin --profile headless add dsh-tieba-dive

设置页结构

账号与刷帖    账号 / 每一轮(吧列表、关键词、读几贴)
人设与表达    人设 / 图片库
行为与规则    回帖规则 / 自动化
学习与日记    学习 / 日记

手机上默认只展开账号组,其余折叠;版本与导出收在学习卡的折叠块里。

快速开始

1. 贴 BDUSS:设置页「① 账号」→ 保存并测试 → 显示「登录态有效」即可

2. 填吧名:一行一个;也可以点「读取已关注的吧」一键填入(会替换框内内容)

3. 刷一轮:点击「刷一轮贴吧」,先只采集,确认读到的内容符合预期

BDUSS 获取方式:电脑浏览器登录贴吧 → F12 → Application → Cookies → https://tieba.baidu.com → 复制 BDUSS 的 Value(带不带前缀均可)。也可使用 Kiwi + Cookie-Editor 扩展。

设置项

项 · 默认 · 说明

bars · 空 · 要刷的吧,一行一个,必须自行填写

keywords · 空 · 刷帖关键词:标题命中的帖子排在前面(不过滤)

readPerRound · 5 · 每轮读取帖子数

requestGapMs · 1200 · 请求间隔(毫秒,最低 300)

dedupeDays · 7 · 已读帖子在该天数内不再推荐

autoSign · 关 · 每天 signHour 点后自动签到

autoFollow · 开 · 签到时未关注的吧自动关注

signAllFollowed · 关 · 签到覆盖账号关注的所有吧(不只配置里的)

autoReply · 关 · 允许回帖

replyPerRound / replyPerDay · 1 / 3 · 每轮 / 全天回帖上限

replyGapSec · 30 · 两条回复的最小间隔

answerQuestions · 开 · 允许在回帖中解答疑问

allowSubReply · 关 · 允许回复自己评论下的楼中楼

allowChatRun · 关 · 允许模型在聊天/QQ 里触发一轮

subReplyPerRound / subReplyPerDay · 1 / 3 · 楼中楼每轮 / 每天上限

toneGate · 开 · 拦截客服腔(首先 / 其次 / 希望对你有帮助 等)

mention · 空 · 回帖时 @ 的昵称

peakValley · 关 · 峰谷自动刷总开关

noon / night · 开 / 开 · 中午谷、晚上谷子开关

breakerEnabled · 开 · 风险熔断开关(触发条件:百度安全验证)

breakerMin · 30 · 熔断时长(分钟)

personaText / personaFile · 空 · 人设文本 / 人设文件(文件优先)

styleSamples · 空 · 语气样本,供回帖参考

evolvePersona · 关 · 学习总开关:读帖时建立风格库(不改人设)

allowSoak · 关 · 旧「泡满 3 次微调人设」,显式开关

diaryEnabled / diaryPrivate · 开 / 开 · 日记总开关 / 私人日记开关

配置保存在 $DSH_HOME/tieba-duty/config.json(600),通过 /api/tieba-duty/config 读写。

回帖限制

回帖默认关闭。回帖优先走 App protobuf 通道(/c/c/post/add?cmd=309731),失败自动退回网页表单。开启后同时受到以下限制:

1. autoReply 必须开启;

2. toneGate:命中客服腔词表会被退回改写;

3. 每轮不超过 replyPerRound 条,全天不超过 replyPerDay 条;

4. 两条之间至少间隔 replyGapSec 秒,同一帖子一天只回一次;

5. 正文 4~400 字,不支持链接。

另支持可选 @:正文末尾追加 @昵称 (贴吧的 @ 用于提醒他人,格式需带空格)。

楼中楼

楼中楼是楼层下的子回复。插件支持:

  • 读:tieba_sub_replies({tid, pid});pid 是楼层 id(长数字),只知道楼层号时传 floor;

tieba_thread 现在会返回 floorIds(楼层号 → id)和带 id 的 hotFloors;

  • 回:tieba_reply_sub({kw, tid, pid, subId, content, confirm: true})。

限制:

1. allowSubReply 默认关闭;

2. 只允许回自己评论下的楼中楼:会先核对该楼层作者是不是当前账号;

3. 每轮 ≤ subReplyPerRound,每天 ≤ subReplyPerDay(默认 1 / 3);

4. 不能回自己;正文 4~300 字;

5. 自动在正文前加 回复 #(reply, 对方头像, 对方昵称) :,所以正文里不用再写「回复某某」。

删楼中楼未实现:贴吧没有给普通用户开放的删除接口,删错了只能在 App 里手动删。

工具

供模型调用:

工具 · 说明

tieba_whoami · 登录态检查

tieba_list · 列出吧内帖子(id / 标题 / 回复数 / 是否读过)

tieba_thread · 读取楼层正文与图片链接

tieba_sign · 签到(未关注会先关注)

tieba_reply · 回帖(需 confirm: true,受上述限制)

tieba_sub_replies · 读某一层下的楼中楼(只读)

tieba_reply_sub · 回自己评论下的楼中楼(需 confirm: true,默认关)

tieba_run_round · 聊天里启动一轮(需 confirm: true + allowChatRun)

tieba_run_status · 查本轮是否在跑、今天回了几条、日志路径

tieba_style_refs · 从风格库检索该吧高赞回复当参考

tieba_follow · 关注一个吧

tieba_followed · 列出账号关注的所有吧

tieba_settings · 读取当前配置

tieba_persona · 读取人设与语气样本

tieba_report_write / tieba_report_read / tieba_reports · 日报写入 / 读取 / 列表

tieba_diary_write / tieba_diary_read · 日记写入 / 读取(私人需显式确认)

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::9,最后更新 2026-11-03

Links

GitHub · Homepage · npm

Same category