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

上一期我们实现了 第一次发言 人机验证 的机器人.
那么就带来了这样一个需求:
我这个群已经有了很多群友.
天天发言, 也能看出来都不是机器人.
但是我把这个第一次发言人机验证的机器人一拉进群里. 那每个人在这个时间点之后的第一次发言之前都要验证一遍了. 这样会给这些群友带来不必要的麻烦.
当然, 这个项目本身也提供了一个验证列表文件 valid.yaml 你是可以手动添加群友的 userid 的.

其中, 只有userid是有效的, 其它信息是辅助人类管理这个文件用的, 不参与程序的逻辑判断.
所以, 你可以手动添加群友的userid进去. 就像这样:

所以, 本文要解决的需求就变成:
查询群组最近的消息 统计发言账号的ID

还是用GPT开发
查询一个telegram群组中的最近 1000 条消息.
将发消息的telegram账户的userid统计出来

这个群组可能是公开群组, 也可能是不公开群组
这次就必须用到 Telethon 库了, 也就需要用到 api_id, api_hash 需要到 https://my.telegram.org/apps 去申请

上传到 Github


运行效果
共统计到 85 个用户
391932510
5612162712
5043772938
7287227103
6989120610
...略
从这样的结果到 valid.yaml 还需要你自己做一些小小的工作.
为了符合yaml文件格式, 每个id的后面还要加上冒号:


我考虑到本项目本身作为一个单独项目的意义, 所以没有在输出中加上冒号.
如果你觉得有必要, 你自己修改一下程序, 加上这个冒号的输出是很容易的事情.

后记

如果你是私有群(比如ID是 1231231231), 在使用本项目时, 修改文件中的ID为 -1001231231231
但是执行时报错.
那么, 你可以选择以下方案之一:
1. 直接使用你群组的ID, 1231231231
2. 将你的私有群设置为公开群, 保存. 再设置为私有群.
你会发现群ID发生变化, 比如, 变为 4564564564
然后使用 -1004564564564

评论

The Hot3 in Last 7 Days

搭 Docker版 Sub-Store 带 http-meta 实现 集合订阅 测延迟 排序 筛选 生成新订阅 定时任务上传Gist

极简一键脚本 搭NaiveProxy梯子 自定义端口 与Caddy V2前置的VLESS/Vmess V2Ray共存 可开CDN