dwgx@blog:~$dwgx
> cd ../posts

QQbot:腾讯官方 SDK 写的 QQ 群骰子机器人

// created

QQbot 是个 QQ 群机器人, 基于腾讯官方的 qq-botpy SDK, 在群里跑一套代币骰子押注的玩法。@ 一下机器人就能收事件, 核心逻辑全围绕下注和开奖转。

玩法是代币骰子。@ 发 大100 单50 表示 100 押大、50 押单, 然后 sh 或者甩个 🎲 开奖, 连摇用 sh3。赔率写死在代码里, 大小 1.97、单双 2.9、点数最高 6.9, 拍脑袋定的能玩就行。上层还有庄家和红包: 我当老板 坐庄开局塞 100 万代币, hb 100 5 发红包、别人 领取、发错了 撤回, 谁能发钱由 admin 列表管。查账 ye

有两个点值得说。数据没上数据库, 就本地一个 JSON 存账户, 但群聊是并发的, 好几个人同时下注、同时抢红包, 读写打架会把余额算错, 所以持久化全走 asyncio 的锁串行化。进程长期挂着跑, 接了 SIGINT/SIGTERM 优雅退出, 收信号先落盘再走, 避免 Ctrl+C 把账目丢了。

配置走一条查找链: 先看 config.yaml, 找不到退根目录, 再退 other/run/, 或者直接用 DWGXBOT_CONFIG 指路, 里面就 appid、secret、admins 三样。启动一句 python Code/QQbot/main/DwgxBot.py, 日志和 data.json 落在 other/run/

仓库里还塞了点别的。Code/web/ 是试水 AES 加密通信的 demo, WebSocket 聊天挂在 0.0.0.0:20008, 消息走会话密钥加密。other/pyside6tool/ 是一堆 PySide6 桌面小工具, 懒得分仓就一起扔进来了。栈没花活: qq-botpy 1.2.1、aiohttp、websockets、APScheduler、cryptography、PySide6 6.8, CI 只在 push 和 PR 跑一遍 compileall 做语法体检, 还没写测试。

练手项目, WIP 状态, 赔率和部分 URL 还硬编码占位, 核心机器人能稳定跑。