如何在电报bot python中检测gif

时间:2018-01-19 18:38:56

标签: python-3.x handler gif content-type telegram-bot

大家。我不知道如何用电报检测机器人的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')

2 个答案:

答案 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的故障保护方法。