Skip to content

验证机器人|自定义|反垃圾内容|梯度多样验证系统|策略组配置|自部署|新式验证方案|Telegram Capthca bot

License

Notifications You must be signed in to change notification settings

TelechaBot/TelechaBot

Repository files navigation

a


License PYTHON V SPONSOR

TelechaBot

Use https://github.com/TelechaBot/Kitan instead

TelechaBot 是一个使用 Python 编写的机器人项目,使用 可更新模组 进行生物验证! 项目经过模块化,便于扩展。

为了给群组提供有效的验证模式,便捷的以筛选为目的梯度验证模式,它支持诸如 成语验证 普通语音听力验证 图片验证 文本验证 诗词验证 数学 物理 化学 生物 哔哩哔哩题库 等验证模式。

这让它既可以作为普通群组的智能安全的验证工具(推荐 听力验证 和 科目一 等系列),也可以作为严肃型群组的得力助手( 例如数学验证)。

目前由 Sudoskys 做维护支持,点击 使用一个可爱的实例 * 如果服务器没钱可能就不会维护*

👋特性

  • MVC架构
  • 支持白名单
  • 支持一键部署
  • 异步 + 线程锁
  • 模块化题库模组
  • 体验第一性能第二
  • 支持英文语音验证
  • 内存散列表过期队列实现
  • 支持热载维护反Spam关键词
  • 群组自定义 绿卡/红牌 策略支持
  • 自由选择的枚举和不可枚举混合题库
  • 反垃圾内容全方位系统,用户从头像到Bio,人类能看见的它也可以看见。

🙌应用

  • 机器人的封禁策略

延迟定时封禁:到时间自动释放(博弈交给机器人),避免误封后永不解封的问题。

如果遇到了碰撞入群的情况,请开启高级 不可枚举题库 或语音验证。

如果遇到被突破的情况,请提交反馈进行变动。

🤔如何使用

本机器人采用 自动审批邀请 的验证方式,舍弃旧的禁言公屏验证方式。

  • 防止机器人宕机导致门禁失效
  • 防止响应过慢导致的拦截不住
  • 防止操作记录被污染和打扰聊天(邀请只能管理员看到)
  • 适应 Topic 验证

先在群组设置 群组类型 中开启 批准新成员加入需要审核 选项。

然后你需要将机器人添加进入群组,然后给予 禁言 邀请用户 封禁用户 权限。此时机器人管理就可以读取群内消息了。 基于白名单机制需要,机器人会存储一下群组 ID。

命令表格

命令 含义 作用域 权限(主人,管理,群员)
+unban id 解除用户验证和解除用户限制,移出黑名单 群组 管理
+diff_limit level 设定当前群组的验证难度上限 群组 管理
/select 设定验证题库模式,自定义需要自部署或者提交合并 群组 管理
+diff_min level 设定当前群组的验证难度下限 群组 管理
/whatmodel 查看当前群组的验证模型 群组 管理
+banme 俄罗斯禁言轮盘,管理不能玩 群组 群员
+ban+ID或者回复 ban掉一个用户 群组 管理
/onw 机器人开启白名单模式,不能被未认证的用户再拉入或使用 机器人 主人
/offw 关闭白名单,开放机器人 机器人 主人
/show 对config设定的主人显示配置 私聊 主人
/groupuser 对config设定的主人显示正在使用的群组 私聊 主人
/addwhite group_id 加入白名单,仅开启白名单时生效 私聊 主人
/removewhite group_id 移除白名单,仅开启白名单时生效 私聊 主人
/cat filepath 查看文件 私聊 主人
/unban group_id user_id 解封指定群组的指定用户 私聊 主人
/ban group_id user_id 为了防止部署者滥权,没做功能 私聊 主人
/redis 查看队列顺便备份 redis 键表 私聊 主人
/renew 从网络更新题库 私聊 主人
/about 关于机器人的信息(读取config中的预设描述) 私聊 任何人
/upantispam 更新反诈库 私聊 主人
/whatstrategy 查看本群策略 群组 管理

⚒群组管理命令

缇茶 目前 使用 + 作为关键符。

+select 选择题库
+ban 回复或+ID
+banme 俄罗斯轮盘
+diff_min 设定最小难度
+diff_limit 设定最大难度
+unban 解禁+ID

🎛策略组

什么是入群前策略组?

缇茶会在验证之前先根据群组的策略进行分流筛选,然后根据特征将待验证者分流到不同的操作逻辑。

  • 样式
!door!premium=[level=1|type=off]

使用 /whatstrategy 查看策略和支持的键类型。

支持的属性为 ["level", "type", "command"]
level 为优先级(冲突时高等级策略优先),typeon 或者 offcommandask(验证),ban(禁止),pass(绿卡通过) 找不到默认 ask。

🔨待办

  • 智能通过可信用户(在严格模式下)
  • 日志频道支持
  • 兼容 Rose 语法
  • 异步实现
  • 网络热加载
  • 群组白名单
  • 手动解除封锁
  • 重新选择题目
  • 重构消息逻辑
  • 自动释放黑名单
  • DFA 反内容算法
  • 反 QrCode 判定
  • CV 计算判定NSFW
  • 群组设置自定义难度
  • 重构设计模式为 MVC
  • 自定义题目仓库在线更新
  • 初步使用Redis接管数据
  • 使用Redis重构队列逻辑
  • 群组设置自定义题目仓库,设计题库读取类

