{"_id":"@cs2317/openclaw-qq","_rev":"2-cab8c93d72a255ebee8ea0cd2c28ee62","name":"@cs2317/openclaw-qq","dist-tags":{"latest":"0.2.2"},"versions":{"0.2.1":{"name":"@cs2317/openclaw-qq","version":"0.2.1","keywords":["openclaw","qq","napcat","onebot","chatbot","plugin","ai"],"author":{"name":"2317891476"},"license":"MIT","_id":"@cs2317/openclaw-qq@0.2.1","maintainers":[{"name":"cs2317","email":"2317891476@qq.com"}],"homepage":"https://github.com/2317891476/openclaw-qq#readme","bugs":{"url":"https://github.com/2317891476/openclaw-qq/issues"},"dist":{"shasum":"cd8f5971127fc658ddbcebc31691d5378aa3f7f7","tarball":"https://registry.npmjs.org/@cs2317/openclaw-qq/-/openclaw-qq-0.2.1.tgz","fileCount":10,"integrity":"sha512-fRNA3qYNB3E7c9ANasztKIOzFqnYH33gtBlvZSTRrXint4zVgCont48XtHRTgdpk1fOlKj4BpBZVApQw2FHOHw==","signatures":[{"sig":"MEQCIFuC3aQ1tv7fTd77M8W4k6WzUbzxEF9M7XT1w3s5r8asAiBhnNa28oCnQqwpVw6YJpSt+s61Z/ns2ycq2u423RehtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75561},"main":"index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e5c07adb8e83690922d54d7c02711ec42aecc272","scripts":{"start":"node index.js"},"_npmUser":{"name":"cs2317","email":"2317891476@qq.com"},"openclaw":{"extensions":["./index.js"]},"repository":{"url":"git+https://github.com/2317891476/openclaw-qq.git","type":"git"},"_npmVersion":"10.9.4","description":"QQ channel plugin for OpenClaw via NapCat (OneBot v11)","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openclaw-qq_0.2.1_1771846435844_0.144159532063308","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cs2317/openclaw-qq","version":"0.2.2","description":"QQ channel plugin for OpenClaw via NapCat (OneBot v11)","main":"index.js","type":"module","keywords":["openclaw","qq","napcat","onebot","chatbot","plugin","ai"],"author":{"name":"2317891476"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/2317891476/openclaw-qq.git"},"bugs":{"url":"https://github.com/2317891476/openclaw-qq/issues"},"homepage":"https://github.com/2317891476/openclaw-qq#readme","scripts":{"start":"node index.js"},"dependencies":{"ws":"^8.18.0"},"engines":{"node":">=18.0.0"},"openclaw":{"extensions":["./index.js"]},"_id":"@cs2317/openclaw-qq@0.2.2","gitHead":"3d48f570e4ec5c121b98c73478779fc4b1f67d6e","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-S2RB815Ws+aVdAwXUobmM2FY8bHC1hci0Pj1JSkFGrNTtH8H1CcuA1KRuLO64J0mHSAoHCfxsq36qNZkSXAzWw==","shasum":"633667077f2eb21ccf6a6a200a6f3cdb3e332038","tarball":"https://registry.npmjs.org/@cs2317/openclaw-qq/-/openclaw-qq-0.2.2.tgz","fileCount":17,"unpackedSize":132497,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDLwMZ5x4+lBGYF+kUsxuZgLtCa/6NupQ/cT37YqSYJGAiAL4f/PD+so/2TjBO1xlI6t85MOqfpVoKvWGMHV853TNg=="}]},"_npmUser":{"name":"cs2317","email":"2317891476@qq.com"},"directories":{},"maintainers":[{"name":"cs2317","email":"2317891476@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-qq_0.2.2_1771934834777_0.45819122224372566"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T11:33:55.779Z","modified":"2026-02-24T12:07:15.025Z","0.2.1":"2026-02-23T11:33:55.992Z","0.2.2":"2026-02-24T12:07:14.909Z"},"bugs":{"url":"https://github.com/2317891476/openclaw-qq/issues"},"author":{"name":"2317891476"},"license":"MIT","homepage":"https://github.com/2317891476/openclaw-qq#readme","keywords":["openclaw","qq","napcat","onebot","chatbot","plugin","ai"],"repository":{"type":"git","url":"git+https://github.com/2317891476/openclaw-qq.git"},"description":"QQ channel plugin for OpenClaw via NapCat (OneBot v11)","maintainers":[{"name":"cs2317","email":"2317891476@qq.com"}],"readme":"<div align=\"center\">\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/CreatorAris/CreatorAris/dist/github-snake-dark.svg\" />\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/CreatorAris/CreatorAris/dist/github-snake.svg\" />\n  <img alt=\"github contribution snake animation\" src=\"https://raw.githubusercontent.com/CreatorAris/CreatorAris/dist/github-snake.svg\" />\n</picture>\n\n</div>\n\n# openclaw-qq\n\n[![npm version](https://img.shields.io/npm/v/@cs2317/openclaw-qq.svg)](https://www.npmjs.com/package/@cs2317/openclaw-qq)\n[![npm downloads](https://img.shields.io/npm/dm/@cs2317/openclaw-qq.svg)](https://www.npmjs.com/package/@cs2317/openclaw-qq)\n\nOpenClaw QQ plugin (NapCat / OneBot v11) with built-in Pixiv module.\n\n> npm package: https://www.npmjs.com/package/@cs2317/openclaw-qq\n\n## 1) 安装\n\n```bash\nopenclaw plugins install @cs2317/openclaw-qq\n```\n\n本地开发安装（可选）：\n```bash\nopenclaw plugins install /absolute/path/to/openclaw-qq\n# 或在仓库目录：openclaw plugins install .\n```\n\n## 2) 配置（按当前代码流程）\n\n编辑 `~/.openclaw/openclaw.json`，在 `plugins.entries` 下添加：\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"openclaw-qq\": {\n        \"enabled\": true,\n        \"config\": {\n          \"napcatWs\": \"ws://172.27.144.1:3001\",\n          \"napcatToken\": \"\",\n          \"botQQ\": \"3890734993\",\n          \"allowedUsers\": [\"2317891476\"],\n          \"allowedGroups\": [\"587526665\"],\n          \"adminUsers\": [\"2317891476\"],\n          \"port\": 3210,\n          \"downloadDir\": \"/tmp/openclaw-qq-images\"\n        }\n      }\n    }\n  }\n}\n```\n\n必填/强相关：\n- `napcatWs`：NapCat OneBot ws 地址\n- `botQQ`：群聊 @ 检测依赖\n- `allowedUsers` / `allowedGroups`：白名单控制\n- `port`：启用 HTTP 主动接口（`/send`、`/pixiv_search`、`/pixiv_rank`）\n\n## 3) 启动 / 重启\n\n如果你使用了 watchdog 脚本：\n\n```bash\n~/openclaw-gateway-scripts/restart.sh\n```\n\n## 4) 最新增强（近期已实现）\n\n- 会话与路由\n  - 群聊与私聊会话隔离（避免上下文串线）\n  - 群聊仅在 `@bot` 或斜杠命令触发时响应（按配置可控）\n- 稳定性与防重复\n  - NapCat WS 心跳探活 + 超时自动重连\n  - 入站消息去重（按 `message_id`）\n  - Session Forwarder 去重（避免同步回复 + 异步转发双发）\n- 发送可靠性\n  - 分上下文发送队列（per-context queue）+ 全局并发控制\n  - 自适应发送节奏（根据 timeout/error 动态调速）\n  - 图片发送分批策略（降低 NapCat 超时概率）\n- 可观测与运维\n  - `/diag` 运行时诊断（连接状态、重连次数、发送统计）\n  - `/config get|set`（管理员）可在线调整 `sendQueue.*` / `pixiv.*`\n- 状态持久化（SQLite，第一阶段）\n  - 持久化去重状态（inbound/forward/recent reply）\n  - 持久化会话映射（context -> session）\n  - 数据库路径：`<workspace>/.openclaw-qq/state.db`\n\n## 5) 使用\n\n### 基础\n- `/help` 或 `hyw`：输出帮助文档（读取 `QQ_BOT_HELP.md`）\n- `/reset`：重置当前 QQ 会话上下文\n\n### Pixiv（命名空间统一）\n- `/pixiv 5 Fate`\n- `/pixiv 3-8 白发`\n- `/p 5 Fate`（简写）\n- `p 5 Fate`（简写）\n\n搜索可选参数：\n- `--nohq`：不使用 10000/5000/1000users入り 分层质量标签\n- `--nsfw`：显式允许 NSFW（仅在你实际策略允许时生效）\n- `--min_bookmark 1000` 或 `--min_bookmark=1000`\n- `--ratio 9:16` 或 `--ratio=9:16`\n- `--mode users|bookmark|hybrid`\n- `--count-first` / `--quality-first`\n\n### 画师检索\n- `/pixiv author ASK`\n- `/pixiv author ASK 8`\n- `/pixiv author ASK --years 3`（近 N 年随机）\n- `/pixiv author ASK --alltime`（全作品随机）\n- `/pixiv author profile ASK`（画师信息）\n- `/pixiv author pick 123456`（指定 uid 抽取）\n\n### 排行\n- `/pixiv rank 5 daily`\n- `/pixiv rank 5 weekly`\n- `/pixiv rank 5 monthly`\n- `/pixiv rank 5 all`\n\n### 最近记录与复跑\n- `/pixiv last`（查看上次执行快照）\n- `/pixiv rerun` 或 `/pixiv rerun 8`（按上次条件重跑）\n\n### 收藏夹（fav）\n- `/pixiv fav add`（把 last 中作品加入收藏）\n- `/pixiv fav list`（收藏列表）\n- `/pixiv fav list --tag 白发`\n- `/pixiv fav send 5`（从收藏随机发图）\n- `/pixiv fav send 5 --tag 白发`\n- `/pixiv fav remove 12345678`\n- `/pixiv fav tag 12345678 白发 高质量`\n\n### 主题（topic）\n- `/pixiv topic save 白发精选 5 白发 --min_bookmark 1000`\n- `/pixiv topic add 白发精选 3 银发 --ratio 9:16`\n- `/pixiv topic 白发精选 6`（运行主题）\n- `/pixiv topic list` / `/pixiv topic list 白发精选`\n- `/pixiv topic delete 白发精选`\n\n### 预设（preset）\n- `/pixiv preset save r18hot 5 巨乳 --nsfw`\n- `/pixiv preset run r18hot 8`\n- `/pixiv preset list`\n- `/pixiv preset delete r18hot`\n\n### 导出与调试\n- `/pixiv export links`（导出链接）\n- `/pixiv export json`（导出 JSON）\n- `/pixiv verbose on|off`（详细日志开关）\n\n## 6) HTTP 接口\n\n当 `port > 0` 时可用：\n\n### `/send`\n```bash\ncurl -s http://127.0.0.1:3210/send \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"groupId\":\"587526665\",\"text\":\"hello\"}'\n```\n\n### `/pixiv_search`\n```bash\ncurl -s http://127.0.0.1:3210/pixiv_search \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"groupId\":\"587526665\",\"keyword\":\"白发\",\"count\":5,\"safeOnly\":true}'\n```\n\n### `/pixiv_rank`\n```bash\ncurl -s http://127.0.0.1:3210/pixiv_rank \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"groupId\":\"587526665\",\"mode\":\"monthly\",\"count\":5,\"safeOnly\":true}'\n```\n\n## 7) 其他设备迁移安装指南（含 Pixiv 状态与 SQLite）\n\n### 迁移最小集\n把以下内容拷到新设备：\n- 本仓库代码（`openclaw-qq`）\n- 目标设备可用的 NapCat（OneBot v11）\n- 新设备的 `~/.openclaw/openclaw.json` 插件配置\n- （可选）旧设备 workspace 中的运行态数据（见下方“状态数据迁移”）\n\n### 新设备步骤\n1. 安装 OpenClaw / NapCat\n2. 克隆仓库\n   ```bash\n   git clone https://github.com/2317891476/openclaw-qq.git\n   cd openclaw-qq\n   ```\n3. 安装插件（推荐 npm 版）\n   ```bash\n   openclaw plugins install @cs2317/openclaw-qq\n   ```\n   本地源码调试版（可选）：\n   ```bash\n   openclaw plugins install .\n   ```\n4. 配置 `~/.openclaw/openclaw.json`\n   - `napcatWs` / `napcatToken`\n   - `botQQ`\n   - `allowedUsers` / `allowedGroups`\n   - `adminUsers`\n   - `port`\n5. 重启 gateway\n   ```bash\n   ~/openclaw-gateway-scripts/restart.sh\n   ```\n6. QQ 验证\n   - `/help`\n   - `/diag`（确认 napcat 连接、storage=sqlite）\n   - `/pixiv 3 白发`\n\n### 状态数据迁移（建议）\n如需保留历史与偏好，可从旧设备同步以下文件到**新设备 workspace 根目录**：\n- `QQ_BOT_HELP.md`\n- `pixiv-favs.json`\n- `pixiv-topics.json`\n- `pixiv-presets.json`\n- `pixiv-last.json`\n- `pixiv-settings.json`\n- `.openclaw-qq/state.db`（SQLite 去重/会话状态库）\n\n> 若不迁移这些文件，插件也能正常运行，但会丢失收藏、主题、预设、最近记录和部分去重状态。\n\n### 建议同步的网络/安全配置\n- `gateway.trustedProxies`（有反向代理时）\n- `plugins.allow`（建议显式白名单插件）\n- `allowedUsers` / `allowedGroups` / `adminUsers`（权限边界）\n\n## License\n\nMIT\n","readmeFilename":"README.md"}