{"id":49712341,"url":"https://github.com/rwr-infra/rwr-qq-bot","last_synced_at":"2026-06-07T12:01:59.140Z","repository":{"id":63222826,"uuid":"550564656","full_name":"rwr-infra/rwr-qq-bot","owner":"rwr-infra","description":"rwr imba server qq bot","archived":false,"fork":false,"pushed_at":"2026-06-06T14:01:42.000Z","size":1602,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-06-06T15:24:35.156Z","etag":null,"topics":["bot","go-cqhttp","qq","running-with-rifles"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rwr-infra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-10-13T01:18:06.000Z","updated_at":"2026-06-06T14:00:47.000Z","dependencies_parsed_at":"2023-09-24T09:28:31.608Z","dependency_job_id":"30f6a330-fdd3-4812-a7b0-7203b3a6061a","html_url":"https://github.com/rwr-infra/rwr-qq-bot","commit_stats":null,"previous_names":["rwr-infra/rwr-qq-bot","kreedzt/rwr-imba-qq-bot"],"tags_count":144,"template":false,"template_full_name":null,"purl":"pkg:github/rwr-infra/rwr-qq-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwr-infra%2Frwr-qq-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwr-infra%2Frwr-qq-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwr-infra%2Frwr-qq-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwr-infra%2Frwr-qq-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rwr-infra","download_url":"https://codeload.github.com/rwr-infra/rwr-qq-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rwr-infra%2Frwr-qq-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34020187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","go-cqhttp","qq","running-with-rifles"],"created_at":"2026-05-08T16:01:22.237Z","updated_at":"2026-06-07T12:01:59.134Z","avatar_url":"https://github.com/rwr-infra.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RWR Imba QQ 机器人\n\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Kreedzt_rwr-imba-qq-bot\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Kreedzt_rwr-imba-qq-bot)\n[![codecov](https://codecov.io/gh/Kreedzt/rwr-imba-qq-bot/branch/master/graph/badge.svg?token=MWGXZH7GO9)](https://codecov.io/gh/Kreedzt/rwr-imba-qq-bot)\n![build status](https://github.com/Kreedzt/rwr-imba-qq-bot/actions/workflows/ci.yml/badge.svg?branch=master)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FKreedzt%2Frwr-imba-qq-bot.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FKreedzt%2Frwr-imba-qq-bot?ref=badge_shield)\n[![Docker Image Size](https://badgen.net/docker/size/zhaozisong0/rwr-imba-qq-bot?icon=docker\u0026label=image%20size)](https://hub.docker.com/r/zhaozisong0/rwr-imba-qq-bot/)\n\n## 环境变量\n\n通用配置:\n\n- PORT: 监听的 HTTP 端口号, 类型为 `number`, 默认值为 `3000`, eg: `6768`\n- REMOTE_URL: go-cqhttp 的服务监听的 HTTP 地址, 类型为 `string`, eg: `http://127.0.0.1:5701`\n- START_MATCH: 机器人命令触发前缀, 类型为 `string`, eg: `#`\n- ADMIN_QQ_LIST: 管理员 QQ 列表, 类型为 `string[]`, eg: `555555`\n- LISTEN_GROUP: 监听的 QQ 群号, 类型为 `number`, eg: `111111`\n- ACTIVE_COMMANDS: 激活的命令列表, 类型为 `JSON string[]`, eg: `[\"fuck\", \"roll\", \"tdoll\"]`\n- IMGPROXY_URL: imgproxy 图片代理地址, 用于图片裁剪宽高及缩放\n- WELCOME_TEMPLATE: TODO\n\n命令配置:\n\n- SERVERS_MATCH_REGEX: RWR 服务器筛选正则表达式, 类型为 `string`\n- SERVERS_FALLBACK_URL: 无法匹配服务器时的备用 URL\n- WEBSITE_DATA_FILE: 指定的网站文件路径\n- TDOLL_DATA_FILE: 战术人形数据文件路径\n- TDOLL_SKIN_DATA_FILE: 战术人形皮肤数据文件路径\n- MAPS_DATA_FILE: 地图数据文件路径\n- MAP_IMAGE_CONFIG_FILE: 地图图片配置文件路径, 格式 `{ \"images\": [{ \"path\": \"...\", \"image\": \"...\" }] }`, 可通过 `scripts/syncMapImages.js` 从远程端点同步\n- MAP_IMAGE_BASE_URL: 地图图片兜底 URL 前缀, 无配置匹配时拼接为 `\u003cBASE_URL\u003e\u003cshortName\u003e.png`\n- QA_DATA_FILE: 自助问答数据文件路径\n- DIFY_AI_URL: DIFY AI 请求 URL (包含 `/chat-messages`)\n- DIFY_AI_TOKEN: DIFY AI 请求 Token\n- PG_HOST: PostgreSQL 数据库Host地址, 用于统计命令数据 (默认: localhost)\n- PG_PORT: PostgreSQL 数据库端口 (默认: 5432)\n- PG_DB: PostgreSQL 数据库名, 用于统计命令数据\n- PG_USER: PostgreSQL 用户名, 用于统计命令数据\n- PG_PASSWORD: PostgreSQL 密码, 用于统计命令数据\n- OUTPUT_BG_IMG: 背景图片路径, 用于 canvas 渲染时添加背景层\n- MODERATORS: 服务器管理员玩家名列表, 类型为 `JSON string[]`, eg: `[\"KREEDZT\"]`。用于 `players` 命令中高亮显示管理员\n- MODERATOR_BADGE: 管理员标识字符, 类型为 `string`, 默认值为 `★`, eg: `⭐`\n\n## 命令列表\n\n各命令详细文档位于 `src/commands/\u003cname\u003e/README.md`\n\n| 命令 | 说明 | 管理员 | 示例 |\n|------|------|--------|------|\n| website | 网站列表查询 | 否 | `#website` |\n| servers | 服务器信息 (图片) | 否 | `#servers` |\n| whereis / w | 玩家所在服务器 | 否 | `#whereis player1` |\n| analytics / a | 服务器玩家统计 | 否 | `#analytics d` |\n| maps / m | 地图列表/详情 | 否 | `#maps` / `#maps map105` |\n| players / p | 服务器玩家列表 | 否 | `#players` |\n| tdoll / td | 人形数据查询 | 否 | `#tdoll M4A1` |\n| tdollskin / ts | 人形皮肤查询 | 否 | `#tdollskin 3` |\n| qa | 自定义问答 | 否 | `#qa 你好` |\n| qadefine | 添加问答 | 是 | `#qadefine Q A` |\n| qadelete | 删除问答 | 是 | `#qadelete Q` |\n| ai | AI 智能问答 | 否 | `#ai 你好` |\n| log | 命令使用日志 | 否 | `#log tdoll` |\n| logself / ls | 自己的命令日志 | 否 | `#logself` |\n| log7 | 近 7 天命令日志 | 否 | `#log7` |\n| 1pt | 短链接生成 | 否 | `#1pt https://...` |\n| check / c | 网络连通性检查 | 否 | `#check` |\n| roll / r | 随机数生成 | 否 | `#roll 1 100` |\n| neko | Neko 图片 | 否 | `#neko` |\n| waifu | Waifu 图片 | 否 | `#waifu` |\n| touhou | 东方 Project 图片 | 否 | `#touhou` |\n| setu | 随机涩图 | 否 | `#setu` |\n| version / v | 机器人版本 | 是 | `#version` |\n| fuck | 重启 Bot | 是 | `#fuck` |\n\n## 部署\n\n### Docker\n\n可选挂载目录\n\n- logs: 日志输出目录\n\n```sh\ndocker run --name my-rwr-qq-bot \\\n-p 3000:3000 \\\n-e \"PORT=3000\" \\\n-e \"REMOTE_URL=\u003cREMOTE_URL\u003e\" \\\n-e \"START_MATCH=\u003cSTART_MATCH\u003e\" \\\n-e \"ADMIN_QQ_LIST=\u003cADMIN_QQ_LIST\u003e\" \\\n-e \"LISTEN_GROUP=\u003cLISTEN_GROUP\u003e\" \\\n-e \"ACTIVE_COMMANDS=\u003cACTIVE_COMMANDS\u003e\" \\\n-e \"SERVER_MATCH_REGEX=\u003cSERVER_MATCH_REGEX\u003e\" \\\n-v ${PWD}/data:/app/data \\\n-v ${PWD}/logs:/app/logs \\\n-d zhaozisong0/rwr-imba-qq-bot:latest\n```\n\n\u003e **提示**: PORT 默认值为 `3000`，如需修改端口，请同时调整 `-p` 映射和 `-e PORT` 环境变量。例如使用 8080 端口：`-p 8080:8080 -e \"PORT=8080\"`\n\n### Docker compose\n\n参考 `docker-compose-example.yaml` 文件\n\n## 图像渲染\n\n- 项目图片生成依赖使用 `skia-canvas`（替代 `canvas`/node-canvas），以提升 CI 与本地安装稳定性。\n- 图片回归样例（用于验证迁移后输出可用）：\n\n```sh\npnpm run test:image\n```\n\n## License\n\n- [MIT](https://opensource.org/licenses/MIT)\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FKreedzt%2Frwr-imba-qq-bot.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FKreedzt%2Frwr-imba-qq-bot?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwr-infra%2Frwr-qq-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frwr-infra%2Frwr-qq-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frwr-infra%2Frwr-qq-bot/lists"}