电报防广告机器人 telegram antispam bot 相关功能 查询群组内的全部成员 增加入群时间信息
前言
在前面一篇博文中, 我们的入群验证机器人增加了一个功能, 可以手动启动对某个群成员的入群验证.解决的问题是, 当机器人离开群组(或异常)的时候, 群组有了新的成员, 但是这些群成员没有经历入群验证.
那么一个新问题就随之而来, 我怎么知道哪些成员是在机器人离开群组的时间段入群的呢?
需求
输出群成员的入群时间.
具体实践
想到我们有过一个查群成员信息的工具
我们只要面向GPT编程, 描述我们的需求.
基于以上代码, 增加功能:保存群组成员加入群组的时间
修改量很小.
发现得到的结果中, 入群时间是无序的.
向GPT追加需求
查询结果需要按入群时间排序
GPT给出的结果 基本功能是正确的, 但是对于保存在文件中的格式, 我有一点特别的要求.
最初这个项目是为了生成一个用户列表, 供 发言验证机器人 作为 已验证用户列表 valid.yaml
所以需要保存在文件中的格式为:
6617181826:username: atefatmanfull_name: 子 肥7919966027:username: crazypeace_anti_bot_botfull_name: CZ_antibot_bot
我尝试了几种方案.
如果用 list , 保存在文件中的形式是
- id: 399932510username: crazypeacefull_name: ǝɔ∀ǝdʎz∀ɹɔ 👽joined_at: '2025-10-06T17:47:39.202290'- id: 661519101username: testuserfull_name: 测试 用户joined_at: '2025-10-07T12:11:22.501119'
如果用 OrderedDict , 保存在文件中的形式是
!!python/object/apply:collections.OrderedDict- - - 1716213463- username: 8lojbkfull_name: 系统安装 处理 搭建网络环境joined_at: '2022-03-31T07:01:32+00:00'- - 1215996169- username: ''full_name: z 8zzjoined_at: '2022-03-31T07:07:10+00:00'
最后我查询到, 在 Python 3.7+ 的字典dict是有序的(保持插入顺序)
所以, 最终我使用一个新的dict保存排序后的数据 , 然后写入文件
评论
发表评论