python - 如果我想在电报 python bot 中标记一个组的所有成员,我该怎么办?
问题描述
我有一个在 python 上运行并基于 Telethon 库的电报机器人。我想标记一个组中的所有成员,但我的代码源有 100 个用户标记限制,当我想将其数量增加到 500 个用户甚至更多时,它不会标记整个用户,只是给我他们的名字,只是标记前 100 个用户。请帮助我如何在不给用户计数的情况下标记组中的所有成员。代码如下:
import asyncio
from telethon import events
from telethon.tl.types import ChannelParticipantsAdmins
async def _(event):
if event.fwd_from:
return
mentions = "All members tagged successfully!"
chat = await event.get_input_chat()
async for x in borg.iter_participants(chat, 100):
mentions += f" \n [{x.first_name}](tg://user?id={x.id})"
await event.reply(mentions)
await event.delete()
我可以通过这些代码在组中标记管理员:
async def _(event):
if event.fwd_from:
return
mentions = "Administrators in the chat : "
chat = await event.get_input_chat()
async for x in borg.iter_participants(chat, filter=ChannelParticipantsAdmins):
mentions += f" \n [{x.first_name}](tg://user?id={x.id})"
reply_message = None
if event.reply_to_msg_id:
reply_message = await event.get_reply_message()
await reply_message.reply(mentions)
else:
await event.reply(mentions)
await event.delete()
我可以在上面的代码中添加像 ChannelParticipantsAdmins 这样的过滤器,而不是在之前的代码中添加 100 个用户数吗?如果是,过滤器部分应该是什么。
谢谢你的帮助。
解决方案
https://github.com/micodev/botShell/blob/master/plugins/tagAll.py 访问上面的链接,它向您展示了一种实现您想法的方法,您可以在一条消息中发送 8 个用户名,使其适用于所有成员或使用 pin 消息。
推荐阅读
- memory - 如何从虚拟内存中加载内存?
- kubernetes - 如何从存储在 AWS 系统管理器中的参数中获取 Kubernetes 密钥
- c++ - 如何在 Xcode C++ 项目中启用绝对标头
- android-studio - 硬件设备中的 Android Studio
- javascript - 使用 localStorage 在页面之间传递变量并在链接中传递变量
- java - “类型不匹配:无法从 int 转换为 byte”
- ios - 线程一:使用模拟器后出现 Expertin 错误
- powershell - 如何拆分包含换行符的字符串
- python - 如何在python中跳过“ZeroDivisionError:浮点除以零错误”
- python - 在视线上投射速度 - 已编辑