如何使用Telethon的event.edit方法移除消息中的图片?
解决Telethon编辑消息移除图片的问题
在Telethon中,event.edit(file=None)确实无法移除消息中的图片——因为file参数仅用于指定新的媒体文件,设为None时并不会触发移除原有媒体的逻辑。要移除消息里的图片,你可以通过以下方式实现:
方法1:仅编辑消息文本(保留原文本)
如果需要保留原消息的文字内容,直接调用event.edit()并传入原文本即可,不要传递任何与媒体相关的参数(比如file或media),Telethon会自动移除原有图片,只保留文本内容。
示例代码:
@client.on(events.CallbackQuery(func=lambda e: e.data == b"code")) async def add_ads(event: CallbackQuery.Event): # 获取原消息的文本内容(无文本时设为空字符串) original_content = event.message.text or "" # 仅编辑文本,自动移除图片 await event.edit(original_content)
方法2:替换为空消息(无文本无图片)
如果不需要保留原文本,直接编辑为空字符串即可:
@client.on(events.CallbackQuery(func=lambda e: e.data == b"code")) async def add_ads(event: CallbackQuery.Event): await event.edit("")
补充说明
部分Telethon版本中,也可以通过明确设置media=None来移除媒体,效果和上述方法一致:
await event.edit(event.message.text, media=None)
内容的提问来源于stack exchange,提问作者BXJIAM
相关产品推荐
相关产品推荐

