# robot-server-v2 **Repository Path**: Night.Ming/robot-server-v2 ## Basic Information - **Project Name**: robot-server-v2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-09 - **Last Updated**: 2026-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Robot Server V2 微信群机器人后端服务,使用 Node.js、TypeScript、Fastify、SQLite 和 Drizzle ORM。 ## 金币获取方式 ### 发言奖励 在已开启的群聊中,每发送一条有效消息可获得 `1` 金币,同时增加 `1` 点经验和当日发言数。 发言奖励不会写入 `point_logs`,但每日发言统计会保存在 `daily_message_stats`,用于发言排行榜。 ### 每日打卡 命令: ```text 打卡 ``` 每个用户每天每个群只能打卡一次,每次随机获得 `1-50` 金币。打卡记录保存在 `check_ins`。 等级特权:每满 10 级,打卡奖励增加 `2%`,最高增加 `20%`;最终奖励向下取整。 ### 打工 命令: ```text 打工 ``` 第一次发送时开始打工。再次发送时会自动结束上一次打工,并按已完成的整小时结算金币,然后立即开始新的打工。 - 最少工作 `1` 小时才可以结算 - 最多按 `24` 小时结算,超过部分不计算 - 每小时奖励随机计算,并随当前等级提高 - 工作状态保存在 `work_sessions`,服务重启后仍可继续结算 - 不足 1 小时再次发送不会结束当前工作 ### 金币 PK 发起命令: ```text pk#金额 ``` 例如: ```text pk#500 ``` 发起者先扣除赌注,群内其他用户发送: ```text 应战 ``` 首位应战者扣除同等金币,系统随机决定胜负,胜者获得双方赌注总额。PK 有效期为 `60` 秒,无人应战会自动退款。 PK 需要双方都在当前群成员列表中,并且金币余额足够。同一群同时只能有一场等待应战的 PK。 等级特权:PK 基础手续费为 `10%`,胜者每满 20 级减免 `1%`,最低手续费为 `5%`。等级只影响胜者手续费,不影响胜负概率。 ### 偷金币 命令: ```text 偷金币 ``` 每个用户每天每个群只能执行一次。系统随机选择同群其他金币大于 `0` 的用户,随机偷取 `1-50` 金币,实际金额不会超过对方余额。 偷取成功后,偷取者增加金币,被偷者减少金币;双方变更都会写入金币流水。记录保存在 `coin_steals`。 ### 幸运号码 命令: ```text 幸运号码 幸运号码#三位数字 ``` 每个用户每天每个群只能参与 1 次,每次消耗 100 金币。未指定号码时系统随机生成三位数字;每天 21:00(上海时间)开奖。 本期奖池为本群购票人数乘以 100 金币。中奖时,三位全中、后两位相同、后一位相同分别按 `6:3:1` 权重分配全部奖池;同一中奖等级有多人时按相同权重均分。 ### 每小时知识问答 机器人会在每天 08:00 至 18:00 的每个整点,在已开启的群聊发送一道题。直接发送答案,首位答对者获得 100 金币。 题库全部保存在 `data/quizQuestions.json`,当前可用题目共 500 道,覆盖地理、历史、科学、文化、体育、科技、影视、生活、趣味、游戏、音乐、动漫、成语和脑筋急转弯,不包含数学题;每群当前题目与获奖者状态保存在 `quiz_rounds`,重启后不会重复发奖。 ### 假期查询 命令: ```text 假期查询 距离放假 ``` 查询下一个法定节假日、距离放假天数和连续休息日期。节假日数据每天更新一次本地缓存,外部数据源暂时不可用时会继续使用已有缓存。 ### 战队每日任务 战队内所有当前成员当天发言都达到 `100` 次后,每位成员获得“战队人数 × 50”金币。例如 10 人战队完成任务后,每人获得 500 金币,全队共发放 5000 金币。任务每天每个战队只能完成一次,完成进度可通过 `我的战队` 查看。 ## 金币流水 打卡、打工、PK、偷金币以及其他手动金币变更会写入 `point_logs`,发言奖励除外。 ## 其他相关命令 ```text 我的信息 查看金币、等级、经验、称号和 PK 统计 发言排行榜 查看当前群当天发言前 10 名 转账#金额 艾特一位群成员进行转账 ``` 所有群聊功能都要求用户已经同步到本群成员列表。金币、等级和玩法数据按群独立保存。 ## 数据库说明 数据库文件默认为: ```text data/robot.db ``` 当前项目处于快速迭代阶段,表结构变更通过启动时建表和兼容处理完成。开发环境遇到旧表结构错误时,请先备份 `data/robot.db`,再删除后重启服务。