如何判断Pyrogram中接收的消息是否为静音发送?
获取Pyrogram中消息的静音发送状态
Pyrogram的高层API没有直接提供判断消息是否静音发送的属性,但可以通过访问消息的原始TL对象来获取这个状态,具体步骤如下:
- 访问消息的
raw属性:每个Pyrogram的Message实例都携带raw属性,对应Telegram原生API的message构造器对象。 - 检查
flags中的静音标记:原生message对象的flags字段里,第13位(对应数值1 << 12)代表静音发送状态,若该位为1,则消息是静音发送的。
代码示例
from pyrogram import Client, filters app = Client("your_account_session") @app.on_message(filters.all) async def detect_silent_msg(client, message): # 获取原始Telegram消息对象 raw_message = message.raw # 判断静音状态 is_silent = bool(raw_message.flags & (1 << 12)) print(f"该消息为静音发送: {is_silent}") app.run()
注意:静音发送的标记属于普通message构造器的flags,而非messageService(服务消息构造器),之前的查阅方向可能存在偏差。
内容的提问来源于stack exchange,提问作者user9638324
相关产品推荐
相关产品推荐

