大家。我不知道如何用电报检测机器人的GIF。以下示例是当机器人在聊天中检测到文本并且文本为“hi”时机器人回复“嗨”。
我认为我可以用content_type做点什么,但我不知道。
@bot.message_handler(func=lambda message: True)
def echo_message(message):
if message.text == 'hi' :
cid= message.chat.id
bot.send_message(cid, 'Hi')
答案 0 :(得分:1)
结果如下:
@bot.message_handler(content_types=['document', 'gif'])
def handle_docs_gif(message):
if message.content_type == 'document':
cid= message.chat.id
bot.send_message(cid, 'this is a gif')
答案 1 :(得分:1)
要检测GIF,您必须在document filter中使用message handler。
这将在包含文档的每条消息上运行提供的功能。但是请注意,文档不仅可以是GIF。这来自文档:
此对象代表常规文件(与照片,语音相对) 消息和音频文件。
常规文件(例如.zip
存档)也被视为文档。为了识别GIF,您需要查找文档的mime_type
。这是示例代码:
def docmsg(bot, update):
if message.document.mime_type == "video/mp4":
print("This is a GIF!")
dispatcher.add_handler(MessageHandler(Filters.document, docmsg))
updater.start_polling()
updater.idle()
由于视频未被视为文档,因此常规video/mp4
不会在此处被捕获。但是,电报对所有GIF均使用MP4格式,因此这是检测GIF的故障保护方法。