电报防广告机器人 telegram antispam bot 相关功能 查询群组内的全部成员 增加入群时间信息

前言

在前面一篇博文中, 我们的入群验证机器人增加了一个功能, 可以手动启动对某个群成员的入群验证.

解决的问题是, 当机器人离开群组(或异常)的时候, 群组有了新的成员, 但是这些群成员没有经历入群验证.

那么一个新问题就随之而来, 我怎么知道哪些成员是在机器人离开群组的时间段入群的呢?

需求

输出群成员的入群时间.

具体实践

想到我们有过一个查群成员信息的工具

我们只要面向GPT编程, 描述我们的需求.
基于以上代码, 增加功能: 
保存群组成员加入群组的时间
修改量很小.

发现得到的结果中, 入群时间是无序的.
向GPT追加需求
查询结果需要按入群时间排序
GPT给出的结果 基本功能是正确的, 但是对于保存在文件中的格式, 我有一点特别的要求.
最初这个项目是为了生成一个用户列表, 供 发言验证机器人 作为 已验证用户列表 valid.yaml
所以需要保存在文件中的格式为:
6617181826:
  username: atefatman
  full_name: 子 肥
7919966027:
  username: crazypeace_anti_bot_bot
  full_name: CZ_antibot_bot
我尝试了几种方案.
如果用 list , 保存在文件中的形式是
- id: 399932510
  username: crazypeace
  full_name: ǝɔ∀ǝdʎz∀ɹɔ 👽
  joined_at: '2025-10-06T17:47:39.202290'
- id: 661519101
  username: testuser
  full_name: 测试 用户
  joined_at: '2025-10-07T12:11:22.501119'
如果用 OrderedDict , 保存在文件中的形式是
!!python/object/apply:collections.OrderedDict
- - - 1716213463
    - username: 8lojbk
      full_name: 系统安装 处理 搭建网络环境
      joined_at: '2022-03-31T07:01:32+00:00'
  - - 1215996169
    - username: ''
      full_name: z 8zz
      joined_at: '2022-03-31T07:07:10+00:00'
最后我查询到, 在 Python 3.7+ 的字典dict是有序的(保持插入顺序)
所以, 最终我使用一个新的dict保存排序后的数据 , 然后写入文件

提交 Github


评论

The Hot3 in Last 7 Days

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

Woiden IPv6 VPS 搭 V2ray 梯子 VLESS+Websocket+TLS 模式 免费 白嫖 全程手机操作 2022-4-19