如何在电报机器人中检测 gif python

how to detect gif in telegram bot python

各位。我不知道如何用我的电报机器人检测 gif。以下示例是当机器人在聊天中检测到文本并且文本是 "hi" 机器人回复 "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')

要检测 GIF,您必须使用 document filter in your message handler

这将 运行 在包含文档的每条消息上提供所提供的功能。但请注意,文档不仅仅是 GIF。这是来自文档:

This object represents a general file (as opposed to photos, voice messages and audio files).

常规文件(例如 .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。但是,telegram 对所有 GIF 使用 MP4 格式,因此这是一种检测 GIF 的故障安全方法。