Skip to content

JNHFlow21/EchoWaveBot

Repository files navigation

EchoWaveBot

一个面向 Telegram 社群运营的自动化 Bot:入群验证/反机器人、邀请裂变、积分体系、积分商城、管理员多群广播与话题路由。适用于需要“可配置、可部署、可排障”的长期运营社群场景。

详细说明见:GUIDE.md(部署与排障)、ADMIN_GUIDE.md(管理员指南)、USER_GUIDE.md(用户指南)。

功能概览

  • 入群风控:新成员入群自动禁言 + 验证按钮,超时处理;验证通过自动解禁并可发送欢迎语。
  • 邀请裂变:私聊 /invite 生成专属 deep link(ref_<referrerId>_<groupId>),好友入群并验证后自动奖励积分。
  • 积分系统:签到口令、晒单关键词(盈/损)、每日次数上限;支持积分榜 /top 与个人资产 /my
  • 积分商城:管理员私聊上架商品(可带图)、群内兑换扣积分、生成核销码、管理员私聊核销鉴权。
  • 多群广播:终极管理员在管理群发消息 → 选择类型(早报/分析/战绩/信号/General)→ 按群订阅与 topic 绑定自动分发;支持相册媒体组广播与回复追踪。
  • 运维友好:SQLite + WAL、启动时 schema 热更新、旧版 bot_data.json 迁移、定时清理旧数据、群失效自动剔除广播。

目录结构

.
├── main.py                 # Bot 入口(polling)
├── config.py               # 环境变量 + DB 路径等配置
├── handlers/               # 业务模块(验证/邀请/广播/商城/配置面板/互动等)
├── database/storage.py     # SQLite 存储层 + 迁移/热更新
├── utils/                  # 外部 API/工具封装
├── Dockerfile              # 生产部署建议:Docker
├── GUIDE.md                # 使用与部署指南(推荐先读)
├── ADMIN_GUIDE.md          # 群管理员使用指南
└── USER_GUIDE.md           # 普通用户使用指南

快速开始(本地运行)

要求:Python 3.13+(推荐 Docker 跑生产)。

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

创建 .env

BOT_TOKEN=xxxxx
ADMIN_GROUP_ID=123456789   # 推荐填你的个人 user_id;也可以是一个“管理员群” chat_id

启动:

python main.py

启动成功后会看到日志:EchoWave Pro Max (SQLite Edition) 已启动...

Docker 部署(推荐)

构建镜像:

docker build -t echowavebot:latest .

运行(推荐挂载目录,持久化 DB + WAL 文件):

docker run -d \
  --name echowavebot \
  --restart always \
  -v /root/echowave_data:/app/data \
  --env-file /root/.env \
  echowavebot:latest

默认 DB 路径为 data/echowave.db(含 .db-wal/.db-shm),目录挂载能保证容器重启/升级不丢数据。

必要权限(把 Bot 设为管理员)

建议按 ADMIN_GUIDE.md 开启:

  • 发送消息
  • 删除消息(清理验证消息等)
  • 限制成员/解除限制(入群验证禁言/解禁)
  • 邀请用户/创建邀请链接(生成入群按钮)
  • 管理话题(如使用话题路由广播)
  • 查看管理员列表(商城核销鉴权)

常用指令

用户侧(群内为主):

  • /shop 积分商城
  • /my 我的积分/段位
  • /top 积分榜
  • /fear 恐慌贪婪指数
  • /help 帮助

增长侧(建议私聊 Bot 使用):

  • /invite 生成邀请链接

管理员侧:

  • /setup(私聊)配置群:欢迎语/验证开关/积分规则/订阅/话题绑定等
  • /add_product(私聊)上架商品
  • /products(私聊)管理商品
  • /use <核销码>(私聊)核销订单(需在订单所属群有管理员权限)
  • /request_broadcast(群内)申请成为广播群

终极管理员(ADMIN_GROUP_ID):

  • /report 审计群列表/订阅状态
  • /revoke <chat_id> 移除群广播权限
  • /set_topic <news|analysis|marketing|signal> 绑定当前话题为某类型路由

常见问题

更多详见 GUIDE.md 的“常见问题与排障”一节。这里列几个高频:

  • /invite 没有入群按钮:Bot 缺少“创建邀请链接”权限或不在群。
  • 回执发不进原话题:话题失效会自动降级发送到 General。
  • 广播失败:群不存在/被踢会自动移除广播标记。
  • 数据丢失:生产环境请务必挂载 data/ 目录。

About

一个面向 Telegram 社群运营的自动化 Bot:入群验证/反机器人、邀请裂变、积分体系、积分商城、管理员多群广播与话题路由。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors