电报防广告机器人 实现发言验证的功能 tg-send-msg-exam-bot-worker 迁移到 cloudflare worker

前言 之前 用python实现了自用的简易防广告机器人 , 实现发言验证的功能. 最近服务器到期了, 突然心里动了一个念头, 能转换成cloudflare worker吗?

电报防广告机器人 实现加群验证的功能 tg-join-group-exam-bot-worker 迁移到 cloudflare worker

前言 之前 用python实现了自用的简易防广告机器人 , 实现加群验证的功能. 最近服务器到期了, 突然心里动了一个念头, 能转换成cloudflare worker吗?

电报防广告机器人 新成员入群时ID小于2B免验证 在群内发言时ID小于8B免验证

之前, 为了防广告机器人, 我面向GPT开发了两个电报telegram机器人. 一个是加群时的验证. https://github.com/crazypeace/tg-join-group-exam-bot 一个是发言时的验证. https://github.com/crazypeace/tg-send-msg-exam-bot 用了一段时间, 确实防广告的效果很好.  但是, 也有群友报怨说, 连着验证2次 机器人功能坏了. 没人想到这是两个不同的机器人.

电报防广告机器人 telegram antispam bot 新成员入群时需要人机验证 增加一个命令手动触发

背景 今天在查看机器人日志的时候, 发现有4个异常. 异常的原因不完全清楚, 猜测是网络原因, 机器人程序向Telegram服务器要求设置用户权限时 超时了. 这样就带来一个漏洞, 这4个新用户没有被设置禁言, 没有通过人机验证流程.

关于telegram电报防广告机器人想到的

我不支持把各种外部机器人拉到群里面来, 这样会让群里的信息更容易被抓取. 在给了这些机器人管理权限之后, 很难保证这些机器人会不会作恶. 不知道大家对于 双向聊天机器人livegram bot 发广告的事件还有没有印象. 对于防广告, 基本上是两个思路. 一个是人机验证. 另一个是对消息内容进行分析是否广告.

电报防广告机器人 telegram antispam bot 相关功能 清除群组Removed Users列表

有很多广告账号在防广告机器人处理下, 被踢出了群组. 也就是在群组的 Permissions - Removed Users 列表中. 而广告账号因为被举报得很多, 所以实际上比较快就会被telegram封禁, 成为 Deleted Account 本项目的目的就是清理这个列表, 把已经被封禁的账号移除.

电报防广告机器人 telegram antispam bot 相关功能 踢除群组Exceptions列表中没有发言权限的用户

前言 有一些 防广告机器人为了防止误踢用户, 只对未通过验证的用户设置了禁言, 并没有将用户踢出群组. 那么, 这些用户会在 群组Exceptions列表中留下一条没有发言权限的记录. 当这样的记录非常多时, 逐条手工操作太费时. 那么, 我们让程序来帮忙吧.

电报防广告机器人 telegram antispam bot 在群内发言时需要人机验证 效率优化 验证用户列表缓存在内存

我们前面实现的 首次发言 验证机器人. https://github.com/crazypeace/tg-send-msg-exam-bot 在阅读代码时发现, 机器人经常需要读取 yaml 文件. 这会显著增加I/O开销, 降低处理速度. 每次发现群内的新消息, 都要调用 is_valid_user()函数 -> load_valid_users()函数 -> 打开yaml文件

电报防广告机器人 telegram antispam bot 相关功能 查询群组内的全部成员 对比ChannelParticipantsBanned与ChannelParticipantBanned

前言 上一篇 中, 我们通过查询群组中最近的1000条发言, 得到活跃群成员的id列表. 如果我想对这个群里的成员特别厚道, 只要是目前在群里的, 我都不希望有可能被机器人打扰. 那么我需要得到群组内的全部成员.

电报防广告机器人 telegram antispam bot 相关功能 查询群组最近的消息 统计发言账号的ID

前言 上一期我们实现了 第一次发言 人机验证 的机器人 . 那么就带来了这样一个需求: 我这个群已经有了很多群友. 天天发言, 也能看出来都不是机器人. 但是我把这个第一次发言人机验证的机器人一拉进群里. 那每个人在这个时间点之后的第一次发言之前都要验证一遍了. 这样会给这些群友带来不必要的麻烦. 当然, 这个项目本身也提供了一个验证列表文件 valid.yaml 你是可以手动添加群友的 userid 的. 其中, 只有userid是有效的, 其它信息是辅助人类管理这个文件用的, 不参与程序的逻辑判断. 所以, 你可以手动添加群友的userid进去. 就像这样: 所以, 本文要解决的需求就变成: 查询群组最近的消息 统计发言账号的ID

电报防广告机器人 telegram antispam bot 相关功能 清除群组Exceptions列表中实际上权限与群组默认权限一致的记录

前面我们实现了两个防广告机器人 https://github.com/crazypeace/tg-join-group-exam-bot https://github.com/crazypeace/tg-send-msg-exam-bot 这两个机器人在设置群成员禁言和解除禁言时, 都是在 Exceptions 列表中添加了记录.  我们发现, 通过了验证的用户, 也在 Exceptions 中留有记录, 哪怕是与群组默认权限一致.

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

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

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

上一期中, 我们实现了自定义 问题-答案 . 但是过于死板. 那么, 除了算术题, 还有什么可以生成灵活 问题-答案 的方式呢? 比如, 我的博客最新一期博文的标题是什么?

电报防广告机器人 telegram antispam bot 重构产生问题和回答的方式

上一期我们实现了防广告机器人的基本框架 如果我们想实现丰富的 问题-答案 生成方式, 怎么做呢? 看一下目前的代码. 是生成了 问题-答案 后, 保存起来, 然后新成员再回答问题, 并检查答案.

电报防广告机器人 telegram antispam bot 新成员入群时需要人机验证 用回复文本的方式增加发广告的成本

用了这么久的telegram, 看到的防广告机器人, 都是用选按钮的方式回答问题, 理论上有被穷举题库的可能性. 如果你的群足够有吸引力, 想加群的广告机器人足够多, 总是可以找到入群问题的答案的. 而入群问题如果太变态 ( https://github.com/XTLS/Xray-core/discussions/3487 ) 反而拒绝了一些能力不强的正常人类 (TA们本身并不是想发广告, 只是想入群提问或交流) 所以我有了一个思路, 如果这个人机检查的问题需要回答文本呢?