python Telethon发送带扰流器的图像

h79rfbju  于 2023-02-07  发布在  Python
关注(0)|答案(2)|浏览(138)

我怎样发送有扰流器的图片?我用的是telethon-1.27.0
这是我正在使用的代码:client.send_message(user, file="/something.png")
我尝试使用has_spoiler=True,但收到错误消息
send_message()获得意外的关键字参数"has_spoiler"或"spoiler"等。
在sendmessage中,我找到了参数-消息已发送。返回值消息(ID = 123,对等体ID =对等用户(用户ID = 123),日期=日期时间。(2023年2月5日23日11日49日,tzinfo =日期时间.时区. utc),消息="123",输出=真,提及=假,媒体未读=假,静默=假,帖子=假,发件人预定=假,旧版=假,编辑隐藏=假,固定=假,noforwards =假,发件人ID =无,转发发件人=无,通过机器人ID =无,回复=无,媒体=消息MediaPhoto(剧透=假,照片=照片(ID = 5982148115249082446

rsl1atfo

rsl1atfo1#

您需要使用Telethon v1.27或更高版本,然后手动构建正确的介质(在本例中为InputMediaUploadedPhoto):

from telethon import TelegramClient, types

...

file = ...  # path to your file 'photo.png' or file object

uploaded = await client.upload_file(file)
await client.send_file(chat, types.InputMediaUploadedPhoto(
    uploaded,
    spoiler=True,
))
sqserrrh

sqserrrh2#

文档解释了如何发送剧透。
https://docs.telethon.dev/en/stable/examples/working-with-messages.html#sending-spoilers-hidden-text
当前的markdown和HTML解析器还没有提供发送剧透的方法。您需要使用MessageEntitySpoiler以便消息文本的部分显示在剧透下。
最简单的方法是修改内置解析器,使其支持发送这些新消息实体以及它们已经提供的特性。
引用的recipe展示了如何在class CustomMarkdown中定义解析/解解析方法,当它看到[hidden text](spoiler)并在“spoiler”上找到一个文本匹配时,它会在MessageEntitySpoiler对象中进行编辑,以产生所需的效果。

相关问题