{"id":24794443,"url":"https://github.com/ctf-archives/gzctfbot","last_synced_at":"2025-07-22T19:05:23.002Z","repository":{"id":195958168,"uuid":"612948195","full_name":"CTF-Archives/GZCTFBOT","owner":"CTF-Archives","description":":trollface: 适用于GZCTF的比赛QQ群机器人","archived":false,"fork":false,"pushed_at":"2023-12-09T02:34:37.000Z","size":983,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-11T14:59:32.370Z","etag":null,"topics":["bot","ctf","gzctf","qq"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CTF-Archives.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-03-12T13:16:34.000Z","updated_at":"2025-06-03T09:17:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"ce64cb47-82ec-4a73-9928-dd428bc16446","html_url":"https://github.com/CTF-Archives/GZCTFBOT","commit_stats":null,"previous_names":["icecliffs/gzctf-bot","ctf-archives/gzctfbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CTF-Archives/GZCTFBOT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTF-Archives%2FGZCTFBOT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTF-Archives%2FGZCTFBOT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTF-Archives%2FGZCTFBOT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTF-Archives%2FGZCTFBOT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CTF-Archives","download_url":"https://codeload.github.com/CTF-Archives/GZCTFBOT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CTF-Archives%2FGZCTFBOT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266554303,"owners_count":23947306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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","ctf","gzctf","qq"],"created_at":"2025-01-29T22:38:14.021Z","updated_at":"2025-07-22T19:05:22.950Z","avatar_url":"https://github.com/CTF-Archives.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## GZCTF-bot\n\n![](./images/banner.png)\n\n~~《以赛促学、以赛促教、学赛结合》~~\n\n适用于GZ::CTF的赛事播报机器人，GZ::CTF非常牛逼，GZ大大的好！，你的代码写的真棒！.jpeg\n\n### 特性🛠️\n\n- 一血二血三血播报（一血、二血、三血）\n- 题目动态播报\n- 赛事动态播报\n- 队伍作弊播报\n\n### 部署🔨\n\n#### 直接go-cqhttp（推荐）\n\n\u003e 这样做比较方便一点，开箱即用\n\n- 到 [https://github.com/Mrs4s/go-cqhttp/releases](https://github.com/Mrs4s/go-cqhttp/releases) 下载对应的版本，在 config.yaml 填入你的QQ号和密码\n\n```yaml\naccount: # 账号相关\n  uin: 1145141919810 # QQ账号\n  password: '' # 密码为空时使用扫码登录\n  encrypt: false  # 是否开启密码加密\n  status: 0      # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态\n  relogin: # 重连设置\n    delay: 3   # 首次重连延迟, 单位秒\n    interval: 3   # 重连间隔\n    max-times: 0  # 最大重连次数, 0为无限制\n```\n\n- 然后使用 http 进行连接即可\n\n![1.png](./images/1.png)\n\n```yaml\n# 连接服务列表\nservers:\n  # 添加方式，同一连接方式可添加多个，具体配置说明请查看文档\n  #- http: # http 通信\n  #- ws:   # 正向 Websocket\n  #- ws-reverse: # 反向 Websocket\n  #- pprof: #性能分析服务器\n\n  - http: # HTTP 通信设置\n      address: 0.0.0.0:5700 # HTTP监听地址\n      version: 11     # OneBot协议版本, 支持 11/12\n      timeout: 5      # 反向 HTTP 超时时间, 单位秒，\u003c5 时将被忽略\n      long-polling:   # 长轮询拓展\n        enabled: false       # 是否开启\n        max-queue-size: 2000 # 消息队列大小，0 表示不限制队列大小，谨慎使用\n      middlewares:\n        \u003c\u003c: *default # 引用默认中间件\n      post:           # 反向HTTP POST地址列表\n```\n\n然后配置下脚本就行了\n\n- 参数说明\n  - --url 比赛平台 e.g: https://ctf.xmutsec.cn\n  - --notice 赛事播报群 群号\n  - --id 赛事ID\n  - --port CQ的端口\n- 以下为可选选项\n  - --events 赛事详情通知群\n  - --cookie 管理员Cookie，开了赛事详情通知群后配置\n\n```bash\npython gzbot.py --url=\"https://ctf.xmutsec.cn\" --notice=280853253 --id=1 --port=5700\n```\n\n\u003e 第一次使用请先添加题目\n\n如果您成功安装了依赖，并正确的配好了参数，他将会这样子运行 :D\n\n![](./images/2.png)\n\n如何正确获取比赛ID？新建完比赛后，点击比赛\n\n![](./images/3.png)\n\n然后URL上边的数字就是比赛ID\n\n![](./images/4.png)\n\n比赛题目播报\n\n![](./images/5.png)\n\n一二三血播报\n\n![](./images/6.png)\n\n提示播报\n\n![](./images/7.png)\n\n比赛公告\n\n![](./images/8.png)\n\n\n\n#### 使用 nonebot 插件\n\n~~（开发ing）~~\n\n开发个√⑧，爱咋用咋用\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctf-archives%2Fgzctfbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctf-archives%2Fgzctfbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctf-archives%2Fgzctfbot/lists"}