电报防广告机器人 telegram antispam bot 第一次在群内发言时需要人机验证

现在有很多广告机器人, 在第一次加群时通过了验证, 然后一直不发言. 直到某天晚上开始发广告信息.
所以我想, 如果在群成员第一次发言时加上一个人机验证, 是不是可以大幅改善这个问题?

让我们使用GPT开发.
实现这样一个telegram机器人 
当群组成员发消息时, 检测是不是 已验证成员
如果不是 已验证成员, 那么:
将 该成员 禁言
将 消息 转发到 仓库频道 保存
将 消息 从群组中 删除
在群组中发消息提醒 该成员 在与机器人的私聊中完成人机验证
通过人机验证后, 从仓库频道将 保存的消息 转发到刚刚的群组中.

其中, 已验证成员 的 telegram userid 保存在一个 valid.yaml 中.
为了方便管理, 与 userid 同步保存 username 和 fullname
但是 username 和 fullname 不作为判断依据, 只是为了方便人类管理此文件.

其中, 人机验证 过程是机器人提出一个问题, 用户以文本回复.
生成的代码量比前一个项目要多多了, 达到了500多行之巨!
阅读全新的项目要多费好多脑细胞啊!
而且, 也没有利用上前一个项目的 pset 设计. 嗯, 不好.

所以我们这样, 先把前一个项目的代码全部复制粘贴进去. 再把刚刚的需求写上, 让GPT生成.
这样生成的代码就只是新增了一些逻辑. 阅读起来难度低多了.

经过一些调试, 解决了一些小问题后. 
提交 Github

部署方法见 项目 Readme

========

效果


========

后记

本项目与 前一个项目 的 pset 是完全一样的定义.
所以这两个项目可以放在同一个目录下运行, 这样可以共用 pset 目录下的生成 问题-回答 的 .py 文件.
root@rn-TEST:~/tg-antispam-bot# tree
.
|-- logs
|   |-- tg-join-group-exam-bot-0_20251006.log
|   `-- tg-send-msg-exam-bot-0_20251006.log
|-- pset
|   |-- blog.py
|   |-- rss.py
|   `-- youtube.py
|-- tg-join-group-exam-bot-0.py
|-- tg-send-msg-exam-bot-0.py
`-- valid.yaml

评论

The Hot3 in Last 7 Days

电报防广告机器人 telegram antispam bot 我的博客最新一期博文的标题是什么 html解析 rss xml解析

酒馆SillyTavern 玩英文角色卡 也能以中文输出 设置世界书Lorebooks

丐版VPS 搭酒馆SillyTavern 使用Google Gemini免费API 和AI对话第一个故事