realtime-hot-search 实时热搜查询
通过本 Skill 自带的 scripts/hotsearch.mjs 查询 11 个平台的实时热搜。脚本基于 @renxqoo/agent-cli-sdk 构建。
运行前提
- Node.js >= 20(用系统
node直接运行,不需要 npm install)。 - 脚本位置:本
SKILL.md同目录的scripts/hotsearch.mjs。调用前先解析出本 Skill 的绝对路径再拼接,不要依赖当前工作目录。
调用方式(agent 必读)
node "<skill绝对路径>/scripts/hotsearch.mjs" <命令> --json [--limit N]
- 始终显式加
--json:stdout 输出单个 JSON 统一输出文档(管道下即使不加也会强制 JSON)。 --no-json(或 TTY 直跑)输出对齐的中文表格,仅适合给人看。--limit N(1–100):榜单命令取前 N 条(默认全部);all默认每榜 10 条。- 环境变量
HOTSEARCH_BASE_URL可把上游切到自部署的 60s 实例(默认https://60s.viki.moe/v2)。
命令
| 操作 | 命令 |
|---|---|
| 微博实时热搜 | node <脚本> weibo --json |
| 知乎实时热搜 | node <脚本> zhihu --json |
| 头条实时热搜 | node <脚本> toutiao --json |
| 抖音实时热搜 | node <脚本> douyin --json |
| B 站实时热搜 | node <脚本> bili --json |
| 小红书实时热点 | node <脚本> rednote --json |
| 百度实时热搜 | node <脚本> baidu-hot --json |
| 百度电视剧榜单 | node <脚本> baidu-teleplay --json |
| 百度贴吧热门话题 | node <脚本> baidu-tieba --json |
| 懂车帝热搜 | node <脚本> dongchedi --json |
| 夸克热点新闻 | node <脚本> quark --json |
| 全部 11 榜并行(单榜失败不影响其余) | node <脚本> all --json [--limit 5] |
| 榜单清单(不联网) | node <脚本> list --json |
所有命令可加 [--limit <n>];完整选项见 --help。
输出契约
成功(stdout,单行紧凑 JSON):
{"ok":true,"source":"hotsearch","data":[{ "...": "上游条目,原样透传" }],"meta":{"count":10,"pagination":{"complete":true,"items":50}}}
data为上游条目数组(已按--limit截断);meta.pagination.items为上游总条数,complete恒为 true(上游榜单固定条数,无续拉)。title是全部榜单唯一稳定的共性字段,热度/链接字段名因榜单而异:weibo/toutiao/douyin:hot_value(数值)+linkzhihu:hot_value_desc("1234 万热度")+link,另有answer_cnt/follower_cntbili:仅title+link(无热度)rednote:rank+score(数值)+linkbaidu-*/dongchedi:rank+score_desc("780.89w")+urlquark:新闻条目,summary/source/published/link(无热度数值)all的data为{boards_total, boards_ok, boards_failed, boards[]},每个元素{board, name, ok, count, items}或{board, name, ok:false, error:{subtype, message}},按ok字段区分成败。
错误处理
失败时 stderr 输出 {"ok":false,"error":{"type","subtype","message","hint"?,"retryable"?}}:
| 退出码 | 含义 | 典型 subtype |
|---|---|---|
| 0 | 成功(all 至少一榜成功即 0) |
— |
| 2 | 用法错误(未知命令、参数不合法) | invalid_argument |
| 1 | 网络/上游错误 | rate_limited(429)、server_error(5xx,retryable) |
retryable: true的错误(429/5xx/网络)CLI 已内置自动重试(最多 3 次尝试、1.2s/2.4s 退避),正常情况下无需自行重试;只有重试耗尽仍失败时才等待后手动重试一次。上游个别数据源偶发不可用属正常现象,不要用其他平台结果冒充目标平台。- 避免同时开多个进程并行刷榜,也不要在循环里无间隔连打;连续查询不同榜单时每次调用间隔 1–2 秒可显著降低 429 概率。优先用
--limit控制输出规模。