⚙️自部署指南

🥪环境支持

应当使用 Python 3.7 或更高版本,主机需要安装 redis-server

  • 反二维码支持(可选)
sudo apt update
sudo apt install openjdk-11-jdk
  • 安装 Redis
apt-get install redis

使用 systemctl start redis.service 启动服务,或者使用nohup redis-server > output.log 2>&1 &启动,推荐前者。

  • 安装TTS支持 使用 sudo apt install espeak ffmpeg libespeak1 安装 TTS 语音验证支持。

🥕安装维护

  • 拉取/更新程序

安装脚本会自动备份恢复配置,在根目录运行(不要在程序目录内) ,更新时候重新运行就可以备份程序了,如果是小更新可以直接 git pull

curl -LO https://raw.githubusercontent.com/TelechaBot/TelechaBot/main/setup.sh && sh setup.sh

然后切换到程序目录进行配置 cd TelechaBot

⚙️配置

  • 安装依赖库
cd TelechaBot
pip install -r requirements.txt
  • 编辑配置文件 Captcha.toml
sudo apt install nano
cp Config/Captcha_exp.toml Config/Captcha.toml
nano Config/Captcha.toml 

📚配置文件说明

  • nano Config/Captcha.toml
# Sample
desc = "生物信息验证 Bot\nChannel @TelechaBot_real\ngithub.com/TelechaBot/TelechaBot"
link = "https://t.me/SmartCapthaBot"
botToken = '57xxxxxxxxxxxxxxxxxxxxdqMuqPs'

[ClientBot]
owner = '5477776859'
contact_details = "判定为非白名单群组后的联系方式"

[Proxy]
status = false
url = "http://127.0.0.1:7890" 

这里的 botToken 填写你在 botFather 那里申请的botToken,这个是机器人的登陆凭证,请妥善保管。

这里的 desc 是 About 字段,可以删除整个字段。

🚀运行

📚命令模板

start - 私聊 开始验证
about - 私聊 关于这个好玩的Bot
select - 管理 切换题库
whatmodel - 管理 查看当前模组
whatstrategy - 管理 查看本群策略
renew - 主人 更新题库
upantispam - 主人 更新反诈数据
unban - 主人 群组ID+用户ID
onw - 主人 对群组开启白名单
offw - 主人 对群组关闭白名单
show - 主人 对主人显示配置
addwhite - 主人 加入白名单
removewhite - 主人 踢出白名单
cat - 主人 查看文件
redis - 主人 查看目前队列
groupuser - 主人 查看使用者

🧊后台运行

# 长时间运行
nohup python3 telecha.py > /dev/null 2>&1 & 
# 有日志,因为TG脆弱的土豆服务器,可能会日志爆炸
nohup python3 telecha.py > output.log 2>&1 &
cat output.log
  • 查看进程
ps -aux|grep python3
  • 终止进程 后加进程号码
kill -9  
  • 更新

小型更新也可以使用 git pull

curl -LO https://raw.githubusercontent.com/TelechaBot/TelechaBot/main/setup.sh && sh setup.sh

🪐关于反内容系统

使用 CV2 和 DFA 技术,智能识别。

如果出现 误报失效,请提交 ISSUE 进行相关处理。

🪐关于验证模型

支持多重模型,自定义模型,自带多重模型。

理论可以兼容其他绝大部分机器人的验证方式!

抽取或随机生成题目,支持难度梯度过滤。

some = model_name.Importer().pull(difficulty_limit=5)

项目详细信息和参数信息

实例

长度为34的线段 AB 的两个端点A、B都在抛物线y2(2次方)=8x 上滑动,则线段 AB 的中点 M 到 y 轴的最短距离为?(四舍五入)
8

在 周密 的诗《绣鸾凤花犯・花犯》中,有这样一句: 冰弦写怨更多情,骚人恨,枉赋芳兰幽芷。
请问它的下面一句是? |A:千里孤坟,无处话凄凉。|B:惟有御沟声断,似知人呜咽。|C:春思远,谁叹赏、国香风味。

在论语 先进篇 中,有这样一句对话: 颜渊死。子曰:“噫!天丧予!天丧予!”
请问它的下面一句是? 
|A:子谓子夏曰:“女为君子儒,无为小人儒。”
|B:子曰:“《诗》三百,一言以蔽之,曰:‘思无邪’。”
|C:颜渊死,子哭之恸,从者曰:“子恸矣!”曰:“有恸乎?非夫人之为恸而谁为?”

俺はGandom(我就是高达)这句话是谁说的?

.....

自定义题库

将你的题库文件放在Github或者托管在其他可以直链公开访问的服务上,然后写一个类,处理这个文件返回Q和A两个参数,并提交到 这个仓库 的Issue 或者 Pr。

调试需要启动 redis-server

协议和信息保管

用户信息协议

本项目会保存验证人员的用户数据画像用于反垃圾内容系统的识别。

本项目不会向其他组织共享任何敏感数据。

本项目的实例不保证提供稳定的服务。

协议

见 LICENSE

About

验证机器人|自定义|反垃圾内容|梯度多样验证系统|策略组配置|自部署|新式验证方案|Telegram Capthca bot

Topics

Resources

License

Stars

Watchers

Forks