полный Python новичок, извините!Telegram Python chatbot - ответ с анимированным gif
Я использую комплект Telebot стартера (https://github.com/yukuku/telebot), который обрабатывает ответы как:
elif 'who are you' in text:
reply('telebot starter kit, created by yukuku: https://github.com/yukuku/telebot')
я смог ей ответить с изображением с:
elif 'Test1' in text:
reply(img=urllib2.urlopen('https://i.ytimg.com/vi/VC8H5B2YVCY/maxresdefault.jpg').read())
Но не могу отправить анимированные gifs. При отправке в качестве img для каждого из них используется sendPhoto, который является статическим
Я уверен, что это должен быть случай добавления класса InlineQueryResultGif и вызова его внутри ответа(), но я пробовал много и много способов сделать но я ничего не добился
Помощь!
EDIT, чтобы показать некоторые попытки:
Во-первых, я пытался редактирования Элиф аргумент, который уже был на месте для отправки IMG:
elif gif:
gif = multipart.post_multipart(BASE_URL + 'InlineQueryResultGif', [
('chat_id', str(chat_id)),
('reply_to_message_id', str(message_id)),
], [
('gif', 'image.gif', gif),
])
, а затем просто изменяя ответ будет:
elif 'Test4' in text:
reply(gif=urllib2.urlopen('http://www.reactiongifs.us/wp-content/uploads/2014/08/popcorn_indiana_jones.gif').read())
Затем я попытался добавить сам InlineQueryResultGif класс:
class InlineQueryResult:
pass
class InlineQueryResultGif(InlineQueryResult):
""" Represents a link to an animated GIF file. By default, this animated GIF file will be sent by the user with
optional caption. Alternatively, you can provide message_text to send it instead of the animation.
Attributes:
id (str) :Unique identifier of this result
gif_url (str) :A valid URL for the GIF file. File size must not exceed 1MB
gif_width (int) :*Optional.* Width of the GIF
gif_height (int) :*Optional.* Height of the GIF
thumb_url (str) :*Optional.* URL of a static thumbnail for the result (jpeg or gif)
title (str) :*Optional.* Title for the result
caption (str) :*Optional.* Caption of the GIF file to be sent
message_text (str) :*Optional.* Text of a message to be sent instead of the animation
parse_mode (str) :*Optional.* Send “Markdown”, if you want Telegram apps to show bold,
italic and inline URLs in your bot's message.
disable_web_page_preview (bool) :*Optional.* Disables link previews for links in the sent message
"""
def __init__(self, id, gif_url,
gif_width=None, gif_height=None, thumb_url=None, title=None,
caption=None, message_text=None, parse_mode=None, disable_web_page_preview=None):
self.type = 'gif'
self.id = id
self.gif_url = gif_url
self.gif_width = gif_width
self.gif_height = gif_height
self.thumb_url = thumb_url
self.title = title
self.caption = caption
self.message_text = message_text
self.parse_mode = parse_mode
self.disable_web_page_preview = disable_web_page_preview
И попытался вызвать его в ответ:
elif 'Test2' in text:
reply(InlineQueryResultGif('http://www.reactiongifs.us/wp-content/uploads/2014/08/popcorn_indiana_jones.gif'))
И много разных версий выше. ничего работать
«Я пробовал много и много способов сделать это, но я не делаю никакого прогресса» Почему бы вам не показать нам некоторые из эти способы? Возможно, вы захотите прочитать [MCVE], это действительно полезно для написания хорошего вопроса. –
Спасибо, отредактировал сообщение, чтобы добавить некоторые вещи, которые я пробовал –